Tartışma
Bir permütasyon testi , bir veri kümesinin tüm ilgili permütasyonlarını oluşturur , bu permütasyonların her biri için belirlenmiş bir test istatistiği hesaplar ve gerçek test istatistiğini, istatistiklerin sonuçta meydana gelen permütasyon dağılımı bağlamında değerlendirir . Bunu değerlendirmenin yaygın bir yolu, (bir anlamda) gerçek istatistikten "aşırı ya da aşırı" olan istatistiklerin oranını bildirmektir. Buna genellikle "p değeri" denir.
Gerçek veri kümesi bu permütasyonlardan biri olduğundan, istatistiği mutlaka permütasyon dağılımında bulunanlar arasında olacaktır. Bu nedenle, p değeri asla sıfır olamaz.
Veri kümesi çok küçük olmadığı sürece (tipik olarak yaklaşık 20-30 toplam sayıdan az) veya test istatistiği özellikle güzel bir matematiksel forma sahip değilse, tüm permütasyonları oluşturmak için uygun değildir. (Tüm permütasyonların üretildiği bir örnek R'deki Permütasyon Testinde görünür .) Bu nedenle permütasyon testlerinin bilgisayar uygulamaları tipik olarak permütasyon dağılımından örneklenir . Bunu bağımsız rasgele permütasyonlar üreterek yaparlar ve sonuçların tüm permütasyonların temsili bir örneği olmasını umarlar.
Bu nedenle, böyle bir örnekten türetilen herhangi bir sayı ("p-değeri" gibi) yalnızca permütasyon dağılımının özelliklerinin tahmin edicisidir. Tahmini p değerinin sıfır olması oldukça mümkündür - ve genellikle etkiler büyük olduğunda gerçekleşir . Bunda yanlış bir şey yok, ancak şimdiye kadar ihmal edilen sorunu , tahmin edilen p değerinin doğru olandan ne kadar farklı olabileceği konusunda hemen gündeme getiriyor. Bir oranın (tahmini bir p değeri gibi) örnekleme dağılımı Binom olduğundan, bu belirsizlik bir Binom güven aralığıyla giderilebilir .
Mimari
İyi yapılandırılmış bir uygulama tartışmayı her açıdan yakından takip edecektir. Test istatistiğini hesaplamak için bir rutin ile başlayacaktır, çünkü bu iki grubun araçlarını karşılaştırmak için:
diff.means <- function(control, treatment) mean(treatment) - mean(control)
Veri kümesinin rastgele bir permütasyonunu oluşturmak ve test istatistiğini uygulamak için başka bir rutin yazın. Bu arayüz, arayan kişinin test istatistiğini argüman olarak sunmasına izin verir. m
Bir dizinin (bir referans grup olduğu varsayılır) ilk elemanlarını kalan elemanlarla ("tedavi" grubu) karşılaştıracaktır.
f <- function(..., sample, m, statistic) {
s <- sample(sample)
statistic(s[1:m], s[-(1:m)])
}
Permütasyon testi (iki dizi depolanacak varsayılmıştır veriler için istatistik bularak ilk gerçekleştirilir control
ve treatment
bunların çok sayıda bağımsız rastgele permütasyon istatistikleri bulma o) ve:
z <- stat(control, treatment) # Test statistic for the observed data
sim<- sapply(1:1e4, f, sample=c(control,treatment), m=length(control), statistic=diff.means)
Şimdi p-değerinin binom tahminini ve bunun için bir güven aralığını hesaplayın. Bir yöntem binconf
, HMisc
paketteki yerleşik yordamı kullanır :
require(Hmisc) # Exports `binconf`
k <- sum(abs(sim) >= abs(z)) # Two-tailed test
zapsmall(binconf(k, length(sim), method='exact')) # 95% CI by default
Oldukça uygulanabilir olmadığı bilinse bile, sonucu başka bir testle karşılaştırmak kötü bir fikir değildir: en azından sonucun nerede olması gerektiği konusunda bir büyüklük duygusu alabilirsiniz. Bu örnekte (karşılaştırma araçlarının), bir Öğrenci t-testi genellikle yine de iyi bir sonuç verir:
t.test(treatment, control)
Bu mimari, daha karmaşık bir durumda, çalışma R
koduyla Değişkenlerin Aynı Dağılımı İzleyip İzlemediğini gösterir .
Misal
100201.5
set.seed(17)
control <- rnorm(10)
treatment <- rnorm(20, 1.5)
Bir permütasyon testi yapmak için önceki kodu kullandıktan sonra, gerçek istatistiği işaretlemek için permütasyon dağılımının örneğini dikey kırmızı bir çizgi ile birlikte çizdim:
h <- hist(c(z, sim), plot=FALSE)
hist(sim, breaks=h$breaks)
abline(v = stat(control, treatment), col="Red")
Binom güven sınırı hesaplaması sonuçlandı
PointEst Lower Upper
0 0 0.0003688199
00.000373.16e-05
0.000370.000370.050.010.001
Yorumlar
kN k/N(k+1)/(N+1)N
10102=1000.0000051.611.7milyon başına parça: bildirilen Student t-testinden biraz daha küçük. Veriler, Student t-testi kullanılarak haklı çıkacak normal rasgele sayı üreteçleri ile oluşturulmuş olsa da, her bir gözlem grubundaki dağılımlar tamamen normal olmadığı için permütasyon testi sonuçları Student t-testi sonuçlarından farklıdır.
a.random
b.random
b.random
a.random
coding
lncrna