r - 在 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 中使用。但是矩阵的维数太大,不能用matrix
class(Dc的维数是1311247*8192)。如果我做错了什么或如何解决这个问题,任何人都可以向我指出。谢谢!
解决方案
推荐阅读
- css - 如何使用 vue 创建动态网格?
- javascript - 使用 javascript 捕获音频数据
- javascript - 使用 javascript 获取锚标记 URL
- google-app-engine - 在总共处理 4330 个请求后,超过 243 MB 的软内存限制为 307 MB。考虑在 app.yaml 中设置更大的实例类
- sas - 为每个组只保留最高排名的观察的有效方法
- ssl - 使用 APR/本机连接器在 Tomcat 8 上接收 SSL 握手成功/失败事件
- git - 如何从需要 SSL 证书的 docker 文件运行 git clone
- c++ - 如何使用“asm volatile”编写 btr 指令
- javascript - 将 pug 模板编译为单个客户端 js 文件
- mysql - 将 sql 转储文件导入 PHPMyAdmin