回归循环错误

Error in regression loop

下面的matlab代码是一个回归循环:

for j=1:size(X,2)
IdentityVector=ones((size(t,1)-1),1);
Y=X((2:end),j);
if j==1 
X2=[IdentityVector,X((2:end),((j+1):end)),Diff1X];
elseif j>1 & j<size(X,2)
X2=[IdentityVector,X((2:end),(1:(j-1))),X((2:end),((j+1):end)),Diff1X];
elseif j==size(X,2)
X2=[IdentityVector,X((2:end),(1:(j-1))),Diff1X];
end
[b(:,j)]= regress(Y,X2);
end

这对 beta 估计很有效,因为它对每个 j beta 的维度都相应地进行了调整,尽管如果我从估计中请求一些额外的 features/statistics 例如[b,bint,r,rint,stats] = regress(y,X) 我对每个 j 尝试的调整都不起作用。有帮助吗?

我最好的猜测是您将所有输出都视为向量,而事实并非如此。如果您阅读 doc regress,您会发现 bint 是 p×2,r 是 n×2,依此类推。这意味着您不能分配 bint(:,j) 因为 bint 本身是一个矩阵。而是尝试细胞。

[b{j}, bint{j}, r{j}, rint{j}, stats{j}]= regress(Y,X2);