Örnekleme / simülasyon yöntemleri: monte edilmiş carlo, bootstrapping, jackknifing, çapraz doğrulama, randomizasyon testleri ve permütasyon testleri


73

Farklı yeniden örnekleme yöntemleri (Monte Carlo simülasyonu, parametrik önyükleme, parametrik olmayan önyükleme, jackknifing, çapraz doğrulama, rastgele testler ve permütasyon testleri) ve bunların R'yi kullanarak kendi bağlamlarındaki uygulamaları arasındaki farkı anlamaya çalışıyorum.

Diyelim ki aşağıdaki durum var - ANOVA'yı Y değişkeni ( Yvar) ve X değişkeni ( Xvar) ile gerçekleştirmek istiyorum . Xvarkategoriktir. Aşağıdaki şeylerle ilgileniyorum:

(1) p değerlerinin önemi - yanlış keşif oranı

(2) Xvardüzeylerin etki büyüklüğü

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)

Bu örnekleme yönteminin nasıl çalıştığını açık örneklerle açıklamak için örnekleme farklılıklarını açıklamamı ister misiniz?

Düzenlemeler: İşte girişimlerim:

Önyükleme 10 önyükleme örnekleri, değiştirilen örneklerin sayısı, örneklerin tekrarlanabileceği anlamına gelir

boot.samples <- list()
for(i in 1:10) {
   t.xvar <- Xvar[ sample(length(Xvar), length(Xvar), replace=TRUE) ]
   t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=TRUE) ]
   b.df <- data.frame (t.xvar, t.yvar) 
   boot.samples[[i]] <- b.df 
}
str(boot.samples)
 boot.samples[1]

Permütasyon: 10 permütasyon numunesi, değiştirilmemiş numunelerin numune sayısı

 permt.samples <- list()
    for(i in 1:10) {
       t.xvar <- Xvar[ sample(length(Xvar), length(Xvar), replace=FALSE) ]
       t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
       b.df <- data.frame (t.xvar, t.yvar) 
       permt.samples[[i]] <- b.df 
    }
    str(permt.samples)
    permt.samples[1]

Monte Caro Simülasyonu

Her ne kadar tekrarlanan herhangi bir rastgele veya sözde rasgele örnekleme simülasyonu için "yeniden örnekleme" terimi kullanılsa da, "yeniden örnekleme" bilinen bir teorik dağılımdan yapıldığında, doğru terim "Monte Carlo" simülasyonudur.

Yukarıdaki terimlerin tümü ve yukarıdaki düzenlemelerimin doğru olup olmadığından emin değilim. Jacknife hakkında bazı bilgiler buldum ama durumumu evcilleştiremedim.


3
Jackknife, önyüklemenin daha basit bir öncüsüdür. en.wikipedia.org/wiki/Jackknife_(statistics)
EngrStudent

4
Daha doğrusu: jackknife dışarıda
bırakılan bir

Yanıtlar:


121

Numunelerin yeniden şekillendirilmesine veya karıştırılmasına bağlı olan farklı Yeniden Örnekleme yöntemlerini veya gevşek olarak " simülasyon " yöntemlerini bulabiliriz . Uygun terminolojiyle ilgili görüşlerde farklılıklar olabilir, ancak aşağıdaki tartışma uygun literatürde neyin mevcut olduğunu genelleştirmeye ve basitleştirmeye çalışır:

Örnekleme yöntemleri (1) veri alt kümesini kullanarak (örn. Jackknifing) örnek istatistiklerin kesinliğini / doğruluğunu tahmin etmek veya bir dizi veri noktasından (örneğin önyükleme) (2) önemi yerine getirirken veri noktalarına etiket alışverişi yapmak yoluyla rastgele çizim yapmakta kullanılır. testleri (permütasyon testleri, aynı zamanda kesin testler, rastgele testler veya yeniden rastgele testler de denir) (3) Rasgele altkümeler kullanarak modellerin doğrulanması (önyükleme, çapraz doğrulama) (bkz. wikipedia: yeniden örnekleme yöntemleri )

ön yükleme

" Önyükleme , bir tahmincinin örnekleme dağılımını tahmin etmek için bir orjinal örnekten değiştirilerek örnekleme yaparak istatistiksel bir yöntemdir ". Yöntem, örnek tahminleri için doğruluk ölçütleri ( önyargı , varyans , güven aralığı , tahmin hatası veya diğer bazı önlemlerle tanımlanır) atar .

