R 带有lme4或其他包的稀疏混合模型

R 带有lme4或其他包的稀疏混合模型,r,matrix,sparse-matrix,lme4,mixed-models,R,Matrix,Sparse Matrix,Lme4,Mixed Models,我在一个大文件(500000行)上使用混合模型。 我的模型公式如下所示: Y~0+num1:factor1+num1:factor2+num2:factor3+factor4+(0+num3主语)+(0+num4主语)+(1主语), 其中num-数值变量因子-分类变量/因子 由于分类变量有许多独特的级别,因此固定效应矩阵为​​非常稀疏(稀疏度~0.9)。 如果处理密度如此高,则拟合这样一个矩阵需要大量时间和内存 我对线性回归也有同样的问题。 我的密集矩阵是20GB,但当我将其转换为稀疏矩阵时,它

我在一个大文件(500000行)上使用混合模型。 我的模型公式如下所示:
Y~0+num1:factor1+num1:factor2+num2:factor3+factor4+(0+num3主语)+(0+num4主语)+(1主语)

其中
num
-数值变量<代码>因子-分类变量/因子

由于分类变量有许多独特的级别,因此固定效应矩阵为​​非常稀疏(稀疏度~0.9)。
如果处理密度如此高,则拟合这样一个矩阵需要大量时间和内存

我对线性回归也有同样的问题。
我的密集矩阵是
20GB
,但当我将其转换为稀疏矩阵时,它只变成了
35MB

因此,我拒绝使用
lm
函数,而是使用了另外两个函数:

  • sparse.model.matrix
    (创建稀疏模型/设计矩阵)和
  • 矩阵模型:::lm.fit.sparse
    (用于拟合稀疏矩阵并计算系数)
  • 我可以对混合模型应用类似的方法吗?
    我可以使用哪些函数/包来实现此功能

    也就是说,我的主要问题是是否有可能实现具有稀疏矩阵的混合模型
    我应该使用哪些函数来创建
    X
    Z
    稀疏模型矩阵?
    那么,我应该使用哪一个函数用稀疏矩阵拟合模型以获得系数

    我将非常感谢您在这方面的任何帮助

    • 从CRAN上的1.0.2.1版开始,
      glmmTMB
      有一个
      sparseX
      参数:
    sparseX:一个命名的逻辑向量,包含(可能)名为 “cond”、“zi”、“disp”表示是否为固定效应模型 应生成特定模型组件的矩阵 作为稀疏矩阵,例如“c(cond=TRUE)”。违约就是一切 “假”

    您可能需要
    glmmTMB([formula],[data],sparseX=c(cond=TRUE))
    glmmTMB
    默认使用
    family=“gaussian”


    glmmTMB
    对于线性混合车型的速度不如
    lme4
    快:我不知道您的里程数(但我对这里感兴趣)。还有一些关于如何在
    lme4
    中破解稀疏模型矩阵等价物的讨论(通过让多水平因子成为具有较大固定方差的随机效应)。

    非常感谢,今天我将尝试
    glmmTMB
    。QQ-我已经查看了
    lme4
    的源代码和
    modular.R
    的第727行,它说
    sparseX
    矩阵还没有实现,但你计划在将来实现它吗?另外,也许你知道,是否可以使用
    ASReml
    包来实现稀疏混合模型?
    sparseX
    已经在lme4愿望清单上很久了,除非有人自愿,否则我不会屏住呼吸。。。我不知道ASReml的功能。。。但这似乎有可能。。。