显示变量标签而不是变量名称Stata的边距图

时间:2016-11-29 14:13:36

标签: stata

Stata中,我想运行回归并直观地显示每个变量的系数及其相对于零的置信区间,如下面的代码和图所示:

sysuse auto
regress price mpg weight length foreign gear_ratio headroom rep78
margins, dydx(*)
marginsplot, horizontal recast(scatter) xline(0, lcolor(red)) xscale(range()) yscale(reverse)

enter image description here

y轴上,我想显示变量标签(在右侧)而不是变量名称。可以使用哪种选项来进行配置?

              storage   display    value
variable name   type    format     label      variable label
-----------------------------------------------------------------------------------------------------------------------
price           int     %8.0gc                Price
mpg             int     %8.0g                 Mileage (mpg)
weight          int     %8.0gc                Weight (lbs.)
length          int     %8.0g                 Length (in.)
foreign         byte    %8.0g      origin     Car type
gear_ratio      float   %6.2f                 Gear Ratio
headroom        float   %6.1f                 Headroom (in.)
rep78           int     %8.0g                 Repair Record 1978

我意识到这可能是一个基本问题,但任何想法都会受到赞赏!

2 个答案:

答案 0 :(得分:1)

一个选项是添加:

ylabel(1"里程(MPG)" 2"重量" 等......

到margininsplot行的选项。

答案 1 :(得分:1)

据我所知,没有直接的方法来指示marginsplot显示变量的标签而不是其名称。但是,正如@Skimwhistle指出的那样,您可以使用ylabel手动获取所需的输出。

您当然可以通过编写一个小r-class程序来进一步概括这个概念:

program define foo, rclass

syntax varlist

local i = 0

foreach var of local varlist {
    local ++i
    local varlabel : variable label `var'
    local varlabels `varlabels' `i' `" "`varlabel'" "'      
}

return local xvarlabels `varlabels'

end

使用这个我们称之为foo的小程序,您可以自动获取list中的所有变量标签,然后将其提供给marginsplot

clear
sysuse auto

local xvars mpg weight length foreign gear_ratio headroom rep78

foo `xvars'
local xvarlabels `r(xvarlabels)'

regress price `xvars'
margins, dydx(*)

marginsplot, horizontal allxlabels recast(scatter) xline(0, lcolor(red)) ///
xscale(range()) yscale(reverse) ylabel(`xvarlabels')

瞧,标签现在都在生成的图表上。

希望这有帮助。