線形混合モデルにおける残差仮定の違反正規性


8

線形混合モデルでの残差仮定の正規性からの潜在的な違反についてどの程度懸念すべきかについて質問があります。私は比較的小さなデータセットを持っており、モデルを(Rで 'lmer'を使用して)フィッティングした後、Shapiro-Wilks検定は、正規分布からの残差の大きな偏差を明らかにします。私の変数の対数変換はこれを十分に処理しません。

これにどのように対処するかについての回答の検索で、正規性のテストを実施すべきではないというアドバイスに遭遇しました(ここで同様の質問に対する回答を参照してください)。代わりに、残差と同じNのランダムな通常データのQQプロットを実行して、残差のQQプロットが著しく異なるかどうかを確認することをお勧めします。私が見つけた他のアドバイスは、推論はLMMの仮定のさまざまな違反に対して堅牢であるように思われることを示唆しているようです (こちらのブログ投稿を参照)

私の質問

1)これがあなたのデータだった場合、LMM残差の正規性の欠如について心配しますか(以下のデータと出力を参照)?

2)心配している場合、ログ変換後も心配していますか(ここでも、以下のデータと出力を参照してください)?

3)上記の両方の答えが「はい」の場合、残差の非正規性にどのように対処できますか?

データと非変換分析

# load relevant library
library(lme4)

#--- declare the data
study <- c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 6, 6,
           7, 7, 8, 8, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 13, 13, 
           13, 13, 14, 14, 14, 14, 14, 14, 15, 15, 16, 16, 16, 16, 17, 17)

condition <- c(1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 3, 3, 4, 4, 1, 1, 
               1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 1, 1, 
               2, 2, 1, 1, 2, 2, 3, 3, 1, 1, 1, 1, 2, 2, 1, 1)

age <- rep(c(1, 2), times = length(study) / 2)

congruent <- c(937, 611, 1067, 611, 1053, 943, 1097, 1015, 1155, 974, 860, 594,
               910, 605, 912, 632, 998, 660, 1989, 1176, 1337, 936, 2657, 1234, 
               1195, 999, 1010, 634, 1205, 620, 1154, 909, 1425, 1172, 1388, 
               1084, 641, 407, 1429, 810, 909, 510, 1358, 802, 1132, 639, 
               1501, 703, 1471, 955, 1342, 631, 1178, 676, 1033, 723)

incongruent <- c(1025, 705, 1204, 705, 1119, 1008, 1184, 1046, 1225, 1013, 1308, 
                 895, 1234, 901, 1204, 854, 1177, 828, 2085, 1269, 1350, 929, 
                 2697, 1231, 1233, 1032, 1062, 679, 1263, 674, 1183, 914, 1458, 
                 1184, 1382, 1086, 632, 424, 1510, 871, 978, 568, 1670, 881, 
                 1395, 747, 1694, 795, 1504, 999, 2112, 948, 1494, 992, 1039, 
                 781)

data <- data.frame(as.factor(study), as.factor(condition), age, congruent, 
                   incongruent)

#--- LMM analysis

# center age
data$age <- scale(data$age, center = TRUE, scale = FALSE)

# fit
fit <- lmer(incongruent ~ congruent + (1|study) + (1|condition), 
            data = data, REML = FALSE)

# plot & test the residual
qqnorm(resid(fit))
qqline(resid(fit))
shapiro.test(resid(fit))

Shapiro-Wilk normality test

data:  resid(fit)
W = 0.74417, p-value = 1.575e-08

変換されていないQQプロット

ログ変換されたデータ

# do the log transform 
data$congruent <- log(data$congruent)
data$incongruent <- log(data$incongruent)

# fit again
log_fit <- lmer(incongruent ~ congruent + (1|study) + (1|condition), 
                data = data, REML = FALSE)

# plot & test the residual
qqnorm(resid(log_fit))
qqline(resid(log_fit))
shapiro.test(resid(log_fit))

Shapiro-Wilk normality test

data:  resid(log_fit)
W = 0.93241, p-value = 0.003732

対数変換されたQQプロット

シミュレートされた正規分布QQプロット

この推奨シミュレーションを実行すると、私のログ変換されたQQプロットは、データと同じサンプルサイズ(N = 52)の真の正規分布から生成されたものとあまり似ていません。

set.seed(42)
par(mfrow = c(3, 3))
for(i in 1:9){
  x = rnorm(52)
  qqnorm(x)
  qqline(x)
}

結果の図


1
モデルの目標は何ですか?それが正常より最高の予測である場合は問題ではありません。外れ値のみが行います。lmは優れた推定量に対して正規性を必要としないという定理があります。科学論文の場合、帰無確率にはブートストラップを使用します。
keiv.fly 2017年

@ keiv.flyはい、それは論文用です。次のステップで、「age」変数が必要かどうかを確認します(これにより、モデルフィットが追加され、anovaを介してテストされます)。
JimGrange 2017年

@ keiv.fly、(ノンパラメトリック)ブートストラップは良いアイデアですが、データの構造を尊重する方法で実行する必要があります。condition固定効果を作成すると効果的で、階層ブートストラップを実行できます(つまり、置換を使用して研究を再サンプリングし、置換を使用して研究内の値を再サンプリングします)
Ben Bolker

回答:


10

あなたの質問に対する私の答えは、(1)「はい」(非正規性の初期の程度について少し心配するでしょう)、(2)「いいえ」(対数変換により状況が改善されたようです)、(3)です。 N / A(私は心配していないので)しかし、もしあなた心配しているなら、試してみることがいくつかあります:

  • robustlmm::rlmer()堅牢なLMMフィットを行うために使用します。
  • 最も極端な残差を与える点なしで近似を試して(lattice::qqmath(log_fit,id=0.1,idLabels=~.obs)観測番号でそれらを識別してみてください)、違いが大きくなるかどうかを確認してください
  • ノーマル性に近づくために別の変換を試してください(私はこれを少しいじってみましたが、役に立たないようです)

あなたのシム(これらの例は、目で見正規性から遠く離れているように見えます)とShapiroテスト結果(正規性の帰無仮説に対するかなり強い証拠)の間の明らかな不一致に少し驚いています。


ありがとうございます。Q2への回答は私の直感と一致しているので、安心できます。
JimGrange 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.