Önyükleme temel fikri, örnek verilerden ( örnek → popülasyondan ) bir popülasyon hakkında çıkarımın, örnek veriyi yeniden örnekleyerek ve üzerinde (yeniden örnekleme → örnek) çıkarım gerçekleştirerek modellenebilmesidir. Nüfus bilinmediği için, bir popülasyon değerine karşı bir istatistikte gerçek hata bilinmemektedir. Önyükleme örneklerinde 'popülasyon' aslında örneklemdir ve bu bilinmektedir; dolayısıyla 'gerçek' numunesinin → yeniden örnekleme verilerinden çıkarımın kalitesi ölçülebilir olur." bkz wikipedia

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)

#To generate a single bootstrap sample
sample(Yvar, replace = TRUE) 

 #generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000) 
   boot[[i]] <- sample(Yvar,replace=TRUE)

Tek değişkenli problemlerde, bireysel gözlemlerin yerine koyma ("vaka yeniden örnekleme") ile yeniden örneklenmesi kabul edilebilir. Burada, değiştirilen verileri yeniden örnekleyeceğiz ve örneklemin boyutu, orijinal veri kümesinin boyutuna eşit olmalıdır.

Regresyon problemlerinde vaka yeniden örneklemesi, bireysel vakaları yeniden örneklemenin basit şemasını ifade eder - genellikle regresyon problemlerinde ayarlanan bir veri satırları, açıklayıcı değişkenler genellikle sabittir veya en azından yanıt değişkeninden daha fazla kontrol ile gözlenir. Ayrıca, açıklayıcı değişkenlerin aralığı, onlardan elde edilen bilgileri tanımlar. Bu nedenle, vakaları yeniden örneklemek için her önyükleme örneğinin bazı bilgileri kaybedeceği anlamına gelir ( Wikipedia'ya bakın ). Bu yüzden sadece veri satırlarını örneklemek mantıklı olacaktır Yvar.

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)    

boot.samples <- list()
for(i in 1:10) {
   b.samples.cases <- sample(length(Xvar), length(Xvar), replace=TRUE) 
   b.mydf <- mydf[b.samples.cases,] 
   boot.samples[[i]] <- b.mydf
}
str(boot.samples)
 boot.samples[1]

Değiştirilen örnekleme yaparken bazı vakaların tekrarlandığını görebilirsiniz.

" Parametrik önyükleme - verilere genellikle maksimum olasılıkla bir parametrik model yerleştirilir ve bu yerleştirilmiş modelden rastgele sayı örnekleri alınır . Genellikle çekilen örnek, orijinal verilerle aynı örnek boyutuna sahiptir. Sonra, miktar veya tahmin Bu verilerden ilgi konusu hesaplanır.Bu örnekleme işlemi, diğer önyükleme yöntemlerinde olduğu gibi birçok kez tekrarlanır .. Önyükleme yönteminin örnekleme aşamasında parametrik bir modelin kullanılması, temel istatistik teorisinin uygulanmasıyla elde edilenlerden farklı olan işlemlere yol açar. Aynı model için çıkarım. "(bkz. Wikipedia ). Aşağıdaki, ortalama ve standart sapma parametreleriyle normal dağılım varsayımına sahip parametrik önyüklemedir.

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)

# parameters for Yvar 
mean.y <- mean(Yvar)
sd.y <- sd(Yvar)

#To generate a single bootstrap sample with assumed normal distribution (mean, sd)
rnorm(length(Yvar), mean.y, sd.y)

 #generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000) 
   boot[[i]] <- rnorm(length(Yvar), mean.y, sd.y)

Diğer bootstrap çeşitleri de var, lütfen örnekleme sayfasındaki wikipedia sayfasını veya iyi bir statik kitabı inceleyiniz.

Jacknife

"Bir parametrenin jackknife tahmincisi, her bir gözlemin bir veri setinden sistematik olarak bırakılması ve tahminin hesaplanması ve daha sonra bu hesaplamaların ortağının bulunmasıyla bulunur. N boyutuna bir örnek verildiğinde, jackknife tahmini, her N − 1tahminin tahminlerini toplayarak bulunur örnekte. " bakınız: wikipedia Aşağıdaki nasıl kullanılacağını gösterir Yvar.

jackdf <- list()
jack <- numeric(length(Yvar)-1)

