【问题标题】:Displaying variable label instead of variable name Stata's margins plot显示变量标签而不是变量名称 Stata 的边距图
【发布时间】:2023-03-23 23:13:01
【问题描述】:

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

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

【问题讨论】:

    标签: stata


    【解决方案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')
    

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

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      一个选项是添加:

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

      到 marginsplot 线的选项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-12
        • 2013-07-27
        • 1970-01-01
        • 2017-02-26
        • 2020-04-21
        • 1970-01-01
        • 2014-04-28
        • 1970-01-01
        相关资源
        最近更新 更多