Щоб побачити, які p-значення є правильними (якщо вони є), повторимо обчислення для імітованих даних, у яких нульова гіпотеза є істинною. У цьому параметі обчислення - це найменші квадрати, придатні до даних (x, y), і нульовою гіпотезою є те, що нахил дорівнює нулю. У запитанні є чотири значення x 1,2,3,4, а розрахункова помилка - близько 0,7, тому давайте включити це в моделювання.
Ось програма, написана для того, щоб вона була зрозумілою всім, навіть незнайомим R
.
beta <- c(intercept=0, slope=0)
sigma <- 0.7
x <- 1:4
y.expected <- beta["intercept"] + beta["slope"] * x
Моделювання генерує незалежні помилки, додає їх y.expected
, викликає lm
для підгонки та summary
обчислення р-значень. Хоча це і малоефективно, він протестує фактичний код, який використовувався. Ми ще можемо робити тисячі ітерацій за секунду:
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)
Правильно обчислені p-значення будуть діяти як однакові випадкові числа між і101 коли нульова гіпотеза є істинною. Гістограма цих p-значень дозволить нам перевірити це візуально - чи виглядає воно приблизно горизонтально - і тест на однорідність у квадраті дозволить отримати більш формальну оцінку. Ось гістограма:
h <- hist(p.values, breaks=seq(0, 1, length.out=20))
і для тих, хто може уявити, що це недостатньо рівномірно, ось тест чи-квадрата:
chisq.test(h$counts)
X-квадрат = 13,042, df = 18, p-значення = 0,7891
Велике значення р у цьому тесті показує, що ці результати відповідають очікуваній рівномірності. Іншими словами, lm
правильно.
Звідки беруться відмінності в p-значеннях? Давайте перевіримо ймовірні формули, які можуть бути викликані для обчислення р-значення. У будь-якому випадку статистика тесту буде
|t|=∣∣∣∣β^−0se(β^)∣∣∣∣,
дорівнює невідповідності між розрахунковим коефіцієнтом і гіпотезованою (і правильним значенням) , вираженою кратною стандартній похибці оцінки коефіцієнта. У питанні ці значення є ; & beta=0β^β=0
|t|=∣∣∣3.050.87378∣∣∣=3.491
для оцінки перехоплення та
|t|=∣∣∣−1.380.31906∣∣∣=4.321
для оцінки схилу. Зазвичай їх можна порівняти з розподілом Стьюдента , показник ступеня свободи якого (кількість даних) мінус (кількість оцінених коефіцієнтів). Розрахуємо його для перехоплення:4 2t42
pt(-abs(3.05/0.87378), 4-2) * 2
[1] 0.0732
(Цей обчислення помножує лівобічну ймовірність студента на оскільки це тест проти двосторонньої альтернативи ) Він узгоджується з результатом.2 H 0 : β = 0 H A : β ≠ 0t2H0:β=0HA:β≠0lm
Альтернативний розрахунок використовував би стандартний розподіл Normal для наближення розподілу Student . Давайте подивимося, що воно виробляє:t
pnorm(-abs(3.05/0.87378)) * 2
[1] 0.000482
Звичайно: biglm
передбачає, що нульовий розподіл статистики є стандартним нормальним. Скільки це помилка? Повторне виконання попереднього моделювання з використанням замість даної гістограми значення p:tbiglm
lm
Майже 18% цих p-значень менше , стандартний поріг "значущості". Це величезна помилка.0.05
Деякі уроки, які ми можемо навчитись із цього маленького розслідування, є:
Не використовуйте наближення, отримані з асимптотичного аналізу (наприклад, стандартного нормального розподілу) з невеликими наборами даних.
Знайте своє програмне забезпечення.
pt(-3.491, 2)*2
зpnorm(-3.491)*2
, наприклад.