首页 > 解决方案 > 如何在 R 中运行 IVPROBIT 的内生性测试

问题描述

有没有办法计算ivprobitR 中输出的内生性的 Wald 检验或 Wu-Hausman 统计量?

Wald Chi-Square 和其他拟合统计数据在 Rivreg 函数Stata ivprobit函数中都作为输出给出,但这里没有。

我尝试使用ivprobit作为输入之一来计算 Wald 和 Wu-Hausman,但出现错误:

library(ivprobit)
endmod <- ivprobit(y1 ~ x1| x2 | z1 + x1, data=data)
no_ivs <- glm(y1 ~ x1 + x2, data, family=binomial(link="probit"))

library(lmtest)
waldtest(no_ivs, endmod)

## Error ##
Error in modelUpdate(objects[[i - 1]], objects[[i]]) : 
  original model was of class "glm", updated model is of class "ivprobit"

library(systemfit)
hausman.systemfit(no_ivs, endmod)

## Error ##
Error in vcov.default(results3sls) : 
  object does not have variance-covariance matrix

然后我尝试通过运行 2SLS(也手动)手动计算它,但鉴于第一步是线性模型(因为内生变量是正态分布的),第二步是概率,我得到了 Wald 测试可以的错误不计算。

l0 <- glm(y2 ~ x2 + x1, data, family=binomial(link="probit")))
l1 <- lm(x2 ~ x1 + z1, data)
x2.hat <- fitted.values(l1)
l2 <- glm(y2 ~ x2.hat + x1, data, family =binomial(link="probit"))

library(lmtest)
waldtest(l0,l2)

## Error ##
Error in objects[[i]] : subscript out of bounds
In addition: Warning message:
In waldtest.default(object, ..., test = match.arg(test)) :
  models with response "y2" removed because response differs from model 1

library(plm)
phtest(l0, l2)

## Error ##
Error in UseMethod("phtest") : 
  no applicable method for 'phtest' applied to an object of class "c('glm', 'lm')"

这是ivprobit功能的缺陷吗?还是我做错了什么*?

*这也可能是一个数学问题(ivprobit无法将必要的输入输出到 Wald)?如果是这种情况,我可以将我的问题转给 Stats 人员。

标签: rstatisticsstatistical-test

解决方案


推荐阅读