在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)
在 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
我意识到这可能是一个基本问题,但任何想法都会受到赞赏!
答案 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')
瞧,标签现在都在生成的图表上。
希望这有帮助。