当软件内存不足时,加速像(投影矩阵)和定制估计器的其他方面的帽子矩阵X(X'X)− 1X'X(X′X)−1X′

机器算法验证 估计 估计者 计算统计
2022-04-16 11:35:39

有没有办法加速类型的矩阵?我正在使用矩阵语言直接实现下面的表达式,并且我的程序经常崩溃,而如果我使用预制命令在它们上运行 OLS,这不是问题。Z(ZZ)1Z

你们有没有什么技巧可以有效地计算这些矩阵?

这里的目标(但这只是一个问题)是实现以下估计器 现在,其中

(XPXi=1nPiiXiXiαXX)1(XPZyi=1nPiiXiyiαXy)
α(X¯X¯)1(X¯PZX¯i=1nPiiX¯iX¯i)X¯=[y,X]

我非常有信心,一旦我找到了一种计算投影的有效方法,我就可以轻松地实现其余部分。

非常感谢!

2个回答

使用 QR 分解(如果您已经计算了回归,则应该可用):

假设行和列并且是满列秩。Xnp

H=X(XX)1X

=QR(RQQR)1RQ

=QR(RR)1RQ

但是如果的前行,那么R1pRRR=R1R1

=QR(R1R1)1RQ

现在让其中的前然后Q=(Q1,Q2)Q1pQQR=Q1R1

=Q1R1R11(R1)1R1Q1

=Q1Q1

其中Q1n×p

因此,如果您有的 QR 分解,那么帽子矩阵相当简单。X

请注意,一些回归程序会自动给出[也有可能回归程序会执行旋转。不过,这不应该影响帽子矩阵的计算。]Q1

尝试使用 SVD。例如,由于 那么 因此 其中是一个单位矩阵,对角线上个单位 (上部分),下对角线上的的秩。

X=UΣVT,
(XTX)1=(VΣ2VT)1=VΣ2VT,
X(XTX)1XT=UIrUT=UrUrT,
Irn×nrnnrrX

这可能会加快您的计算速度。