我有一个数据集dat2,我想在该数据集上拟合线性混合效应模型。我过去使用lmer()(软件包lme4)补充pvals.fnc来计算关联的p值。
但是,由于我使用新的lme4(1.0.4)和languageR(1.4)软件包重新安装了R 3.0.2版本,因此我得到了有关lmer函数输出的错误。它说输出不是mer对象。实际上,它的类是lmeRmod。
这是我使用的代码:
names(dat2)<-c("auc","subj","decod","soa","vis")
attach(dat2)
mod1 <- lmer(auc ~ decod + (1 | subj))
mod2 <- lmer(auc ~ vis+ (1 | subj))
mod3 <- lmer(auc ~ decod + vis + (1 | subj))
mod4 <- lmer(auc ~ decod + vis + decod*vis + (1 | subj))
pvals.fnc(mod1)
我得到这个错误:
> pvals.fnc(mod1)
the input model is not a mer object
NULL
确实,当我查看mod1时,发现它是一个lmeRmod对象,而不是mer对象。
> mod1
Linear mixed model fit by REML ['lmerMod']
Formula: auc ~ decod + (1 | subj)
REML criterion at convergence: -213.3884
Random effects:
Groups Name Std.Dev.
subj (Intercept) 0.04187
Residual 0.11087
Number of obs: 155, groups: subj, 6
Fixed Effects:
(Intercept) decod2 decod3 decod4
0.9798 -0.1141 -0.3599 -0.3090
这个问题与描述为here的问题非常相似。 1/问题可能是什么(为什么我不输出mer对象)和2/如何解决(我尝试重新安装旧版本,但程序包之间存在兼容性问题)的想法?
任何帮助将是巨大的!
谢谢 !
最佳答案
我确认pvals.fnc
函数在新的languageR
中不起作用-这主要是因为在新版本的mcmcsamp
中未实现lme4
,而这又是因为在许多情况下发现它不可靠。
很遗憾,我们(lme4
的作者)以这种方式让languageR
用户陷入困境,但这在一定程度上是不可避免的。
https://github.com/lme4/lme4/blob/master/man/pvalues.Rd为计算p值提供了一些替代建议。
https://github.com/lme4/lme4/blob/master/man/drop1.merMod.Rd针对如何使用lme4
获取模型中所有预测变量的p值给出了一个特定的配方(针对pbkrtest::KRmodcomp
的开发版本):
fm1 <- lmer(Reaction~Days+(Days|Subject),sleepstudy)
## Likelihood ratio test
drop1(fm1,test="Chisq")
if (require(pbkrtest)) {
KRSumFun <- function(object, objectDrop, ...) {
krnames <- c("ndf","ddf","Fstat","p.value","F.scaling")
r <- if (missing(objectDrop)) {
setNames(rep(NA,5),krnames)
} else {
krtest <- KRmodcomp(object,objectDrop)
unlist(krtest$stats[krnames])
}
attr(r,"method") <- c("Kenward-Roger via pbkrtest package")
r
}
drop1(fm1,test="user",sumFun=KRSumFun)
}
此示例产生:
Single term deletions
Model:
Reaction ~ Days + (Days | Subject)
Method:
Kenward-Roger via pbkrtest package
ndf ddf Fstat p.value F.scaling
<none>
Days 1 17 45.853 3.2638e-06 1
关于r - lme4和languageR兼容性错误: "input model is not a mer object” ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19199713/