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

如何用Python绘制带95%置信区间的双重差分(DID)回归系数图

带95%置信区间的DID动态效应系数图画法

你原有代码运行异常的核心问题是yerr参数传入错误:当你拥有明确的上下置信区间边界时,需要给yerr传入非对称误差数组,第一行是每个系数点到置信区间下限的距离(coef - ci_lower),第二行是到上限的距离(ci_upper - coef),同时原有代码缺少科研绘图必要的标注、参考线等信息。

以下是可直接运行的完整实现:

import pandas as pd
import matplotlib.pyplot as plt

# ---------------------- 数据读取部分 ----------------------
# 示例数据构造,实际使用时替换为pd.read_csv()读取你的真实数据集
df = pd.DataFrame({
    'x': ['t-3', 't-2', 't-1', 't', 't+1', 't+2', 't+3'],
    'coef': [0.0005219, 0.0008449, 0, 0.0009092, 0.0010828, 0.0013157, 0.001452],
    'ci_lower': [-0.000759, -0.0004935, 0, -0.0000604, 0.0001634, 0.0008022, 0.0008933],
    'ci_upper': [0.0018028, 0.0021833, 0, 0.0018789, 0.0020023, 0.0018291, 0.0020106]
})
# 计算非对称误差区间
y_err = [df['coef'] - df['ci_lower'], df['ci_upper'] - df['coef']]

# ---------------------- 绘图部分 ----------------------
# 中文显示配置,纯英文绘图场景可删除
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(10, 6), dpi=120)
# 绘制带误差棒的系数点,linestyle设为"-"可连接系数点直观展示趋势
plt.errorbar(x=df['x'], y=df['coef'], yerr=y_err, color="black", capsize=3,
             linestyle="-", linewidth=1.5,
             marker="s", markersize=7, mfc="black", mec="black")
# 绘制y=0参考线,快速判断系数是否显著异于0
plt.axhline(y=0, color='gray', linestyle='--', linewidth=1)
# 绘制政策节点参考线,t-1为基准期,对应x轴索引为2
plt.axvline(x=2, color='red', linestyle='--', linewidth=1, label='政策实施节点')

# 图表信息配置
plt.xlabel('政策时间节点', fontsize=12)
plt.ylabel('DID估计系数', fontsize=12)
plt.title('双重差分动态效应估计(含95%置信区间)', fontsize=14)
plt.legend()
plt.grid(axis='y', linestyle=':', alpha=0.3)
plt.tight_layout()
plt.show()

如果需要适配学术期刊风格,可以自行调整配色、删除上/右边框、给显著异于0的系数点替换标记颜色即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 04:24:03