5

線形混合効果モデルを当てはめたいデータセット 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 

この問題は、ここで説明されている問題とよく似ています。1/ 問題の可能性 (mer オブジェクトを出力しないのはなぜですか) と 2/ 回避方法 (古いバージョンを再インストールしようとしましたが、パッケージ間の互換性の問題があります) のアイデアはありますか?

どんな助けでも素晴らしいでしょう!ありがとう !

4

3 に答える 3

4

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は、のすべての予測子の p 値を取得lme4するために使用する方法に関する特定のレシピ (の開発バージョン用) を提供します。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
于 2013-10-07T14:54:52.907 に答える