混合モデル(lme4)のカテゴリー因子の「全体的な」p値と効果サイズを取得する方法は?


28

独立したカテゴリ変数(複数のレベル)のp値と効果サイズを取得したいです。つまりlme4、R からの通常の出力のように、各レベルごとにではなく「全体」です。 ANOVAの実行時に人々が報告するもの。

どうすれば入手できますか?


正確にどの統計が必要ですか?このanova()関数を使用して、線形モデルと同様に線形混合モデルでanovaテーブルを取得できます。
smillig 14

anova()を試しましたが、Df、Sum Sq、Mean Sq、およびF値が得られます。エフェクトサイズとp値が表示されません。これについて何かご存知ですか?
user3288202 14

1
効果サイズとは、と同等のもののことですか?p値に関しては、その推定およびでのそれらの実装に関して、長く重要な議論があります。詳細については、この質問のディスカッションをご覧ください。R2lme4
smillig 14

リンクをありがとう、Smilig。これは、p値の計算に問題があるため、全体的な要因の効果サイズも問題になるということですか?
user3288202 14

それらは直接関連する問題ではありません。ただし、線形混合モデルはランダム効果のない線形モデルとまったく同じように振る舞わないため、線形モデルに適切な指標は必ずしも混合モデルに一般化されないことに注意してください。
smillig 14

回答:


48

あなたが言及する両方の概念(線形混合モデルのp値と効果サイズ)には固有の問題があります。効果の大きさについては、の原作者であるダグ・ベイツを引用してlme4

R2

詳細については、このスレッドこのスレッド、およびこのメッセージを参照してください。基本的に、問題は、モデルの変量効果からの分散の包含と分解の方法が合意されていないことです。ただし、使用される標準はいくつかあります。r-sig-mixed-modelsメーリングリスト用に設定されたWikiを見ると、いくつかのアプローチがリストされています。

推奨される方法の1つでは、近似値と観測値の相関関係を調べます。これらのスレッドの1つでJarrett Byrnesが示唆するように、これはRで実装できます。

r2.corr.mer <- function(m) {
  lmfit <-  lm(model.response(model.frame(m)) ~ fitted(m))
  summary(lmfit)$r.squared
}

たとえば、次の線形混合モデルを推定するとします。

set.seed(1)
d <- data.frame(y = rnorm(250), x = rnorm(250), z = rnorm(250),
                g = sample(letters[1:4], 250, replace=T)       )
library(lme4)
summary(fm1 <- lmer(y ~ x + (z | g), data=d))
# Linear mixed model fit by REML ['lmerMod']
# Formula: y ~ x + (z | g)
#    Data: d
# REML criterion at convergence: 744.4
# 
# Scaled residuals: 
#     Min      1Q  Median      3Q     Max 
# -2.7808 -0.6123 -0.0244  0.6330  3.5374 
# 
# Random effects:
#  Groups   Name        Variance Std.Dev. Corr 
#  g        (Intercept) 0.006218 0.07885       
#           z           0.001318 0.03631  -1.00
#  Residual             1.121439 1.05898       
# Number of obs: 250, groups: g, 4
# 
# Fixed effects:
#             Estimate Std. Error t value
# (Intercept)  0.02180    0.07795   0.280
# x            0.04446    0.06980   0.637
# 
# Correlation of Fixed Effects:
#   (Intr)
# x -0.005

上記で定義した関数を使用して、エフェクトサイズを計算できます。

r2.corr.mer(fm1)
# [1] 0.0160841

Ω02

1-var(residuals(fm1))/(var(model.response(model.frame(fm1))))
# [1] 0.01173721  # Usually, it would be even closer to the value above

p値に関しては、これは(少なくともR / lme4コミュニティでは)はるかに論争の多い問題です。質問での議論を参照してくださいここではここでは、とここでは他の多くの間。Wikiページを再度参照すると、線形混合モデルの効果に関する仮説をテストするためのいくつかのアプローチがあります。「最悪から最高」のリスト(ダグベイツとここで多くの貢献をしているベンボルカーが含まれると思うWikiページの著者による):

  • ワルドZ検定
  • dfを計算できる、バランスの取れたネストLMMの場合:Wald t検定
  • 尤度比検定、いずれかのパラメータを単離することができるようにモデルを設定して/(経由滴下anova又はdrop1)、またはコンピューティング尤度プロファイルを介して
  • MCMCまたはパラメトリックブートストラップ信頼区間

彼らは、マルコフ連鎖モンテカルロサンプリングアプローチを推奨し、また、以下にリストされる疑似および完全ベイジアンアプローチからこれを実装するための多くの可能性をリストします。

