2

我有一个 39,547 x 39,547 方差矩阵 V,存储为 big.matrix 对象,因为存储这种大小的矩阵所需的内存超出了我的机器的能力。

w <- as.big.matrix(test[,1:3]) # 39,547x3 matrix
V <- w %*% big.t(w)

然后我需要计算z^T %*% V^(-1) %*% z,其中 z 是长度为 39,547 的向量,因此我需要执行

1) chol(V),然后是 backsolve 和 crossprod,或者 2) solve(V)(最好不要)

但是,这些函数不适用于 big.matrix 对象,并且在 bigalgebra 包中似乎只有将这些对象相乘的方法。

我还尝试通过 big.PCA 执行此计算:

big.PCA(V)
[1] 39547 39547

Error: cannot allocate vector of size 11.7 Gb

有没有人有使用大型 big.matrix 对象执行此类计算的经验?

4

0 回答 0