anova()コマンドはlmerモデルオブジェクトで何をしますか?


30

願わくば、これはlmerlme4 Rパッケージに適合する混合効果モデルから平方和を分解する性質について、ここの誰かが答えてくれることを願っています。

まず、このアプローチの使用に関する論争を承知していると言う必要があります。実際には、ブートストラップされたLRTを使用してモデルを比較する可能性が高くなります(Faraway、2006によって示唆されています)。しかし、私は結果を再現する方法に戸惑っていますので、私自身の正気のために、私はここで尋ねると思いました。

基本的に、lme4パッケージに適合した混合効果モデルを使用することに慣れています。このanova()コマンドを使用して、モデル内の固定効果を順次テストすることの概要を説明できることを知っています。私の知る限り、これはFaraway(2006)が「期待平均二乗」アプローチと呼んでいるものです。私が知りたいのは、二乗和の計算方法です。

特定のモデルから(を使用してcoef())推定値を取得し、それらが固定されていると仮定して、モデルの残差の2乗和を使用して、関心のある要素の有無にかかわらずテストを実行できることを知っています。これは、単一の被験者内因子を含むモデルには適しています。ただし、分割プロット設計を実装する場合、私が取得する平方和の値はaov()、適切なError()指定を使用してRによって生成される値と同等です。ただし、これは、F比が同じであるという事実にもかかわらず、モデルオブジェクトのコマンドによって生成される平方和と同じではありませんanova()

もちろんError()、混合モデルでは階層は必要ないため、これは完全に理にかなっています。ただし、これは、適切なF比を提供するために、混合モデルで平方和が何らかの形でペナルティを受けることを意味する必要があります。これはどのように達成されますか?また、モデルはプロット間二乗和をどうにかして修正しますが、プロット内二乗和は修正しません。明らかに、これは、異なる効果に対して異なるエラー値を指定することによって達成された古典的な分割プロットANOVAに必要なものです。それで、混合効果モデルはどのようにこれを可能にしますか?

基本的anova()に、lmerモデルオブジェクトに適用されたコマンドの結果を自分で複製して結果と理解を検証したいのですが、現在のところ、通常の被験者内設計でこれを達成できますが、分割-プロットのデザインと私はこれがそうである理由を見つけることができないようです。

例として:

library(faraway)
library(lme4)
data(irrigation)

anova(lmer(yield ~ irrigation + variety + (1|field), data = irrigation))

Analysis of Variance Table
           Df Sum Sq Mean Sq F value
irrigation  3 1.6605  0.5535  0.3882
variety     1 2.2500  2.2500  1.5782

summary(aov(yield ~ irrigation + variety + Error(field/irrigation), data = irrigation))

Error: field
           Df Sum Sq Mean Sq F value Pr(>F)
irrigation  3  40.19   13.40   0.388  0.769
Residuals   4 138.03   34.51               

Error: Within
          Df Sum Sq Mean Sq F value Pr(>F)
variety    1   2.25   2.250   1.578  0.249
Residuals  7   9.98   1.426               

上記からわかるように、すべてのF比は一致します。多様性の平方和も一致します。ただし、灌漑の平方和は一致しませんが、lmerの出力はスケーリングされているようです。では、anova()コマンドは実際に何をしますか?


1
あなたが望むものを提供する機能mixed()を見afexてみたいかもしれません(経由method = "PB")。そして、明らかにおもちゃのデータでいくつかのテストを行ったので、データとコードでこれらの同等性を示すことができれば間違いなく役立ちます(したがって、+ 1はありません)。
ヘンリック

@Henrik Tough crowd ... Martyn、Faraway(2006)のリファレンスを教えてください。
パトリッククーロンベ


@PatrickCoulombe Hehe、あなたは正しい。しかし、時には友好的な力がより良い質問を得るのに役立ちます。
ヘンリック

1
アーロンは本の参考文献で正しいですが、元々提供していないことをおologiesびします!
マーティン

回答:


31

