Zmienne instrumentalne i endogeniczność (IV, 2SLS)

Streszczenie

Endogeniczność, obciążenie estymatora MNK, metoda zmiennych instrumentalnych i 2SLS — teoria, słabe instrumenty, test Hausmana, przykłady w R i Python

Problem: endogeniczność

Klasyczna Metoda Najmniejszych Kwadratów (MNK) jest nieobciążona i zgodna tylko gdy spełnione jest założenie egzogeniczności:

$$ \mathbb{E}[\varepsilon_i \mid X_i] = 0 $$

Gdy regresor jest skorelowany ze składnikiem losowym, $\text{Cov}(X, \varepsilon) \neq 0$, mówimy o endogeniczności. Estymator MNK staje się wtedy obciążony i niezgodny — i to obciążenie nie znika nawet przy $n \to \infty$.

Trzy główne źródła endogeniczności

ŹródłoMechanizmPrzykład
Pominięte zmienneNieobserwowalna cecha wpływa na X i YZdolności wpływają na edukację i płacę
Błąd pomiaruX mierzony z błędemDeklarowany dochód vs. rzeczywisty
SymultanicznośćX i Y wzajemnie się wyznaczająCena i ilość (podaż = popyt)

Przykład: zwrot z edukacji

Chcemy oszacować wpływ edukacji na płacę:

$$ \ln(\text{płaca}_i) = \beta_0 + \beta_1 \text{edukacja}_i + \varepsilon_i $$

Problem: zdolności (nieobserwowalne) są w $\varepsilon$ i jednocześnie korelują z edukacją (zdolniejsi uczą się dłużej). MNK myli zwrot z edukacji ze zwrotem ze zdolności — $\hat{\beta}_1$ jest zawyżony.

Rozwiązanie: zmienna instrumentalna

Instrument $Z$ to zmienna, która wpływa na $Y$ wyłącznie poprzez endogeniczny regresor $X$. Dobry instrument musi spełniać dwa warunki:

  1. Trafność (relevance): $\text{Cov}(Z, X) \neq 0$ — instrument jest skorelowany z endogenicznym regresorem. Sprawdzalne empirycznie.
  2. Egzogeniczność (exclusion): $\text{Cov}(Z, \varepsilon) = 0$ — instrument nie wpływa bezpośrednio na Y ani nie koreluje z pominiętymi czynnikami. Niesprawdzalne — wymaga argumentu merytorycznego.

Intuicja graficzna

   Z  ───────►  X  ───────►  Y
 (instrument) (endogen.)  (wynik)
                  ▲
                  │ ε (zdolności)
                  └──────────────┘

Instrument $Z$ wprowadza egzogeniczną zmienność do $X$ — zmienność niezależną od $\varepsilon$. Wykorzystujemy tylko tę „czystą" część $X$ do estymacji $\beta_1$.

Klasyczne instrumenty

  • Odległość do uczelni (Card 1995) — instrument dla edukacji
  • Kwartał urodzenia (Angrist & Krueger 1991) — wpływa na lata edukacji przez obowiązek szkolny
  • Pogoda — instrument dla podaży produktów rolnych w równaniu popytu

Estymator IV (jeden instrument)

Dla jednego regresora i jednego instrumentu:

$$ \hat{\beta}_1^{IV} = \frac{\text{Cov}(Z, Y)}{\text{Cov}(Z, X)} = \frac{\sum (z_i - \bar{z})(y_i - \bar{y})}{\sum (z_i - \bar{z})(x_i - \bar{x})} $$

Estymator jest zgodny, ale tylko asymptotycznie nieobciążony (w małych próbach ma obciążenie).

Metoda 2SLS (dwustopniowa MNK)

Gdy instrumentów jest więcej niż endogenicznych regresorów, stosujemy Two-Stage Least Squares:

Etap 1 — regresja endogenicznego $X$ na wszystkie instrumenty i egzogeniczne zmienne:

$$ X_i = \pi_0 + \pi_1 Z_i + \pi_2 W_i + v_i \quad\Rightarrow\quad \hat{X}_i $$

Etap 2 — regresja $Y$ na dopasowane $\hat{X}$ (zamiast oryginalnego X):

$$ Y_i = \beta_0 + \beta_1 \hat{X}_i + \beta_2 W_i + u_i $$

$\hat{X}$ zawiera tylko zmienność wyjaśnioną przez instrumenty — egzogeniczną.

