You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

手动计算2SLS回归稳健标准误差的问题求助

问题根源与修正方案

你的核心错误是计算稳健方差-协方差矩阵(VCE)时,使用了第二阶段的原始自变量矩阵X(包含实际H的矩阵),但2SLS的稳健标准误需要基于第一阶段拟合得到的预测值$\hat{H}$构建的自变量矩阵,而非原始内生变量。以下是修正后的完整步骤:

1. 提取第一阶段预测值

从systemfit结果中提取第一阶段对H的预测值:

H_hat <- predict(ivhfsystem$eq[[1]], data = DataControls)

2. 构建拟合自变量矩阵

用预测值$\hat{H}$替换原始H,生成2SLS对应的自变量矩阵$X^*$:

X_star <- model.matrix(Index ~ H_hat, data = DataControls)

3. 正确计算HC1稳健标准误

使用$X^*$结合第二阶段残差计算稳健VCE:

residuals <- ivhfsystem$eq[[2]]$residuals
n <- nrow(DataControls)
k <- length(coef)
hc1 <- (n/(n - k)) * residuals^2

# 基于拟合自变量矩阵计算稳健VCE
vce_hc1 <- solve(t(X_star) %*% X_star) %*% (t(X_star) %*% diag(hc1) %*% X_star) %*% solve(t(X_star) %*% X_star)
se_robust <- sqrt(diag(vce_hc1))

4. 结果验证

此时计算出的se_robust会和iv_robust或ivreg结合coeftest(., vcov = vcovHC(., type = "HC1"))的结果一致。你也可以用以下代码快速对照:

library(ivreg)
library(lmtest)
iv_model <- ivreg(Index ~ H | HL1, data = DataControls)
coeftest(iv_model, vcov = vcovHC(iv_model, type = "HC1"))

内容的提问来源于stack exchange,提问作者JJ1214

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:55:27