Marx MaxEN
菜单

OLS 抽样分布

在 Marx Max 中打开

用已知斜率为 2 的模拟模型,查看一次 OLS 估计与样本量 30、300 的重复抽样分布。下载实际运行的 Python 程序、模拟数据、1000 个抽样系数、图和复做说明。

用模拟数据展示 OLS 抽样波动:y=1+2x+ε,x 与 ε 独立标准正态,种子 42。保留生成模型和真值,比较一次 n=30 的估计与 n=30、n=300 各 500 次独立抽样的斜率分布。导出模拟数据、全部 1000 个系数、摘要、实际日志与图。

先阅读项目 README.md,下载公开 Python 复做包到 reference/ 并保留参考成果。检查已有依赖,按程序参数把本次输出写入 rerun/,核对数值,再用新目录改变种子。不要把模拟经验分位数称为某一次回归的置信区间,不从这个教学模型推导真实研究结论。
左图显示模拟样本、真值直线与 OLS 拟合线;右图比较样本量 30 和 300 各 500 次抽样的斜率分布。
左侧是一份样本的估计,右侧是一千份样本的估计分布;两张图回答不同问题。

下载完整 OLS 教学案例包(ZIP)

如果真实斜率是 2,一次回归为什么没有恰好估计出 2?这份教学案例用完全模拟的数据建立已知真值,再比较一次估计与重复抽样。所有图和数值来自配套程序实际运行,可以下载并改变种子继续观察。

先看计量教学指南:OLS、系数解释与 MCMC

保持什么不变,改变什么?

生成模型为 y = 1 + 2x + ε。x 和 ε 独立,均服从标准正态分布,各观测相互独立;截距真值为 1,斜率真值为 2。随机数种子为 42。分别以样本量 30 和 300 各抽取 500 个独立样本,并用 n=30 组的第一个样本展示一次 OLS。两种样本量的观察不是同一批数据的前缀,每次回归也不是反复使用同一张表。

一次估计与两种抽样分布

这一次 30 个观测的 OLS 截距约为 1.116,斜率约为 1.854。估计值偏离真值,并不单凭这一点说明程序或模型有误;检查程序后,再通过重复抽样观察估计的波动。

每次样本量重复次数斜率均值抽样斜率标准差经验 2.5%–97.5% 分位数
305001.9970.1921.625–2.393
3005002.0010.0591.889–2.115

本次运行中,两组斜率均值都接近 2,n=300 的分布更集中。表里的标准差描述重复抽样系数的波动,不是某一次回归报告的标准误;经验分位数也不是那次回归的 95% 置信区间。不能据此说每个大样本估计都更接近真值。

这个结论对应本例独立、同方差、零条件均值的生成模型。增加样本量不能自动修复内生性、测量错误或错误模型,模拟也不证明真实研究的识别假设。

下载并复做

  1. 解压到新的练习目录,保留一份原成果作参考。按 README 准备 Python、NumPy 与 Matplotlib;安装依赖会访问软件源,分析本身离线。
  2. 运行 python analyze.py,检查完成标记、单样本 30 行、抽样系数 1000 行及两组摘要。同一参数和依赖环境应重现数值,图片字节不要求相同。
  3. 先只改种子,再增加重复次数,将练习输出指定到新的目录。比较单次估计和分布;增加重复次数与增加每次样本量是不同操作。

程序只生成模拟数据,默认覆写包内 results/ 的同名文件。已在 macOS、Python 3.11.11 实际运行与新目录复做,Windows 真机未覆盖。若在 Marx Max 中练习,使用单独项目,围绕实际源码和输出讨论;这个包不证明真人课堂效果或模型自动完成能力。

回到计量教学指南 · 继续看实际 Stata 数据的模型比较