Wie man einen QQ-Plot von p-Werten interpretiert


17

Ich mache GWAS-SNP-Assoziationsstudien zu Krankheiten mit einer Software namens plink ( http://pngu.mgh.harvard.edu/~purcell/plink/download.shtml ).

Mit den Assoziationsergebnissen erhalte ich p-Werte für alle analysierten SNPs. Nun benutze ich ein QQ-Diagramm dieser p-Werte, um zu zeigen, ob ein sehr niedriger p-Wert von der erwarteten Verteilung der p-Werte abweicht (eine gleichmäßige Verteilung). Wenn ein p-Wert von der erwarteten Verteilung abweicht, kann man diesen p-Wert als statistisch signifikant bezeichnen.

Wie Sie im QQ-Plot am oberen Ende sehen können, sind die letzten 4 Punkte etwas schwer zu interpretieren. Zwei der letzten grauen Punkte deuten darauf hin, dass sich diese p-Werte in der erwarteten Verteilung der p-Werte befinden, während dies bei den anderen beiden nicht der Fall ist.

Wie man das interpretiert, haben die letzten beiden Punkte niedrigere p-Werte, sind aber laut QQ-Diagramm nicht "signifikant", während die anderen beiden Punkte mit höheren p-Werten "signifikant" sind? Wie kann das wahr sein?

Bildbeschreibung hier eingeben


6
Ein Problem bei der Verwendung von QQ-Diagrammen zur Interpretation von GWAS besteht darin, dass die p-Werte nicht unabhängig voneinander sind und die extremsten p-Werte höchstwahrscheinlich korrelieren. Ich würde vermuten, dass Ihre Top-4-Treffer wahrscheinlich auf demselben Chromosom liegen und nah genug beieinander liegen, dass LD eine Korrelation zwischen ihnen verursacht. Wenn Sie den Test ausführen würden, der den zweitniedrigsten p-Wert abhängig vom SNP mit dem niedrigsten p-Wert ergibt, würde der p-Wert vermutlich in den nicht außergewöhnlichen Bereich fallen. Das gleiche würde wahrscheinlich bei vielen anderen offensichtlichen Treffern passieren.
Sam Dickson

3
Ich habe das bereits getan und den SNP-Datensatz beschnitten, um nur unabhängige SNPs zu erhalten (unter Verwendung eines R-Quadrats von 0,8 als Cutoff). Dieses QQ-Diagramm zeigt die Ergebnisse unabhängiger SNPs oder SNPs in LD <0,8.
eXpander

1
Der niedrigste SNP entspricht Chromosom 6, der zweite Chromosom 2, der dritte Chromosom 5 und der vierte Chromosom 9, daher bin ich mir nicht sicher, ob LD hier ein Problem ist.
eXpander

1
Könnte ich Sie fragen, wie Sie diese Verschwörung gemacht haben? Ich kann etwas Ähnliches bekommen, aber mit Chi-Quadrat-Werten oder mit p-Werten, aber ohne den grauen Schatten, und ich brauche einen mit p-Werten und dem grauen Schatten. Wenn Sie den verwendeten Code teilen könnten, wäre das großartig. Vielen Dank.
Aleix Arnau,

Hier ist folk.uio.no/tores/Publications_files/… ein klassischer Artikel zu diesem Problem.
kjetil b halvorsen

Antworten:


5

Eine gute Referenz zur Analyse von p-Wert-Plots ist [1].

Das Ergebnis, das Sie sehen, kann durch die Tatsache bestimmt werden, dass das Signal / die Effekte nur bei einigen Teilmengen von Tests vorhanden sind. Diese werden über die Akzeptanzbänder gefahren. Es kann zwar gerechtfertigt sein, nur den p-Wert außerhalb der Bänder abzulehnen, aber was noch wichtiger ist, Sie sollten entscheiden, welches Fehlerkriterium Sie bei der Auswahl Ihres Auswahlverfahrens (FWER, FDR) steuern möchten. Sie können [2] für diese Auswahl und die darin enthaltenen Referenzen zur Auswahl des geeigneten Mehrfachtestverfahrens konsultieren.

[1] Schweder, T. und E. Spjotvoll. „Diagramme von P-Werten zur gleichzeitigen Auswertung vieler Tests.“ Biometrika 69, No. 3 (Dezember 1982): 493–502. doi: 10.2307 / 2335984.

[2] Rosenblatt, Jonathan. "Ein Leitfaden für Praktiker zum Testen mehrerer Fehlerraten." ArXiv e-print. Universität Tel Aviv, 17. April 2013. http://arxiv.org/abs/1304.4920 .


1

Dies ist eine ältere Frage, aber ich fand sie hilfreich, als ich versuchte, QQPlots zum ersten Mal zu interpretieren. Ich dachte, ich würde diese Antworten ergänzen, falls in Zukunft mehr Menschen darüber stolpern.

Was ich etwas schwierig zu verstehen fand, ist, was genau sind diese Punkte? Ich fand es einfach herauszufinden, ob ich zum Code ging.

Hier ist ein von mir angepasster R-Code, der GWASTools::qqPlotein QQPlot in drei Zeilen implementiert:

simpleQQPlot = function (observedPValues) {
  plot(-log10(1:length(observedPValues)/length(observedPValues)), 
       -log10(sort(observedPValues)))
  abline(0, 1, col = "red")
}

Hier ist ein Beispiel. Sie haben 5 p-Werte. simpleQQPlot generiert 5 entsprechende p-Werte aus einer gleichmäßigen Verteilung zwischen 0 und 1. Diese sind: .2 .4 .6 .8 und 1. Deshalb erwartet simpleQQPlot, dass Ihr niedrigster p-Wert bei .2 liegt und Ihr höchster Wert bei ungefähr .2 liegt 1. simpleQQPlot sortiert Ihre p-Werte und koppelt sie mit dem entsprechenden generierten Wert. Also wird .2 mit Ihrem niedrigsten p-Wert gepaart, 1 mit Ihrem höchsten und so weiter. Dann werden diese gepaarten Werte aufgezeichnet (nachdem die negativen Protokolle aufgenommen wurden), wobei X der erzeugte p-Wert und Y der gepaarte beobachtete Wert ist. Wenn Ihre beobachteten Werte auch aus einer Normalverteilung gezogen wurden, sollten die Punkte ungefähr auf der geraden Linie liegen. Aufgrund der Sortierung werden die Punkte immer monoton erhöht. Jeder nachfolgende Punkt hat also ein größeres X und ein größeres oder gleiches Y.

Im obigen ursprünglichen Beispiel lag der 9.997. Sortierte p-Wert bei 5,2, wurde aber bei einer Normalverteilung mit 4,1 gerechnet. (Hinweis: Ich bin mir nicht sicher, wie viele p-Werte oben aufgezeichnet wurden - ich habe gerade 10k erraten).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.