本人想构建一个双变量Probit模型来估计二分类数据的回归系数。看着很长,问题很简单。因为数据具有内生性,所以会用到工具变量,构建两个Probit模型的回归方程。现在在数据模拟时遇到问题。
思路比较简单,不知道对不对。
程序中g1为工具变量,c1、c2为两个外生变量,u为模拟的遗漏的混杂因素,在数据模拟时会用到,后续参数估计时会剔除来
估计模型的效果,exi为残差项。
g1=rbinom(10000, 1, 0.9) #模拟数据
c1=rnorm(10000, mean=10, sd=2)
c2=rbinom(10000, 2, 0.4)
u=rnorm(10000, mean = 10, sd = 2)
exi=rnorm(10000, mean = 0, sd = 1)
eyi=rnorm(10000, mean = 0, sd = 1)
首先、根据自变量和设定的参数计算出内生变量X,不知道这样确定的X是否正确。用R的glm模型估计出来的参数与模拟参数很接近。
probit_x=0.3*g1+0.2*c1-0.3*c2+u+exi-13
probit_data=as.data.frame(cbind(g1,c1,c2,u,probit_x))
probit_data$x[probit_data$probit_x>0]=1
probit_data$x[probit_data$probit_x<=0]=0
anorex.1 <- glm(x~g1+c1 +c2+u,
family=binomial(link = "probit"),data =probit_data)
summary(anorex.1)
第二步、根据第一步模拟的内生变量X和外生变量,计算出因变量Y.但是这一次估计的系数与模拟系数差异太大。
probit_y=0.3*x+2*c1-4*c2+*u-13
probit_data=as.data.frame(cbind(probit_data,probit_y))
probit_data$y[probit_data$probit_y>0]=1
probit_data$y[probit_data$probit_y<=0]=0
anorex.2 <- glm(y~x+c1 +c2+u,
family=binomial(link = "probit"),data =probit_data)
summary(anorex.2)
研究的最终目的是估计内生变量的参数与模拟的是否一样。求各位大神指出数据模拟时的问题。
此外,后续将在R软件中用贝叶斯方法 估计在去掉遗漏因素U(构建方程中不会带入U)的情况下,内生变量X的回归参数
与模拟的差别有多大。模型为probit模型,以及双变量Probit模型。如果有高手,请发邮件至
lnxiangchun@163.com,或
站内信,有酬劳,希望数学系或计量经济学大牛救急,毕业课题做不下去了啊。