Bir normallik testinin gücünü değerlendirme (R'de)


9

R'deki farklı örnek büyüklüklerine göre normallik testlerinin doğruluğunu değerlendirmek istiyorum (normallik testlerinin yanıltıcı olabileceğinin farkındayım ). Örneğin, Shapiro-Wilk testine bakmak için, aşağıdaki simülasyonu yapıyorum (sonuçları çizerken) ve örnek boyutu arttıkça boş değerlerin reddedilme olasılığının azaldığını umuyorum:

n <- 1000
pvalue_mat <- matrix(NA, ncol = 1, nrow = n)

for(i in 10:n){
    x1 <- rnorm(i, mean = 0, sd = 1)
    pvalue_mat[i,] <- shapiro.test(x1)$p.value
}   

plot(pvalue_mat)

Benim düşüncem, örnek büyüklüğü büyüdükçe daha düşük bir red oranı olması gerektiğidir, ancak oldukça düzgün görünmektedir. Sanırım bunu yanlış anlıyorum - her türlü düşünceye açıktır.


2
Şuna bir göz atmak isteyebilirsiniz: stats.stackexchange.com/questions/2492/…
nico

Yanıtlar:


7

Sıfır hipotezi (normal dağılım) altında simüle ediyorsunuz, bu nedenle reddetme oranı beklendiği gibi önem seviyesine eğilimli olacaktır. Gücü değerlendirmek için, normal olmayan herhangi bir dağılım altında simüle etmeniz gerekir. Çalışmanızın kapsamına bağlı olarak, aralarından seçim yapabileceğiniz sonsuz olasılıklar / senaryolar (örn. Artan çarpıklığa sahip gama dağılımları, azalan df ile t-dağıtım vb.) Vardır.


Yanıt için teşekkürler. Normal olmayan dağılımları simüle ettiğimde, orijine göre dışbükey bir desen gözlemliyorum - yani normal olmayan herhangi bir dağılım için örnek boyutu büyüdükçe, normalliğin sıfırlanma olasılığı artar. Ancak, normal bir dağılımdan çizim yaparken neden ters olmadığını anlamıyorum: örnek boyutu büyüdükçe null değerini reddetme olasılığı neden azalmıyor? Teşekkürler
user94759

3
Çünkü böyle bir tip-1 hatası yapma olasılığı, tanım gereği sabit olan önem seviyesine eşittir. Ya da farklı bir şekilde, p değerleri sıfırın altında eşit olarak dağıtılır. Btw, sadece kodunuzda olduğu gibi değil, n seçimi de dahil olmak üzere, ayar başına birçok simülasyon yapmanız önerilir.
Michael M

7

İstatistiksel hipotez testlerinin güç analizini anlamak, bazılarını gerçekleştirerek ve sonuçlara yakından bakarak geliştirilebilir.


Tasarım gereği, bir büyüklükteki bir test bir amacı , en az bir ihtimali hipotezini reddetmek için boş doğru (tahmini olduğunda yanlış pozitif oran ). αα Bu özellik ile alternatif prosedürler arasından seçim yapma yeteneğine (veya lüksüne) sahip olduğumuzda, (a) aslında nominal yanlış pozitif orana yaklaşan ve (b) sıfır hipotezini reddetme olasılığının nispeten daha yüksek olduğu şansları tercih ederiz. doğru değil.

İkinci kriter, hangi yol (lar) da ve sıfırın gerçekte ne kadar başarısız olduğunu şart koşmamızı gerektirir . Ders kitabı durumlarında bu kolaydır, çünkü alternatifler kapsam bakımından sınırlıdır ve açıkça belirtilmiştir. Shapiro-Wilk gibi dağıtım testlerinde, alternatif çok daha belirsizdir: "normal değildir". Dağıtım testleri arasından seçim yaparken, analistin, testlerin eldeki problemle ilgili daha spesifik alternatif hipotezlere karşı ne kadar iyi çalıştığını değerlendirmek için kendi tek seferlik güç çalışmasını yürütmesi muhtemeldir.

Michael Mayer'in cevabının motive ettiği bir örnek , alternatif dağılımın Student t dağılımları ailesine benzer niteliklere sahip olabileceğini göstermektedir. (konum ve ölçeğin yanı sıra) ile parametrelenen bu aile, büyük Normal dağılımlarını sınırlar.ν1ν

Her iki durumda da - gerçek test boyutunu veya gücünü değerlendirmek olsun - belirli bir dağıtımdan bağımsız örnekler oluşturmalı, testi her örnek üzerinde çalıştırmalı ve sıfır hipotezini reddetme oranını bulmalıyız. Bununla birlikte, herhangi bir test sonucunda daha fazla bilgi vardır: P değeri. Böyle bir simülasyon sırasında üretilen P-değerleri kümesini koruyarak, daha sonra testin umursadığımız herhangi bir değeri için null değerini reddetme oranını değerlendirebiliriz . Bu durumda, güç analizinin kalbi, bu P-değeri dağılımını üreten bir alt rutindir (ya daha önce açıklandığı gibi simülasyonla ya da - bazen - teorik bir formülle). İşte kodlanmış bir örnek . Argümanları şunları içerir:αR

  • rdist, bazı dağıtımlardan rastgele örnek üretme işlevinin adı

  • n, talep edilecek örneklerin boyutu rdist

  • n.iter, elde edilecek bu tür numunelerin sayısı

  • ..., aktarılacak isteğe bağlı parametreler rdist(serbestlik dereceleri ).ν

Kalan parametreler sonuçların görüntülenmesini kontrol eder; bunlar çoğunlukla bu cevaptaki rakamları oluşturmak için bir kolaylık olarak dahil edilmiştir.

sim <- function(rdist, n, n.iter, prefix="",
                breaks=seq(0, 1, length.out=20), alpha=0.05,
                plot=TRUE, ...) {

  # The simulated P-values.
  # NB: The optional arguments "..." are passed to `rdist` to specify
  #     its parameters (if any).
  x <- apply(matrix(rdist(n*n.iter, ...), ncol=n.iter), 2, 
             function(y) shapiro.test(y)$p.value)

  # The histogram of P-values, if requested.
  if (plot) {
    power <- mean(x <= alpha)
    round.n <- 1+ceiling(log(1 + n.iter * power * (1-power), base=10) / 2)
    hist(x[x <= max(breaks)], xlab=paste("P value (n=", n, ")", sep=""), 
         breaks=breaks, 
         main=paste(prefix, "(power=", format(power, digits=round.n), ")", sep=""))
    # Specially color the "significant" part of the histogram
    hist(x[x <= alpha], breaks=breaks, col="#e0404080", add=TRUE)
  }

  # Return the array of P-values for any further processing.
  return(x)
}

Hesaplamanın aslında sadece bir satır aldığını görebilirsiniz; kodun geri kalanı histogramı çizer. Bunu açıklamak için, beklenen yanlış pozitif oranları hesaplamak için kullanalım. Bir testin özellikleri genellikle örnek büyüklüğüne göre değiştiğinden, "Ücretler" çoğul halindedir. O örnek boyutları büyük olduğu zaman bölüşüm testler niteliksel küçük alternatiflere karşı yüksek güce sahip olduğunu tanınmış olduğundan, bu çalışma genellikle böyle testler pratikte uygulanan küçük bir örnek boyutlarda odaklanır: genellikle yaklaşık ile hesaplamasını kaydetmek için sefer, değerlerine sadece rapor den kadar5100.n520.

n.iter <- 10^5                 # Number of samples to generate
n.spec <- c(5, 10, 20)         # Sample sizes to study
par(mfrow=c(1,length(n.spec))) # Organize subsequent plots into a tableau
system.time(
  invisible(sapply(n.spec, function(n) sim(rnorm, n, n.iter, prefix="DF = Inf ")))
)

Parametreleri belirledikten sonra, bu kod da sadece bir satırdır. Aşağıdaki çıktıyı verir:

Sıfır için histogramlar

Bu beklenen görünümdür: histogramlar P değerlerinin ila arasında neredeyse eşit dağılımlarını gösterir . Nominal boyut ayarlandığında , P-değerlerinin ile arasında simülasyonlar aslında bu eşikten daha azdı: bunlar kırmızı ile vurgulanan sonuçlardır. Bu frekansların nominal değere yakınlığı, Shapiro-Wilk testinin reklamı yapılan şekilde gerçekleştirildiğini kanıtlar.01α=0.05,.04810.0499

( yakınındaki alışılmadık derecede yüksek bir P-değeri sıklığına doğru bir eğilim var gibi görünmektedir . Bu çok endişe vericidir, çünkü neredeyse tüm uygulamalarda birinin baktığı tek P-değerleri veya daha azdır.)10.2

Şimdi gücü değerlendirmeye bakalım. Student t dağılımı için değerlerinin tamamı, ile arasındaki birkaç örneği değerlendirerek yeterli şekilde incelenebilir . Bunu nasıl bilebilirim? Ben (den tekrarlamalar çok küçük sayılar kullanılarak bazı ön koşular gerçekleştirilen için da hiç zaman alır ki,). Kod şimdi bir çift döngü gerektirir (ve daha karmaşık durumlarda, değişmemiz gereken tüm yönleri karşılamak için genellikle üçlü veya dörtlü döngülere ihtiyacımız vardır): biri gücün örnek boyutuna göre nasıl değiştiğini incelemek ve diğeri de nasıl değiştiğini incelemek için serbestlik derecesi. Yine de, her şey sadece bir kod satırında (üçüncü ve son) yapılır:νν=100ν=11001000

df.spec <- c(64, 16, 4, 2, 1)
par(mfrow=c(length(n.spec), length(df.spec)))
for (n in n.spec) 
  for (df in df.spec)
    tmp <- sim(rt, n, n.iter, prefix=paste("DF =", df, ""), df=df)

Alternatifler için histogramlar

Bu tabloyla ilgili küçük bir çalışma, güç hakkında iyi sezgi sağlar. En dikkat çekici ve yararlı yönlerine dikkat çekmek istiyorum:

  • Serbestlik dereceleri soldaki sağdaki , giderek artan sayıda P değeri küçüktür ve bu dağılımları Normal dağılımdan ayırt etme gücünün arttığını gösterir. (Güç her çizim başlığında ölçülür: histogramın kırmızı alanın oranına eşittir.)ν=64ν=1

  • Örnek boyutu üst sıradaki alttaki yükseldikçe, güç de artar.n=5n=20

  • Alternatif dağılım null dağılımdan nasıl farklılaştıkça ve örnek büyüklüğü arttıkça, P-değerleri sola toplanmaya başlar, ancak bunların uzanan bir "kuyruğu" vardır . Bu güç çalışmalarının karakteristiğidir. Testin bir kumar olduğunu gösterir : sıfır hipotezi açıkça ihlal edildiğinde ve örneklem büyüklüğümüz oldukça büyük olsa bile, resmi testimiz önemli bir sonuç vermeyebilir.1

  • Sağ altta, serbestlik derecesine sahip bir öğrenci dağılımından (Cauchy dağılımı) örneğin alındığı aşırı uçta bile , güç değildir : şansı vardır iid Cauchy değişkenli bir numunenin (yani güven ile) seviyesinde Normal'den önemli ölçüde farklı kabul edilmeyeceğini unutmayın .201110086.57=13%205%95%

  • Bu histogramlardaki çubukların daha fazla veya daha azını renklendirerek, seçtiğimiz herhangi bir değerinde gücü değerlendirebiliriz . Örneğin, gücü olarak değerlendirmek için , her bir histogramdaki sol iki rengi ve alanını toplamın bir kısmı olarak tahmin edin.αα=0.10

    (Bu, bu rakamla küçük değerleri için çok iyi çalışmaz . Uygulamada, histogramlar yalnızca kullanılacak olan aralıkta, belki de ila arasında P değerleriyle sınırlanır ve güç aşağı görsel olarak değerlendirilebilmesi için yeterli ayrıntılı olarak göstermek ve hatta . (Yani ne seçeneğine içindir.) bile daha fazla ayrıntı sağlayabilir simülasyon sonuçlarının sonrası işleme.)α0.05020%α=0.01α=0.005breakssim


Aslında, üç kod satırından ne kadar çok şey çıkarılabileceği eğlencelidir: biri belirli bir dağıtımdan iid örneklerini simüle etmek, biri boş bir dağıtım dizisine uygulamak için üçüncüsü ve bunu uygulamak için üçüncüsü bir dizi alternatif dağılım. Bunlar herhangi bir güç analizine giren üç adımdır: gerisi sadece sonuçları özetlemek ve yorumlamaktır.


1

(Bir yorumdan daha fazlası, belki de tam bir cevap değil)

[I] örneklem büyüklüğü arttıkça boş reddetme olasılığının azalması beklenir

Taraflı testlerin (uyum iyiliğinde nadir olmayan, dikkate alınmaya değer) düşüncelerini bir kenara bırakarak, dikkate almak isteyebileceğiniz ret oranı ile ilgili üç durum vardır:

1) sıfırdan simüle ederken reddetme oranı (sorunuzda olduğu gibi)

Burada, ret oranı önem düzeyinde veya yakınında olmalıdır, bu nedenle, önem düzeyini sabit tutarsanız, n arttıkça reddetme oranı azalmaz , ancak / yakınında kalırα.

2) bazı alternatiflerden simülasyon yaparken reddetme oranı

Burada n arttıkça ret oranı da artmalıdır.

3) bazı gerçek verilerin toplanması için ret oranı

Pratik olarak, sıfır aslında hiçbir zaman doğru değildir ve gerçek veriler normal olmayan miktarların bir miktar karışımına sahip olacaktır (test istatistiği tarafından ölçüldüğü gibi). Normallik derecesi örnek büyüklüğü ile ilgili değilse, n arttıkça ret oranı da artmalıdır.

Aslında, bu durumların hiçbirinde, numune boyutuyla birlikte reddetme oranının azaldığını görmemeliyiz.

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.