Saya memiliki dua set data dan saya ingin tahu apakah mereka berbeda secara signifikan atau tidak (ini berasal dari " Dua kelompok berbeda secara signifikan? Tes untuk digunakan ").
Saya memutuskan untuk menggunakan tes permutasi, melakukan hal berikut di R:
permutation.test <- function(coding, lncrna) {
coding <- coding[,1] # dataset1
lncrna <- lncrna[,1] # dataset2
### Under null hyphotesis, both datasets would be the same. So:
d <- c(coding, lncrna)
# Observed difference
diff.observed = mean(coding) - mean(lncrna)
number_of_permutations = 5000
diff.random = NULL
for (i in 1:number_of_permutations) {
# Sample from the combined dataset
a.random = sample (d, length(coding), TRUE)
b.random = sample (d, length(lncrna), TRUE)
# Null (permuated) difference
diff.random[i] = mean(b.random) - mean(a.random)
}
# P-value is the fraction of how many times the permuted difference is equal or more extreme than the observed difference
pvalue = sum(abs(diff.random) >= abs(diff.observed)) / number_of_permutations
pvalue
}
Namun demikian, nilai-p tidak boleh 0 menurut makalah ini: http://www.statsci.org/smyth/pubs/permp.pdf
Apa yang Anda rekomendasikan untuk saya lakukan? Apakah ini cara untuk menghitung nilai p:
pvalue = sum(abs(diff.random) >= abs(diff.observed)) / number_of_permutations
cara yang baik? Atau lebih baik melakukan hal berikut?
pvalue = sum(abs(diff.random) >= abs(diff.observed)) + 1 / number_of_permutations + 1
p-value
permutation-test
pengguna2886545
sumber
sumber
a.random
b.random
b.random
a.random
coding
lncrna
Jawaban:
Diskusi
Tes permutasi menghasilkan semua permutasi yang relevan dari suatu dataset, menghitung statistik uji yang ditunjuk untuk setiap permutasi tersebut, dan menilai statistik pengujian aktual dalam konteks distribusi permutasi yang dihasilkan dari statistik. Cara yang umum untuk menilai itu adalah melaporkan proporsi statistik yang (dalam beberapa hal) "sebagai atau lebih ekstrem" daripada statistik aktual. Ini sering disebut "nilai-p".
Karena dataset aktual adalah salah satu permutasi itu, statistiknya tentu akan berada di antara yang ditemukan dalam distribusi permutasi. Oleh karena itu, nilai-p tidak pernah nol.
Kecuali jika dataset sangat kecil (kurang dari sekitar 20-30 jumlah total, biasanya) atau statistik uji memiliki bentuk matematika yang sangat bagus, tidak praktis untuk menghasilkan semua permutasi. (Contoh di mana semua permutasi dihasilkan muncul di Uji Permutasi di R. ) Oleh karena itu implementasi komputer dari tes permutasi biasanya sampel dari distribusi permutasi. Mereka melakukannya dengan menghasilkan beberapa permutasi acak independen dan berharap bahwa hasilnya adalah sampel representatif dari semua permutasi.
Oleh karena itu, angka apa pun (seperti "nilai-p") yang berasal dari sampel semacam itu hanyalah penaksir properti dari distribusi permutasi. Sangat mungkin - dan sering terjadi ketika efeknya besar - bahwa nilai p yang diperkirakan adalah nol. Tidak ada yang salah dengan hal itu, tetapi hal itu segera menimbulkan masalah yang sebelumnya diabaikan tentang seberapa besar estimasi nilai p berbeda dari yang benar? Karena distribusi sampling proporsi (seperti estimasi nilai-p) adalah Binomial, ketidakpastian ini dapat diatasi dengan interval kepercayaan Binomial .
Arsitektur
Implementasi yang dibangun dengan baik akan mengikuti diskusi dengan cermat dalam segala hal. Ini akan dimulai dengan rutin untuk menghitung statistik tes, karena ini untuk membandingkan cara dua kelompok:
Tulis rutin lain untuk menghasilkan permutasi acak dataset dan menerapkan statistik uji. Antarmuka yang satu ini memungkinkan penelepon untuk menyediakan statistik uji sebagai argumen. Ini akan membandingkan
m
elemen pertama dari sebuah array (dianggap sebagai grup referensi) dengan elemen lainnya (grup "perawatan").Tes permutasi dilakukan pertama-tama dengan menemukan statistik untuk data aktual (diasumsikan di sini untuk disimpan dalam dua array
control
dantreatment
) dan kemudian menemukan statistik untuk banyak permutasi acak independen daripadanya:Sekarang hitung estimasi binomial dari nilai-p dan interval kepercayaan untuknya. Satu metode menggunakan
binconf
prosedur bawaan dalamHMisc
paket:Ini bukan ide yang buruk untuk membandingkan hasilnya dengan tes lain, bahkan jika itu diketahui tidak cukup berlaku: setidaknya Anda mungkin mendapatkan urutan besarnya di mana hasilnya seharusnya terletak. Dalam contoh ini (alat pembanding), Student t-test biasanya memberikan hasil yang baik:
Arsitektur ini diilustrasikan dalam situasi yang lebih kompleks, dengan
R
kode kerja , di Test Apakah Variabel Ikuti Distribusi yang Sama .Contoh
Setelah menggunakan kode sebelumnya untuk menjalankan tes permutasi, saya merencanakan sampel distribusi permutasi bersama dengan garis merah vertikal untuk menandai statistik aktual:
Perhitungan batas kepercayaan binomial menghasilkan
3.16e-05
Komentar
sumber
Karena estimasi nilai-p digunakan untuk memutuskan apakah akan menolak hipotesis nol, penting untuk mempertimbangkan bagaimana pilihan estimator memengaruhi probabilitas penolakan palsu. Makalah yang dikutip oleh Smyth & Phipson menunjukkan bahwa penduga tidak bias (BM. ) gagal mengendalikan tingkat kesalahan tipe-I dengan benar. Sebaliknya, (B + 1M.+ 1 ) adalah penaksir nilai-nilai yang valid (tapi konservatif) - tidak menyebabkan penolakan berlebih dari nol.
(B adalah jumlah permutasi acak di mana statistik lebih besar atau sama dengan yang diamati diperoleh dan M adalah jumlah total permutasi acak sampel).
Smyth & Phipson juga menunjukkan bahwa ketidakabsahan (BM. ) menjadi kritis dalam beberapa pengaturan perbandingan, di mana estimasi nilai p yang sangat kecil diturunkan dan kemudian dikoreksi dengan perkalian dengan suatu faktor. Perkiraan nilai p nol di bawah nol sangat berbahaya dalam pengaturan ini, karena tetap nol terlepas dari koreksi yang diterapkan.
sumber