回归与相关:两把尺子量数据
做数据观察时,经常碰到一个问题:两个变量摆在一起,到底该算相关系数,还是跑回归?很多人随手选一个,结果解释起来别扭。其实这两把尺子量的是不同东西——相关看的是同步程度,回归看的是变化关系。
先看一个常被引用的例子。某城市统计了十年居民人均可支配收入和人均消费支出,算出来相关系数0.98。这个数说明两者高度同步:收入高的年份,消费也高。但相关系数不会告诉你,收入每增加1元,消费平均增加多少。要回答这个问题,就得做回归。用简单线性回归拟合,斜率大约是0.7,意思是收入每多1元,消费平均多0.7元。相关给方向感,回归给具体刻度。
两者的计算逻辑也不一样。相关系数对变量一视同仁,把x和y互换,结果不变。回归则分自变量和因变量,互换后方程完全不同。比如气温和用电量,相关系数能告诉你两者负相关——气温越高,用电越少(取暖需求下降)。但如果你想知道气温升高1摄氏度,用电量平均下降多少度,只能靠回归。反过来,把用电量当自变量去预测气温,在统计上也能跑出一个方程,但现实意义为零。这就是回归的“方向性”约束。
另一个容易混淆的点是量纲。相关系数是无量纲的,永远落在-1到1之间,所以适合跨数据集比较。比如你可以说,收入与消费的相关性(0.98)比气温与用电量的相关性(-0.85)更强。但回归系数带量纲,收入用元、消费也用元,斜率0.7就是“元/元”;如果收入换成万元,斜率变成7000,数值变了,含义没变。做数据观察时,比较回归系数大小之前,先确认单位是否一致。
在实际的走势解读中,两者常常配合使用。一个典型流程是:先画散点图,算相关系数,判断有没有线性关联;如果相关系数绝对值够大(比如超过0.7),再跑回归,量化边际影响。但要注意,相关系数低不代表没关系。 Anscombe四组数据是经典反例:四组数据的相关系数都是0.816,回归线也几乎相同,但散点图形态截然不同——一组是线性,一组是曲线,一组有离群点,一组是垂直线加一个远点。只看数字不做图,容易得出错误结论。
更隐蔽的陷阱是把相关当因果。某研究发现,冰淇淋销量和溺水人数相关系数达到0.9。回归一下,冰淇淋销量每增加1万支,溺水人数增加约3人。但这显然不是冰淇淋导致溺水,而是夏季气温同时推高了两者。做预测时,如果忽略这种共同驱动因素,回归方程在样本外就会失效。一个实用的检查方法是:加入控制变量(比如气温)后,看原变量的回归系数是否大幅缩小甚至变得不显著。
回到开头的收入消费例子。如果只用相关系数,你能说“收入与消费高度同步”,但不能说“收入增长会带动消费增长”。后者需要回归,而且最好用面板数据控制个体效应,或者用工具变量处理内生性。数据观察的价值不在于给出一个万能答案,而在于根据问题选对工具。相关回答“是否一起动”,回归回答“动多少、往哪动”。两者不是替代关系,而是先后关系。
最后提一个操作建议:下次拿到两个变量的时间序列,先算差分后的相关系数,再跑差分后的回归。因为原始数据往往有共同趋势,直接算相关会虚高。比如两个独立的随机游走序列,相关系数经常超过0.8,但差分后接近0。这一步能帮你避开不少伪回归的坑。