ソース、ルークを使用してください。を実行することにより、ANOVA関数の内部を覗くことができgetAnywhere(anova.Mermod)ます。この関数の最初の部分は、2つの異なるモデルを比較するためのものです。固定効果に関するanovaは、else後半の大きなブロックに含まれています。

 dc <- getME(object, "devcomp")
        X <- getME(object, "X")
        asgn <- attr(X, "assign")
        stopifnot(length(asgn) == (p <- dc$dims[["p"]]))
            ss <- as.vector(object@pp$RX() %*% object@beta)^2
        names(ss) <- colnames(X)
        terms <- terms(object)
        nmeffects <- attr(terms, "term.labels")[unique(asgn)]
        if ("(Intercept)" %in% names(ss)) 
            nmeffects <- c("(Intercept)", nmeffects)
        ss <- unlist(lapply(split(ss, asgn), sum))
        stopifnot(length(ss) == length(nmeffects))
        df <- vapply(split(asgn, asgn), length, 1L)
        ms <- ss/df
        f <- ms/(sigma(object)^2)
        table <- data.frame(df, ss, ms, f)
        dimnames(table) <- list(nmeffects, c("Df", "Sum Sq", 
            "Mean Sq", "F value"))
        if ("(Intercept)" %in% nmeffects) 
            table <- table[-match("(Intercept)", nmeffects), 
                ]
        attr(table, "heading") <- "Analysis of Variance Table"
        class(table) <- c("anova", "data.frame")
        table

objectlmerの出力です。5行目の平方和の計算を開始しますss <- as.vector ...。コードは、固定パラメーター(in beta)に上三角行列を乗算します。次に、各項を二乗します。これは、灌漑の例の上の三角行列です。各行は、5つの固定効果パラメーター(切片、灌漑の3自由度、多様性の1 df)のいずれかに対応します。

zapsmall(irrigation.lmer@pp$RX(), digits = 3)
      [,1]  [,2]   [,3]   [,4]  [,5]
[1,] 0.813 0.203  0.203  0.203 0.407
[2,] 0.000 0.352 -0.117 -0.117 0.000
[3,] 0.000 0.000  0.332 -0.166 0.000
[4,] 0.000 0.000  0.000  0.287 0.000
[5,] 0.000 0.000  0.000  0.000 2.000

最初の行は切片の平方和を示し、最後の行はフィールド内バラエティー効果のSSを示します。行2〜4には、灌漑レベルの3つのパラメーターのみが含まれるため、事前乗算により、灌漑用のSSの3つの部分が得られます。

これらのピースは、Rのデフォルトの治療コントラストに由来するため、それ自体は興味深いものではありませんが、ラインでは、ss <- unlist(lapply(split ....ベイツはレベルの数とそれらが参照する要因に応じて二乗和のビットをすくい上げます。ここでは多くの簿記が行われています。自由度も取得します(灌漑の場合は3)。次に、彼はの印刷に現れる平均二乗を取得しanovaます。最後に、彼はすべての平均平方をグループ内の残差分散で除算しますsigma(object)^2

lmeraovlmerRXR00σ2/σf2σf2

漸近的に、固定効果の推定値には分布があります。

β^Nβσ2[R001R00T]

R00β^β=0σ2σ2σ2R00σ2

データのバランスが崩れていた場合、同じF統計情報は得られないことに注意してください。また、REMLの代わりにMLを使用した場合、同じF統計を取得することもありません。

aovσ2σf2σ2σf2

興味深いことに、BatesとPinheiroは、2つのモデルをあてはめてANOVAを使用し、尤度比検定を行うことを推奨しています。後者は保守的である傾向があります。

R00

zapsmall(fit2@pp$RX(), digits = 3)
      [,1]  [,2]   [,3]   [,4]   [,5]
[1,] 0.816 0.205  0.205  0.205  0.457
[2,] 0.000 0.354 -0.119 -0.119 -0.029
[3,] 0.000 0.000  0.334 -0.168 -0.040
[4,] 0.000 0.000  0.000  0.288 -0.071
[5,] 0.000 0.000  0.000  0.000  1.874

ご覧のように、灌漑パラメータの二乗和にもいくつかのvariety効果が含まれるようになりました。


10
+6、古い未回答の質問が取り上げられ、とてもよく答えられるのを見るのはいつもいいことです。ソースは...あなたと一緒かもしれ
GUNG -復活モニカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.