假设现在有一个线性回归模型:
人均GDP = a第一产业产值 + b工业产值 + c建筑业产值 + d第三产业产值 + e
PS:人均GDP单位元,各产业产值单位亿元,为方便说明,这里举一个简单的例子。
一般而言,我们通常从那几个指标去分析这个模型?
我们常用的分析指标差不多是这些,其他 t值、F值、DW值等都是对模型本身的各种检验,对于业务分析没有太多帮助。
本文介绍一个指标,从另一个角度进行分析:各自变量对因变量的贡献率。
一、贡献率的计算
仍以上面回归模型为例,这个贡献率就是 各产业值 对 人均GDP 的 贡献率。
如果各个产业值对人均GDP的作用都显著,P值都是10的-5次方以下,系数也都相差不大(系数很大程度上是由量级决定的),那么:
我们如何衡量这几个因素的重要性?
贡献率 或许可以解决这个问题。
如何衡量贡献率?目前似乎还没有一种教科书式的定义(如果有,欢迎同步给我),paper中比较多的衡量方法是:
引入该因子之后,引起的模型R2的变化,即 贡献率 = delta R2。
这种方法其实也就是 R2 再细化到每个因子——看每个因子引起的R2的增长情况,以此来作为贡献率。
也有人用其他方法衡量:
某因子标准化系数的绝对值 / 各因子标准化系数绝对值之和
下面用实例来说明一下。
二、实例计算
刚才的例子,我们用某个国家36年的经济数据为例:
我们用 stepwise 跑出线性回归模型:
图1 回归模型结果(1)
图2 回归模型结果(2)
我们主要关注最终被stepwise确定的模型,也就是表中的 model 4。
可以看到:
一般来说,我们分析的指标差不多是这些,现在我们来计算一下贡献率:
(1)delta R2 法
每个因子引入之后,R2的变化如下:
图3 delta R2 结果
虽然每个因素都是显著的,但从贡献率角度我们发现,工业对该国人均GDP的贡献率最大,有99.8%,其他的贡献率一共才0.2%。
(2)标准化系数法
这个我们从图2中 Beta 栏即可计算出来:
工业仍然是贡献率最高的,占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同样可以:
图5 delta R2贡献率 SAS结果
PS:x3-工业产值;x2-第三产业产值;x1-第一产业产值;x4-建筑业产值
图6 标准化系数贡献率 SAS 结果