for (i in 1:length (Yvar)){

for (j in 1:length(Yvar)){
     if(j < i){ 
            jack[j] <- Yvar[j]
}  else if(j > i) { 
             jack[j-1] <- Yvar[j]
}
}
jackdf[[i]] <- jack
}
jackdf

"normal bootstrap ve jackknife, bir istatistiğin parametrik varsayımlardan ziyade , bu istatistiğin alt örnekler arasındaki değişkenlikten değişkenliğini tahmin eder . Her ikisi de benzer sayısal sonuçlar verir, bu yüzden her biri diğerine yaklaşım olarak görülebilir. " Jackstife vs Bootstrap bu soruya bakın .

RANDOMİZASYON TESTLERİ

"Parametrik testlerde rastgele bir veya daha fazla popülasyondan örnek alıyoruz. Bu popülasyonlar hakkında, genellikle normalde eşit varyanslarla dağıldıklarına dair bazı varsayımlar yapıyoruz. Genellikle m1 formundan parametreler olarak çerçevelenmiş boş bir hipotez kuruyoruz. -m2 = 0. Örnek istatistiklerimizi ilgili popülasyon parametrelerinin tahminleri olarak kullanıyoruz ve bir test istatistiğini hesaplıyoruz (örneğin testte) Örneğin: Öğrenci varyanslarında varyansların bilinmediği ancak fark edilmediği zamanlardaki farklar için t testi. eşit olması, ilgi hipotezi şöyledir H0: m1 = m2: Alternatif hipotezlerden biri şöyle ifade edilir:HA: m1 < m2. 1. ve 2. popülasyonlardan çizilmiş iki örnek göz önüne alındığında, bunların normalde eşit varyansa sahip dağılımlı popülasyonlar olduğu ve numunelerin her popülasyondan bağımsız ve rastgele bir şekilde çekildiği varsayılarak, dağıtımı bilinen bir istatistik test edilebilir H0.

Bu dağıtım varsayımlarından kaçınmanın bir yolu, artık parametrik olmayan, sıralama sırası, sıralama benzeri ve dağıtım gerektirmeyen istatistikler olarak adlandırılan yaklaşım olmuştur. Bu dağıtımsız istatistikler, popülasyonların normal olarak dağılmış olduğu varsayımına dayanarak analog testten daha az "verimli" olduğu için eleştirilir.

Bir başka alternatif yaklaşım ise randomizasyon yaklaşımıdır - "rastgele atanma süreci, birinin bir gözlemlemenin bir üyesi olduğu bilgisinden bağımsız olarak gözlemlere dayanır. gözlemlerin sıralaması Bu nedenle, benzer bir istatistiğin dağılımı (bir örnekteki gözlemlerin toplamı), böyle bir dağılımı saymak teorik olarak mümkün olsa da, kolayca tablolaştırılamaz "( bakınız )

Randomizasyon testleri hemen hemen her açıdan parametrik testlerden farklıdır. (1) Bir veya daha fazla popülasyondan rastgele örnek almamıza gerek yoktur - aslında rastgele örnekleme yapmayız. (2) Verilerin geldiği popülasyonlar hakkında nadiren düşünüyoruz ve normallik veya homoscedasticity hakkında bir şey varsaymaya gerek yoktur (3) Bizim boş hipotezimizin parametrelerle hiçbir ilgisi yoktur, ancak örneğin, tedavinin katılımcıların performanslarını etkilemediği hipotezi (4) Nüfuslarla ilgilenmediğimiz için, bu nüfusların özelliklerini tahmin etme (hatta test etme) ile ilgilenmiyoruz (5) Bazılarını hesaplıyoruz Bir çeşit test istatistiği olmakla birlikte, bu istatistiği tablodaki dağılımlarla karşılaştırmayız. Yerine, Verileri gruplar arasında art arda randomize ettiğimizde elde ettiğimiz sonuçlarla karşılaştırır ve her randomizasyon için karşılık gelen istatistiği hesaplarız. (6) Parametrik testlerden çok daha fazla olsa da, randomizasyon testleri katılımcıların tedavilere rasgele atanmasının önemini vurgular. ”bkz .

