在Stata中,如何将多个系数与不同的轴组合在一起?

时间:2016-07-12 14:31:39

标签: stata coefplot

我试图在Stata中结合两个系数 - 一个呈现二元变量的比例,第二个 - 逻辑回归的比值比。

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

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")  

所有工作都应该如此,我们得到一个情节:

enter image description here

现在为了让它更漂亮,更容易理解,我想再实施一些东西:

  1. 在右侧面板上使用对数比例(这是最重要的更改)。
  2. 在每个面板上使用两个不同的xline参考线。
  3. 仅在右侧面板上添加图例(适用于吸烟者/非吸烟者)。
  4. 使用左侧面板上的rescale选项切换到%s。
  5. 我尝试修改各种选项来实现这些变化 - 但到目前为止无济于事。任何解决方案?

1 个答案:

答案 0 :(得分:1)

Ben Jann(coefplot的作者)建议使用他的其他包addplotinfoarticle)。另外三个命令可以添加两个不同的参考线并更改第二个图形的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)

enter image description here

唯一的缺点是,尽管有legend(off)选项,传说仍然令人震惊。