擬似ベイジアン:

  • 事後サンプリング。通常、(1)事前分布が平坦であると仮定し、(2)MLEから開始し、場合によっては近似分散-共分散推定を使用して候補分布を選択します。
  • 経由してmcmcsamp(あなたの問題のために利用可能な場合:簡単なランダム効果を持つすなわちLMMS -ないGLMMsや複雑なランダム効果)
    経由pvals.fncでのlanguageRパッケージのラッパーmcmcsamp
  • ADモデルビルダーで、おそらくglmmADMBパッケージ(mcmc=TRUEオプションを使用)またはR2admbパッケージ(ADモデルビルダーで独自のモデル定義を作成)を介して、またはRの外部で
  • パッケージのsim関数を介してarm(ベータ(固定効果)係数についてのみ事後をシミュレートします)

完全ベイジアンアプローチ:

  • MCMCglmmパッケージ 経由
  • 使用glmmBUGS(WinBUGSラッパー/ Rインターフェイス)
  • rjags/ r2jags/ R2WinBUGS/ BRugsパッケージ 経由でJAGS / WinBUGS / OpenBUGSなどを使用する

これがどのように見えるかを示すために、上記のモデルと同様の結果が得られるパッケージをMCMCglmm使用した推定を以下に示しMCMCglmmます。これには、ある種のベイズp値があります。

library(MCMCglmm)
summary(fm2 <- MCMCglmm(y ~ x, random=~us(z):g, data=d))
# Iterations = 3001:12991
# Thinning interval  = 10
#  Sample size  = 1000 
# 
#  DIC: 697.7438 
# 
#  G-structure:  ~us(z):g
# 
#       post.mean  l-95% CI u-95% CI eff.samp
# z:z.g 0.0004363 1.586e-17 0.001268    397.6
# 
#  R-structure:  ~units
# 
#       post.mean l-95% CI u-95% CI eff.samp
# units    0.9466   0.7926    1.123     1000
# 
#  Location effects: y ~ x 
# 
#             post.mean l-95% CI u-95% CI eff.samp pMCMC
# (Intercept)  -0.04936 -0.17176  0.07502     1000 0.424
# x            -0.07955 -0.19648  0.05811     1000 0.214

これがいくらか役立つことを願っています。線形混合モデルから始めてRでそれらを推定しようとする人にとっての最善のアドバイスは、この情報のほとんどが描かれたWikiのFAQを読むことだと思います。これは、基本的なものから高度なものまで、またモデリングからプロットまで、あらゆる種類の混合効果テーマにとって優れたリソースです。


どうもありがとう。そのため、パラメーター全体のエフェクトサイズを報告しない場合があります。
user3288202 14

r2

3
+6、非常に明確で、包括的で、完全に注釈が付けられています。
GUNG -復活モニカ

1
さらに、afex-パッケージ、特に混合機能を見ることができます。ここを
開始14

6

有意性(p)値の計算に関して、ルーク(2016)Rの線形混合効果モデルの有意性の評価では、最適な方法は自由度のケンワードロジャー近似またはサタースウェイト近似のいずれかであると報告されています(R lmerTestまたはafex)。

抽象

混合効果モデルは、実験データの分析で頻繁に使用されています。ただし、Rのlme4パッケージでは、これらのモデルの固定効果の重要性を評価する(つまり、p値を取得する)標準はやや曖昧です。これには十分な理由がありますが、これらのモデルを使用している研究者は多くの場合p値を報告する必要があるため、モデル出力の有意性を評価する方法が必要です。このホワイトペーパーでは、尤度比検定を使用し、モデル出力(t-as-z)からWald t値にz分布を適用する、有意性を評価する2つの最も一般的な方法がやや反保守的であることを示すシミュレーションの結果を報告します。特に小さなサンプルサイズの場合。有意性を評価する他の方法、これらのシミュレーションの結果は、REMLを使用してモデルを近似し、Kenward-Roger近似またはSatterthwaite近似を使用してp値を導出した場合、タイプ1のエラー率は0.05に最も近いことを示唆しています。サンプル。

(強調を追加)


4
+1このリンクを共有していただきありがとうございます。Kenward-Roger近似がlmerTestパッケージで利用可能であることを簡単にコメントします。
アメーバは

5

lmerTestパッケージを使用します。これには便利なことに、anova()私のMLM分析の出力にp値の推定値が含まれていますが、ここの他の投稿で示されている理由で効果の大きさはわかりません。


1
私の場合、p値を含むすべてのコントラストのペアが得られるため、lsmeansを使用したペアワイズ比較を好みます。lmerTestを使用する場合、すべてのコントラストのペアを表示するには、異なるベースラインでモデルを6回実行する必要があります。
user3288202 14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.