Verletzung der Normalität der Restannahme im linearen gemischten Modell

8

Ich habe eine Frage, wie besorgt ich über einen möglichen Verstoß gegen die Normalität der Residuenannahme in einem linearen gemischten Modell sein sollte. Ich habe einen relativ kleinen Datensatz und nach dem Anpassen des Modells (unter Verwendung von 'lmer' in R) zeigt ein Shapiro-Wilks-Test eine signifikante Abweichung der Residuen von einer Normalverteilung. Log-Transformationen meiner Variablen behandeln dies nicht zufriedenstellend.

Auf meiner Suche nach einer Antwort, wie ich damit umgehen soll, stieß ich auf den Rat, dass Normalitätstests nicht durchgeführt werden sollten (siehe die Antwort auf eine ähnliche Frage hier) . Stattdessen wird empfohlen, QQ-Diagramme von zufälligen Normaldaten mit demselben N wie meine Residuen durchzuführen, um festzustellen, ob das QQ-Diagramm meiner Residuen deutlich unterschiedlich ist. Andere Ratschläge, die ich gefunden habe, scheinen darauf hinzudeuten, dass die Schlussfolgerung gegenüber verschiedenen Verstößen gegen LMM-Annahmen robust zu sein scheint (siehe Blog-Beitrag hier) .

Meine Fragen

1) Wenn dies Ihre Daten wären, wären Sie besorgt über die mangelnde Normalität der LMM-Residuen (siehe Daten und Ausgabe unten)?

2) Wenn Sie besorgt sind, sind Sie nach der Protokolltransformation immer noch besorgt (siehe Daten und Ausgabe unten)?

3) Wenn die Antwort auf beide oben genannten Fragen "Ja" lautet, wie könnte ich mit der Nichtnormalität meiner Residuen umgehen?

Daten & nicht transformierte Analyse

# 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

Nicht transformiertes QQ-Diagramm

Protokolltransformierte Daten

# 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

Log-transformierter QQ-Plot

Simulierte Normalverteilungs-QQ-Diagramme

Bei Durchführung dieser empfohlenen Simulation sehen meine logarithmisch transformierten QQ-Diagramme nicht allzu unähnlich zu denen aus, die aus einer echten Normalverteilung mit derselben Stichprobengröße wie meine Daten (N = 52) generiert wurden:

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

Resultierende Abbildung

JimGrange
quelle
1
Was ist das Ziel des Modells? Wenn es die beste Prognose ist, spielt die Normalität keine Rolle. Nur Ausreißer. Es gibt einen Satz, dass lm für gute Schätzer keine Normalität benötigt. Wenn es sich um eine wissenschaftliche Arbeit handelt, würde ich Bootstrapping für die Nullwahrscheinlichkeiten verwenden.
keiv.fly
@ keiv.fly Ja, es ist für ein Papier. In einem nächsten Schritt möchte ich sehen, ob die Variable "Alter" erforderlich ist (also werden mehr Modellanpassungen hinzugefügt und über Anova getestet).
JimGrange
@ keiv.fly, (nichtparametrisches) Bootstrapping ist eine gute Idee, muss jedoch so erfolgen, dass die Struktur der Daten berücksichtigt wird. Ein conditionfester Effekt würde helfen, dann könnten Sie hierarchisches Bootstrapping durchführen (dh Studien mit Ersetzung neu abtasten, dann Werte innerhalb von Studien mit Ersetzung neu abtasten)
Ben Bolker

Antworten:

10

Meine Antwort auf Ihre Fragen wäre (1) "Ja" (ich würde mir ein wenig Sorgen um den anfänglichen Grad der Nicht-Normalität machen), (2) "Nein" (die Protokolltransformation scheint die Situation verbessert zu haben), (3) N / A (da ich mir keine Sorgen mache), aber ein paar weitere Dinge, die Sie versuchen sollten, wenn Sie sich Sorgen machen, wären:

  • Verwenden Sie robustlmm::rlmer()diese Option, um eine robuste LMM-Anpassung durchzuführen.
  • Versuchen Sie die Anpassung ohne die Punkte, die die extremsten Residuen ergeben (versuchen Sie lattice::qqmath(log_fit,id=0.1,idLabels=~.obs), sie anhand der Beobachtungsnummer zu identifizieren), und prüfen Sie, ob dies einen großen Unterschied macht
  • versuche eine andere Transformation, um der Normalität näher zu kommen (obwohl ich ein bisschen damit herumgespielt habe und es nicht zu helfen scheint)

Ich bin ein wenig überrascht über die offensichtliche Nichtübereinstimmung zwischen Ihren Sims (diese Beispiele sehen mit dem Auge weiter von der Normalität entfernt) und den Shapiro-Testergebnissen (ziemlich starke Beweise gegen die Nullhypothese der Normalität).

Ben Bolker
quelle
Danke - Ihre Antwort auf das zweite Quartal entspricht meinem Bauchgefühl, das ist also beruhigend.
JimGrange