这是我画的图
想变成如下的格式
请问用stata什么代码能调整成这样呢
引自免费微信小程序:皆我百晓生
为了绘制您所描述的安慰剂检验图,即包含实际估计系数的核密度估计(KDE)曲线以及对应的正态分布曲线,您可以按照以下步骤操作:
准备数据:确保您的数据中包含需要进行安慰剂检验的变量(例如 did
的系数)及其观测值。
绘制实际系数的核密度估计图:使用 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"))
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 "正态分布"))
* 合并两幅图
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
),以匹配您的数据和分析需求。