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

时间:2015-08-09 07:53:28

标签: r lme4

我在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命令会生成结果,但是相同的数据confint会在lme4_1.1-8中返回NA。为什么?

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

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

要回答问题中较不困难的部分(为什么在1.1-7而不是1.1-8中出现错误):按名称而不是整数指定参数应该在1.1-8中有效,但不是< / em>在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,则解决方法应该很简单:只需按编号指定参数。