File Exchange

image thumbnail

Reduced Rank Regression

version (6.84 KB) by Chris McComb
Multivariate regression via rank reduction.


Updated 02 May 2018

GitHub view license on GitHub

Reduced rank regression.
AJ Inzeman, 1975, "Reduced-rank regression for the multivariate linear model", Journal of Multivariate Analysis.

Cite As

Chris McComb (2020). Reduced Rank Regression (, GitHub. Retrieved .

Comments and Ratings (2)

An updated has been made tot eh code per Jorrit Montijn's recommendation.

A very useful function, but it unfortunately has a serious bug in the eigenvalue decomposition part, where matrix VV and VVt are calculated (lines 112-115). There are two issues:
1) The function eigs() only returns the largest 6 eigenvalues, so attempting to run the reduced rank regression with a rank larger than 6 will give an error.
2) More importantly, eigs() already returns the eigenvalues in descending order, so the left-right flip and subsequent selection of eigenvectors on lines 114-115 actually means the components are included in reverse order! E.g., when performing reduced rank regression with 4 components, only the components with the 3rd up to 6th largest eigenvalues are used, instead of the 1st up to 4th.

This issue can be easily fixed by replacing lines 113-115 by the following:

[VVt,~] = eigs(sqrtm(gg)*SSYX*inv(SSXX)*SSXY*sqrtm(gg),tt);

It would be good if the author could fix this error.


Added image.

MATLAB Release Compatibility
Created with R2015a
Compatible with any release
Platform Compatibility
Windows macOS Linux