Çok popüler olan randomizasyon testinin türü permütasyon testidir. Eğer örneklem büyüklüğümüz 12 ve 5 ise, toplam permütasyon mümkündür C(12,5) = 792. Örneklem büyüklüğümüz 10 ve 15 ise, 3,2 milyonun üzerinde düzenleme yapmak mümkün olacaktı. Bu hesaplama zorluğu: Peki o zaman? Örnek . Olası düzenlemelerin evreni sayılmayacak kadar büyük olduğunda, neden bu evrenden gelen düzenlemeleri bağımsız ve rastgele örneklemiyorsunuz? Test istatistiklerinin bu örnek serileri üzerindeki dağılımı daha sonra tablolaştırılabilir, ortalama ve varyansı hesaplanabilir ve tahmin edilen bir hipotez testiyle ilişkili hata oranı hesaplanabilir.

İZİN TESTİ

Wikipedia'ya göre "Bir permütasyon testi (ayrıca bir randomizasyon testi , yeniden randomizasyon testi veya kesin bir test de denir) bir test istatistiksel istatistiğinin boş hipotez altında dağıtılması mümkün olan tüm değerler hesaplanarak elde edilir. Etiketlerin , gözlemlenen veri noktalarındaki yeniden düzenlemeleri altındaki test istatistiklerinin dağılımı: Dağılımının bilinip bilinmediğine bakılmaksızın, herhangi bir test istatistiği için permütasyon testleri mevcuttur. Bu da kayıpları en aza indirir. "

Permütasyon ve önyükleme arasındaki fark , değiştirme ile önyükleme örneği ve değiştirme olmadan permütasyon örneğidir . Her iki durumda da, gözlemlerin zaman sırası kaybolur ve dolayısıyla uçuculuk kümelenmesi kaybolur - böylece numunelerin uçuculuk kümelenmesinin sıfır hipotezi altında kalmasını sağlar.

Permütasyonlar her zaman aynı gözlemlerin hepsine sahiptir, bu yüzden önyükleme örneklerinden ziyade orijinal veriler gibidir. Beklenti, permütasyon testinin bir bootstrap testinden daha hassas olması gerektiğidir. Müdahaleler değişkenlik kümelenmesini tahrip etmektedir, ancak başka bir değişkenlik katmamaktadır .

Bootstrapping vs permütasyon hakkındaki soruya bakın - "Permütasyon testi, hipotezleri test etmek için en iyisidir ve bootstrapping, güven aralıklarını tahmin etmek için en iyisidir ".

Dolayısıyla bu durumda permütasyon gerçekleştirmek replace = FALSEiçin yukarıdaki önyükleme örneğindeki değişiklikleri değiştirebiliriz .

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
     #generate 1000 bootstrap samples
       permutes <-list()
    for (i in 1:1000) 
       permutes[[i]] <- sample(Yvar,replace=FALSE)

Birden fazla değişken olması durumunda, yalnızca satırların toplanması ve sıranın yeniden değiştirilmesi, veriler aynı kalacağından hiçbir fark yaratmayacaktır. Böylece y değişkenini değiştiririz. Bir şey yaptın, ama biz gerek yok sanmıyorum neyi çifte görev değişikliği hem xve y variables(siz yapmış gibi).

Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
Xvar <- c(rep("A", 5),  rep("B", 5),    rep("C", 5))
mydf <- data.frame (Yvar, Xvar)

 permt.samples <- list()
    for(i in 1:10) {
       t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
       b.df <- data.frame (Xvar, t.yvar) 
       permt.samples[[i]] <- b.df 
    }
    str(permt.samples)
    permt.samples[1]

MONTE CARLO YÖNTEMLERİ

"Monte Carlo yöntemleri (veya Monte Carlo deneyleri), sayısal sonuçlar elde etmek için tekrarlanan rastgele örneklemeye dayanan geniş bir bilgisayarlı algoritma sınıfıdır ; tipik olarak bilinmeyen bir olasılıksal varlığın dağıtımını elde etmek için birçok kez simülasyonlar uygulanır. gerçek bir kumar casinoda oynama ve kayıt sonuçlarının eylemine tekniği benzerliQi. "bkz Wikipedia

"Uygulamalı istatistiklerde, Monte Carlo yöntemleri genellikle iki amaç için kullanılır:

(1) Küçük veri örnekleri için rekabetçi istatistikleri gerçekçi veri koşulları altında karşılaştırmak. Her ne kadar Tip I hata ve istatistiklerin güç özellikleri, asimptotik koşullar (yani, sonsuz örneklem büyüklüğü ve sonsuz küçük tedavi etkisi) için klasik teorik dağılımlardan (örneğin, normal eğri, Cauchy dağılımı) çizilen veriler için hesaplanabilse de, gerçek veriler sıklıkla böyle bir dağıtıma sahip değil.

