Warum ändern p-Werte ihre Signifikanz, wenn sich die Reihenfolge der Kovariaten im aov-Modell ändert?

10

Ich habe einen Datensatz von 482 Beobachtungen.

data=Populationfull

Ich werde eine Genotyp-Assoziationsanalyse für 3 SNPs durchführen. Ich versuche ein Modell für meine Analyse zu erstellen und verwende das aov (y ~ x, data = ...). Für ein Merkmal habe ich mehrere feste Effekte und Kovariaten, die ich in das Modell aufgenommen habe, wie folgt:

Starts <- aov(Starts~Sex+DMRT3+Birthyear+Country+Earnings+Voltsec+Autosec, data=Populationfull)

summary(Starts)
                Df Sum Sq Mean Sq F value   Pr(>F)    
Sex              3  17.90    5.97  42.844  < 2e-16 ***
DMRT3            2   1.14    0.57   4.110    0.017 *  
Birthyear        9   5.59    0.62   4.461 1.26e-05 ***
Country          1  11.28   11.28  81.005  < 2e-16 ***
Earnings         1 109.01  109.01 782.838  < 2e-16 ***
Voltsec          1  12.27   12.27  88.086  < 2e-16 ***
Autosec          1   8.97    8.97  64.443 8.27e-15 ***
Residuals      463  64.48    0.14                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Ich habe festgestellt, dass ich, wenn ich die Reihenfolge der Variablen im Modell geändert habe, unterschiedliche p-Werte erhalten habe (siehe unten).

Starts2 <- aov(Starts~Voltsec+Autosec+Sex+DMRT3+Birthyear+Country+Earnings, data=Populationfull)

summary(Starts2)

                Df Sum Sq Mean Sq F value   Pr(>F)    
Voltsec   1   2.18    2.18  15.627 8.92e-05 ***
Autosec   1 100.60  100.60 722.443  < 2e-16 ***
Sex              3  10.43    3.48  24.962 5.50e-15 ***
DMRT3            2   0.82    0.41   2.957  0.05294 .  
Birthyear        9   3.25    0.36   2.591  0.00638 ** 
Country          1   2.25    2.25  16.183 6.72e-05 ***
Earnings      1  46.64   46.64 334.903  < 2e-16 ***
Residuals      463  64.48    0.14                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1

Warum erhalte ich unterschiedliche p-Werte, je nachdem in welcher Reihenfolge die Variablen / Faktoren / Kovariaten / Fixeffekte (?) Codiert sind? Gibt es eine Möglichkeit, dies zu "korrigieren"? Kann es sein, dass ich das falsche Modell benutze? Ich bin noch ziemlich neu bei R, also wenn Sie mir dabei helfen können, halten Sie es bitte einfach, damit ich die Antwort verstehen kann, hehe ... Danke, hoffentlich kann mir jemand helfen, dies zu verstehen!

Anfänger
quelle
3
Bitte geben Sie einige Beispieldaten Populationfullan, um Ihr Problem reproduzierbar zu machen . Dies ist beim Beispiel auf der Hilfeseite nicht der Fall aov(). summary(aov(yield ~ block + N + P + K, npk)); summary(aov(yield ~ K + P + block + N , npk))
MrFlick
Die p-Werte ändern sich, weil sich das gesamte Wertefeld geändert hat. dein erster Lauf Earnings 1 109.01 109.01 782.838 < 2e-16 ***dein zweiter Lauf Earnings 1 46.64 46.64 334.903 < 2e-16 ***. Ihre Ergebnisse sind nicht die gleichen. Überprüfen Sie zunächst, ob Sie nicht mehr als Variablen neu angeordnet haben.
1
AUCH: Im zweiten Modell verwenden Sie Earn, nicht Earnings ... Wenn es zwei Variablen mit unterschiedlichen Namen gibt, kann dies ein Problem sein, wenn dies kein Tippfehler beim Kopieren in den SO-Fragenbereich ist.
Ja, die Werte ändern sich, aber warum? Ich habe in beiden Modellen genau die gleichen Spalten aus dem exakt gleichen Datenrahmen verwendet (das Ergebnis "Earnings vs Earn" im zweiten Modell ist nur, dass ich es falsch geschrieben habe, ich habe es jetzt korrigiert).
Anfänger
1
Dies geschieht, weil Sie ein unausgeglichenes Design haben. Sie werden viel Hilfe dazu finden, wenn Sie dieses Forum oder nur Google "unausgeglichene ANOVA in R" durchsuchen. Ich würde empfehlen, in das carPaket zu schauen - es implementiert ANOVA vom Typ II und Typ III, die nicht von der Reihenfolge der Variablen abhängen, wohingegen aovANOVA vom Typ I.
Langsame Loris

Antworten:

15

Das Problem ergibt sich aus der Art und Weise, aov()wie die Standard-Signifikanztests durchgeführt werden. Es wird eine sogenannte "Typ I" -AnOVA-Analyse verwendet, bei der die Tests in der Reihenfolge durchgeführt werden, in der die Variablen in Ihrem Modell angegeben sind. Im ersten Beispiel wird also bestimmt, wie viel Varianz durch erklärt wird, sexund seine Signifikanz getestet. Dann wird der Teil der verbleibenden Varianz durch erklärt DMRT3und seine Signifikanz in Bezug auf diese verbleibende Varianz getestet . Im zweiten Beispiel DMRT3wird nur nach Voltsec, Autosecund sexin dieser Reihenfolge ausgewertet , sodass weniger Varianz DMRT3zur Erklärung übrig bleibt .

Wenn zwei Prädiktorvariablen korreliert sind, erhält die erste, die in das Modell eingegeben wurde, die volle "Gutschrift", so dass weniger Varianz durch die zweite "erklärt" werden muss, was daher möglicherweise weniger "statistisch signifikant" erscheint als die erste, selbst wenn dies der Fall ist nicht funktionell. Diese Frage und ihre Antwort erklären die verschiedenen Arten von ANOVA-Analysen.

Eine Möglichkeit, dies zu umgehen, besteht darin, sich aus den Beschränkungen der klassischen ANOVA zu extrahieren und ein einfaches lineares Modell mit lm()in R anstelle von zu verwenden aov(). Dies analysiert effektiv alle Prädiktoren parallel und "korrigiert" alle Prädiktoren gleichzeitig. In diesem Fall können zwei korrelierte Prädiktoren große Standardfehler ihrer geschätzten Regressionskoeffizienten aufweisen, und ihre Koeffizienten können sich zwischen verschiedenen Stichproben aus der Grundgesamtheit unterscheiden, aber zumindest die Reihenfolge, in der Sie die Variablen in die Modellspezifikation eingeben, spielt keine Rolle.

Wenn es sich bei Ihrer Antwortvariablen um eine Art Zählvariable handelt, wie der Name schon Startssagt, sollten Sie ANOVA wahrscheinlich sowieso nicht verwenden, da Residuen wahrscheinlich nicht normal verteilt sind, wie es die Interpretation des p- Werts erfordert. Zählvariablen werden besser mit verallgemeinerten linearen Modellen (z. B. glm()in R) behandelt, die als Verallgemeinerung lm()für andere Arten von Restfehlerstrukturen angesehen werden können.

EdM
quelle