抱歉,这很容易成为一个重复的问题,但我相当有信心我还没有找到答案。
使用 fitlm 在 matlab 中进行一些回归分析。我只想查看 r2 值良好但不完美的模型(我有一些“变量与其自身的自我比较”)。所以我只想查看 r2 大于 0.75 但不是 1 的模型,而且我关心的事情很重要。
%do the modelling
mdl = fitlm(X,comp);
%plot the good models
if mdl.Rsquared.Ordinary > 0.75 && mdl.Rsquared.Ordinary < 1 && mdl.Coefficients.pValue(2) < 0.05
plot(mdl)
end
这行代码
if mdl.Rsquared.Ordinary > 0.75 && mdl.Rsquared.Ordinary ~= 1 && mdl.Coefficients.pValue(2) < 0.05
成功过滤掉r2小于0.75,以及pvalue <0.05, but mdl.Rsquared.Ordinary ~= 1 doesn't work (in that models where r2 = 1 are still processed), and neither does
if mdl.Rsquared.Ordinary > 0.75 && mdl.Rsquared.Ordinary < 1 && mdl.Coefficients.pValue(2) < 0.05
我可能做错了什么?为什么它适用于 r2 >0.75,但不适用于 r2 < 1?
将其更改为 mdl.Rsquared.Ordinary < 0.999 seems to do the trick