首页 > 解决方案 > 在 R 中使用 Matrxmodels 包时出错:CHOLMOD 分解不成功

问题描述

我正在尝试使用稀疏矩阵估计线性模型。我使用的代码是:

MatrixModels:::lm.fit.sparse( Dc, y, w = NULL, offset = NULL,
                                          method = c("cholesky"),
                                          tol = 1e-7, singular.ok = TRUE, order = NULL,
                                          transpose = FALSE);

错误信息是:

Error in .solve.dgC.chol(as(if (transpose) tx else t(x), "CsparseMatrix"),  : 
  CHOLMOD factorization was unsuccessful
In addition: Warning message:
In .solve.dgC.chol(as(if (transpose) tx else t(x), "CsparseMatrix"),  :
  Cholmod warning 'matrix not positive definite' at file ../Supernodal/t_cholmod_super_numeric.c, line 729

Dc 是具有类 dgCMatrix 的稀疏矩阵,y 是向量。Dc 是 D 和 W' 的乘积矩阵,其中 D 是稀疏度超过 95% 的稀疏矩阵。W'是一个变换矩阵。我检查了 Dc 的列和行,没有全零列/行。

错误的可能原因是 Dc 太密集而无法在 lm.fit.sparse 中使用。但是矩阵的维数太大,不能用matrixclass(Dc的维数是1311247*8192)。如果我做错了什么或如何解决这个问题,任何人都可以向我指出。谢谢!

标签: rlinear-regressionsparse-matrix

解决方案


推荐阅读