R2分解:相对重要性分析 (Dominance Analysis)

发布时间:2020-03-08 阅读 23929

Stata 连享会   主页 || 视频 || 推文

温馨提示: 定期 清理浏览器缓存,可以获得最佳浏览体验。

课程详情 https://gitee.com/arlionn/Course   |   lianxh.cn

课程主页 https://gitee.com/arlionn/Course

作者:胡雨霄 (伦敦政治经济学院)


目录


本文介绍重要性分析 (Dominance Analysis) 及其 Stata 命令实现 domin

相关推文:如何比较解释变量的系数相对大小?

1. 相对重要性分析简介

在实证经济学中,一个重要的问题是探究不同的解释变量 (explanatory variable) 对被解释变量 (dependent variable) 的方差的具体贡献程度。

例如,在 叶德珠,黄有光,连玉君 (2014) 的论文中,三位作者试图高清楚哪些文化因素对幸福感的影响更大 (Ye D, Ng Y K, Lian Y. Culture and Happiness[J]. Social Indicators Research, 2015, 123(2):519-547. [PDF])。显然,各个系数大小是不能被用来直接比较的;对系数进行标准化似乎可行,但却不知道他们的相对重要性。

此外,文献中比较普遍的方法为逐步回归法 (stepwise regression),即在回归中逐步引入解释变量, 以及显著性测试 (significance test)。然而,逐步回归方法中,引入解释变量的顺序是非常主观的。显著性测试也并不总是可以将不同的解释变量按其重要程度排序。基于此,Isareli (2006) 在前人的基础上 (主要是 (Shorrocks, 1999) 以及 (Fields, 2003))提出了重要性分析 (Dominance Analysis) 的方法。该方法旨在确定线性回归中,不同解释变量对决定系数 R2 的贡献程度。而事实上,对于决定系数 R2 的贡献程度也反映了不同解释变量对被解释变量方差的贡献度。

假设线性回归为

被解释变量 y 的方差,即总离差平方和 (total sum of squares, TSS), 可以被分解为两部分,回归平方和 (regression sum of squares, RSS) 以及残差平方和 (error sum or squares, ESS)。

其中,y^ 为被解释变量的预测值。

拟合优度 R2 可以被表示为

因为 R2 是重要的模型拟合优度统计量。自然而然,为了分析不同解释变量的相对重要性,研究者会想要分解不同解释变量对 R2 的贡献程度,并以此判断其相对重要性。

根据 Fields(2003),被解释变量 y 的方差,即总离差平方和 (total sum of squares, TSS),可分解为

由此可以得到不同解释变量的相对贡献程度

事实上,上式与 [3] 式本质相同。但根据 [5] 式,不同解释变量可按照重要程度排序。然而,Fields(2003) 未考虑到不同解释变量之间的相互关系。也就是说,某一变量的系数会与回归中其他的解释变量有关。

与之相反,Shapley(1999) 认为解释变量的贡献应当等同于其对 R2 的边际效用 (marginal effect),M。具体而言,解释变量 xk 对 R2 的边际效用可以表示为,

其中,S 是不包含变量 k 的其他解释变量。可以看到,该式实则为完整回归的 R2 减去不包含变量 k 的回归的 R2。由于去除一个解释变量后,回归的系数通常会发生改变,因此不包含变量 k 的回归的系数都以 * 表示。

此处,产生一个问题。变量 k 被剔除回归的顺序不同,那么对拟合优度 R2 的边际效用也会不同。因此,为了解决这个问题,最终对变量 k 的重要程度的判定是对 J! 种不同剔除方式得到结果的平均值。

2. Stata 命令 domin

2.1 命令下载

ssc install domin, replace

2.2 命令语法

该命令的基本语法如下

domin depvar indepvars [if] [in] [weight], sets((varlist) (varlist) ...) 

其中,

  • depvar :因变量
  • indepvars:解释变量
  • sets((varlist)(varlist)) 设定会将被列入 varlist 的变量视作一个解释变量。例如 sets((x1 x2)(x3 x4)) 表示会创建 2 个变量集合 (set)。其中 set1 由变量 x1 和变量 x2 创立,而 set2 则由变量 x3 和变量 x4 创立。该命令通常由于进行分组分析。

