求求代码饶了我 2024-04-24 17:37 采纳率: 40%
浏览 218
已结题

如何用stata画出文献中常见的安慰剂检验图

这是我画的图

img


想变成如下的格式

img


请问用stata什么代码能调整成这样呢

  • 写回答

23条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-24 17:37
    关注
    获得0.45元问题酬金

    引自免费微信小程序:皆我百晓生

    为了绘制您所描述的安慰剂检验图,即包含实际估计系数的核密度估计(KDE)曲线以及对应的正态分布曲线,您可以按照以下步骤操作:

    1. 准备数据:确保您的数据中包含需要进行安慰剂检验的变量(例如 did 的系数)及其观测值。

    2. 绘制实际系数的核密度估计图:使用 kdensity 命令生成 did 系数的核密度估计,并将其保存为一个变量(如 kde_coef)。同时,获取相应的估计带宽(如 bw_kde),以便在后续绘图时使用相同参数。示例代码如下:

    * 生成实际系数的核密度估计
    kdensity did_coef, gen(kde_coef) kernel(epanechnikov) bandwidth(0.0073) nograph
    local bw_kde = r(bw)
    
    * 绘制实际系数的核密度估计图
    twoway kdensity did_coef, kernel(epanechnikov) bandwidth(`bw_kde') xtitle("估计系数") ytitle("密度") legend(label(1 "实际系数 KDE"))
    
    1. 绘制正态分布曲线:根据实际系数的均值(mean_coef)和标准差(sd_coef),使用 normalden 函数计算正态分布密度值,并创建等距网格点(如 x_grid)以绘制正态分布曲线。示例代码如下:
    * 计算实际系数的均值和标准差
    summarize did_coef, detail
    local mean_coef = r(mean)
    local sd_coef = r(sd)
    
    * 创建等距网格点
    range x_grid -4 4 .01
    
    * 计算正态分布密度值
    gen normal_density = normalden(x_grid, `mean_coef', `sd_coef')
    
    * 绘制正态分布曲线
    twoway line normal_density x_grid if x_grid >= `mean_coef' - 4 * `sd_coef' & x_grid <= `mean_coef' + 4 * `sd_coef', ///
        xtitle("估计系数") ytitle("密度") legend(label(2 "正态分布"))
    
    1. 合并两幅图:将实际系数的核密度估计图与正态分布曲线合并到同一张图上,以对比观察它们的分布情况。示例代码如下:
    * 合并两幅图
    twoway (kdensity did_coef, kernel(epanechnikov) bandwidth(`bw_kde')) ///
        (line normal_density x_grid if x_grid >= `mean_coef' - 4 * `sd_coef' & x_grid <= `mean_coef' + 4 * `sd_coef'), ///
        xtitle("估计系数") ytitle("密度") legend(order(1 "实际系数 KDE" 2 "正态分布"))
    

    通过执行上述Stata代码,您将得到一幅包含实际估计系数的核密度估计曲线及对应正态分布曲线的安慰剂检验图。请注意,您需要根据实际情况替换变量名(如 did_coef)和带宽值(如 0.0073),以匹配您的数据和分析需求。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 创建了问题 4月24日