Dear all,
I am calling the coefplot command after estimating several models using the teffects ipwra command. I would like to display results in terms of percentage changes (i.e., coefficient/potential outcome mean) instead of the outcome unit, such that we can better understand their magnitude and compare this magnitude across indicators (this is for a non-technical audience). I was able to use the transform() command to divide each coefficient but it divides them by the potential outcome mean of the last outcome (i.e., coef_outcome1/POM_outcome3) instead of the respective outcome (i.e., coef_outcome1/POM_outcome1).
Here is the code I am using:
coefplot ${graph`i'}, ///
coeflabels(r1vs0.$treatment= `"${lab_graph`i'}"', labsize(medium)) ///
rescale(r1vs0.$treatment=100) ///
transform( r1vs0.$treatment = (@/_b[POmean:0.$treatment]) ) ///
ylabel(, notick labgap(0)) xline(0) legend(off) ///
xtitle("Impact in %", margin(t+2) size(*1.4)) ///
xsize(30cm) scale(1.2) ///
graphregion(color(white)) bgcolor(white) ///
format(%9.2f) mlabposition(12) mlabgap(*2) mlabel(cond(@pval<.001, string(@b, "%9.2fc") + "***", cond(@pval<.01, string(@b, "%9.2fc") + "**", cond(@pval<.05, string(@b, "%9.2fc") + "*", string(@b, "%9.2fc"))))) mlabsize(medium)
And what I obtain (see figure).
However the values for the first two outcomes are wrong, as explained above. Any suggestion? In this example, I only have binary outcome, however putting results on the same scale will be even more meaningful when I want to also display continuous outcomes. I have seen people expressing everything in terms of units of standard deviation, but I feel this is hard to grasp for a non-technical audience. Any alternative approach that would serve my purpose is also welcome. Thank you in advance !!!
I am calling the coefplot command after estimating several models using the teffects ipwra command. I would like to display results in terms of percentage changes (i.e., coefficient/potential outcome mean) instead of the outcome unit, such that we can better understand their magnitude and compare this magnitude across indicators (this is for a non-technical audience). I was able to use the transform() command to divide each coefficient but it divides them by the potential outcome mean of the last outcome (i.e., coef_outcome1/POM_outcome3) instead of the respective outcome (i.e., coef_outcome1/POM_outcome1).
Here is the code I am using:
coefplot ${graph`i'}, ///
coeflabels(r1vs0.$treatment= `"${lab_graph`i'}"', labsize(medium)) ///
rescale(r1vs0.$treatment=100) ///
transform( r1vs0.$treatment = (@/_b[POmean:0.$treatment]) ) ///
ylabel(, notick labgap(0)) xline(0) legend(off) ///
xtitle("Impact in %", margin(t+2) size(*1.4)) ///
xsize(30cm) scale(1.2) ///
graphregion(color(white)) bgcolor(white) ///
format(%9.2f) mlabposition(12) mlabgap(*2) mlabel(cond(@pval<.001, string(@b, "%9.2fc") + "***", cond(@pval<.01, string(@b, "%9.2fc") + "**", cond(@pval<.05, string(@b, "%9.2fc") + "*", string(@b, "%9.2fc"))))) mlabsize(medium)
And what I obtain (see figure).
However the values for the first two outcomes are wrong, as explained above. Any suggestion? In this example, I only have binary outcome, however putting results on the same scale will be even more meaningful when I want to also display continuous outcomes. I have seen people expressing everything in terms of units of standard deviation, but I feel this is hard to grasp for a non-technical audience. Any alternative approach that would serve my purpose is also welcome. Thank you in advance !!!
Comment