R_Mixed-Effects_model
_ 切片
lme4 パッケージでモデル式の指定として
dat.lmer <- lmer(y ~ x1 + (1|x2) + (1|x3), data = dat)
のように使うことになるが,
(1|x2)
が random effect であり,縦棒の右はグループ化を表す変数, 左の1は,この変数に対して切片を推定することを意味する.この変数に対する各レコード(被験者)の実測値は,ここで推定された切片に対する差として調整されたことになる.各レコードごとの調整値は
ranef(dat.lmer)
として確認できる.この出力は,モデルのパラメータにもとづく BLUP である.
ただ,各レコードごとにプラスあるいはマイナスされた調整値はパラメータではない. 推定されるのは,そのランダム項の分散である(平均は 0 である).
lme4 パッケージの出力には random effect のパラメータ(Random Intercept)が含まれている.
以下は例.Subject (被験者)に Word に反応させる実験 (Trial)を繰り返した場合,Subject ごとに遅い早いがあるだけでなく,Word によって難しい易しいがある(らしい).
> lexdec3.lmer = lmer(RT ~ Trial + (1|Subject) + (1|Word), lexdec3) > lexdec3.lmer Linear mixed model fit by REML Formula: RT ~ Trial + (1 | Subject) + (1 | Word) Data: lexdec3 AIC BIC logLik deviance REMLdev -1241 -1215 625.7 -1274 -1251 Random effects: Groups Name Variance Std.Dev. Word (Intercept) 0.0046579 0.068249 Subject (Intercept) 0.0186282 0.136485 Residual 0.0225642 0.150214 Number of obs: 1557, groups: Word, 79; Subject, 21 Fixed effects: Estimate Std. Error t value (Intercept) 6.394e+00 3.217e-02 198.76 Trial -1.835e-04 8.194e-05 -2.24 Correlation of Fixed Effects: (Intr) Trial -0.268
ランダム項の Variance は BLUP で推定されたパラメータである. このモデルにもとづく各サンプルのランダム効果を ranef() で確認できるが,これは BLUP の推定を利用した結果である.従って
> var(ranef(lexdec3.lmer)$Word) (Intercept) (Intercept) 0.003732365
としても同じ数値は表示されない.
_ 傾き
切片に加えて,ランダム項のサンプルごとに異なる傾きを推定する場合は
lmer(y ~ x1 + (1+x1|x2) + (1|x3), data = dat)
のように使うことになる.これは x2 と固定項とした場合に x1 との交互作用を検討するのに等しい. この場合,x2 の切片と傾きの相関が新たにパラメータとして推定されるが,これを防ぐには次のように 0 を左辺に指定する.
lmer(y ~ x1 + (0+x1|x2) + (1|x3), data = dat)
たとえば次のモデルでは Subject (被験者)に実験 (Trial)を繰り返した場合,実験慣れしてくる被験者,逆に疲れて反応鈍くなる被験者,そのどちらでもない被験者とばらつきが出る.この被験者のばらつきをランダムなスロープとして表すモデルである.
> lexdec3.lmerA = lmer(RT ~ Trial + (1+Trial|Subject) + (1|Word), data = lexdec3) > print(lexdec3.lmerA, corr = FALSE)