我在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
命令得到的结果是否有效?
感谢任何帮助。感谢。
答案 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,则解决方法应该很简单:只需按编号指定参数。