2

我试图在Stata中组合两个coefplots - 一个呈现二元变量的比例,第二个 - 逻辑回归的优势比。

采取一些示例性数据,我们分别针对吸烟者和非吸烟者查看低出生体重,并检查种族和高血压病史的影响(请注意,从概念的角度来看,这些分析并不是有意义的,而是 - 它们是用于生成一些用于绘图的数据!):

use http://www.stata-press.com/data/r12/lbw.dta, clear

logit low i.race if smoke == 0
eststo race_0: margins race, post

logit low i.race if smoke == 1
eststo race_1: margins race, post

logit low i.ht if smoke == 0
eststo ht_0: margins ht, post

logit low i.ht if smoke == 1
eststo ht_1: margins ht, post


logit low i.race i.ht if smoke == 0 
eststo mod_0

logit low i.race i.ht if smoke == 1 
eststo mod_1

现在我们可以将这些结果组合成两个图:

coefplot    (race_0 \ ht_0 , label (Non-smoker)) ///
            (race_1 \ ht_1 , label (Smoker)) ///
                , bylabel(Proportion)  ///
            || mod_0 mod_1, ///
                eform baselevels bylabel("Adjusted OR")  /// 
            || , drop(_cons) byopts(xrescale) ///
            groups(*.race = "Race" *.ht = "Hypertension")  

所有工作都按预期进行,我们得到一个情节:

在此处输入图像描述

现在为了让它更漂亮、更容易理解,我想实现更多的东西:

  1. 在右侧面板上使用对数刻度(这是最关键的更改)。
  2. xline在每个面板上使用两条不同的参考线。
  3. 仅在右侧面板上添加图例(适用于吸烟者/非吸烟者)。
  4. 使用rescale左侧面板上的选项切换到 %s。

我尝试修改各种选项来实施这些更改 - 但到目前为止无济于事。有什么解决办法吗?

4

1 回答 1

1

Ben Jann(的作者coefplot)建议使用他的其他包addplot信息文章)。三个附加命令可以添加两条不同的参考线并更改第二个图形的 X 轴比例:

addplot 1: , xline(0.31) norescaling legend(off)
addplot 2: , xline(1) norescaling legend(off)
addplot 2: , xlab(0.5 1 2 5 20) xscale(log) norescaling legend(off)

在此处输入图像描述

唯一的缺点是尽管使用了 usnglegend(off)选项,但传说还是很疯狂。

于 2016-07-13T09:08:26.327 回答