回归模型的一个隐藏指标,你知道吗?

2018-03-28 16:50:24 浏览数 (1)

假设现在有一个线性回归模型:

人均GDP = a第一产业产值 b工业产值 c建筑业产值 d第三产业产值 e

PS:人均GDP单位元,各产业产值单位亿元,为方便说明,这里举一个简单的例子。

一般而言,我们通常从那几个指标去分析这个模型?

  • 看系数,比如第一产值每增长1亿元,人均GDP平均增长a元。
  • 看P值,比如系数a的P值为0.025,说明第一产业产值对人均GDP的增长作用是显著的。
  • 看R2,比如 R2=0.95,说明这几个产业的产值,对人均GDP的解释能力为95%。

我们常用的分析指标差不多是这些,其他 t值、F值、DW值等都是对模型本身的各种检验,对于业务分析没有太多帮助。

本文介绍一个指标,从另一个角度进行分析:各自变量对因变量的贡献率。

一、贡献率的计算

仍以上面回归模型为例,这个贡献率就是 各产业值 对 人均GDP 的 贡献率。

如果各个产业值对人均GDP的作用都显著,P值都是10的-5次方以下,系数也都相差不大(系数很大程度上是由量级决定的),那么:

我们如何衡量这几个因素的重要性?

贡献率 或许可以解决这个问题。

如何衡量贡献率?目前似乎还没有一种教科书式的定义(如果有,欢迎同步给我),paper中比较多的衡量方法是:

引入该因子之后,引起的模型R2的变化,即 贡献率 = delta R2。

这种方法其实也就是 R2 再细化到每个因子——看每个因子引起的R2的增长情况,以此来作为贡献率。

也有人用其他方法衡量:

某因子标准化系数的绝对值 / 各因子标准化系数绝对值之和

下面用实例来说明一下。

二、实例计算

刚才的例子,我们用某个国家36年的经济数据为例:

我们用 stepwise 跑出线性回归模型:

图1 回归模型结果(1)

图2 回归模型结果(2)

我们主要关注最终被stepwise确定的模型,也就是表中的 model 4。

可以看到:

  • 所有的因素都显著(P-value<0.05),即第一产业、工业、建筑业、第三产业对人均GDP均有显著促进作用;
  • R2 为 1,即这四个因素对人均GDP的解释能力为100%
  • 系数(表中B)都在一个量级,如:
    • 工业的系数为0.85,代表工业产值每提高1亿元,人均GDP平均提高0.085元;
    • 第一产业的系数为0.128,代表第一产业产值每提高1亿元,人均GDP平均提高0.128元
    • 其他省略。

一般来说,我们分析的指标差不多是这些,现在我们来计算一下贡献率:

(1)delta R2 法

每个因子引入之后,R2的变化如下:

图3 delta R2 结果

  • delta R2 (工业) = 0.998
  • delta R2 (第三产业) = 0.001
  • delta R2 (第一产业) = 0.000
  • delta R2 (建筑业) = 0.000

虽然每个因素都是显著的,但从贡献率角度我们发现,工业对该国人均GDP的贡献率最大,有99.8%,其他的贡献率一共才0.2%。

(2)标准化系数法

这个我们从图2中 Beta 栏即可计算出来:

  • delta R2 (工业) = 0.447 / ( 0.447 0.355 0.168 0.031 ) = 0.447
  • delta R2 (第三产业) = 0.355 / ( 0.447 0.355 0.168 0.031 ) = 0.355
  • delta R2 (第一产业) = 0.168 / ( 0.447 0.355 0.168 0.031 ) = 0.168
  • delta R2 (建筑业) = 0.031 / ( 0.447 0.355 0.168 0.031 ) = 0.031

工业仍然是贡献率最高的,占44.7%,其次第三产业35.5%、第一产业16.8%、建筑业3.1%.

两种方法虽然值有差别,但贡献率排序是一样的。

三、演示 及 code

(1)SPSS

在 SPSS 中,我们可以直接得到两种方法的结果,上面的结果图,就是SPSS的结果。

标准化系数,SPSS默认就有,delta R2,需要在 linear regression - statistics 中,勾选 R squared change:

图4 SPSS 勾选 R squared change

(2)SAS

SAS同样可以:

  • delta R2 法

图5 delta R2贡献率 SAS结果

PS:x3-工业产值;x2-第三产业产值;x1-第一产业产值;x4-建筑业产值

  • 标准化系数法

图6 标准化系数贡献率 SAS 结果

0 人点赞