Uwaga: Nie rób tego ręcznie w dwóch krokach! Błędy standardowe z etapu 2 byłyby błędne. Używaj dedykowanej funkcji (ivreg, IV2SLS), która liczy poprawne SE.

Implementacja w R

library(AER)
data("CollegeDistance")   # dane Card (1995)

# MNK (obciążone — edukacja endogeniczna)
mnk <- lm(log(wage) ~ education + experience + ethnicity,
          data = CollegeDistance)

# IV: distance (odległość do college) jako instrument dla education
iv <- ivreg(log(wage) ~ education + experience + ethnicity |
              distance + experience + ethnicity,   # po | : instrumenty
            data = CollegeDistance)

summary(iv, diagnostics = TRUE)

Składnia ivreg: po znaku | podajemy wszystkie egzogeniczne zmienne — instrumenty plus egzogeniczne regresory z modelu (experience, ethnicity wchodzą jako własne instrumenty).

Diagnostyka (kluczowa!)

summary(iv, diagnostics = TRUE) zwraca trzy testy:

TestH0Interpretacja
Weak instrumentsInstrument słabyOdrzuć H0 → instrument trafny (F > 10)
Wu-HausmanX egzogeniczneOdrzuć H0 → IV potrzebne, MNK obciążone
SarganInstrumenty egzogeniczneNIE odrzucaj → instrumenty OK (tylko gdy nadidentyfikacja)

Implementacja w Python

import pandas as pd
from linearmodels.iv import IV2SLS
import statsmodels.api as sm

df = pd.read_csv("dane.csv")
df = sm.add_constant(df)

# IV2SLS: endogeniczne w [], instrumenty w []
model = IV2SLS(
    dependent=df['log_wage'],
    exog=df[['const', 'experience']],      # egzogeniczne
    endog=df[['education']],                # endogeniczne
    instruments=df[['distance']]            # instrumenty
).fit(cov_type='robust')

print(model.summary)
print(model.first_stage)   # diagnostyka etapu 1

Słabe instrumenty — najczęstszy błąd

Gdy $\text{Cov}(Z, X)$ jest bliskie zera, instrument jest słaby. Konsekwencje:

  • Estymator IV ma ogromną wariancję
  • Obciążenie w małej próbie wraca w kierunku MNK
  • Przedziały ufności są zawodne

Reguła kciuka (Staiger-Stock): statystyka F z pierwszego etapu powinna być F > 10. Poniżej — instrument za słaby.

# Test siły instrumentu = F dla instrumentów w I etapie
etap1 <- lm(education ~ distance + experience + ethnicity,
            data = CollegeDistance)
# Porównaj z modelem bez instrumentu
library(car)
linearHypothesis(etap1, "distance = 0")   # F powinno być > 10

Test Hausmana — zasadność zastosowania IV

IV jest mniej efektywne niż MNK (większe SE). Stosuj je tylko gdy endogeniczność rzeczywiście występuje. Test Wu-Hausmana porównuje oba estymatory:

$$ H_0: \text{Cov}(X, \varepsilon) = 0 \quad (\text{MNK zgodne, użyj MNK}) $$
  • Nie odrzucamy H0 → brak dowodu endogeniczności → MNK (efektywniejsze)
  • Odrzucamy H0 → endogeniczność → IV (mimo większych SE)

Podsumowanie — checklist IV

  1. ✅ Czy masz teoretyczny powód podejrzewać endogeniczność?
  2. ✅ Czy instrument jest trafny? (F > 10 w I etapie)
  3. ✅ Czy instrument jest egzogeniczny? (argument merytoryczny + Sargan przy nadidentyfikacji)
  4. ✅ Test Hausmana potwierdza potrzebę IV?
  5. ✅ Używasz dedykowanej funkcji (poprawne SE)?

Złota zasada (Angrist & Pischke): Dobry instrument wymaga przekonującej historii o tym, dlaczego jest losowy względem wyniku. Statystyka nie udowodni egzogeniczności — to argument ekonomiczny.


Następnie: Modele zmiennych jakościowych — logit i probit

📚 Zasoby do nauki
  • Wooldridge, Introductory Econometrics, rozdz. 15
  • Angrist & Pischke, Mostly Harmless Econometrics, rozdz. 4
  • Pakiet R: AER::ivreg()
  • Python: linearmodels.iv.IV2SLS
💻 Kod źródłowy

Wymagane pakiety:

install.packages(c("AER", "lmtest", "sandwich"))
library(AER)        # ivreg
pip install linearmodels statsmodels pandas
from linearmodels.iv import IV2SLS