r - 如何在 R 中运行 IVPROBIT 的内生性测试
问题描述
有没有办法计算ivprobit
R 中输出的内生性的 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 人员。
解决方案
推荐阅读
- laravel - 如何在函数中使用带有 3 个 where 子句的 Laravel?
- android - android:kotlin流多个事件
- python - Python numpy 插值给出错误的输出
- javascript - JavaScript - 使用 string.indexOf() 检查哪个子字符串首先出现在父字符串中
- julia - 古巴的Julia包装器和Windows上的fork?
- python - 如何在 Python 中将 zip 文件转换为 gzip
- marklogic - 管理 API 以在集群环境中的组中的所有节点中创建森林
- node.js - parse-server-example 项目不再工作
- java - 为什么我的 gradle 创建的 jar 文件中没有 .class 文件?
- excel - 遍历所有 Outlook 项目,查找包含特定文本的电子邮件正文的电子邮件