- lme4中的提取器功能失效

  • 本文关键字:功能 失效 提取 lme4 lme4
  • 更新时间 :
  • 英文 :


我试图理解Rlmer函数背后的线性代数运算,我在lme4包的创建者Douglas Bates的讲座上找到了一个似乎很好的在线资源。

示例处理数据集染料,并调用混合效果模型,如下所示:

fm1 <- lmer(Yield ~ 1 + (1 | Batch), Dyestuff)

下面的幻灯片包含用于提取随机效果的底层矩阵的代码行,例如:

efm1 <- expand(fm1)
efm1$S
6 x 6 diagonal matrix of class "ddiMatrix"
#       [,1]      [,2]    [,3]    [,4]    [,5]    [,6]
[1,]  0.84823       .       .       .       .       .
[2,]       .  0.84823       .       .       .       .
[3,]       .       .  0.84823       .       .       .
[4,]       .       .       .  0.84823       .       .
[5,]       .       .       .       .  0.84823       .
[6,]       .       .       .       .       .  0.84823

,

efm1$T6 x 6 sparse Matrix of class "dtCMatrix"
[1,] 1 . . . . .
[2,] . 1 . . . .
[3,] . . 1 . . .
[4,] . . . 1 . .
[5,] . . . . 1 .
[6,] . . . . . 1

(fm1S <- tcrossprod(efm1$T %*% efm1$S))
6 x 6 sparse Matrix of class "dsCMatrix"
[1,] 0.71949 .       .       .       .       .
[2,] .       0.71949 .       .       .       .
[3,] .       .       0.71949 .       .       .
[4,] .       .       .       0.71949 .       .
[5,] .       .       .       .       0.71949 .
[6,] .       .       .       .       .       0.71949

然而,当我尝试在R上运行相同的行代码时,我得到以下错误消息:

efm1 <- expand(fm1)
Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘expand’ for signature ‘"lmerMod"’

efm1$S
Error: object 'efm1' not found

执行?expand识别该函数仍然存在,并且似乎意味着产生矩阵分解,例如LU或RQ。

在网上搜索时,我发现Douglas现在使用的是Julia(下一种统计语言能不能有一个更不可信的名字?)不,不是'魔笛码头' !对不起,我离题了…)。

我做错了什么?lme4现在是孤儿了吗?幻灯片上有打字错误吗?

你看的是很老的幻灯片。

  • 封装的线性混合模型功能的完整描述,包括内部表示的细节,在arxiv上,按J。Stat. Software(对该信息的引用也在CRAN软件包的引用信息中)。(我们仍在撰写描述GLMM功能的论文。)
  • getME()函数是当前推荐的访问模型信息的方法。
  • lme4在github上仍处于相当活跃的开发阶段。
  • Doug Bates现在确实对在Julia中构建混合模型框架更感兴趣,但他仍然在某种程度上参与lme4的维护。

表示法/内部表示法发生了一些变化,但是从内部信息重构方差-协方差矩阵可以这样做(内部Lambdat相当于旧表示法中的t(T %*% S))。

library("lme4")
fm1 <- lmer(Yield ~ 1 + (1 | Batch), Dyestuff)
crossprod(getME(fm1,"Lambdat"))

最新更新