在研究中,通常只会使用到基本命令。但本文也将介绍该命令的进阶语法。

domin depvar [indepvars [if] [in] [weight] , fitstat(scalar)  
sets((varlist)(varlist) ...) noconditional nocomplete epsilon ]

其中,

  • fitstat(scalar) 规定了用于进行重要性分析的拟合优度统计量。fitstat 允许的 scalar 有 3 种形式:returned, ereturned, 或者其他 scalar。若无特别设定,Stata 则默认为 fitstat(e(r2))
  • noconditional 设定不输出 conditional dominance 的结果。
  • nocomplete 设定不计算 complete dominance 结果。
  • epsilon 设定可以加快计算速度,输出结果也与未设定 epsilon 的结果类似。但是如果加入该设定之后,无法同时加入 set

3. Stata 实操:两变量情形

3.1 数据概况

我们使用 Stata 自带的范例数据 auto.dta 来演示 domin 的基本用法:

通过 reg 命令进行回归后,可以发现解释变量 weight 和解释变量 length 都与被解释变量 price 显著相关。

. sysuse "auto.dta", clear
. reg price weight length 

  Source |     SS           df       MS      Number of obs   =        74
---------+--------------------------------   F(1, 72)        =     29.42
   Model | 184233937         1   184233937   Prob > F        =    0.0000
Residual | 450831459        72  6261548.04   R-squared       =    0.2901
---------+--------------------------------   Adj R-squared   =    0.2802
   Total | 635065396        73  8699525.97   Root MSE        =    2502.3

------------------------------------------------------------------------
   price |    Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
---------+--------------------------------------------------------------
  weight |    2.044      0.377     5.42   0.000        1.293       2.795
   _cons |   -6.707   1174.430    -0.01   0.995    -2347.890    2334.475
------------------------------------------------------------------------

3.2 相对重要性分析

运行 domin 命令后,结果如下所示。

  • 我们可以发现,Overall Fit Statistic 的数值与运行 reg命令后的 R-squared 数值相同。这是因为 domin 命令默认的拟合优度统计量即为 R-squared.
.    domin price weight length 

Total of 3 regressions

General dominance statistics: Linear regression
Number of obs             =                      74
Overall Fit Statistic     =                  0.3476

            |      Dominance      Standardized      Ranking
 price      |      Stat.          Domin. Stat.
------------+-----------------------------------------------
 weight     |         0.2256      0.6491            1 
 length     |         0.1220      0.3509            2 
------------------------------------------------------------
  • 变量 weight 的贡献度为 0.2256,也可以解释为该变量对拟合优度 R2 的边际贡献为0.2256。

  • 变量 length 的贡献度为 0.1220,也可以解释为该变量对拟合优度 R2 的边际贡献为 0.1220。

  • 在该线性回归中,变量 weight 相对于变量 length 更加重要,对被解释变量 price 的方差的变化的解释力度更强。

接下来,我们利用 Stata 来验证 Dominance Stat. 是如何得出的,同时将上述的数学公式进行运用。

在这个实证的例子中,我们只引入了两个解释变量。线性回归方程可表示为

代入 (6) 式,可得

其中,

  • Ro2=R2(a+b1x1+b2x2+e),即 reg y x1 x2 得到的 R2
  • R12=R2(a+b2x2+e),即 reg y x2 得到的 R2
  • R22=R2(a+b1x1+e),即 reg y x1 得到的 R2
