Marx MaxEN
菜单

稳健标准误

在 Marx Max 中打开

用 500 个模拟观测比较普通与 HC1 标准误,核对相同样本与系数。查看实际结果,下载 Python、Stata、模拟数据、日志、图和复做说明。

使用公开练习包中的 500 行模拟数据,固定同一样本和 OLS 系数,比较普通与 HC1 标准误、95% 区间及 p 值。用 Python 和 Stata 独立计算,核对 HC1 的 n/(n−k) 修正(k=2,含截距),区间和 p 值使用自由度 498 的 t 参考。

先阅读项目 README.md,下载完整复做包到 reference/,保留原数据及参考成果;检查已有 Python 依赖与合法 Stata 环境,在新的练习会话中运行,把本次输出与差异说明放入 rerun/。不要为了展示改数据或挑选显著性翻转,不声称稳健标准误总会更大,也不把它当作内生性或相关误差的修复。
同一模拟样本的 OLS 残差与普通、HC1 标准误对照。
残差散布随 x 改变,右图分别展示截距与斜率标准误。

下载完整复做包(ZIP)

这份案例接着 OLS 抽样教学,固定同一份数据与回归,只改变标准误的计算。数据完全模拟,结果由 Python 与 Stata 独立实算,便于逐项核对。

先看方法与使用指南 · 回看 OLS 抽样分布

同一模拟样本,只改变协方差估计

随机数种子为 42,500 个独立观测。x 服从 Uniform(−2,2),z 服从标准正态,二者独立;y = 1 + 2x + (0.3 + 1.2|x|)z。误差条件均值为零,方差随 x 改变。两次 OLS 都带截距,使用全部 500 行,没有换样本或添加控制变量。

普通协方差使用残差均方;HC1 使用残差平方构成的 sandwich 协方差,并乘 n/(n−k),本例 k=2 包含截距。Python 直接计算矩阵式,Stata 使用 regress y x 与 regress y x, vce(robust)。

标准误方法斜率标准误95% 区间pN
普通1.9730.0661.843–2.1037.65e-113500
HC11.9730.0841.807–2.1384.35e-82500

斜率保持约 1.973,HC1 的斜率标准误从约 0.066 增为 0.084,区间变宽;截距的两种标准误几乎相同且 HC1 略小,完整结果见 CSV。本次两种推断下斜率都显著,不制造显著性翻转,也不推断稳健标准误总会更大。

区间与 p 值都使用自由度 498 的 t 参考,不能当作异方差下精确有限样本保证。HC1 只处理这里的异方差推断,不修复内生性、遗漏变量、组内相关或时间相关。 Stata 官方方法说明

下载代码、数据和实际输出

  1. 解压到新目录并保留一份参考成果,按 README 准备 Python 依赖。安装依赖会访问软件源,分析本身离线。
  2. 从包根运行 python analyze.py,核对完成标记、数据行数和实际结果。默认覆写包内 results/ 同名文件。
  3. Stata 在新的合法会话中切换到包根,运行 do analysis.do;不需要 Python 或额外 Stata 命令。clear all 清空该会话,先保存已有工作。

本次在 macOS 使用 Python 3.11.11;异方差另用 Stata 19.5 独立核对,Windows 真机未覆盖。模拟仅用于说明方法与计算,不代表真实研究结果、真人教学效果或模型自动执行能力。

回到本案例指南 · 回到计量教学总指南