Słownik metodologiczny · Modele regresji

Test Hausmana – jak wybrać między efektami stałymi a losowymi?

Test Hausmana sprawdza, czy estymator efektów losowych daje te same wyniki co estymator efektów stałych. Pokazujemy wzór, przykład panelu w R, wersję Mundlaka i gotowy opis do pracy.

Strona główna / Słownik / Test Hausmana
W skrócie: Test Hausmana porównuje oszacowania modelu efektów stałych (zgodne) i efektów losowych (efektywne tylko przy braku korelacji cechy jednostki z predyktorami). Istotna różnica, χ² z df równym liczbie porównywanych współczynników, przemawia za efektami stałymi.

Co to jest test Hausmana?

Test Hausmana (ang. Hausman test, też Durbin–Wu–Hausman) porównuje dwa estymatory tego samego parametru: zgodny, ale mniej precyzyjny, oraz efektywny, ale zgodny tylko przy dodatkowym założeniu. W danych panelowych to zwykle estymator efektów stałych (FE) i estymator efektów losowych (RE). Hipoteza zerowa mówi, że stała cecha jednostki nie jest skorelowana z predyktorami. Wtedy oba estymatory szacują to samo, a RE jest dokładniejszy.

Wzór i logika

Hausman (1978) wykorzystał prosty fakt: przy prawdziwej hipotezie zerowej estymator efektywny nie jest skorelowany ze swoją różnicą względem estymatora zgodnego. Wariancja różnicy jest więc różnicą wariancji:

H = (bFE − bRE)′ [VFE − VRE]−1 (bFE − bRE),

a statystyka ma rozkład χ² z liczbą stopni swobody równą liczbie porównywanych współczynników predyktorów zmiennych w czasie. Istotny wynik oznacza, że RE jest obciążony i bezpieczniejszy jest FE. Oba podejścia opisuje hasło efekty stałe i losowe.

Przykład

W symulacji 150 osób zmierzono czterokrotnie. Predyktor był skorelowany ze stałą cechą osoby, a prawdziwy efekt wynosił 0.40. FE dał b = 0.452 (SE = 0.047), RE z pakietu lme4 – b = 0.585 (SE = 0.043). Test: χ²(1) = 47.94, p < .001, więc RE odrzucamy. Wersja Mundlaka prowadzi do tego samego wniosku: średnia predyktora w osobie, dodana do modelu losowego, ma współczynnik 0.746 (SE = 0.101).

Jak opisać w pracy

Test Hausmana wykazał, że oszacowania modelu efektów losowych istotnie różnią się od oszacowań modelu efektów stałych, χ²(1) = 47.94, p < .001. W dalszej analizie użyto estymatora efektów stałych (b = 0.45, SE = 0.05).

Na co uważać

  • Nieistotny wynik nie jest dowodem. W krótkim panelu test ma małą moc, a brak istotności nie potwierdza poprawności RE.
  • Klasyczna wersja wymaga efektywności RE. Przy heteroskedastyczności lub autokorelacji błędów różnica wariancji bywa ujemna i test traci sens. Wtedy użyj podejścia Mundlaka i testu Walda z błędami odpornymi na klastrowanie.
  • Test to nie cała decyzja. Bell i Jones (2015) pokazują, że model losowy ze średnimi predyktorów daje to samo co FE, a przy tym zachowuje zmienne stałe w czasie i rozszerza się do modelu wielopoziomowego.

Cały przykład analizy panelu pokazuje wpis Dane panelowe – efekty stałe, losowe i test Hausmana, a szersze tło – hasło ekonometria.

Przykład reprodukowalny

Test Hausmana w R

Kod symuluje panel, w którym predyktor jest skorelowany ze stałą cechą osoby, dopasowuje model efektów stałych (lm) i losowych (lmer), liczy statystykę Hausmana ze wzoru i pokazuje wersję Mundlaka.

Efekty stałe a losowe w symulowanym panelu

Dane wejściowe: dane symulowane: 150 osób, 4 pomiary, prawdziwy efekt 0.40; set.seed(3531).

Co odczytać: współczynniki i SE obu modeli, statystykę H z wartością p oraz współczynnik średniej x_sr w modelu Mundlaka.

