Aby zobaczyć, które wartości p są poprawne (jeśli jedno z nich), powtórzmy obliczenia dla danych symulowanych, w których hipoteza zerowa jest prawdziwa. W obecnym ustawieniu obliczenia są dopasowane do danych (x, y) metodą najmniejszych kwadratów, a hipotezą zerową jest to, że nachylenie wynosi zero. W pytaniu są cztery wartości x 1,2,3,4, a szacowany błąd wynosi około 0,7, więc uwzględnijmy to w symulacji.
Oto konfiguracja napisana, aby była zrozumiała dla wszystkich, nawet tych, którzy się jej nie znają R
.
beta <- c(intercept=0, slope=0)
sigma <- 0.7
x <- 1:4
y.expected <- beta["intercept"] + beta["slope"] * x
Symulacja generuje niezależne błędy, dodaje je y.expected
, wywołuje lm
w celu dopasowania i summary
obliczenia wartości p. Chociaż jest to nieefektywne, sprawdza rzeczywisty użyty kod. Nadal możemy wykonać tysiące iteracji w ciągu sekundy:
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)
Prawidłowo obliczone wartości p będą działać jak jednolite liczby losowe od do101 gdy hipoteza zerowa jest prawdziwa. Histogram tych wartości p pozwoli nam to sprawdzić wizualnie - czy wygląda mniej więcej poziomo - a test jednolitości chi-kwadrat pozwoli na bardziej formalną ocenę. Oto histogram:
h <- hist(p.values, breaks=seq(0, 1, length.out=20))
a dla tych, którzy mogą sobie wyobrazić, że to nie jest wystarczająco jednolite, oto test chi-kwadrat:
chisq.test(h$counts)
X-kwadrat = 13,042, df = 18, wartość p = 0,7891
Duża wartość p w tym teście pokazuje, że wyniki te są zgodne z oczekiwaną jednorodnością. Innymi słowy, lm
jest poprawny.
Skąd zatem biorą się różnice w wartościach p? Sprawdźmy prawdopodobne formuły, które można wywołać w celu obliczenia wartości p. W każdym razie statystyki testowe będą
|t|=∣∣∣∣β^−0se(β^)∣∣∣∣,
równa rozbieżności między oszacowanym współczynnikiem a hipotetyczną (i poprawną wartością) , wyrażoną jako wielokrotność błędu standardowego oszacowania współczynnika. W pytaniu są to wartości beta=0β^β=0
|t|=∣∣∣3.050.87378∣∣∣=3.491
dla oszacowania przechwytywania i
|t|=∣∣∣−1.380.31906∣∣∣=4.321
do oszacowania nachylenia. Zwykle byłyby one porównywane z rozkładem Studenta którego parametr stopni swobody wynosi (ilość danych) minus (liczba oszacowanych współczynników). Obliczmy to dla przechwytywania:4 2t42
pt(-abs(3.05/0.87378), 4-2) * 2
[1] 0.0732
(To obliczenie zwielokrotnia prawdopodobieństwo -Studenta po lewej stronie przez ponieważ jest to test stosunku do dwustronnej alternatywy ). Zgadza się z wynikiem.2t2H A : β ≠ 0H0:β=0HA:β≠0lm
Alternatywne obliczenia wykorzystują standardowy rozkład normalny do przybliżenia rozkładu Studenta . Zobaczmy, co produkuje:t
pnorm(-abs(3.05/0.87378)) * 2
[1] 0.000482
Rzeczywiście: biglm
zakłada, że rozkład zerowy statystyki jest standardowy Normalny. Ile to jest błędu? Ponowne uruchomienie poprzedniej symulacji zamiast zamiast tego daje histogram wartości p:tbiglm
lm
Prawie 18% tych wartości p jest mniejszych niż , co stanowi standardowy próg „istotności”. To ogromny błąd.0.05
Oto niektóre lekcje, których możemy się nauczyć z tego małego dochodzenia:
Nie używaj przybliżeń pochodzących z analiz asymptotycznych (takich jak standardowy rozkład normalny) z małymi zestawami danych.
Poznaj swoje oprogramowanie.
pt(-3.491, 2)*2
dopnorm(-3.491)*2
, na przykład.