Co to jest dwustopniowa MNK?
Dwustopniowa metoda najmniejszych kwadratów (2SLS, ang. two-stage least squares) szacuje efekt X na Y za pomocą instrumentu Z, gdy X zależy od niezmierzonej zmiennej zakłócającej. Zwykła MNK jest wtedy obciążona. 2SLS wykorzystuje tylko tę część zmienności X, którą wyjaśnia instrument (Lousdal, 2018). Przy jednym binarnym instrumencie 2SLS daje estymator Walda, czyli LATE.
Dwa etapy
- Pierwszy etap: regresja X na Z i zmiennych kontrolnych. Zapisz wartości przewidywane X̂. Statystyka F instrumentu mierzy jego siłę.
- Drugi etap: regresja Y na X̂ i tych samych zmiennych kontrolnych. Współczynnik przy X̂ to efekt 2SLS.
Współczynnik z ręcznego drugiego lm() jest poprawny, ale błąd standardowy nie. Program liczy reszty z X̂, a poprawne reszty to Y − b₀ − b₁X z rzeczywistym X. SE trzeba przeskalować ilorazem odchyleń standardowych obu reszt albo dopasować model w lavaan.
Przykład
W symulacji (N = 500) prawdziwy efekt wynosi 2, a niezmierzona zmienna U wpływa na X i Y. Instrument jest silny: F = 93.0. MNK daje 3.27, a 2SLS 1.97. Drugie lm() podaje SE = 0.432, a poprawny błąd wynosi 0.281. Tyle samo daje lavaan (b = 1.966, SE = 0.281).
Staiger i Stock (1997) pokazali, że przy słabym instrumencie 2SLS bywa silnie obciążony nawet w dużych próbach. W 2000 symulacjach ze słabym instrumentem (mediana F = 0.83) mediana 2SLS wyniosła 2.88. To bliżej obciążonej MNK (3.50) niż prawdziwego efektu. W praktyce F pierwszego etapu poniżej 10 traktuje się jako sygnał ostrzegawczy.
Jak opisać w pracy
Na co uważać
- Nie raportuj SE z drugiego
lm(). Może być zawyżony albo zaniżony. Przy nierównej wariancji reszt użyj odpornych błędów standardowych. - Raportuj F pierwszego etapu. Bez niego nie da się ocenić siły instrumentu.
- Trafności instrumentu nie potwierdzi żaden test. Rozmytą RDD jako 2SLS pokazujemy we wpisie o regresji nieciągłej i zmiennych instrumentalnych.
2SLS w R bez pakietów ekonometrycznych
Kod liczy oba etapy ręcznie, poprawia błąd standardowy, sprawdza wynik w lavaan i powtarza badanie 2000 razy ze słabym instrumentem.
Ręczne 2SLS, poprawny SE i słaby instrument
R
suppressPackageStartupMessages(library(lavaan))
set.seed(3331)
n <- 500
U <- rnorm(n) # niezmierzone zakłócenie
Z <- rnorm(n) # instrument
X <- 0.5 * Z + U + rnorm(n)
Y <- 2 * X + 3 * U + rnorm(n, sd = 2) # prawdziwy efekt X = 2
d <- data.frame(Y, X, Z)
etap1 <- lm(X ~ Z, data = d)
F1 <- summary(etap1)$fstatistic[1]
d$X_hat <- fitted(etap1)
etap2 <- lm(Y ~ X_hat, data = d) # ręczny drugi etap
b <- coef(etap2)
res <- d$Y - (b[1] + b[2] * d$X) # reszty z X rzeczywistym
sigma_ok <- sqrt(sum(res^2) / (n - 2))
se_ok <- summary(etap2)$coef["X_hat", 2] * sigma_ok / summary(etap2)$sigma
iv <- sem("Y ~ X\nX ~ Z\nY ~~ X", data = d) # to samo w lavaan
round(c(F_etap1 = unname(F1), b_MNK = unname(coef(lm(Y ~ X, d))[2]),
b_2SLS = unname(b[2]), SE_drugie_lm = summary(etap2)$coef["X_hat", 2],
SE_poprawne = unname(se_ok), b_lavaan = coef(iv)["Y~X"],
SE_lavaan = sqrt(vcov(iv)["Y~X", "Y~X"])), 3)
round(b[2] + c(-1, 1) * qnorm(.975) * se_ok, 2) # 95% CI z poprawnym SE
# ---- Część 2: słaby instrument (2000 powtórzeń) ----
set.seed(3332)
slaby <- replicate(2000, {
Z <- rnorm(n); U <- rnorm(n)
X <- 0.05 * Z + U + rnorm(n)
Y <- 2 * X + 3 * U + rnorm(n, sd = 2)
e1 <- lm(X ~ Z)
c(F = unname(summary(e1)$fstatistic[1]), b_2SLS = cov(Z, Y) / cov(Z, X),
b_MNK = unname(coef(lm(Y ~ X))[2]))
})
round(apply(slaby, 1, median), 2) # mediany z 2000 badańWynik w R
F_etap1 b_MNK b_2SLS SE_drugie_lm SE_poprawne b_lavaan.Y~X
93.019 3.273 1.966 0.432 0.281 1.966
SE_lavaan
0.281
[1] 1.41 2.52
F b_2SLS b_MNK
0.83 2.88 3.50Bibliografia oprogramowania
Wyniki pochodzą z uruchomienia pokazanego kodu w R 4.5.3 (pakiet lavaan). 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/
- lavaan (wersja 0.7.2): Rosseel, Y. (2012). lavaan: An R package for structural equation modeling. Journal of Statistical Software, 48(2), 1–36. https://doi.org/10.18637/jss.v048.i02
Najczęstsze pytania
Dlaczego błąd standardowy z drugiego etapu 2SLS jest zły?
Drugie lm() liczy reszty z przewidywanym X, a nie z rzeczywistym. Wariancja reszt jest więc błędna. Współczynnik jest dobry, ale SE trzeba poprawić albo użyć gotowego estymatora.
Kiedy instrument jest za słaby?
Gdy słabo przewiduje zmienną endogeniczną. W praktyce F pierwszego etapu poniżej 10 traktuje się jako sygnał ostrzegawczy, bo 2SLS przesuwa się wtedy w stronę obciążonej MNK.
Jak policzyć 2SLS w lavaan?
Zapisz model Y ~ X, X ~ Z oraz korelację reszt Y ~~ X. Przy jednym instrumencie oszacowanie i błąd standardowy są praktycznie takie jak w 2SLS.
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)
- Lousdal, M. L. (2018). An introduction to instrumental variable assumptions, validation and estimation. Emerging Themes in Epidemiology, 15(1), Article 1. https://doi.org/10.1186/s12982-018-0069-7 ● Otwarty dostęp
- Staiger, D., & Stock, J. H. (1997). Instrumental variables regression with weak instruments. Econometrica, 65(3), 557–586. https://doi.org/10.2307/2171753
Cytowania BibTeX
@article{lousdal2018introduction, author={Lousdal, Mette Lise}, title={{An introduction to instrumental variable assumptions, validation and estimation}}, journal={Emerging Themes in Epidemiology}, year={2018}, volume={15}, number={1}, eid={1}, doi={10.1186/s12982-018-0069-7}}@article{staiger1997instrumental, author={Staiger, Douglas and Stock, James H.}, title={{Instrumental variables regression with weak instruments}}, journal={Econometrica}, year={1997}, volume={65}, number={3}, pages={557--586}, doi={10.2307/2171753}}