/
sem_16.R
50 lines (38 loc) · 3.69 KB
/
sem_16.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Семинар 16: эндогенность + тестирование инструментов
library("dplyr") # манипуляции с данными
library("caret") # стандартизованный подход к регрессионным и классификационным моделям
library("AER") # инструментальные переменные
library("ggplot2") # графики
library("sandwich") # робастные стандартные ошибки
library("ivpack") # дополнительные плющки для инструментальных переменных
library("memisc") # табличка mtable
library("wooldridge") # датасет mroz
data("mroz")
d = mroz
# Для начала оценим модель для зарплаты, игнорирую эндогенность переменной educ, с помошью МНК
res_ols = lm(lwage ~ educ, data = mroz)
summary(res_ols)
# Теперь учтем эндогенность переменной educ, и реализуем для нее метод инструментальных переменных, рассмотрев в качестве
# инструмента переменную fathereduc (образование отца, в годах)
# Проделаем вручную первый шаг из двухшаговой процедуры МНК, чтобы првоерить инструменты на релевантность
# Шаг 1: оценим регрессию эндогенной переменной educ на инструмент fathereduc
res_first = lm(educ ~ fatheduc, data = mroz)
summary(res_first) # по значению F-статистики можно судить о релевантности инструментов. Если F>10, то инструменты релевантны,
#иначе инструменты слабые, нужно искать новые
# Теперь автоматически оценим параметры с помощью МИП
help(ivreg)
res_iv = ivreg(lwage ~ educ | fatheduc, data = mroz)
# Проверим:
# 1) является ли эндогенной переменная educ с помощью процедуры Ву-Хаусмана (H0: переменная educ экзогенна, используем МНК-оценки)
summary(res_iv, diagnostics = TRUE)
# Теперь попробуем использовать два инструмента motheduc и fatheduc для эндогенной переменной educ
# Реализуем двухшаговый МНК
# Шаг 1: оценим регрессию эндогенной переменной educ на инструменты motheduc и fathereduc
res_first_2ols = lm(educ ~ motheduc + fatheduc, data = mroz)
summary(res_first_2ols) # по значению F-статистики можно судить о релевантности инструментов. Если F>10, то инструменты релевантны,
# иначе инструменты слабые, нужно искать новые
res_2ols = ivreg(lwage ~ educ | motheduc + fatheduc, data = mroz)
# Проверим:
# 1) инструменты на валидность с помощью теста Саргана (H0: все инструменты экзогенны). Тест доступен, когда число инструментов больше числа эндогенных регрессоров.
# 2) является ли эндогенной переменная educ с помощью процедуры Ву-Хаусмана (H0: переменная educ экзогенна, используем МНК-оценки)
summary(res_2ols, diagnostics = TRUE)