. rename (price weight length) (y x1 x2) // 为了与数学公式一致
. 
. /*第一种剔除方法*/
. 
. **回归1:完整回归
. qui reg y x1 x2 
. 
. local R2_all = e(r2) //记录完整回归的R-squared
. 
. **回归2:剔除变量x1
. qui reg y x2
. local R2_x2 = e(r2) //记录回归2的R-squared
. 
. **第一种剔除方法得到的边际贡献
. local R2_m1_x1 = `R2_all'-`R2_x2'
. 
. /*第二种剔除方法*/
. 
. **回归1b:不包含x2的回归
. qui reg y x1 //回归1b
. 
. local R2_x1 = e(r2) //记录回归1b的R-squared
. 
. **回归1b:不包含x2和x1的回归
. qui reg y  //回归2b
. 
. local R2_0 = e(r2) //记录回归2b的R-squared
. 
. **第二种剔除方法得到的边际贡献
. local R2_m2_x1 = `R2_x1'-`R2_0'
. 
. /*Dominance Stat.*/
. 
. **[7]式
. local R2_x1_Sharp = (`R2_m1_x1'+`R2_m2_x1')/2

. dis "Shapley value of weight = " in g %6.4f `R2_x1_Sharp'
Shapley value of weight = 0.2256

4. Stata 实操:多变量情形

4.1 数据概况

这里使用 Stata 自带数据 nlsw88.dta 进行演示,该文件包含 2246 个妇女的工资和个人特征资料。

sysuse "nlsw88.dta", clear

数据结构如下

. list wage age hours tenure married in 1/10

     +---------------------------------------------+
     |     wage   age   hours     tenure   married |
     |---------------------------------------------|
  1. | 11.73913    37      48   5.333333    single |
  2. | 6.400963    37      40       5.25    single |
  3. | 5.016723    42      40       1.25    single |
  4. | 9.033813    43      42       1.75   married |
  5. | 8.083731    42      48      17.75   married |
     |---------------------------------------------|
  6. |  4.62963    39      30       2.25   married |
  7. | 10.49114    37      40         19    single |
  8. | 17.20612    40      45   14.16667   married |
  9. | 13.08374    40       8        5.5   married |
 10. | 7.745568    40      50       2.25   married |
     +---------------------------------------------+

4.2 回归分析

通过 reg 命令进行回归后,可以发现解释变量 age 在 5% 水平上显著与被解释变量 wage 相关。 解释变量 hours 以及解释变量 tenure都与被解释变量 wage 在 1% 水平上显著相关。而解释变量 married 与被解释变量不显著相关。

. reg wage age hours tenure married

   Source |       SS           df       MS      Number of obs   =     2,227
----------+----------------------------------   F(4, 2222)      =     29.94
    Model |   3784.9833         4  946.245825   Prob > F        =    0.0000
 Residual |  70235.8273     2,222  31.6092832   R-squared       =    0.0511
----------+----------------------------------   Adj R-squared   =    0.0494
    Total |  74020.8106     2,226  33.2528349   Root MSE        =    5.6222

---------------------------------------------------------------------------
     wage |      Coef.   Std. Err.      t    P>|t|     [95% Conf. Interval]
----------+----------------------------------------------------------------
      age |  -.0844975   .0390588    -2.16   0.031    -.1610931    -.007902
    hours |   .0711019   .0116507     6.10   0.000     .0482545    .0939493
   tenure |   .1665189   .0219824     7.58   0.000     .1234107    .2096272
  married |  -.2209223   .2514333    -0.88   0.380    -.7139911    .2721464
    _cons |   7.606344   1.617926     4.70   0.000     4.433539    10.77915
---------------------------------------------------------------------------

4.3 相对重要性分析

运行 domin 命令后,结果如下所示。我们可以发现

. domin wage age hours tenure married
Regression type not entered in reg(). 
reg(regress) assumed.

Fitstat type not entered in fitstat(). 
fitstat(e(r2)) assumed.


Total of 15 regressions

General dominance statistics: Linear regression
Number of obs             =                    2227
Overall Fit Statistic     =                  0.0511

            |      Dominance      Standardized      Ranking
 wage       |      Stat.          Domin. Stat.
------------+-----------------------------------------------
 age        |         0.0017      0.0331            3 
 hours      |         0.0205      0.4010            2 
 tenure     |         0.0279      0.5461            1 
 married    |         0.0010      0.0198            4 
------------------------------------------------------------

在该线性回归中,各个变量的相对重要性排序为:tenure > hours > age > married。也就是说,在工资水平 (wage) 的影响因素中,获得职位的年限 (tenure)是最重要的影响因素,其次是工作时长 (hours), 再次是年龄 (age),最后是已婚状态 (married)。

4.3 职业、行业等类别特征

变量 occupationindustryrace 均为分组变量。 domin 命令中的 sets() 设定可以很好得处理分组变量,并在处理中将 set1set2set3 分别视作由 occupationindustryrace产生的三个解释变量。

. domin wage age hours tenure married, sets((i.occupation) (i.industry) (i.race))

Total of 127 regressions

General dominance statistics: Linear regression
Number of obs             =                    2209
Overall Fit Statistic     =                  0.1990

          |   Dominance      Standardized      Ranking
 wage     |   Stat.          Domin. Stat.
----------+--------------------------------------------
 age      |      0.0013      0.0067            7 
 hours    |      0.0114      0.0572            4 
 tenure   |      0.0181      0.0908            3 
 married  |      0.0022      0.0111            6 
 set1     |      0.1133      0.5692            1 
 set2     |      0.0472      0.2374            2 
 set3     |      0.0055      0.0276            5 
-------------------------------------------------------

在引入不同的 set 之后,在该线性回归中,各个变量的相对重要性排序为 set1 > set2 > tenure > hours > set3 > married > age。我们可以看到,相对重要性排序相较之前发生了变化。具体而言,在工资水平 (wage) 的影响因素中,职业的选择 (occupation)是最重要的,其次是所在的行业(industry),再次为获得职位的年限 (tenure),之后为工作时长 (hours),种族(race),已婚状态 (married),最后为年龄 (age)。

5. 参考文献

  • Fields, G. S. (2003). Accounting for income inequality and its change: A new method, with application to the distribution of earnings in the United States. In Worker well-being and public policy (pp. 1-38). Emerald Group Publishing Limited.
  • Israeli, O. (2007). A Shapley-based decomposition of the R-square of a linear regression. The Journal of Economic Inequality, 5(2), 199-212.
  • Shorrocks, A.F.: Decomposition Procedures for Distributional Analysis: A Unified Framework Based on the Shapley Value (mimeo). University of Essex (1999)
  • Ye D, Ng Y K, Lian Y. Culture and Happiness[J]. Social Indicators Research, 2015, 123(2):519-547. Note: 这篇文章对本文介绍的内容进行了细致的说明和应用。[PDF]

相关课程

连享会-直播课 上线了!
http://lianxh.duanshu.com

免费公开课:


课程一览

支持回看,所有课程可以随时购买观看。

专题 嘉宾 直播/回看视频
最新专题 DSGE, 因果推断, 空间计量等
Stata数据清洗 游万海 直播, 2 小时,已上线
研究设计 连玉君 我的特斯拉-实证研究设计-幻灯片-
面板模型 连玉君 动态面板模型-幻灯片-
面板模型 连玉君 直击面板数据模型 [免费公开课,2小时]

Note: 部分课程的资料,PPT 等可以前往 连享会-直播课 主页查看,下载。


关于我们

  • Stata连享会 由中山大学连玉君老师团队创办,定期分享实证分析经验。直播间 有很多视频课程,可以随时观看。
  • 连享会-主页知乎专栏,300+ 推文,实证分析不再抓狂。
  • 公众号推文分类: 计量专题 | 分类推文 | 资源工具。推文分成 内生性 | 空间计量 | 时序面板 | 结果输出 | 交乘调节 五类,主流方法介绍一目了然:DID, RDD, IV, GMM, FE, Probit 等。
  • 公众号关键词搜索/回复 功能已经上线。大家可以在公众号左下角点击键盘图标,输入简要关键词,以便快速呈现历史推文,获取工具软件和数据下载。常见关键词:课程, 直播, 视频, 客服, 模型设定, 研究设计, stata, plus, 绘图, 编程, 面板, 论文重现, 可视化, RDD, DID, PSM, 合成控制法

连享会主页  lianxh.cn
连享会主页 lianxh.cn

连享会小程序:扫一扫,看推文,看视频……

扫码加入连享会微信群,提问交流更方便

✏ 连享会学习群-常见问题解答汇总:
https://gitee.com/arlionn/WD