#r
#r
Вопрос:
Я пытаюсь выполнить эту простую инструментальную оценку переменных с R
использованием пакета systemfit
и двухэтапного метода наименьших квадратов ( 2SLS
):
y = b b1*x1 b2*x2 b3*w e
где x1 и x1 — это эндогенные переменные, которые я хотел бы измерить, w — экзогенная переменная, а e — остаток. Моими двумя инструментами являются z1 и z2. Я хочу использовать z1 для x1 и z2 для x2. Таким образом, мои регрессии 1-го этапа будут
x1 = c c1*z1 c2*z2 c3*w e1
x2 = d d1*z1 d2*z2 d3*w e2
Я пробовал:
systemfit(y~x1 x2 w,inst=~z1 z2 w)
Но не уверен, что это правильно…
Ответ №1:
Почему вы не используете ivreg
из AER
пакета? Вы могли бы попробовать и сравнить результаты.
#install.packages("AER") # if not already installed
library(AER)
?ivreg
Комментарии:
1. Спасибо, я попробую это. Не знал
ivreg
.
Ответ №2:
Я думаю systemfit
, что функция может обрабатывать только одну эндогенную переменную для каждого уравнения. Попробуйте сделать это в 2 шага.
lm1 <- lm(x1 ~ z1 w, data = yourDataFrame)
lm2 <- lm(x2 ~ z2 w, data = yourDataFrame)
yourDataFrame$x1.1st.step <- lm1$fitted
yourDataFrame$x2.1st.step <- lm2$fitted
lm.2nd.step <- lm(y ~ x1.1st.step x2.1st.step w, data = yourDataFrame)
Комментарии:
1. Спасибо. Хорошо, может быть, это так. Я сделаю это, чтобы проверить оценки, но стандартные ошибки на 2-м шаге не будут такими правильными…
Ответ №3:
Я бы определенно использовал ivreg
для оценки моделей 2SLS. Иногда загрузка пакета AER может быть сложной, если у вас нет обновленных версий R (проверьте, какой пакет лучше подходит для вашей версии R, если вы застряли!).