Cómo interpretar un gráfico QQ de valores p

17

Estoy haciendo estudios de asociación GWAS SNP sobre enfermedades usando un software llamado plink ( http://pngu.mgh.harvard.edu/~purcell/plink/download.shtml ).

Con los resultados de la asociación obtengo valores p para todos los SNP analizados. Ahora, uso un gráfico QQ de esos valores p para mostrar si un valor p muy bajo difiere de la distribución esperada de los valores p (una distribución uniforme). Si un valor p se desvía de la distribución esperada, "puede" llamar a ese valor p para estadística significativa.

Como puede ver en el gráfico QQ, en el extremo superior de la cola, los últimos 4 puntos son algo difíciles de interpretar. Dos de los últimos puntos en el gris sugieren que esos valores p están en la distribución esperada de los valores p, mientras que los otros dos no.

Ahora, cómo interpretar esto, los dos últimos puntos tienen bajos valores de p, pero no son "significativo", según el QQ-plot, mientras que los otros dos puntos con altos valores de p son "significativo"? ¿Cómo puede ser esto cierto?

ingrese la descripción de la imagen aquí

eXpander
fuente
66
Un problema con el uso de los gráficos QQ para interpretar GWAS es que los valores p no son independientes entre sí y, de hecho, los valores p más extremos están muy probablemente correlacionados. Supongo que es probable que sus cuatro mejores resultados estén en el mismo cromosoma y estén lo suficientemente cerca uno del otro como para que LD esté causando correlación entre ellos. Si tuviera que ejecutar la prueba que dio el segundo valor p más bajo condicional en el SNP con el valor p más bajo, supongo que su valor p caería en el rango excepcional. Lo mismo probablemente sucedería con muchos de los otros éxitos aparentes.
Sam Dickson el
3
Ya hice eso, pode el conjunto de datos de SNP para obtener solo SNP independientes (usando un r-cuadrado de 0.8 como punto de corte). Este gráfico QQ muestra los resultados de SNP independientes, o SNP en LD <0.8.
eXpander
1
El SNP más bajo corresponde al cromosoma 6, el segundo al cromosoma 2, el tercero al cromosoma 5, el cuarto al cromosoma 9, por lo que no estoy tan seguro de que LD sea un problema aquí.
eXpander
1
¿Puedo preguntarte cómo hiciste esa trama? Puedo obtener algo similar pero con valores de chi-cuadrado o con valores p pero sin la sombra gris y necesito uno con valores p y la sombra gris. Si pudieras compartir el código que usaste sería genial. Gracias.
Aleix Arnau
Aquí folk.uio.no/tores/Publications_files/… es un artículo clásico sobre este problema.
kjetil b halvorsen

Respuestas:

5

Una buena referencia en el análisis de las gráficas de valor p es [1].

El resultado que está viendo puede ser impulsado por el hecho de que la señal / efectos existen solo en algún subconjunto de pruebas. Estos son conducidos por encima de las bandas de aceptación. Rechazar solo el valor p fuera de las bandas puede justificarse, pero quizás lo más importante es que debe decidir cuál es el criterio de error que desea controlar al seleccionar su procedimiento de selección (FWER, FDR). Puede consultar [2] para esa elección, y referencias allí para elegir el procedimiento de prueba múltiple apropiado.

[1] Schweder, T. y E. Spjotvoll. "Gráficos de valores P para evaluar muchas pruebas simultáneamente". Biometrika 69, no. 3 (diciembre de 1982): 493–502. doi: 10.2307 / 2335984.

[2] Rosenblatt, Jonathan. “Una guía para profesionales sobre las tasas de error de pruebas múltiples”. ArXiv e-print. Universidad de Tel Aviv, 17 de abril de 2013. http://arxiv.org/abs/1304.4920 .

JohnRos
fuente
1

Esta es una pregunta anterior, pero me pareció útil al intentar interpretar QQPlots por primera vez. Pensé agregar a estas respuestas en caso de que más personas se topen con esto en el futuro.

Lo que encontré un poco difícil de entender es ¿cuáles son exactamente esos puntos? Descubrí que ir al código me facilitaba la tarea.

Aquí hay un código R que GWASTools::qqPlotadapté que implementa un QQPlot en 3 líneas:

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

Aquí hay un ejemplo. Tienes 5 valores p. simpleQQPlot generará 5 valores correspondientes a partir de una distribución uniforme entre 0 y 1. Estos serán: .2 .4 .6 .8 y 1. Por lo tanto, simpleQQPlot espera que su valor p más bajo esté alrededor de .2, y que el más alto esté alrededor. 1. simpleQQPlot ordenará sus valores y los emparejará con el valor generado correspondiente. Entonces .2 se emparejará con su valor más bajo, 1 con el más alto, y así sucesivamente. Luego, estos valores emparejados se trazan (después de tomar los registros negativos), siendo X el valor p generado e Y siendo el valor observado emparejado. Si sus valores observados también se extrajeron de una distribución normal, entonces los puntos deberían estar aproximadamente en la línea recta. Debido a la clasificación, los puntos siempre aumentarán monotónicamente. Por lo tanto, cada punto posterior tendrá una X mayor y una Y mayor o igual.

Entonces, en el ejemplo original anterior, el valor p 9,997o ordenado era de alrededor de 5.2 pero se esperaba que fuera de 4.1 si seguía una distribución normal. (Nota: en realidad no estoy seguro de cuántos valores p se trazaron anteriormente, supuse 10k).

Breck
fuente