-
Notifications
You must be signed in to change notification settings - Fork 17
TAB_4.6.2
Matthieu Stigler edited this page Apr 16, 2014
·
1 revision
Load the packages:
library(RcompAngrist)
library(AER)
data(AngKrug91)
Run the functions ivreg() (package AER) and kclass() (package RcompAngrist):
T_462_IV_1 <- ivreg(lwklywge ~ educ + yob | qob + yob, data = AngKrug91)
T_462_LIML_1 <- kclass(lwklywge ~ educ + yob | qob + yob, data = AngKrug91)
T_462_IV_2 <- ivreg(lwklywge ~ educ + yob + yqob + I(yqob^2) | qob + yob + yqob +
I(yqob^2), data = AngKrug91)
T_462_LIML_2_noQR <- kclass(lwklywge ~ educ + yob + yqob + I(yqob^2) | qob +
yob + yqob + I(yqob^2), data = AngKrug91, useQR = FALSE) #needs useQR as rank problems
T_462_IV_3 <- ivreg(lwklywge ~ educ + yob | qob * yob + yob, data = AngKrug91)
T_462_LIML_3 <- kclass(lwklywge ~ educ + yob | qob * yob + yob, data = AngKrug91)
T_462_IV_4 <- ivreg(lwklywge ~ educ + yob + yqob + I(yqob^2) | qob * yob + yob +
yqob + I(yqob^2), data = AngKrug91)
T_462_LIML_4_noQR <- kclass(lwklywge ~ educ + yob + yqob + I(yqob^2) | qob *
yob + yob + yqob + I(yqob^2), data = AngKrug91, useQR = FALSE) #needs useQR as rank problems
Collect the results:
T_462_IV_all <- list(T_462_IV_1 = T_462_IV_1, T_462_IV_2 = T_462_IV_2, T_462_IV_3 = T_462_IV_3,
T_462_IV_4 = T_462_IV_4)
T_462_LIML_all <- list(T_462_LIML_1 = T_462_LIML_1, T_462_LIML_2 = T_462_LIML_2_noQR,
T_462_LIML_3 = T_462_LIML_3, T_462_LIML_4 = T_462_LIML_4_noQR)
co_sls <- sapply(T_462_IV_all, function(x) coef(summary(x))["educ", 1:2])
co_lim <- sapply(T_462_LIML_all, function(x) summary(x)["educ", 1:2])
co_all <- rbind(co_sls, co_lim)
After some formatting of co_all (not shown), we obtain:
(1) | (2) | (3) | (4) | |
---|---|---|---|---|
2SLS | 0.105 | 0.435 | 0.089 | 0.076 |
sd | (0.02) | (0.45) | (0.016) | (0.029) |
LIML | 0.106 | 0.539 | 0.093 | 0.081 |
sd | (0.02) | (0.627) | (0.018) | (0.041) |