Hangi p-değerlerinin doğru olduğunu görmek için (eğer varsa), boş hipotezin doğru olduğu simüle edilmiş veriler için hesaplamayı tekrarlayalım. Mevcut ayarda, hesaplama (x, y) verilerine en az karedir ve sıfır hipotezi eğimin sıfır olmasıdır. Soruda dört x değeri 1,2,3,4 vardır ve tahmini hata 0,7 civarındadır, bu yüzden bunu simülasyona dahil edelim.
İşte, tanıdık olmayanlar bile herkes tarafından anlaşılabilir olarak yazılan kurulum R
.
beta <- c(intercept=0, slope=0)
sigma <- 0.7
x <- 1:4
y.expected <- beta["intercept"] + beta["slope"] * x
Simülasyonu, bağımsız hataları oluşturduğunu ekler y.expected
, çağıran lm
uygun hale getirilmesi için, ve summary
p-değerleri hesaplamak için. Bu verimsiz olmasına rağmen , kullanılan gerçek kodu test ediyor. Saniyede binlerce yineleme yapabiliriz:
n.sim <- 1e3
set.seed(17)
data.simulated <- matrix(rnorm(n.sim*length(y.expected), y.expected, sigma), ncol=n.sim)
slope.p.value <- function(e) coef(summary(lm(y.expected + e ~ x)))["x", "Pr(>|t|)"]
p.values <- apply(data.simulated, 2, slope.p.value)
Doğru olarak hesaplanan p değerleri01 , sıfır hipotezi doğru olduğunda ile arasında tekdüze rastgele sayılar gibi davranacaktır . Bu p-değerlerinin bir histogramı bunu görsel olarak kontrol etmemize izin verir - kabaca yatay görünüyor mu - ve kare şeklinde tekdüzelik testi daha resmi bir değerlendirmeye izin verecektir. İşte histogram:
h <- hist(p.values, breaks=seq(0, 1, length.out=20))
ve bunun yeterince üniform olmadığını düşünebilenler için, burada ki kare testi:
chisq.test(h$counts)
X kare = 13.042, df = 18, p değeri = 0.7891
Bu testteki büyük p değeri, bu sonuçların beklenen tekdüzelik ile tutarlı olduğunu göstermektedir. Başka bir deyişle, lm
doğrudur.
P-değerleri arasındaki farklar nereden geliyor? Bir p değerini hesaplamak için çağrılabilecek olası formülleri kontrol edelim. Her durumda test istatistiği
|t|=∣∣∣∣β^−0se(β^)∣∣∣∣,
tahmin edilen katsayı ile varsayılmış (ve doğru değer) arasındaki tutarsızlığa eşittir ve katsayı tahmininin standart hatasının bir katı olarak ifade edilir. Soruda bu değerlerβ^β=0
|t|=∣∣∣3.050.87378∣∣∣=3.491
kesişme tahmini için ve
|t|=∣∣∣−1.380.31906∣∣∣=4.321
eğim tahmini için. Genellikle bunlar , serbestlik derecesi parametresi (veri miktarı) eksi (tahmini katsayıların sayısı ) olan Student dağılımı ile karşılaştırılır . Kesişim noktası için hesaplayalım:t42
pt(-abs(3.05/0.87378), 4-2) * 2
[1] 0.0732
(Bu hesaplama çarpar sol kuyruklu Student , olasılık , bu bir test olması nedeniyle karşı iki-taraflı bir alternatif .) Bu kabul eder çıkış.t2H0:β=0HA:β≠0lm
Alternatif bir hesaplama, Student dağılımına yaklaşmak için standart Normal dağılımı kullanır . Bakalım ne üretiyor:t
pnorm(-abs(3.05/0.87378)) * 2
[1] 0.000482
Tabii ki: istatistiğinin biglm
boş dağılımının standart Normal olduğunu varsayar . Bu ne kadar hata? Kullanarak, önceki simülasyon yeniden çalışan yerine p-değerleri, bu histogram verir:tbiglm
lm
Bu p-değerlerinin neredeyse% 18'i standart bir "anlamlılık" eşiği olan küçüktür . Bu çok büyük bir hata.0.05
Bu küçük soruşturmadan edinebileceğimiz bazı dersler:
Küçük veri kümeleri ile asimptotik analizlerden (standart Normal dağılım gibi) elde edilen yaklaşık değerleri kullanmayın.
Yazılımınızı tanıyın.
pt(-3.491, 2)*2
içinpnorm(-3.491)*2
, örneğin.