Как рассчитать предельные эффекты оценок функции / пакета GJRM - PullRequest
1 голос
/ 16 апреля 2019

Я хочу оценить (предельные эффекты) рекурсивную двумерную модель в R, теоретически объясненную в главе 17.5.5 седьмого издания эконометрического анализа Уильяма Грина.

Настройка может быть показана с помощью следующей системы двух уравнений:

Y 2 = (Zα 1 + Xα 2 + v 2 )> 0

Y 1 = (Y 2 β 1 + X β 2 + u 1 )> 0

, где Y1 и Y2 - зависимые двоичные переменные, u1 и v2 - слагаемые ошибки уравнений в форме скрытой переменной (полиноминальная нормаль, распределенная с помощью нуля), X описывает вектор экзогенных ковариат, а Z - вектор действительных инструментов .

В Stata вы можете легко оценить этот параметр с помощью команды biprobit. Чтобы получить предельные эффекты или, если быть более точным, средний частичный эффект (APE), можно впоследствии использовать стандартную команду margins, например, margins, dydx(Y2) pred(pmarg1)

Я знаю, что могу использовать функцию gjrm пакета GJRM в R для оценки коэффициентов системы уравнений выше, но я не знаю, как получить соответствующие предельные эффекты. Таким образом, я ищу команду, чтобы получить предельные эффекты. К сожалению, команда margins в R, похоже, не работает / неприменима после вызова функции gjrm.

Я посмотрел описание пакета GJRM и искал через Google. В пакете GJRM функция PE может показаться подходящей на первый взгляд. Тем не менее, я думаю, что это не вариант, так как я не пытаюсь выполнить «апостериорное моделирование», и я понятия не имею, что указать в качестве idx аргумента.

Следующее повторяет мою проблему:

library("MASS")
library("margins")
require(GJRM)

N <- 10000
emeans <- c(0, 0)
ecovar <- matrix(c(1,0.5,0.5,4),2,2)
e <- mvrnorm(n=N,emeans,ecovar)
u1 <- e[,1]
v2 <- e[,2]
X1 <- rnorm(N, 0, 1)
Z1 <- rnorm(N, 0, 1)


Y2_star <- 0.5 + 0.5 * X1 - 0.5 * Z1 + (v2 / sd(v2))
Y2 <- Y2_star > 0
Y1_star <- 1 + X1 - Y2 + (u1 / sd(u1))
Y1 <- Y1_star > 0

df <- data.frame(Y1,Y2,X1,Z1,u1,v2) 

reduced.eq <- Y2 ~ X1 + Z1
structural.eq <- Y1 ~ X1 + Y2
f.list <- list(reduced.eq, structural.eq)
mr <- c("probit", "probit")

bvp <- gjrm(f.list, data=df, Model="B", margins=mr)
summary(bvp)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...