Testy hipotez w ekonometrii
Jak formułować i testować hipotezy: test t, F, chi-kwadrat, p-wartość, błędy I i II rodzaju
Definicja testu hipotez
Test hipotez to procedura decyzyjna: mamy dane i chcemy zdecydować, czy obserwowany efekt jest statystycznie znaczący (prawdziwy), czy tylko przypadkowy szum.
Logika wnioskowania
- Zakładamy, że “nic ciekawego się nie dzieje” — hipoteza zerowa $H_0$
- Pytamy: gdyby $H_0$ była prawdziwa, jak prawdopodobne byłoby to co obserwujemy?
- Jeśli bardzo mało prawdopodobne → odrzucamy $H_0$
To rozumowanie podobne do dowodu przez sprzeczność — zakładamy coś i szukamy, czy dane temu zaprzeczają.
Hipoteza zerowa i alternatywna
$H_0$ (hipoteza zerowa): twierdzenie, które testujemy. Zazwyczaj “brak efektu”, “brak związku”, “parametr równy zero”.
$H_1$ (hipoteza alternatywna): co chcemy udowodnić. To co obserwujemy, gdyby $H_0$ była fałszywa.
Przykłady
| Co testujemy | $H_0$ | $H_1$ |
|---|---|---|
| Edukacja wpływa na dochód | $\beta_{edukacja} = 0$ | $\beta_{edukacja} \neq 0$ |
| Nowy lek jest skuteczniejszy | $\mu_{nowy} = \mu_{stary}$ | $\mu_{nowy} > \mu_{stary}$ |
| Wpływ reklamy jest dodatni | $\beta_{reklama} \leq 0$ | $\beta_{reklama} > 0$ |
Testy jednostronne vs. dwustronne
- Dwustronny ($H_1: \beta \neq 0$): nie wiemy jakiego znaku oczekujemy
- Jednostronny ($H_1: \beta > 0$ lub $H_1: \beta < 0$): mamy teorię o kierunku
W ekonometrii domyślnie używamy testów dwustronnych dla ostrożności.
Błędy I i II rodzaju
| $H_0$ prawdziwa | $H_0$ fałszywa | |
|---|---|---|
| Odrzucamy $H_0$ | Błąd I rodzaju (False Positive) | Poprawna decyzja |
| Nie odrzucamy $H_0$ | Poprawna decyzja | Błąd II rodzaju (False Negative) |
$\alpha$ = P(błąd I rodzaju) — poziom istotności. Zazwyczaj 0.05 lub 0.01.
$\beta$ = P(błąd II rodzaju) — moc testu = $1 - \beta$.
Dylemat: zmniejszenie $\alpha$ zwiększa $\beta$ i odwrotnie. Wybór $\alpha = 0.05$ to konwencja — dopuszczamy 5% szansę odrzucenia prawdziwej $H_0$.
P-wartość
P-wartość to prawdopodobieństwo otrzymania wyniku tak ekstremalnego lub bardziej ekstremalnego jak obserwowany, zakładając że $H_0$ jest prawdziwa.
$$p = P(\text{wynik} \geq |t_{obs}| \mid H_0 \text{ prawdziwa})$$- $p < \alpha$ → odrzucamy $H_0$ (wynik “statystycznie istotny”)
- $p > \alpha$ → brak podstaw do odrzucenia $H_0$
Częste nieporozumienia
- P-wartość NIE jest prawdopodobieństwem że $H_0$ jest prawdziwa
- P-wartość NIE jest prawdopodobieństwem popełnienia błędu
- Mała p-wartość NIE oznacza dużego efektu praktycznego
Przykład interpretacji
W regresji płac: $\hat{\beta}_{edukacja} = 3200$ zł, $SE = 450$, $p = 0.0003$.
Interpretacja: “Efekt edukacji na płace jest statystycznie istotny (p < 0.001). Szacujemy, że każdy dodatkowy rok edukacji wiąże się z dochodem wyższym o 3 200 zł.”
Test t
Test t dla jednego parametru regresji
Testujemy $H_0: \beta_j = 0$.
Statystyka:
$$t = \frac{\hat{\beta}_j}{SE(\hat{\beta}_j)} \sim t_{n-k-1}$$Decyzja:
- $|t| > t_{\alpha/2, n-k-1}$ → odrzucamy $H_0$
- Odpowiednik: $p < \alpha$
Reguła kciuka: $|t| > 2$ zazwyczaj jest istotne przy $n > 30$ na poziomie 5%.
Test t dla hipotezy $H_0: \beta_j = c$
Gdy testujemy konkretną wartość (nie tylko zero):
$$t = \frac{\hat{\beta}_j - c}{SE(\hat{\beta}_j)}$$Przykład: Testujemy czy elastyczność cenowa = -1:
$$t = \frac{\hat{\beta} - (-1)}{SE(\hat{\beta})}$$Test F
Test F dla całego modelu
$H_0: \beta_1 = \beta_2 = \cdots = \beta_k = 0$ (model nie wyjaśnia niczego)
$$F = \frac{R^2/k}{(1-R^2)/(n-k-1)} = \frac{(SST-SSR)/k}{SSR/(n-k-1)}$$Duże $F$ → model jako całość jest istotny statystycznie.
Test F dla podzbioru zmiennych
Chcemy sprawdzić, czy dodanie $q$ zmiennych poprawia model. Porównujemy model ograniczony (bez tych zmiennych) z nieograniczonym (ze wszystkimi):
$$F = \frac{(SSR_R - SSR_{UR})/q}{SSR_{UR}/(n-k-1)} \sim F_{q, n-k-1}$$Przykład: Czy dodanie zmiennych $x_3$ i $x_4$ istotnie poprawia model?
model_ograniczony <- lm(y ~ x1 + x2, data)
model_pelny <- lm(y ~ x1 + x2 + x3 + x4, data)
anova(model_ograniczony, model_pelny)
Związek F z t
$$F_{1, n-k-1} = t_{n-k-1}^2$$Dla pojedynczego ograniczenia test F i test t dają ten sam wynik.
Przedziały ufności
Zamiast odpowiadać “tak/nie”, przedział ufności daje zakres wartości:
$$\hat{\beta}_j \pm t_{\alpha/2, n-k-1} \cdot SE(\hat{\beta}_j)$$Interpretacja: Jeśli wielokrotnie pobieramy próby i liczymy takie przedziały, 95% z nich zawiera prawdziwą wartość $\beta_j$.
Przedział ufności i test t dają równoważne wnioski:
- Jeśli $H_0: \beta_j = 0$ jest odrzucona na poziomie 5%, to 0 nie leży w 95% CI.
Praktyczne wskazówki
Istotność statystyczna ≠ istotność praktyczna
Duże próby ($n = 100\,000$) sprawią, że nawet mikroskopijny efekt jest “statystycznie istotny”. Zawsze pytaj: Czy efekt jest duży ekonomicznie?
Wielokrotne testowanie (multiple testing)
Jeśli testujesz 20 hipotez przy $\alpha = 0.05$, spodziewaj się, że 1 będzie fałszywie istotna przez przypadek.
Poprawka Bonferroniego: używaj $\alpha' = \alpha/m$ dla $m$ testów.
Znaczące zmienne vs. istotne zmienne
Zmienna może być:
- Statystycznie istotna (mała p-wartość) ale ekonomicznie trywialna
- Ekonomicznie ważna ale nieistotna statystycznie (za mała próba)
Zawsze raportuj oba: p-wartość i wielkość efektu.
- Khan Academy — Significance tests
- YouTube: StatQuest — p-values
- Podręcznik: Wooldridge, Introductory Econometrics (rozdział 4)
R:
# Test t dla jednej próby
x <- c(2.1, 2.5, 2.3, 2.8, 2.2, 2.6, 2.4)
t.test(x, mu = 2.0) # H0: srednia = 2.0
# Test t dla regresji
model <- lm(mpg ~ wt + hp, data = mtcars)
summary(model) # pokazuje t i p-wartość dla każdego coeff
# Test F dla modelu
anova(lm(mpg ~ 1, data = mtcars), model)
# Test Walda — ograniczenia liniowe
library(car)
linearHypothesis(model, c("wt = 0", "hp = 0"))
Python:
import numpy as np
from scipy import stats
import statsmodels.formula.api as smf
# Test t dla jednej próby
x = [2.1, 2.5, 2.3, 2.8, 2.2, 2.6, 2.4]
t_stat, p_val = stats.ttest_1samp(x, 2.0)
print(f"t = {t_stat:.3f}, p = {p_val:.4f}")
# Regresja z testami
import pandas as pd
mtcars = pd.read_csv("mtcars.csv")
model = smf.ols('mpg ~ wt + hp', data=mtcars).fit()
print(model.summary()) # t-testy i F-test