Comment interpréter un QQ-plot de valeurs de p


17

Je fais des études d'association GWAS SNP sur les maladies en utilisant un logiciel appelé plink ( http://pngu.mgh.harvard.edu/~purcell/plink/download.shtml ).

Avec les résultats d'association, j'obtiens des valeurs de p pour tous les SNP qui ont été analysés. Maintenant, j'utilise un tracé QQ de ces valeurs de p pour montrer si une valeur de p très faible diffère de la distribution attendue des valeurs de p (une distribution uniforme). Si une valeur de p s'écarte de la distribution attendue, on "peut" appeler cette valeur de p pour la statistique significative.

Comme vous pouvez le voir dans l'intrigue QQ, à l'extrémité supérieure, les 4 derniers points sont quelque peu difficiles à interpréter. Deux des derniers points dans le gris suggèrent que ces valeurs p sont dans la distribution attendue des valeurs p, tandis que les deux autres ne le sont pas.

Maintenant, comment interpréter cela, les deux derniers points ont des valeurs de p plus faibles mais ne sont pas "significatifs" selon le tracé QQ, tandis que les deux autres points avec des valeurs de p plus élevées sont "significatifs"? Comment cela peut-il être vrai?

entrez la description de l'image ici


6
Un problème avec l'utilisation des parcelles QQ pour interpréter GWAS est que les valeurs de p ne sont pas indépendantes les unes des autres et, en fait, les valeurs de p les plus extrêmes sont très probablement corrélées. Je suppose que vos quatre premiers résultats sont probablement sur le même chromosome et suffisamment proches les uns des autres pour que LD provoque une corrélation entre eux. Si vous deviez exécuter le test qui a donné la deuxième valeur de p la plus basse conditionnelle au SNP avec la valeur de p la plus basse, je suppose que sa valeur de p tomberait dans la plage non exceptionnelle. La même chose se produirait probablement avec de nombreux autres succès apparents.
Sam Dickson

3
Je l'ai déjà fait, j'ai élagué l'ensemble de données SNP pour obtenir uniquement des SNP indépendants (en utilisant un carré de 0,8 comme seuil). Ce tracé QQ montre les résultats de SNP indépendants, ou SNP en LD <0,8.
eXpander

1
Le SNP le plus bas correspond au chromosome 6, le deuxième au chromosome 2, le troisième au chromosome 5, le quatrième au chromosome 9, donc je ne suis pas sûr que LD soit un problème ici.
eXpander

1
Puis-je vous demander comment vous avez fait ce complot? Je peux obtenir quelque chose de similaire mais avec des valeurs khi-deux ou avec des valeurs p mais sans l'ombre grise et j'en ai besoin d'un avec des valeurs p et l'ombre grise. Si vous pouviez partager le code que vous avez utilisé, ce serait bien. Merci.
Aleix Arnau

Réponses:


5

Une bonne référence sur l'analyse des graphiques de valeur p est [1].

Le résultat que vous voyez peut être dû au fait que le signal / les effets n'existent que dans certains sous-ensembles de tests. Ceux-ci sont conduits au-dessus des bandes d'acceptation. Rejeter uniquement la valeur de p en dehors des bandes peut en effet être justifié, mais peut-être plus important encore, vous devez décider quel est le critère d'erreur que vous souhaitez contrôler lors de la sélection de votre procédure de sélection (FWER, FDR). Vous pouvez consulter [2] pour ce choix et les références qu'il contient pour choisir la procédure de test multiple appropriée.

[1] Schweder, T. et E. Spjotvoll. «Tracés de valeurs P pour évaluer plusieurs tests simultanément.» Biometrika 69, no. 3 (décembre 1982): 493–502. doi: 10.2307 / 2335984.

[2] Rosenblatt, Jonathan. «Guide du praticien sur les taux d'erreur de tests multiples». ArXiv e-print. Université de Tel Aviv, 17 avril 2013. http://arxiv.org/abs/1304.4920 .


1

C'est une question plus ancienne, mais je l'ai trouvée utile lorsque j'essayais d'interpréter QQPlots pour la première fois. Je pensais ajouter à ces réponses au cas où plus de gens tomberaient sur cela à l'avenir.

Ce que j'ai trouvé un peu difficile à comprendre, c'est quels sont ces points exactement? J'ai trouvé qu'aller au code le rendait facile à comprendre.

Voici un code R que j'ai adapté GWASTools::qqPlotqui implémente un QQPlot en 3 lignes:

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

Voici un exemple. Vous avez 5 valeurs de p. simpleQQPlot générera 5 valeurs p correspondantes à partir d'une distribution uniforme entre 0 et 1. Ce seront: .2 .4 .6 .8 et 1. Donc simpleQQPlot s'attend à ce que votre valeur p la plus basse soit autour de .2, et votre plus élevée autour. 1. simpleQQPlot triera vos valeurs p et les appairera chacune à la valeur générée correspondante. Ainsi, .2 sera associé à votre valeur p la plus basse, 1 à votre valeur la plus élevée, etc. Ensuite, ces valeurs appariées sont tracées (après avoir pris les journaux négatifs), avec X étant la valeur p générée et Y étant la valeur observée appariée. Si vos valeurs observées ont également été tirées d'une distribution normale, les points doivent se situer approximativement sur la ligne droite. En raison du tri, les points augmenteront toujours de façon monotone. Ainsi, chaque point suivant aura un X supérieur et un Y supérieur ou égal.

Ainsi, dans l'exemple original ci-dessus, la 9 997e valeur de p triée était d'environ 5,2 mais devait être d'environ 4,1 si elle suivait une distribution normale. (Remarque: je ne sais pas vraiment combien de valeurs p ont été tracées ci-dessus - je viens de deviner 10k).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.