Regression design matrix is rank deficient to within machine precision. How do I interpret this error?
59 次查看(过去 30 天)
显示 更早的评论
I tried using Linear Regresssion commant regress on my train and test data and I am getting a warning saing 'X is rank deficient to within machine precision'. I am not able to interpret the error.
0 个评论
采纳的回答
Star Strider
2020-3-6
It means that at least one of the columns in the design matrix is close to being all zeros.
Without knowing more, one way to avoid that could be to re-scale all the variables (independent and dependent) to some larger values. Re-scaling them could mean adding a constant value to all of them. This would need to be done with caution, since it would be possible to end up with useless results.
4 个评论
Sascha Frölich
2022-5-19
编辑:Sascha Frölich
2022-5-19
Hey, I get the same error, and no matter what large values I add to my design matrix (to the point that every value is way beyond zero), the error persists. Why could that be?
Nevermind I just figured it out; I had included a constant regressor, while MATLAB includes an intercept term by itself, so my design matrix was redundant. Cheers!
Star Strider
2022-5-19
One possibility is that one or more columns of the design matrix are linearly dependent.
x = randn(5,1);
DM = [x x+eps ones(size(x))];
y = randn(5,1);
B = DM \ y
Here, the first and second columns of ‘DM’ are liniearly dependent withiin machine tolerance.
.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear and Nonlinear Regression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!