如果我想计算:
var(B(k))=sigma^2(X'X+k*I_p)^-1*(X'X)*(X'X+k*I_p)^-1
其中sigma
和k
是常量,I_p
是正确维度的单位矩阵,X
是n*p
矩阵
这是正确的语法吗?
var_alpha_Ridge=sigma2*(Gamma+lambda)\Gamma\(Gamma+lambda);
其中Gamma=(X'X)
和lambda=k*eye(p)
。
答案 0 :(得分:1)
如果您想通过/
和\
运营商进行此操作,那么
var_alpha_Ridge=sigma2*(Gamma+lambda)/Gamma\(Gamma+lambda);
但是,我更喜欢预先计算逆转
iGl = inv(Gamma+lambda);
var_alpha_Ridge=sigma2*iGl*Gamma*iGl;
如果您担心数值稳定性,请改用pinv
:
iGl = pinv(Gamma+lambda);
var_alpha_Ridge=sigma2*iGl*Gamma*iGl;
由于lambda
部分,您反转的矩阵可能已经很好地调节了,我不希望这三种计算方法之间存在很大差异。