Wald test
Model 1: hsngval ~ pcturban + faminc + reg2 + reg3 + reg4
Model 2: hsngval ~ pcturban
Res.Df Df F Pr(>F)
1 44
2 48 -4 12.975 4.643e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Wald test
Model 1: hsngval ~ pcturban + faminc + reg2 + reg3 + reg4
Model 2: hsngval ~ pcturban
Res.Df Df F Pr(>F)
1 44
2 48 -4 12.975 4.643e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Wald test
Model 1: hsngval ~ pcturban + faminc + reg2 + reg3 + reg4
Model 2: hsngval ~ pcturban
Res.Df Df F Pr(>F)
1 44
2 48 -4 12.975 4.643e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Wald test
Model 1: hsngval ~ pcturban + faminc + reg2 + reg3 + reg4
Model 2: hsngval ~ pcturban
Res.Df Df F Pr(>F)
1 44
2 48 -4 12.975 4.643e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Wald test
Model 1: hsngval ~ pcturban + faminc + reg2 + reg3 + reg4
Model 2: hsngval ~ pcturban
Res.Df Df F Pr(>F)
1 44
2 48 -4 12.975 4.643e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
https://www.schmidheiny.name/teaching/iv2up.pdf
The IV (2SLS) estimator is conveniently implemented in the R package AER as command
ivreg(y ~ x1 + x2 + w1 + w2 | z1 + z2 + z3 + w1 + w2)
where x1 and x2 are endogenous regressors, w1 and w2 exogeneous regressors,
and z1 to z3 are excluded instruments. For example, load data
library(foreign)
hsng2 <- read.dta("http://www.stata-press.com/data/r11/hsng2.dta")
and regress median monthly rents (rent) of census divisions on the share
of urban population (pcturban) and the median housing value (hsngval)
> library(foreign)
hsng2 <- read.dta("http://www.stata-press.com/data/r11/hsng2.dta")
fiv <- ivreg(rent~hsngval+pcturban|pcturban+faminc+reg2+reg3+reg4,
data = hsng2)
summary(fiv)
Housing values are likely endogeneous and therefore instrumented by median
family income (faminc) and 3 regional dummies (reg2, reg4, reg4).
The Eicker-Huber-White covariance estimator which is robust to heteroscedastic error terms is reported after estimation with
library(sandwich)
library(lmtest)
coeftest(fm, vcov=sandwich)
First stage results are reported by explicitly estimating them. E.g,
first <- lm(hsngval~pcturban+faminc+reg2+reg3+reg4, data = hsng2)
summary(first)
In case of a single endogenous variable (K = 1), the F-statistic to assess
weak instruments is reported after estimating the first stage with e.g.
waldtest(first, .~.-faminc-reg2-reg3-reg4)
or in case of heteroscedatistic errors
waldtest(first, .~.-faminc-reg2-reg3-reg4, vcov=sandwich)
library(sandwich)
library(foreign)
hsng2 <- read.dta("http://www.stata-press.com/data/r11/hsng2.dta")
library(foreign)
library(sandwich)
library(lmtest)
hsng2 <- read.dta("http://www.stata-press.com/data/r11/hsng2.dta")
fiv <- ivreg(rent~hsngval+pcturban|pcturban+faminc+reg2+reg3+reg4,
data = hsng2)
summary(fiv)
Call:
ivreg(formula = rent ~ hsngval + pcturban | pcturban + faminc +
reg2 + reg3 + reg4, data = hsng2)
Residuals:
Min 1Q Median 3Q Max
-84.1948 -11.6023 -0.5239 8.6583 73.6130
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.207e+02 1.571e+01 7.685 7.55e-10 ***
hsngval 2.240e-03 3.388e-04 6.612 3.17e-08 ***
pcturban 8.152e-02 3.082e-01 0.265 0.793
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 22.86 on 47 degrees of freedom
Multiple R-Squared: 0.5989, Adjusted R-squared: 0.5818
Wald test: 42.66 on 2 and 47 DF, p-value: 2.731e-11
coeftest(fiv, vcov=sandwich)
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.2071e+02 1.5255e+01 7.9123 3.444e-10 ***
hsngval 2.2398e-03 6.7200e-04 3.3331 0.001681 **
pcturban 8.1516e-02 4.4459e-01 0.1833 0.855313
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
first <- lm(hsngval~pcturban+faminc+reg2+reg3+reg4, data = hsng2)
summary(first)
Call:
lm(formula = hsngval ~ pcturban + faminc + reg2 + reg3 + reg4,
data = hsng2)
Residuals:
Min 1Q Median 3Q Max
-10504 -5223 -1162 2939 46756
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.867e+04 1.200e+04 -1.557 0.126736
pcturban 1.822e+02 1.150e+02 1.584 0.120289
faminc 2.731e+00 6.819e-01 4.006 0.000235 ***
reg2 -5.095e+03 4.122e+03 -1.236 0.223007
reg3 -1.778e+03 4.073e+03 -0.437 0.664552
reg4 1.341e+04 4.048e+03 3.314 0.001849 **
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 9253 on 44 degrees of freedom
Multiple R-squared: 0.6908, Adjusted R-squared: 0.6557
F-statistic: 19.66 on 5 and 44 DF, p-value: 3.032e-10
waldtest(first, .~.-faminc-reg2-reg3-reg4)
Wald test
Model 1: hsngval ~ pcturban + faminc + reg2 + reg3 + reg4
Model 2: hsngval ~ pcturban
Res.Df Df F Pr(>F)
1 44
2 48 -4 13.298 3.495e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
waldtest(first, .~.-faminc-reg2-reg3-reg4, vcov=sandwich)
Wald test
Model 1: hsngval ~ pcturban + faminc + reg2 + reg3 + reg4
Model 2: hsngval ~ pcturban
Res.Df Df F Pr(>F)
1 44
2 48 -4 12.975 4.643e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1