Rの怖い話

モデル選択できないGLMM 複数マッチのエラーがでない “sample” surprise なんとなく使っていると痛い目にあうRのデフォルト設定。 モデル選択できないGLMM GLMMで解析する際、lme4::lmer()(あるいはlme4::glmer())を使うことは多い。しかし、これらの関数はデフォルト設定ではモデル選択できない。なぜなら、デフォルトでREML = TRUE(制限付き最尤法「Restricted Maximum Likelihood」)となっているため。 制限付き最尤法(REML=TRUE)はランダム効果の分散推定を不偏にすることを目的とした推定方法のため、固定効果を入れ替えるようなモデル間比較には使えない。推定方法を最尤法(REML=FALSE)と明示せずにモデル選択すると、信頼できない結果が返ってくる。ちなみに、影響は極めて大きい。 pacman::p_load(tidyverse, lme4, MuMIn) options(na.action = "na.fail") ## produce dummy data set.seed(123) sleepstudy_aug <- sleepstudy %>% mutate( Age = rnorm(n(), mean = 35, sd = 10), Caffeine = sample(c("Low", "Medium", "High"), n(), replace = TRUE), Exercise = rnorm(n(), mean = 3, sd = 1) ) # REML = TRUE by default; Restricted Maximum Likelihood m0 <- lmer(Reaction ~ Days + Age + Caffeine + Exercise + (1 | Subject), data = sleepstudy_aug) # REML = FALSE; Maximum Likelihood m1 <- lmer(Reaction ~ Days + Age + Caffeine + Exercise + (1 | Subject), data = sleepstudy_aug, REML = FALSE) それぞれモデル選択すると(当然だが)結果は全く異なり、結論に直接影響する可能性が極めて高い。...

October 26, 2025 · Akira Terui