Testy hipotez w ekonometrii

Streszczenie

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

  1. Zakładamy, że “nic ciekawego się nie dzieje” — hipoteza zerowa $H_0$
  2. Pytamy: gdyby $H_0$ była prawdziwa, jak prawdopodobne byłoby to co obserwujemy?
  3. 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 decyzjaBłą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.


Następnie: Heteroskedastyczność i odporne błędy standardowe

📚 Zasoby do nauki
💻 Kod źródłowy

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