回归循环中的错误



以下 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 的维度都会相应地调整,尽管如果我要求从估计中请求一些额外的功能/统计数据,例如 [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);

最新更新