Co to jest estymator efektów stałych?
Estymator efektów stałych (ang. fixed effects estimator, FE, within estimator) szacuje związek w danych panelowych, porównując każdą jednostkę – osobę, firmę, gminę – z nią samą w różnych momentach. Od każdej obserwacji odejmuje średnią jednostki:
yit − ȳi = β(xit − x̄i) + (eit − ēi).
Tak samo działa regresja z osobną zmienną zero-jedynkową dla każdej jednostki (LSDV). Znikają wtedy wszystkie cechy stałe w czasie, także niezmierzone, więc nie mogą one zaburzyć oszacowania β. Hausman (1978) w równaniu płac znalazł właśnie takie nieobserwowane cechy osób, skorelowane z predyktorem.
Przykład
W symulacji 200 pracowników zbadano pięciokrotnie. Nieobserwowana odporność zmniejszała zarówno liczbę nadgodzin, jak i zmęczenie, a prawdziwy efekt godziny nadliczbowej wynosił 0.50 punktu. Zwykła regresja na wszystkich wierszach dała b = 1.335, bo pomieszała porównania między osobami z porównaniami w czasie. FE dał b = 0.554 (SE = 0.038, przy klastrowaniu po osobach 0.045). Płeć, stała w czasie, dostała w modelu FE współczynnik NA.
Jak opisać w pracy
Na co uważać
- Tylko zmienność wewnątrz jednostek. Predyktor, który u danej osoby prawie się nie zmienia, daje szeroki przedział, a cechy stałe w czasie nie mają oszacowań. Bell i Jones (2015) proponują model losowy z rozdzieleniem efektów wewnątrz i między jednostkami; wybór ułatwia test Hausmana.
- Nie usuwa wszystkiego. Zakłócacze zmienne w czasie i odwrotny kierunek zależności nadal mogą obciążać wynik.
- Błędne stopnie swobody. Ręczne odjęcie średnich i zwykłe
lm()nie odliczają 200 średnich, więc SE wychodzi za małe: 0.034 zamiast 0.038. - Zależność w czasie. Pomiary tej samej osoby są skorelowane, dlatego standardem są błędy odporne na klastrowanie. Inaczej grozi pseudoreplikacja.
Porównanie z efektami losowymi pokazuje hasło efekty stałe i losowe oraz wpis Dane panelowe – efekty stałe, losowe i test Hausmana.
Efekty stałe w R
Kod symuluje panel pracowników z nieobserwowaną cechą stałą, porównuje zwykłą regresję, efekty stałe (LSDV), ręczną transformację within i błędy klastrowe po osobach.
Nadgodziny a zmęczenie w panelu pracowników
R
suppressPackageStartupMessages(library(sandwich))
set.seed(3541)
N <- 200; T <- 5 # 200 pracowników, 5 fal badania
id <- rep(1:N, each = T)
kobieta <- rep(rbinom(N, 1, 0.5), each = T) # cecha stała w czasie
odpornosc <- rep(rnorm(N), each = T) # nieobserwowana stała cecha osoby
nadgodziny <- pmax(0, 5 - 2 * odpornosc + rnorm(N * T, 0, 2))
zmeczenie <- 20 + 0.5 * nadgodziny + 1 * kobieta - 3 * odpornosc + rnorm(N * T, 0, 2)
d <- data.frame(id = factor(id), kobieta, nadgodziny, zmeczenie)
pooled <- lm(zmeczenie ~ nadgodziny + kobieta, data = d) # zwykła regresja na wszystkich wierszach
fe <- lm(zmeczenie ~ nadgodziny + id + kobieta, data = d) # efekty stałe (LSDV)
# to samo przez odjęcie średnich osoby (transformacja within)
d$z_w <- d$zmeczenie - ave(d$zmeczenie, d$id)
d$n_w <- d$nadgodziny - ave(d$nadgodziny, d$id)
within <- lm(z_w ~ 0 + n_w, data = d)
se_cl <- sqrt(vcovCL(fe, cluster = ~ id, type = "HC1")["nadgodziny", "nadgodziny"])
round(rbind(
pooled = coef(summary(pooled))["nadgodziny", 1:2],
FE_LSDV = coef(summary(fe))["nadgodziny", 1:2],
within_lm = coef(summary(within))["n_w", 1:2],
FE_klastry = c(coef(fe)["nadgodziny"], se_cl)), 4)
coef(fe)["kobieta"] # NA: cecha stała w czasie wypada z modelu
c(df_LSDV = fe$df.residual, df_within = within$df.residual)Wynik w R
Estimate Std. Error
pooled 1.3350 0.0328
FE_LSDV 0.5538 0.0379
within_lm 0.5538 0.0339
FE_klastry 0.5538 0.0446
kobieta
NA
df_LSDV df_within
799 999Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet sandwich). W pracy podaj wersje faktycznie użytych pakietów (sessionInfo()).
- 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/
- sandwich (wersja 3.1.1): Zeileis, A., Köll, S., & Graham, N. (2020). Various versatile variances: An object-oriented implementation of clustered covariances in R. Journal of Statistical Software, 95(1), 1–36. https://doi.org/10.18637/jss.v095.i01
Najczęstsze pytania
Czy efekty stałe w ekonometrii to to samo co efekty stałe w modelu wielopoziomowym?
Nie. W modelu wielopoziomowym efekty stałe to współczynniki wspólne dla wszystkich jednostek, w odróżnieniu od losowych. W ekonometrii estymator efektów stałych oznacza osobny wyraz wolny dla każdej jednostki, szacowany zamiast losowego.
Dlaczego płeć dostaje w modelu efektów stałych wartość NA?
Zmienna stała w czasie jest liniową kombinacją wyrazów wolnych jednostek, więc jej efektu nie da się oddzielić. Jeśli taki efekt jest ważny, użyj modelu losowego ze średnimi predyktorów (within–between).
Jak policzyć efekty stałe w R?
Najprościej lm(y ~ x + factor(id)) z błędami sandwich::vcovCL(model, cluster = ~ id). Pakiety plm (model = "within") i fixest (feols(y ~ x | id)) dają to samo i szybciej działają przy wielu jednostkach.
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ówBibliografia i dalsza literatura naukowa (APA 7)
- 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
- 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}}