不同的 lme4 版本给出不同的结果

Different lme4 version is giving different result

我在 lme4 包中遇到了一个问题,对我来说似乎非常难运行。

R 版本 3.0.2 (2013-09-25) 和 lme4_1.1-7 与 R 版本 3.2.1(2015-06-18) 的行为不同和 lme4_1.1-8 。例如,在 R 版本 3.0.2 中,如果我 运行 代码 confint.merMod(fit, oldName = FALSE, "sd_(Intercept)|group"),它会给出以下错误:

Error in confint.merMod(fit, oldName = FALSE, c("sd_(Intercept)|group", : for method='profile', 'parm' must be specified as an integer -

但是在R版本3.2.1和lme4_1.1-8中不会出现这样的错误。

再次在 lme4_1.1-7 中,confint 命令生成结果,但在 [=33] 中具有相同的数据 confint returns NA =].1-8 。为什么?

我从 lme4_1.1-7 中的 confint 命令得到的结果有效吗?

感谢任何帮助。谢谢。

回答问题中难度较低的部分(为什么在 1.1-7 而不是 1.1-8 中出错):按名称而不是整数指定参数应该在 1.1-8 中有效,但 在 1.1-7 中没有This commit from June 13 显示功能添加到程序包的时间。

以下代码适用于 lme4 的最新开发版本,应该适用于 1.1-8(但 不适用于 1.1-7):我们可以指定按编号、新名称、旧名称分析参数,或者我们可以指定我们要分析所有随机效应参数(在这种情况下只有一个):

library("lme4")
fm1 <- lmer(Reaction~Days+(1|Subject),sleepstudy)
p1 <- profile(fm1,parm=1) 
p2 <- profile(fm1,parm="sd_(Intercept)|Subject",oldName=FALSE)
p3 <- profile(fm1,parm=".sig01",oldName=TRUE)
p4 <- profile(fm1,parm="theta_")

如果您需要使用 1.1-7,解决方法应该很简单:只需按编号指定参数即可。