如何使用coefplot在一张图中绘制多个模型的系数?

时间:2019-01-31 02:40:06

标签: stata coefplot

我有一些模型,这些模型具有不同的因变量(DV),但是使用相同的工具变量(IV),并且具有两种不同的识别策略。简而言之,我有:

Group1 
model 1
model 2
model 3
model 4

Group2
model 1-2
model 2-2
model 3-2
model 4-2

我想绘制系数,以便可以比较模型1和模型1-2的IV的系数估计值;型号2和型号2-2 ...一次。我希望在一张图中绘制八个系数,因为所有模型的目标IV都相同。

是否有程式化的方式来做到这一点?

就目前而言,我只知道如何在一张图中绘制模型1和模型1-2的系数,而并非在其他所有图中绘制它们。我希望根据模型编号(1、2、3、4)水平绘制系数,并比较模型1和模型1-2的系数;型号2和型号2-2,分别针对“ x轴”上的每个型号。

enter image description here

1 个答案:

答案 0 :(得分:1)

社区贡献的命令coefplot并非旨在那样使用。

尽管如此,下面还是一个玩具示例,说明了如何获得想要的东西:

sysuse auto, clear
estimates clear 

// code for identification strategy 1

regress price mpg trunk length turn if foreign == 0
estimates store A

regress price trunk turn if foreign == 0
estimates store B

regress price weight trunk turn if foreign == 0
estimates store C

regress price trunk if foreign == 0
estimates store D

// code for identification strategy 2

regress price mpg trunk length turn if foreign == 1
estimates store E

regress price trunk turn if foreign == 1
estimates store F

regress price weight trunk turn if foreign == 1
estimates store G

regress price trunk if foreign == 1
estimates store H

然后按如下所示绘制图:

local gap1 : display _dup(30) " "
local gap2 : display _dup(400) " "

local label1 |`gap1'|`gap1'|`gap1'|`gap2'

local gap3 : display _dup(25) " "
local gap4 : display _dup(400) " "

local label2 DV1`gap3'DV2`gap3'DV3`gap3'DV4`gap4'

coefplot (A, offset(-0.38)) (E, offset(-0.33))  ///
         (B, offset(-0.15)) (F, offset(-0.1))  ///
         (C, offset(0.09)) (G, offset(0.135))  ///
         (D, offset(0.3)) (H, offset(0.35)), ///
         vertical  keep(trunk) coeflabels(trunk = `""`label1'""`label2'""') ///
         xlabel(, notick labgap(0)) legend(off)

此处的代码使用Stata的玩具auto数据集为每个foreign类别运行许多简单的回归。相同的因变量price用于说明,但是您可以在其位置使用不同的变量。此处假设变量trunk是关注变量。

以上玩具代码片段的基本作用是保存每组回归估计,然后模拟成对的模型。标签DV是根据我最近在以下两个问题中展示的黑客行为绘制的:

结果是一个很好的近似值,但需要您自己进行实验:

enter image description here