(2) Asimptotik dağılımlar için kritik değerlerden daha doğru iken permütasyon testleri (genellikle hesaplanması imkansız) gibi kesin testlerden daha etkili olan hipotez testlerinin uygulanmasını sağlamak.

Monte Carlo yöntemleri de yaklaşık rasgeleleştirme ve permütasyon testleri arasında bir uzlaşmadır . Yaklaşık rastgele bir randomizasyon testi , tüm permütasyonların belirli bir alt setine dayanır (ki bu, permütasyonların göz önüne alındığı potansiyel olarak muazzam temizlik gerektirir). Monte Carlo yaklaşımı, belirli sayıda rastgele çizilmiş permütasyona dayanmaktadır ( bir permütasyonun iki kez veya daha sık çekilmesi durumunda hassas bir şekilde küçük bir zararın değiş tokuş edilmesi), hangi izinlerin önceden seçilmiş olduğunu izlememenin etkinliği için . "

Hem MC hem de Permütasyon testi bazen kolektif olarak randomizasyon testleri olarak adlandırılır . Aradaki fark MC'de, permütasyon örneklerini örneklemekteyiz, bkz . Olası tüm kombinasyonları kullanarak .

ÇAPRAZ DOĞRULAMA

Çapraz doğrulamanın ötesinde fikir, modellerin modele uymayan verilerle test edilmesi gerektiğidir. Çapraz doğrulama belki de en çok tahmin bağlamında kullanılır .

"Çapraz doğrulama, öngörücü bir modeli doğrulamak için istatistiksel bir yöntemdir. Verilerin alt kümeleri, doğrulama kümesi olarak kullanılmak üzere düzenlenir ; bir model, kalan verilere (bir eğitim kümesi) uygundur ve doğrulama kümesini öngörmek için kullanılır. validasyon kümelerindeki tahminlerin kalitesi, tahmin doğruluğunun genel bir ölçüsünü verir.

Bir çapraz onaylama biçimi bir seferde tek bir gözlem bırakır; bu, çakıya benzer. Başka bir, K-kat çapraz onaylama, verileri K altkümelerine ayırır; Her doğrulama set olarak sırayla dışarı tutulur." bkz Wikipedia . Çapraz doğrulama genellikle nicel verilerle yapılır. Bu modeli doğrusal bir modele uyan ve test etmek Bir şekilde nicel sizin nitel (faktör verileri) dönüştürebilir. Aşağıdaki basit Verilerin% 50'sinin model tahmini için kullanılmasına izin verirken dinlenme stratejisi, geri kalan test için kullanılırsa Xvarda, nicel değişken olduğunu varsayalım .

    Yvar <- c(8,9,10,13,12, 14,18,12,8,9,   1,3,2,3,4)
    Xvar <- c(rep(1, 5),  rep(2, 5),    rep(3, 5))
    mydf <- data.frame (Yvar, Xvar)
    training.id <- sample(1:nrow(mydf), round(nrow(mydf)/2,0), replace = FALSE)
    test.id <- setdiff(1:nrow(mydf), training.id)
   # training dataset 
    mydf.train <- mydf[training.id]

    #testing dataset 
    mydf.test <- mydf[test.id]

Önyükleme ve permütasyon testlerinin aksine, eğitim ve test için çapraz doğrulama veri seti farklıdır. Aşağıdaki şekilde, farklı yöntemlerde yeniden örnekleme özeti gösterilmektedir.

görüntü tanımını buraya girin

Umarım bu biraz yardımcı olur.


23
Bu etkileyici - ve özellikle de, çünkü ilk cevabınız! Umarım buraya katılmaya devam edersiniz ve sitemize gelecekteki katkılarınızı sabırsızlıkla bekliyorum.
whuber

Bu cevap, BÜYÜK bir büyük resimli cevaptır. Ancak, bağlantıların bazıları terkedilmiş gibi görünüyor. Bağlantıların nerede olduğuna dair bir ipucu var mı?
tintinthong,

6

İşte katkım.

Veri

Yvar <- c(8,9,10,13,12,
          14,18,12,8,9,
          1,3,2,3,4)
Xvar <- rep(LETTERS[1:3], each=5)
mydf <- data.frame(Yvar, Xvar)

Monte Carlo

