Saya bertemu dengan perilaku paradoks dari apa yang disebut "tes eksak" atau "tes permutasi", prototipe di antaranya adalah tes Fisher. Ini dia.
Bayangkan Anda memiliki dua kelompok yang terdiri dari 400 orang (mis. 400 kontrol vs 400 kasus), dan kovariat dengan dua modalitas (mis. Terbuka / tidak terpajan). Hanya ada 5 orang yang terpapar, semuanya dalam kelompok kedua. Tes Fisher seperti ini:
> x <- matrix( c(400, 395, 0, 5) , ncol = 2)
> x
[,1] [,2]
[1,] 400 0
[2,] 395 5
> fisher.test(x)
Fisher's Exact Test for Count Data
data: x
p-value = 0.06172
(...)
Tapi sekarang, ada beberapa heterogenitas pada kelompok kedua (kasus), misalnya bentuk penyakit atau pusat perekrutan. Ini dapat dibagi dalam 4 kelompok yang terdiri dari 100 orang. Sesuatu seperti ini kemungkinan akan terjadi:
> x <- matrix( c(400, 99, 99 , 99, 98, 0, 1, 1, 1, 2) , ncol = 2)
> x
[,1] [,2]
[1,] 400 0
[2,] 99 1
[3,] 99 1
[4,] 99 1
[5,] 98 2
> fisher.test(x)
Fisher's Exact Test for Count Data
data: x
p-value = 0.03319
alternative hypothesis: two.sided
(...)
Sekarang, kita memiliki ...
Ini hanya sebuah contoh. Tetapi kita dapat mensimulasikan kekuatan dari dua strategi analisis, dengan asumsi bahwa pada 400 individu pertama, frekuensi paparan adalah 0, dan itu adalah 0,0125 pada 400 individu yang tersisa.
Kami dapat memperkirakan kekuatan analisis dengan dua kelompok yang terdiri dari 400 orang:
> p1 <- replicate(1000, { n <- rbinom(1, 400, 0.0125);
x <- matrix( c(400, 400 - n, 0, n), ncol = 2);
fisher.test(x)$p.value} )
> mean(p1 < 0.05)
[1] 0.372
Dan dengan satu kelompok yang terdiri dari 400 dan 4 kelompok yang terdiri dari 100 orang:
> p2 <- replicate(1000, { n <- rbinom(4, 100, 0.0125);
x <- matrix( c(400, 100 - n, 0, n), ncol = 2);
fisher.test(x)$p.value} )
> mean(p2 < 0.05)
[1] 0.629
Ada perbedaan kekuatan. Membagi kasus dalam 4 subkelompok memberikan tes yang lebih kuat, bahkan jika tidak ada perbedaan distribusi antara subkelompok ini. Tentu saja perolehan daya ini tidak disebabkan oleh peningkatan tingkat kesalahan tipe I.
Apakah fenomena ini terkenal? Apakah itu berarti strategi pertama kurang bertenaga? Apakah nilai p bootstrap menjadi solusi yang lebih baik? Semua komentar Anda dipersilakan.
Skrip Posting
Seperti yang ditunjukkan oleh @ MartijnWeterings, sebagian besar alasan perilaku ini (yang bukan pertanyaan saya!) Terletak pada fakta kesalahan tipe I yang sebenarnya dari strategi analisis derek tidak sama. Namun ini sepertinya tidak menjelaskan semuanya. Saya mencoba membandingkan Kurva ROC untuk vs .H 1 : p 0 = 0,05 ≠ p 1 = 0,0125
Ini kode saya.
B <- 1e5
p0 <- 0.005
p1 <- 0.0125
# simulation under H0 with p = p0 = 0.005 in all groups
# a = 2 groups 400:400, b = 5 groupe 400:100:100:100:100
p.H0.a <- replicate(B, { n <- rbinom( 2, c(400,400), p0);
x <- matrix( c( c(400,400) -n, n ), ncol = 2);
fisher.test(x)$p.value} )
p.H0.b <- replicate(B, { n <- rbinom( 5, c(400,rep(100,4)), p0);
x <- matrix( c( c(400,rep(100,4)) -n, n ), ncol = 2);
fisher.test(x)$p.value} )
# simulation under H1 with p0 = 0.005 (controls) and p1 = 0.0125 (cases)
p.H1.a <- replicate(B, { n <- rbinom( 2, c(400,400), c(p0,p1) );
x <- matrix( c( c(400,400) -n, n ), ncol = 2);
fisher.test(x)$p.value} )
p.H1.b <- replicate(B, { n <- rbinom( 5, c(400,rep(100,4)), c(p0,rep(p1,4)) );
x <- matrix( c( c(400,rep(100,4)) -n, n ), ncol = 2);
fisher.test(x)$p.value} )
# roc curve
ROC <- function(p.H0, p.H1) {
p.threshold <- seq(0, 1.001, length=501)
alpha <- sapply(p.threshold, function(th) mean(p.H0 <= th) )
power <- sapply(p.threshold, function(th) mean(p.H1 <= th) )
list(x = alpha, y = power)
}
par(mfrow=c(1,2))
plot( ROC(p.H0.a, p.H1.a) , type="b", xlab = "alpha", ylab = "1-beta" , xlim=c(0,1), ylim=c(0,1), asp = 1)
lines( ROC(p.H0.b, p.H1.b) , col="red", type="b" )
abline(0,1)
plot( ROC(p.H0.a, p.H1.a) , type="b", xlab = "alpha", ylab = "1-beta" , xlim=c(0,.1) )
lines( ROC(p.H0.b, p.H1.b) , col="red", type="b" )
abline(0,1)
Inilah hasilnya:
Jadi kita melihat bahwa perbandingan pada saat yang sama benar kesalahan tipe I masih mengarah ke perbedaan (memang jauh lebih kecil).
Jawaban:
Mengapa nilai-p berbeda
Ada dua efek yang terjadi:
Karena diskritnya nilai Anda memilih vektor 'paling mungkin terjadi' 0 2 1 1 1. Tetapi ini akan berbeda dari (tidak mungkin) 0 1,25 1,25 1,25 1,25, yang akan memiliki nilai lebih kecil .χ2
Hasilnya adalah bahwa vektor 5 0 0 0 0 tidak dihitung lagi sebagai setidaknya kasus ekstrim (5 0 0 0 0 memiliki dari 0 2 1 1 1). Ini adalah kasus sebelumnya. The dua sisi uji Fisher pada jumlah meja 2x2 kedua kasus dari 5 eksposur berada di pertama atau kelompok kedua sama-sama ekstrem.χ2
Inilah sebabnya mengapa nilai-p hampir berbeda dengan faktor 2. (bukan karena poin berikutnya)
Ketika Anda kehilangan 5 0 0 0 0 sebagai kasus yang sama-sama ekstrim, Anda mendapatkan 1 4 0 0 0 sebagai kasus yang lebih ekstrim daripada 0 2 1 1 1.
Jadi perbedaannya adalah dalam batas nilai (atau nilai-p yang dihitung langsung seperti yang digunakan oleh implementasi R dari uji Fisher yang tepat). Jika Anda membagi kelompok yang terdiri dari 400 menjadi 4 kelompok yang terdiri dari 100, maka kasus yang berbeda akan dianggap lebih atau kurang 'ekstrem' daripada yang lain. 5 0 0 0 0 sekarang kurang 'ekstrem' dari 0 2 1 1 1. Tetapi 1 4 0 0 0 lebih 'ekstrem'.χ2
contoh kode:
output dari bit terakhir
Bagaimana itu mempengaruhi kekuatan ketika memisahkan kelompok
Ada beberapa perbedaan karena langkah-langkah yang terpisah dalam tingkat nilai p yang tersedia dan konservatif dari uji eksak Nelayan (dan perbedaan ini mungkin menjadi sangat besar).
juga uji Fisher cocok dengan model (tidak diketahui) berdasarkan data dan kemudian menggunakan model ini untuk menghitung nilai-p. Model dalam contoh ini adalah persis ada 5 individu yang terpapar. Jika Anda memodelkan data dengan binomial untuk grup yang berbeda maka Anda akan mendapatkan lebih dari 5 individu. Ketika Anda menerapkan tes fisher untuk ini, maka beberapa kesalahan akan dipasang dan sisanya akan lebih kecil dibandingkan dengan tes dengan marjinal tetap. Hasilnya adalah tes ini terlalu konservatif, tidak tepat.
Saya menduga bahwa efek pada probabilitas kesalahan tipe I eksperimen tidak akan terlalu bagus jika Anda membagi grup secara acak. Jika hipotesis nol itu benar maka Anda akan menemukan dalam persen dari kasus nilai-p yang signifikan. Untuk contoh ini perbedaannya besar seperti yang ditunjukkan gambar. Alasan utama adalah bahwa, dengan total 5 eksposur, hanya ada tiga tingkat perbedaan absolut (5-0, 4-1, 3-2, 2-3, 1-4, 0-5) dan hanya tiga nilai (dalam kasus dua kelompok 400).α
Yang paling menarik adalah plot probabilitas untuk menolak jika benar dan jika benar. Dalam hal ini level alfa dan diskresi tidak terlalu penting (kami merencanakan tingkat penolakan efektif), dan kami masih melihat perbedaan besar.H 0 H aH0 H0 Ha
Pertanyaannya tetap apakah ini berlaku untuk semua situasi yang mungkin.
3 kali penyesuaian kode analisis daya Anda (dan 3 gambar):
menggunakan pembatasan binomial untuk kasus 5 orang yang terpapar
Plot probabilitas efektif untuk menolak sebagai fungsi dari alpha yang dipilih. Diketahui untuk uji eksak Fisher bahwa nilai-p tepat dihitung tetapi hanya beberapa level (langkah-langkah) yang terjadi sehingga seringkali tes mungkin terlalu konservatif dalam kaitannya dengan tingkat alfa yang dipilih.H0
Sangat menarik untuk melihat bahwa efeknya jauh lebih kuat untuk case 400-400 (merah) dibandingkan case 400-100-100-100-100 (biru). Jadi kita mungkin memang menggunakan pemisahan ini untuk meningkatkan kekuatan, membuatnya lebih cenderung untuk menolak H_0. (walaupun kami tidak terlalu peduli untuk membuat kesalahan tipe I lebih mungkin, jadi titik melakukan pemisahan ini untuk meningkatkan daya mungkin tidak selalu begitu kuat)
menggunakan binomial tidak terbatas pada 5 individu yang terpapar
Jika kami menggunakan binomial seperti yang Anda lakukan maka tak satu pun dari dua kasus 400-400 (merah) atau 400-100-100-100-100 (biru) memberikan nilai-p yang akurat. Ini karena uji eksak Fisher mengasumsikan total baris dan kolom tetap, tetapi model binomial memungkinkan ini menjadi gratis. Uji Fisher akan 'cocok' dengan jumlah baris dan kolom yang membuat istilah residual lebih kecil dari istilah kesalahan sebenarnya.
apakah peningkatan daya datang dengan biaya?
Jika kita membandingkan probabilitas penolakan ketika benar dan ketika benar (kami berharap nilai pertama rendah dan nilai kedua tinggi) maka kita melihat bahwa memang daya (menolak ketika benar) dapat ditingkatkan tanpa biaya bahwa kesalahan tipe I meningkat.H a H aH0 Ha Ha
Mengapa itu mempengaruhi daya
Saya percaya bahwa kunci dari masalah adalah perbedaan nilai hasil yang dipilih untuk menjadi "signifikan". Situasinya adalah lima individu yang terpapar diambil dari 5 kelompok ukuran 400, 100, 100, 100 dan 100. Berbagai pilihan dapat dibuat yang dianggap 'ekstrem'. rupanya kekuatan meningkat (bahkan ketika kesalahan tipe I yang efektif adalah sama) ketika kita memilih strategi kedua.
Jika kita akan membuat sketsa perbedaan antara strategi pertama dan kedua secara grafis. Lalu saya membayangkan sistem koordinat dengan 5 sumbu (untuk kelompok 400 100 100 100 dan 100) dengan titik untuk nilai-nilai hipotesis dan permukaan yang menggambarkan jarak penyimpangan di luar yang probabilitasnya di bawah tingkat tertentu. Dengan strategi pertama permukaan ini adalah sebuah silinder, dengan strategi kedua permukaan ini adalah sebuah bola. Hal yang sama berlaku untuk nilai-nilai sebenarnya dan permukaan di sekitarnya untuk kesalahan. Yang kami inginkan adalah tumpang tindih sekecil mungkin.
Kita dapat membuat grafik aktual ketika kita mempertimbangkan masalah yang sedikit berbeda (dengan dimensi yang lebih rendah).
Bayangkan kita ingin menguji proses Bernoulli dengan melakukan 1000 percobaan. Kemudian kita dapat melakukan strategi yang sama dengan membagi 1000 menjadi kelompok menjadi dua kelompok dengan ukuran 500. Bagaimana ini terlihat (misalkan X dan Y menjadi jumlah di kedua kelompok)?H0:p=0.5
Plot menunjukkan bagaimana kelompok 500 dan 500 (bukan kelompok tunggal 1000) didistribusikan.
Uji hipotesis standar akan menilai (untuk tingkat alfa 95%) apakah jumlah X dan Y lebih besar dari 531 atau lebih kecil dari 469.
Tetapi ini termasuk distribusi X dan Y yang sangat tidak merata.
Bayangkan pergeseran distribusi dari ke . Maka daerah di tepi tidak terlalu penting, dan batas yang lebih melingkar akan lebih masuk akal.H aH0 Ha
Namun ini tidak (perlu) benar ketika kita tidak memilih pemisahan kelompok secara acak dan ketika mungkin ada makna untuk kelompok.
sumber