我有一个数据集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/

10-16 23:50