Monte Carlo'yu diğer (girdi) rasgele değişkenlerin önemsiz bir fonksiyonunun sonucu olan bir (sonuç) rasgele değişkenin dağılımını elde etmek için bir yöntem olarak görüyorum. Şu anki ANOVA analizi ile hemen bir örtüşme göremiyorum, muhtemelen diğer forum üyeleri buradaki bilgileri verebilirler.

Bootstrapping

Amaç, gözlemlenen bir örnekten hesaplanan bir istatistiğin belirsizliği hakkında bir fikre sahip olmaktır. Örneğin: Yvar'ın örneklem ortalamasının 8,4 olduğunu hesaplayabiliriz , ancak Yvar için popülasyon ortalamasının ne kadar kesin olduğunu belirledik? İşin püf noktası, örneklem popülasyonmuş gibi yapmak ve bu sahte popülasyondan birçok kez örneklemektir.

n <- 1000
bootstrap_means <- numeric(length=n)
for(i in 1:n){
   bootstrap_sample <- sample(x=Yvar, size=length(Yvar), replace=TRUE)
   bootstrap_means[i] <- mean(bootstrap_sample)
}
hist(bootstrap_means)

Sadece örnek aldık ve herhangi bir parametrik dağılım varsaymadık. Bu parametrik olmayan bootstrap . Örneğin, Xvar'ın normal olarak dağıldığını varsaymakla kendinizi rahat hissederseniz rnorm(...), tahmini ortalama ve standart sapmayı kullanarak normal bir dağılımdan ( ) da örnek alabilirsiniz , bu parametrik önyükleme olacaktır .

Diğer kullanıcılar belki Xvarseviyelerin etki büyüklüklerine göre önyükleme uygulamalarını verebilirler ?

çekmeli

Çakal biraz modası geçmiş gibi görünüyor. Sadece bütünlük için, onu önyükleme çizgisine göre aşağı yukarı kıyaslayabilirsiniz, ancak strateji, bir gözlem yapmazsak ne olacağını görmek için burada (ve her gözlem için bunu tekrarlayın).

Çapraz doğrulama

Çapraz validasyonda, tahmin edilen modelinizin validasyon setindeki değerleri ne kadar iyi tahmin edebildiğini görmek için bir antrenman setinde ve validasyon setinde (genellikle büyük) veri setinizi bölersiniz. Kişisel olarak henüz ANOVA'ya çapraz doğrulama uygulaması görmedim, bu yüzden bu bölümü başkalarına bırakmayı tercih ediyorum.

Randomizasyon / permütasyon testleri

Uyarı alın, terminoloji üzerinde anlaşmaya varılmaz. Randomizasyon testi ve Permütasyon testi arasındaki farklara bakınız .

Boş hipotez, A, B ve C gruplarının popülasyonları arasında bir fark olmadığıdır, bu nedenle Xvar'ın 15 değerinin etiketlerini rastgele değiştirip değiştirmememiz önemli değildir. Başlangıçta gözlemlenen F değeri (veya başka bir istatistik), etiketlerin rastgele değiştirilmesinden sonra elde edilenler ile aynı değilse, o zaman muhtemelen önemliydi ve sıfır hipotezi reddedilebilir.

observed_F_value <- anova(lm(Yvar ~ Xvar))$"F value"[1]

n <- 10000
permutation_F_values <- numeric(length=n)

for(i in 1:n){
   # note: the sample function without extra parameters defaults to a permutation
   temp_fit <- anova(lm(Yvar ~ sample(Xvar)))
   permutation_F_values[i] <- temp_fit$"F value"[1]
}

hist(permutation_F_values, xlim=range(c(observed_F_value, permutation_F_values)))
abline(v=observed_F_value, lwd=3, col="red")
cat("P value: ", sum(permutation_F_values >= observed_F_value), "/", n, "\n", sep="")

histogram

Ancak karmaşık tasarımlar için etiketleri yeniden atama konusunda dikkatli olun. Ayrıca, eşit olmayan varyanslarda, değiş tokuş edilebilirliğin sıfır hipotezinin her şeyden önce doğru olmadığına dikkat edin, bu nedenle bu permütasyon testi doğru olmaz.

Burada açıkça etiketlerin tüm olası permütasyonlarında geçmedik, bu P değerinin Monte Carlo tahmini. Küçük veri kümeleriyle, tüm olası permütasyonlardan geçebilirsiniz, ancak yukarıdaki R kodunu anlamak biraz daha kolaydır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.