如何计算GJRM函数/包的估计值的边际效应

时间:2019-04-16 17:49:34

标签: r

我想估算R的递归双变量模型(的边际效应),如William Greene的第7版计量经济学分析的第17.5.5章从理论上阐明的那样。

可以通过以下两个方程式系统显示设置:

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

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

其中Y1和Y2是因变量二元变量,u1和v2是潜变量形式方程(多项式正态分布,均值为零)的误差项,X描述外生协变量的向量,Z描述有效工具的向量

在Stata中,您可以使用biprobit命令轻松估算此设置。要获得边际效应或更准确地说是平均局部效应(APE),可以随后使用标准的margins命令,例如margins, dydx(Y2) pred(pmarg1)

我知道我可以在R中使用gjrm包的GJRM函数来估算上述方程组的系数,但是我不知道如何获得相应的边际效应。因此,我正在寻找获取边际效应的命令。不幸的是,在调用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)

0 个答案:

没有答案