独立したカテゴリ変数(複数のレベル)のp値と効果サイズを取得したいです。つまりlme4
、R からの通常の出力のように、各レベルごとにではなく「全体」です。 ANOVAの実行時に人々が報告するもの。
どうすれば入手できますか?
独立したカテゴリ変数(複数のレベル)のp値と効果サイズを取得したいです。つまりlme4
、R からの通常の出力のように、各レベルごとにではなく「全体」です。 ANOVAの実行時に人々が報告するもの。
どうすれば入手できますか?
回答:
あなたが言及する両方の概念(線形混合モデルのp値と効果サイズ)には固有の問題があります。効果の大きさについては、の原作者であるダグ・ベイツを引用してlme4
、
詳細については、このスレッド、このスレッド、およびこのメッセージを参照してください。基本的に、問題は、モデルの変量効果からの分散の包含と分解の方法が合意されていないことです。ただし、使用される標準はいくつかあります。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
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ページの著者による):
anova
又はdrop1
)、またはコンピューティング尤度プロファイルを介して彼らは、マルコフ連鎖モンテカルロサンプリングアプローチを推奨し、また、以下にリストされる疑似および完全ベイジアンアプローチからこれを実装するための多くの可能性をリストします。
擬似ベイジアン:
mcmcsamp
(あなたの問題のために利用可能な場合:簡単なランダム効果を持つすなわちLMMS -ないGLMMsや複雑なランダム効果)pvals.fnc
でのlanguageR
パッケージのラッパーmcmcsamp
) 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を読むことだと思います。これは、基本的なものから高度なものまで、またモデリングからプロットまで、あらゆる種類の混合効果テーマにとって優れたリソースです。
有意性(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に最も近いことを示唆しています。サンプル。
(強調を追加)
lmerTest
パッケージで利用可能であることを簡単にコメントします。
lmerTest
パッケージを使用します。これには便利なことに、anova()
私のMLM分析の出力にp値の推定値が含まれていますが、ここの他の投稿で示されている理由で効果の大きさはわかりません。
anova()
関数を使用して、線形モデルと同様に線形混合モデルでanovaテーブルを取得できます。