Testy hipotez w ekonometrii — logika, rozkłady i dowody
Pełny wykład testowania hipotez: logika wnioskowania, błędy I i II rodzaju i funkcja mocy (z wykresem 3D), konstrukcja i rozkład statystyki t, test F dla modelu i podzbioru zmiennych, test χ², dowód tożsamości F = t², równoważność z przedziałem ufności — z wyprowadzeniami, wykresami w skali szarości i szczegółowo policzonymi przykładami oraz kodem R i Python.
Test hipotez jest sformalizowaną procedurą rozstrzygania, czy zaobserwowany w danych efekt jest na tyle wyraźny, by uznać go za realny, czy też mieści się w granicach przypadkowego szumu. Rozważymy całą jego konstrukcję: od logiki wnioskowania, przez rozkłady statystyk testowych i ich wyprowadzenia, po praktyczne pułapki interpretacyjne. Każde twierdzenie zilustrujemy pełnym rachunkiem.
Logika wnioskowania statystycznego
Punktem wyjścia jest hipoteza zerowa $H_0$ — twierdzenie o braku efektu, które przyjmujemy tymczasowo za prawdziwe. Następnie pytamy: gdyby $H_0$ rzeczywiście obowiązywała, jak nieprawdopodobne byłyby dane, które otrzymaliśmy? Jeśli okażą się one skrajnie nieprawdopodobne, uznajemy to za przesłankę przeciwko $H_0$ i ją odrzucamy. Rozumowanie to jest probabilistycznym odpowiednikiem dowodu nie wprost.
- Hipoteza zerowa $H_0$ — twierdzenie poddawane próbie, zwykle postaci „brak efektu" (np. $\beta_j = 0$, brak związku, równość średnich). Pełni rolę domniemania, które dane mają obalić albo nie.
- Hipoteza alternatywna $H_1$ — to, co przyjmujemy, gdy odrzucimy $H_0$ (np. $\beta_j \neq 0$).
Test nigdy nie dowodzi $H_0$; może ją jedynie odrzucić albo stwierdzić brak podstaw do odrzucenia. Niemożność odrzucenia nie jest dowodem prawdziwości — to brak dostatecznych przesłanek przeciwnych.
Hipotezę alternatywną formułujemy jako dwustronną ($H_1:\beta_j \neq c$), gdy nie zakładamy kierunku odchylenia, albo jednostronną ($H_1:\beta_j > c$ lub $H_1:\beta_j < c$), gdy teoria narzuca kierunek. W ekonometrii domyślnie stosujemy testy dwustronne — są ostrożniejsze, bo nie wykluczają z góry żadnego kierunku.
| Pytanie merytoryczne | $H_0$ | $H_1$ | Typ |
|---|---|---|---|
| Czy edukacja wpływa na dochód | $\beta_{\text{edu}} = 0$ | $\beta_{\text{edu}} \neq 0$ | dwustronny |
| Czy elastyczność cenowa wynosi $-1$ | $\beta = -1$ | $\beta \neq -1$ | dwustronny |
| Czy reklama ma wpływ dodatni | $\beta_{\text{rek}} \le 0$ | $\beta_{\text{rek}} > 0$ | jednostronny |
Błędy I i II rodzaju oraz moc testu
Każda decyzja testowa może być obarczona błędem jednego z dwóch rodzajów: można odrzucić prawdziwą hipotezę zerową (fałszywy alarm) albo nie odrzucić hipotezy zerowej, gdy jest ona fałszywa (przeoczenie realnego efektu).
| $H_0$ prawdziwa | $H_0$ fałszywa | |
|---|---|---|
| Odrzucamy $H_0$ | błąd I rodzaju (prawd. $\alpha$) | decyzja poprawna (prawd. $1-\beta$) |
| Nie odrzucamy $H_0$ | decyzja poprawna (prawd. $1-\alpha$) | błąd II rodzaju (prawd. $\beta$) |
- $\alpha = P(\text{odrzucenie} \mid H_0)$ — poziom istotności, z góry ustalony (zwykle $0{,}05$ lub $0{,}01$).
- $\beta = P(\text{nieodrzucenie} \mid H_1)$ — prawdopodobieństwo przeoczenia realnego efektu.
- Moc testu $= 1-\beta$ — prawdopodobieństwo wykrycia efektu, gdy ten istnieje.
Wartość krytyczna $c$ rozdziela obszar odrzucenia od obszaru nieodrzucenia. Przesuwając ją, zmniejszamy jeden błąd kosztem drugiego: obniżenie $\alpha$ (ostrzejszy próg) podnosi $\beta$. Ilustruje to nakładanie się rozkładu statystyki przy $H_0$ i przy $H_1$.
Moc rośnie wraz z wielkością prawdziwego efektu $\delta$, z liczebnością próby $n$ oraz ze spadkiem wariancji błędu. Zależność mocy od efektu, dla kilku liczebności, ma kształt krzywej narastającej do jedności.
Łącząc oba czynniki, otrzymujemy moc jako powierzchnię nad płaszczyzną $(\delta, n)$ — rośnie ona monotonicznie w obu kierunkach.
p-wartość
Zamiast porównywać statystykę z wartością krytyczną, można wyrazić siłę przesłanki przeciwko $H_0$ jednym, ciągłym wskaźnikiem.
p-wartość to prawdopodobieństwo otrzymania wyniku co najmniej tak skrajnego jak zaobserwowany, przy założeniu prawdziwości $H_0$:
$$ p = P\big(|T| \ge |t_{\text{obs}}| \;\big|\; H_0\big) \quad\text{(test dwustronny)}. $$Regułą decyzyjną jest: $p < \alpha \Rightarrow$ odrzucamy $H_0$. Mała p-wartość oznacza, że dane są trudne do pogodzenia z hipotezą zerową.
Czego p-wartość nie oznacza.
- p-wartość nie jest prawdopodobieństwem, że $H_0$ jest prawdziwa — warunkujemy na $H_0$, a nie o $H_0$.
- p-wartość nie jest prawdopodobieństwem popełnienia błędu w danym rozstrzygnięciu.
- Mała p-wartość nie świadczy o dużym efekcie praktycznym — przy ogromnej próbie nawet znikomy efekt daje $p \approx 0$. Istotność statystyczna to nie to samo co istotność merytoryczna.
Test t dla pojedynczego parametru
Najczęstszym zadaniem jest sprawdzenie, czy współczynnik regresji różni się od ustalonej wartości $c$ (zwykle zera). Przyjmujemy konwencję, że $k$ oznacza liczbę szacowanych parametrów łącznie z wyrazem wolnym, więc liczba stopni swobody reszt wynosi $n-k$ (w części podręczników zapisywana jako $n-k-1$, gdy $k$ liczy tylko zmienne objaśniające).
Przy założeniach klasycznego modelu z normalnością składnika losowego, dla hipotezy $H_0:\beta_j = c$ statystyka
$$ t = \frac{\hat\beta_j - c}{\operatorname{SE}(\hat\beta_j)},\qquad \operatorname{SE}(\hat\beta_j)=s\sqrt{[(\mathbf{X}^\top\mathbf{X})^{-1}]_{jj}} $$ma rozkład t Studenta o $n-k$ stopniach swobody. Odrzucamy $H_0$ na poziomie $\alpha$, gdy $|t| > t_{n-k,\,\alpha/2}$.
- Licznik standaryzujemy do rozkładu normalnego. Z [własności estymatora MNK](/ekonometria/mnk-wyprowadzenie/) $\hat\beta_j\sim\mathcal{N}\big(\beta_j,\ \sigma^2 v_{jj}\big)$, gdzie $v_{jj}=[(\mathbf{X}^\top\mathbf{X})^{-1}]_{jj}$. Przy prawdziwej $H_0$ ($\beta_j=c$): $$ Z=\frac{\hat\beta_j-c}{\sigma\sqrt{v_{jj}}}\sim\mathcal{N}(0,1). $$
- Wariancja błędu jest nieznana. Zastępujemy $\sigma$ jej estymatorem $s=\sqrt{\mathbf{e}^\top\mathbf{e}/(n-k)}$. Kluczowy fakt: $\dfrac{(n-k)s^2}{\sigma^2}\sim\chi^2_{n-k}$ oraz $s^2$ jest **niezależne** od $\hat\beta_j$ (reszty i estymator są ortogonalne, a przy normalności — niezależne).
- Iloraz daje rozkład t. Z definicji rozkładu Studenta, zmienna $\mathcal{N}(0,1)$ podzielona przez pierwiastek z niezależnej zmiennej $\chi^2$ unormowanej przez stopnie swobody: $$ t=\frac{\hat\beta_j-c}{s\sqrt{v_{jj}}}=\frac{Z}{\sqrt{\dfrac{(n-k)s^2/\sigma^2}{\,n-k\,}}}=\frac{\mathcal{N}(0,1)}{\sqrt{\chi^2_{n-k}/(n-k)}}\sim t_{n-k}. $$ Czynnik $\sigma$ skraca się — statystyka nie zależy od nieznanej wariancji.
Mierzymy zawartość substancji w siedmiu próbkach: $x=(2{,}1;\ 2{,}5;\ 2{,}3;\ 2{,}8;\ 2{,}2;\ 2{,}6;\ 2{,}4)$. Norma przewiduje wartość $\mu_0=2{,}0$. Testujemy $H_0:\mu=2{,}0$ wobec $H_1:\mu\neq 2{,}0$.
- Średnia: $\bar x=\dfrac{16{,}9}{7}=2{,}4143$.
- Odchylenie standardowe próby: $s=\sqrt{\dfrac{1}{n-1}\sum_i(x_i-\bar x)^2}=0{,}2410$.
- Błąd standardowy średniej: $\operatorname{SE}=\dfrac{s}{\sqrt{n}}=\dfrac{0{,}2410}{\sqrt 7}=0{,}0911$.
- Statystyka: $t=\dfrac{2{,}4143-2{,}0}{0{,}0911}=4{,}548$, przy $n-1=6$ stopniach swobody.
- Decyzja: wartość krytyczna $t_{6;\,0{,}025}=2{,}447$. Ponieważ $4{,}548>2{,}447$ (równoważnie $p=0{,}0039<0{,}05$), odrzucamy $H_0$ — średnia istotnie odbiega od normy.
Dla regresji z przykładu liczbowego MNK ($n=5$, $\hat\beta_1=0{,}6$, $\operatorname{SE}(\hat\beta_1)=\sqrt{0{,}08}=0{,}2828$, $n-k=3$) rozważymy dwie hipotezy.
(a) $H_0:\beta_1=0$ (czy zmienna w ogóle działa):
$$ t=\frac{0{,}6-0}{0{,}2828}=2{,}121,\qquad t_{3;\,0{,}025}=3{,}182. $$Ponieważ $2{,}121<3{,}182$ ($p=0{,}124$), nie ma podstaw do odrzucenia $H_0$ — przy tak małej próbie efekt nie jest istotny.
(b) $H_0:\beta_1=1$ (czy nachylenie równa się jeden):
$$ t=\frac{0{,}6-1}{0{,}2828}=-1{,}414,\qquad |{-1{,}414}|<3{,}182\ (p=0{,}252). $$Również brak podstaw do odrzucenia. Mała próba daje szerokie przedziały i słabą moc — obie wartości, $0$ i $1$, pozostają zgodne z danymi.
Test F — wiele ograniczeń naraz
Test $t$ dotyczy jednego parametru. Gdy chcemy sprawdzić $q$ ograniczeń jednocześnie (np. czy grupa zmiennych jest łącznie nieistotna), używamy testu $F$, który porównuje model ograniczony (z nałożonymi ograniczeniami) z nieograniczonym.
Dla $H_0$ nakładającej $q$ liniowych ograniczeń, statystyka
$$ F=\frac{(\mathrm{RSS}_R-\mathrm{RSS}_{UR})/q}{\mathrm{RSS}_{UR}/(n-k)}\sim F_{q,\,n-k} $$ma rozkład $F$ o $(q,\ n-k)$ stopniach swobody, gdzie $\mathrm{RSS}_R$ i $\mathrm{RSS}_{UR}$ to sumy kwadratów reszt modelu ograniczonego i nieograniczonego. Duże $F$ świadczy, że ograniczenia istotnie pogarszają dopasowanie, więc je odrzucamy.
Dla testu całego modelu ($H_0:\beta_1=\dots=\beta_{k-1}=0$, model ograniczony to sama stała) wzór sprowadza się do postaci przez $R^2$:
$$ F=\frac{R^2/(k-1)}{(1-R^2)/(n-k)}\sim F_{k-1,\,n-k}. $$Dla regresji z przykładu MNK ($n=5$, $k=2$) rozkład wariancji daje $\mathrm{ESS}=3{,}6$ oraz $\mathrm{RSS}=2{,}4$ (zob. R²). Hipoteza $H_0:\beta_1=0$ jako test całego modelu:
$$ F=\frac{\mathrm{ESS}/(k-1)}{\mathrm{RSS}/(n-k)}=\frac{3{,}6/1}{2{,}4/3}=\frac{3{,}6}{0{,}8}=4{,}5,\qquad F_{1,3;\,0{,}05}=10{,}13. $$Ponieważ $4{,}5<10{,}13$ ($p=0{,}124$), nie odrzucamy $H_0$. Zauważmy, że $F=4{,}5=2{,}121^2=t_1^2$ — wynik identyczny z testem $t$ z przykładu 2(a).
Bierzemy model z dwiema zmiennymi z przykładu o zmiennej pominiętej: $y$ na $\{1,x_1,x_2\}$. Testujemy $H_0:\beta_2=0$ (czy $x_2$ jest zbędne), czyli $q=1$, $n=5$, $k=3$, $n-k=2$.
- Model nieograniczony $y\sim\{1,x_1,x_2\}$: $\mathrm{RSS}_{UR}=\tfrac{87}{160}=0{,}54375$.
- Model ograniczony $y\sim\{1,x_1\}$: $\mathrm{RSS}_R=5{,}1$.
Ponieważ $16{,}76<18{,}51$ ($p=0{,}055$), na granicy nie odrzucamy $H_0$ na poziomie 5%. Kontrola tożsamości: $\operatorname{SE}(\hat\beta_2)=\sqrt{\tfrac{87}{320}\cdot\tfrac{5}{32}}=0{,}2061$, więc $t_{\beta_2}=\tfrac{0{,}84375}{0{,}2061}=4{,}094$ i $t_{\beta_2}^2=16{,}76=F$ — zgodnie z twierdzeniem poniżej.
- Postać testu F przez formę kwadratową. Dla $q$ ograniczeń $\mathbf{R}\boldsymbol\beta=\mathbf{r}$ zachodzi równoważnie $$ F=\frac{(\mathbf{R}\hat{\boldsymbol\beta}-\mathbf{r})^\top[\mathbf{R}(\mathbf{X}^\top\mathbf{X})^{-1}\mathbf{R}^\top]^{-1}(\mathbf{R}\hat{\boldsymbol\beta}-\mathbf{r})}{q\,s^2}. $$
- Przypadek $q=1$. Pojedyncze ograniczenie $\beta_j=c$ to $\mathbf{R}=\mathbf{e}_j^\top$ (wektor wybierający $j$-tą współrzędną) oraz $r=c$. Wtedy $\mathbf{R}(\mathbf{X}^\top\mathbf{X})^{-1}\mathbf{R}^\top=v_{jj}$ jest skalarem, a forma kwadratowa upraszcza się: $$ F=\frac{(\hat\beta_j-c)^2}{v_{jj}\,s^2}=\frac{(\hat\beta_j-c)^2}{\operatorname{SE}(\hat\beta_j)^2}=\left(\frac{\hat\beta_j-c}{\operatorname{SE}(\hat\beta_j)}\right)^2=t^2. $$
- Zgodność rozkładów. Istotnie $F_{1,\,n-k}=t_{n-k}^2$ także jako rozkłady — kwadrat zmiennej $t$ o $m$ stopniach swobody ma rozkład $F_{1,m}$. Dla jednego ograniczenia test $F$ i dwustronny test $t$ są więc tożsame.
Test χ² i statystyka Walda
Gdy wariancja błędu jest znana lub gdy opieramy się na przybliżeniu wielkopróbkowym, mianownik z $s^2$ znika i forma kwadratowa ograniczeń ma wprost rozkład $\chi^2$. Statystyka Walda dla $q$ ograniczeń ma asymptotycznie rozkład $\chi^2_q$, a $W=qF$. Niezależnym, klasycznym zastosowaniem testu $\chi^2$ jest sprawdzenie zgodności rozkładu liczności.
Kostkę sześcienną rzucono $100$ razy, otrzymując liczności oczek $(22,17,20,18,11,12)$. Testujemy $H_0$: kostka jest symetryczna (każda ściana z prawdopodobieństwem $\tfrac16$), więc oczekiwana liczność $E_i=\tfrac{100}{6}=16{,}667$.
$$ \chi^2=\sum_{i=1}^{6}\frac{(O_i-E_i)^2}{E_i}=\frac{(22-16{,}667)^2+\dots+(12-16{,}667)^2}{16{,}667}=5{,}72, $$przy $6-1=5$ stopniach swobody. Wartość krytyczna $\chi^2_{5;\,0{,}05}=11{,}07$. Ponieważ $5{,}72<11{,}07$ ($p=0{,}334$), nie odrzucamy $H_0$ — odchylenia liczności mieszczą się w granicach losowej fluktuacji.
Równoważność z przedziałem ufności
Test hipotezy i przedział ufności są dwoma ujęciami tego samego wnioskowania. Dwustronny test $H_0:\beta_j=c$ na poziomie $\alpha$ odrzuca hipotezę dokładnie wtedy, gdy wartość $c$ leży poza $(1-\alpha)$-przedziałem ufności dla $\beta_j$.
- Reguła testu. Odrzucamy $H_0:\beta_j=c$ na poziomie $\alpha$ wtedy i tylko wtedy, gdy $$ \left|\frac{\hat\beta_j-c}{\operatorname{SE}(\hat\beta_j)}\right| > t_{n-k,\,\alpha/2}. $$
- Przekształcenie nierówności. Nierówność przeciwna (brak odrzucenia) jest równoważna $$ -t_{n-k,\,\alpha/2}\le\frac{\hat\beta_j-c}{\operatorname{SE}(\hat\beta_j)}\le t_{n-k,\,\alpha/2} \;\Longleftrightarrow\; c\in\Big[\hat\beta_j\pm t_{n-k,\,\alpha/2}\operatorname{SE}(\hat\beta_j)\Big]. $$
- Wniosek. Prawa strona to dokładnie $(1-\alpha)$-przedział ufności dla $\beta_j$. Zatem $c$ pozostaje w przedziale $\iff$ test nie odrzuca $H_0$. W szczególności współczynnik jest istotny ($H_0:\beta_j=0$ odrzucona), gdy jego przedział ufności **nie zawiera zera**.
Pułapki praktyczne
Istotność statystyczna a istotność merytoryczna.
Przy bardzo dużej próbie ($n=100\,000$) nawet mikroskopijny, ekonomicznie nieistotny efekt staje się „statystycznie istotny", bo $\operatorname{SE}$ maleje jak $1/\sqrt n$. Należy zawsze raportować wielkość efektu obok p-wartości i oceniać jego znaczenie merytoryczne, a nie sam fakt istotności.
Testowanie wielokrotne i selekcja wyników.
Przy $m$ niezależnych testach na poziomie $\alpha=0{,}05$ oczekiwana liczba fałszywych odkryć wynosi $0{,}05\,m$ — testując $20$ hipotez, średnio jedną odrzucimy przez przypadek. Klasyczną ochroną jest poprawka Bonferroniego ($\alpha'=\alpha/m$); przy wielu testach stosuje się też kontrolę odsetka fałszywych odkryć (FDR). Wybiórcze raportowanie tylko istotnych wyników (p-hacking) systematycznie zawyża liczbę fałszywych odkryć.
Podsumowanie
- Schemat: zakładamy $H_0$, liczymy statystykę testową, porównujemy z rozkładem przy $H_0$; małe $p$ (lub statystyka w obszarze odrzucenia) → odrzucamy $H_0$.
- Dwa błędy: $\alpha$ (fałszywy alarm) i $\beta$ (przeoczenie); moc $=1-\beta$ rośnie z efektem, próbą i spadkiem wariancji.
- Test $t$: $t=(\hat\beta_j-c)/\operatorname{SE}\sim t_{n-k}$ — dla jednego parametru.
- Test $F$: porównanie modeli, $F\sim F_{q,n-k}$; dla jednego ograniczenia $F=t^2$.
- Test $\chi^2$ / Wald: wersja wielkopróbkowa, $W=qF\sim\chi^2_q$.
- Dualność: test $H_0:\beta_j=c$ odrzuca $\iff c$ poza przedziałem ufności.
- Ostrożność: istotność statystyczna $\neq$ merytoryczna; przy wielu testach konieczna korekta.
Dalej: p-wartość · Przedziały ufności · Współczynnik R² · Heteroskedastyczność i odporne błędy standardowe
- Podręcznik: J. M. Wooldridge, Introductory Econometrics: A Modern Approach, rozdz. 4 (wnioskowanie w MNK)
- Podręcznik: W. H. Greene, Econometric Analysis, rozdz. 5 (testy hipotez i przedziały ufności)
- Podręcznik: G. Casella, R. L. Berger, Statistical Inference, rozdz. 8 (teoria testowania)
- E. L. Lehmann, J. P. Romano, Testing Statistical Hypotheses, Springer (3. wyd., 2005)
- Khan Academy — Significance tests
R:
## 1. Test t dla jednej próby — H0: mu = 2,0
x <- c(2.1, 2.5, 2.3, 2.8, 2.2, 2.6, 2.4)
t.test(x, mu = 2.0) # t = 4,548; df = 6; p = 0,0039
## 2. Test t dla współczynnika regresji (przykład n = 5)
d <- data.frame(x = 1:5, y = c(2, 4, 5, 4, 5))
m <- lm(y ~ x, data = d)
summary(m) # t, p dla kazdego wspolczynnika
# test H0: beta_x = 1 (a nie 0):
(coef(m)["x"] - 1) / sqrt(diag(vcov(m)))["x"] # t = -1,414
## 3. Test F dla calego modelu — patrz wiersz F-statistic w summary(m)
## 4. Test F dla podzbioru: model pelny vs ograniczony
x1 <- 1:5; x2 <- c(2, 1, 5, 3, 4); y <- c(3, 2, 6, 5, 7)
ur <- lm(y ~ x1 + x2); r <- lm(y ~ x1)
anova(r, ur) # F = 16,76; df = (1, 2)
## 5. Test chi-kwadrat zgodnosci (jednorodnosc 6 kategorii)
chisq.test(c(22, 17, 20, 18, 11, 12)) # chi2 = 5,72; df = 5; p = 0,334
## 6. Test Walda dla ograniczen liniowych
library(car); linearHypothesis(ur, c("x1 = 0", "x2 = 0"))
Python:
import numpy as np
from scipy import stats
import statsmodels.api as sm
# 1. Test t dla jednej proby
x = np.array([2.1, 2.5, 2.3, 2.8, 2.2, 2.6, 2.4])
print(stats.ttest_1samp(x, 2.0)) # t = 4,548; p = 0,0039
# 2-4. Regresja, testy t i F
X = sm.add_constant(np.arange(1, 6))
m = sm.OLS([2, 4, 5, 4, 5], X).fit()
print(m.tvalues, m.pvalues) # testy t
print(m.fvalue, m.f_pvalue) # test F calego modelu
# 4. Test F dla podzbioru (porownanie modeli)
x1 = np.arange(1, 6); x2 = np.array([2, 1, 5, 3, 4]); y = np.array([3, 2, 6, 5, 7])
ur = sm.OLS(y, np.column_stack([np.ones(5), x1, x2])).fit()
print(ur.f_test("x2 = 0")) # F = 16,76; p = 0,0548
# 5. Test chi-kwadrat zgodnosci
print(stats.chisquare([22, 17, 20, 18, 11, 12])) # chi2 = 5,72; p = 0,334