R
suppressPackageStartupMessages(library(lme4))
set.seed(3531)
N <- 150; T <- 4                                   # 150 osób, 4 pomiary
id <- rep(1:N, each = T)
a  <- rep(rnorm(N, 0, 1), each = T)                # stała cecha osoby (nieobserwowana)
x  <- 0.6 * a + rnorm(N * T)                       # predyktor skorelowany z cechą osoby
y  <- 2 + 0.4 * x + a + rnorm(N * T)
d  <- data.frame(id = factor(id), x, y)
fe <- lm(y ~ x + id, data = d)                     # efekty stałe (zmienne zero-jedynkowe osób)
re <- lmer(y ~ x + (1 | id), data = d, REML = TRUE)  # efekty losowe
b_fe <- coef(fe)["x"];  v_fe <- vcov(fe)["x", "x"]
b_re <- fixef(re)["x"]; v_re <- as.matrix(vcov(re))["x", "x"]
H <- unname((b_fe - b_re)^2 / (v_fe - v_re))       # statystyka Hausmana, 1 df
round(c(b_FE = unname(b_fe), SE_FE = sqrt(v_fe), b_RE = unname(b_re), SE_RE = sqrt(v_re),
        H = H, p = pchisq(H, df = 1, lower.tail = FALSE)), 4)
# wersja Mundlaka: średnia predyktora w osobie jako dodatkowa zmienna w modelu losowym
d$x_sr <- ave(d$x, d$id)
mu <- lmer(y ~ x + x_sr + (1 | id), data = d)
round(coef(summary(mu)), 3)
Wynik w R
   b_FE   SE_FE    b_RE   SE_RE       H       p 
 0.4523  0.0474  0.5852  0.0433 47.9423  0.0000 
            Estimate Std. Error t value
(Intercept)    2.108      0.072  29.356
x              0.452      0.047   9.550
x_sr           0.746      0.101   7.351

Bibliografia oprogramowania

Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet lme4). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).

  1. R: R Core Team. (2026). R: A language and environment for statistical computing (Version 4.5.3) [Computer software]. R Foundation for Statistical Computing. https://www.R-project.org/
  2. lme4 (wersja 2.0.1): Bates, D., Mächler, M., Bolker, B., & Walker, S. (2015). Fitting linear mixed-effects models using lme4. Journal of Statistical Software, 67(1), 1–48. https://doi.org/10.18637/jss.v067.i01

Najczęstsze pytania

Co zrobić, gdy statystyka Hausmana wychodzi ujemna?

Oznacza to, że w próbie różnica macierzy wariancji nie jest dodatnio określona, zwykle przy heteroskedastyczności lub autokorelacji błędów. Nie interpretuj takiego wyniku. Użyj wersji Mundlaka: dodaj do modelu losowego średnie predyktorów w jednostkach i przetestuj je testem Walda z błędami odpornymi na klastrowanie.

Jak policzyć test Hausmana w R?

W pakiecie plm służy do tego phtest(model_fe, model_re). Bez plm policz go ze wzoru: współczynnik i wariancję z lm(y ~ x + factor(id)) oraz z lme4::lmer(y ~ x + (1 | id)), jak w kodzie poniżej.

Czy istotny test Hausmana wyklucza efekty losowe?

Wyklucza zwykły model efektów losowych, ale nie model losowy ze średnimi predyktorów (within–between). Taki model daje ten sam efekt wewnątrz jednostek co efekty stałe, a do tego zachowuje zmienne stałe w czasie (Bell i Jones, 2015).

Powiązane hasła

Poradniki, w których użyjesz tego pojęcia

Potrzebujesz wsparcia w analizie danych?

Wybierz ofertę dopasowaną do pracy dyplomowej albo profesjonalnego projektu naukowego.

Wyceń analizęOferta dla studentów

Bibliografia i dalsza literatura naukowa (APA 7)

  1. Bell, A., & Jones, K. (2015). Explaining fixed effects: Random effects modeling of time-series cross-sectional and panel data. Political Science Research and Methods, 3(1), 133–153. https://doi.org/10.1017/psrm.2014.7 ● Otwarty dostęp
  2. Hausman, J. A. (1978). Specification tests in econometrics. Econometrica, 46(6), 1251–1271. https://doi.org/10.2307/1913827 ● Otwarty dostęp: pełny tekst

Cytowania BibTeX

@article{bell2015explaining, author={Bell, Andrew and Jones, Kelvyn}, title={{Explaining fixed effects: Random effects modeling of time-series cross-sectional and panel data}}, journal={Political Science Research and Methods}, year={2015}, volume={3}, number={1}, pages={133--153}, doi={10.1017/psrm.2014.7}}
@article{hausman1978specification, author={Hausman, Jerry A.}, title={{Specification tests in econometrics}}, journal={Econometrica}, year={1978}, volume={46}, number={6}, pages={1251--1271}, doi={10.2307/1913827}}
R