Bagaimana menafsirkan QQ-plot p-values

17

Saya sedang melakukan studi asosiasi GWAS SNP pada penyakit dengan menggunakan perangkat lunak yang disebut plink ( http://pngu.mgh.harvard.edu/~purcell/plink/download.shtml ).

Dengan hasil asosiasi saya mendapatkan nilai p untuk semua SNP yang dianalisis. Sekarang, saya menggunakan plot QQ dari nilai-p untuk menunjukkan apakah nilai-p sangat rendah berbeda dari distribusi yang diharapkan dari nilai-p (distribusi seragam). Jika nilai-p menyimpang dari distribusi yang diharapkan, seseorang "dapat" memanggil nilai-p untuk statistik yang signifikan.

Seperti yang dapat Anda lihat di plot QQ, di ujung ekor atas, 4 poin terakhir agak sulit untuk ditafsirkan. Dua poin terakhir dalam warna abu-abu menunjukkan bahwa nilai-p tersebut berada dalam distribusi nilai-p yang diharapkan, sedangkan dua lainnya tidak.

Sekarang, bagaimana menafsirkan ini, dua poin terakhir memiliki nilai p yang lebih rendah tetapi tidak "signifikan" menurut plot QQ, sementara dua poin lainnya dengan nilai p yang lebih tinggi "signifikan"? Bagaimana ini bisa benar?

masukkan deskripsi gambar di sini

eXpander
sumber
6
Salah satu masalah dengan menggunakan plot QQ untuk menafsirkan GWAS adalah bahwa nilai-p tidak saling independen, dan, pada kenyataannya, nilai-p paling ekstrim sangat mungkin berkorelasi. Saya kira empat hit teratas Anda kemungkinan berada pada kromosom yang sama dan cukup dekat satu sama lain sehingga LD menyebabkan korelasi di antara mereka. Jika Anda menjalankan tes yang memberikan nilai-p terendah kedua yang bersyarat pada SNP dengan nilai-p terendah, saya kira nilai-p akan jatuh ke kisaran yang tidak umum. Hal yang sama kemungkinan akan terjadi dengan banyak hit nyata lainnya.
Sam Dickson
3
Saya sudah melakukan itu, saya memangkas set data SNP untuk mendapatkan SNP independen saja (menggunakan r-square 0,8 sebagai cutoff). Plot QQ ini menunjukkan hasil SNP independen, atau SNP di LD <0,8.
eXpander
1
SNP terendah berhubungan dengan kromosom 6, yang kedua untuk kromosom 2, yang ketiga untuk kromosom 5, yang keempat untuk kromosom 9, jadi saya tidak begitu yakin LD adalah masalah di sini.
eXpander
1
Bisakah saya bertanya kepada Anda bagaimana Anda melakukan plot itu? Saya bisa mendapatkan sesuatu yang serupa tetapi dengan nilai-nilai chi-square atau dengan nilai-p tetapi tanpa bayangan abu-abu dan saya membutuhkannya dengan nilai-p dan bayangan abu-abu. Jika Anda dapat membagikan kode yang Anda gunakan akan sangat bagus. Terima kasih.
Aleix Arnau
Di sini folk.uio.no/tores/Publications_files/… adalah makalah klasik tentang masalah ini.
kjetil b halvorsen

Jawaban:

5

Referensi yang baik untuk analisis p-value plot adalah [1].

Hasil yang Anda lihat mungkin didorong oleh fakta bahwa sinyal / efek hanya ada pada beberapa bagian tes. Ini didorong di atas pita penerimaan. Menolak hanya nilai-p di luar pita memang dapat dibenarkan, tetapi mungkin yang lebih penting, Anda harus memutuskan apa kriteria kesalahan yang ingin Anda kontrol ketika memilih prosedur pemilihan Anda (FWER, FDR). Anda dapat berkonsultasi [2] untuk pilihan itu, dan referensi di dalamnya untuk memilih beberapa prosedur pengujian yang sesuai.

[1] Schweder, T., dan E. Spjotvoll. "Plot Nilai-P untuk Mengevaluasi Banyak Tes Secara Bersamaan." Biometrika 69, no. 3 (Desember 1982): 493–502. doi: 10.2307 / 2335984.

[2] Rosenblatt, Jonathan. “Panduan Praktisi untuk Beberapa Tingkat Kesalahan Pengujian.” ArXiv e-print. Universitas Tel Aviv, 17 April 2013. http://arxiv.org/abs/1304.4920 .

JohnRos
sumber
1

Ini adalah pertanyaan yang lebih lama, tetapi saya merasa terbantu ketika mencoba menafsirkan QQPlots untuk pertama kalinya. Saya pikir saya akan menambahkan jawaban ini untuk berjaga-jaga seandainya lebih banyak orang menemukan ini di masa depan.

Hal yang saya temukan agak sulit untuk dipahami adalah apa sebenarnya poin-poin itu? Saya menemukan bahwa dengan kode membuatnya mudah untuk mencari tahu.

Berikut adalah beberapa kode R yang saya adaptasi dari GWASTools::qqPlotyang mengimplementasikan QQPlot dalam 3 baris:

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

Ini sebuah contoh. Anda memiliki 5 nilai p. simpleQQPlot akan menghasilkan 5 nilai yang sesuai dari distribusi yang seragam antara 0 dan 1. Ini akan menjadi: .2 .4 .6 .8 dan 1. Jadi simpleQQPlot mengharapkan nilai p terendah Anda berada di sekitar .2, dan tertinggi Anda berada di sekitar 1. simpleQQPlot akan mengurutkan nilai Anda dan memasangkan masing-masing dengan nilai yang dihasilkan. Jadi .2 akan dipasangkan dengan pvalue terendah Anda, 1 dengan tertinggi Anda, dan seterusnya. Kemudian, nilai-nilai berpasangan ini diplot (setelah mengambil log negatif), dengan X menjadi pvalue yang dihasilkan, dan Y menjadi nilai observasi berpasangan. Jika nilai yang Anda amati juga ditarik dari distribusi normal, maka titik-titik tersebut seharusnya berada pada garis lurus. Karena penyortiran, poin akan selalu meningkat secara monoton. Jadi setiap titik berikutnya akan memiliki X lebih besar, dan lebih besar dari atau sama dengan Y.

Jadi dalam contoh asli di atas, nilai p yang diurutkan pada 9.997 adalah sekitar 5,2 tetapi diperkirakan sekitar 4,1 jika mengikuti distribusi normal. (Catatan: Saya tidak benar-benar yakin berapa banyak nilai-p yang diplotkan di atas - Saya hanya menebak 10k).

Breck
sumber