[数学建模从入门到入土] 相关性分析
个人导航
知乎:https://www.zhihu.com/people/byzh_rc
CSDN:https://blog.csdn.net/qq_54636039
注:本文仅对所述内容做了框架性引导,具体细节可查询其余相关资料or源码
参考文章:各方资料
文章目录
- [[数学建模从入门到入土] 相关性分析](#[数学建模从入门到入土] 相关性分析)
- 个人导航
- 概述
- [相关系数Correlation Coefficient](#相关系数Correlation Coefficient)
-
-
-
- [1. Pearson 相关系数](#1. Pearson 相关系数)
- [2. Spearman 相关系数](#2. Spearman 相关系数)
- [3. Pearson vs Spearman](#3. Pearson vs Spearman)
- [4. 多重共线性](#4. 多重共线性)
- [5. 趋势会制造伪相关](#5. 趋势会制造伪相关)
-
-
- [自相关 ACF](#自相关 ACF)
- [偏自相关 PACF](#偏自相关 PACF)
概述
判断变量之间有没有关系 -> 相关性
判断序列有没有"记忆" -> 自相关性
相关系数Correlation Coefficient
相关系数 = 用一个数,衡量"两个变量是否一起变化 + 变化是否有规律"
-
取值范围: [ − 1 , 1 ] [-1, 1] [−1,1]
-
符号:
- > 0 >0 >0:同向变化(一起涨、一起跌)
- < 0 <0 <0:反向变化(一个涨一个跌)
-
绝对值大小:
- 越接近 1 → 关系越"强"
- 越接近 0 → 基本没关系
相关系数常用于:
- 变量筛选: 去掉几乎没关系的变量
- 多重共线性判断: 两个自变量高度相关 → 回归不稳定
- 特征工程方向判断: 哪些变量值得重点建模
- 模型选择: 线性?单调?非线性?
Pearson 只看线性,Spearman 看单调
相关 ≠ 因果
趋势能制造"假相关"
1. Pearson 相关系数
定义为:
ρ X , Y = C o v ( X , Y ) σ X σ Y \rho_{X,Y} = \frac{\mathrm{Cov}(X,Y)}{\sigma_X \sigma_Y} ρX,Y=σXσYCov(X,Y)
样本形式是:
r = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ ( x i − x ˉ ) 2 ∑ ( y i − y ˉ ) 2 r = \frac{\sum_{i=1}^n (x_i-\bar x)(y_i-\bar y)} {\sqrt{\sum (x_i-\bar x)^2}\sqrt{\sum (y_i-\bar y)^2}} r=∑(xi−xˉ)2 ∑(yi−yˉ)2 ∑i=1n(xi−xˉ)(yi−yˉ)
-> Pearson 衡量的是:两个变量之间的"线性关系强弱"
典型情况:
- y = a x + b y = ax + b y=ax+b → Pearson ≈ ±1
- y = x 2 y = x^2 y=x2 → Pearson ≈ 0(但明明有关系)
Pearson 隐含假设:
- 关系近似线性
- 无明显极端异常值
- 连续数值型变量
- 对异常值 极度敏感
2. Spearman 相关系数
Spearman 的核心思想:不看原始数值,只看"排名"
- 把 x i , y i x_i, y_i xi,yi 分别转成排名
- 对排名计算 Pearson 相关
经典公式:
ρ s = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) \rho_s = 1 - \frac{6\sum d_i^2}{n(n^2-1)} ρs=1−n(n2−1)6∑di2
其中 d i d_i di 是两变量排名差
-> Spearman 衡量的是:两个变量是否"单调相关"
只要顺序不乱,Spearman 就能抓住
Spearman 的优点 -> 建模友好
- ✔ 不要求线性
- ✔ 对异常值不敏感
- ✔ 可用于等级变量
- ✔ 分布要求低
3. Pearson vs Spearman
| 场景 | Pearson(线性) | Spearman(单调) |
|---|---|---|
| 直线关系 y = a x + b y=a x+b y=ax+b | ✅ 很强 | ✅ 也强 |
| 非线性但单调 y = x 2 ( x > 0 ) y=x^2 (x>0) y=x2(x>0) / y = log x y=\log x y=logx | ❌ 可能不强 | ✅ 很强 |
| 有异常点(outlier) | ❌ 容易被带偏 | ✅ 更稳 |
| 解释意义 | 线性变化强弱 | 单调变化强弱(排名一致性) |
结论:
- Pearson:适合"线性模型"的前置分析
- Spearman:适合"关系单调但可能弯"的现实数据
4. 多重共线性
法一: 计算自变量之间的 Pearson 相关系数矩阵
| 相关系数 | 风险 |
|---|---|
| < 0.6 | 基本安全 |
| 0.6 -- 0.8 | 需注意 |
| > 0.8 | 高风险 |
法二: 方差膨胀因子VIF (最常用、最标准)
V I F j = 1 1 − R j 2 \mathrm{VIF}_j = \frac{1}{1 - R_j^2} VIFj=1−Rj21
R j 2 R_j^2 Rj2:用 其余所有自变量 回归 x j x_j xj 得到的 R 2 R^2 R2
| VIF | 结论 |
|---|---|
| ≈ 1 | 无共线性 |
| 1 -- 5 | 可接受 |
| 5 -- 10 | 中度共线性 |
| > 10 | 严重共线性 |
法三: 条件数(略)
5. 趋势会制造伪相关
两个变量即使彼此没有任何真实关系,只要它们都随时间一起上升/下降,用相关系数一算也会显得很相关
- 看起来相关很强(甚至显著)
- 但放到预测/解释里会翻车(换个时间段就不成立)
- 很容易做出错误结论(把"共同上涨"误当作"相互影响")
怎么识别:
- 去趋势/差分后再算相关
-> 一阶差分(看变化量而不是水平值)
自相关 ACF
给你一个序列 x 1 , x 2 , ... , x T x_1,x_2,\dots,x_T x1,x2,...,xT,
自相关: 现在的 x t x_t xt 跟过去的 x t − k x_{t-k} xt−k 有没有关系
(也就是"有没有记忆""记忆有多长")
滞后 k k k 的自相关系数:
ρ ( k ) = C o r r ( x t , x t − k ) \rho(k)=\mathrm{Corr}(x_t,\ x_{t-k}) ρ(k)=Corr(xt, xt−k)
样本估计(记住思想即可):
ρ ^ ( k ) = ∑ t = k + 1 T ( x t − x ˉ ) ( x t − k − x ˉ ) ∑ t = 1 T ( x t − x ˉ ) 2 \hat\rho(k)= \frac{\sum_{t=k+1}^{T}(x_t-\bar x)(x_{t-k}-\bar x)} {\sum_{t=1}^{T}(x_t-\bar x)^2} ρ^(k)=∑t=1T(xt−xˉ)2∑t=k+1T(xt−xˉ)(xt−k−xˉ)
- k = 1 k=1 k=1:看"跟上一时刻"的关系
- k = 24 k=24 k=24:比如小时数据看"跟前一天同一小时"的关系
- k = 7 k=7 k=7:日数据看"周周期"
偏自相关 PACF
ACF 有个"误导"点:即使 x t x_t xt 只和 x t − 1 x_{t-1} xt−1 相关, 它也可能看起来和 x t − 2 , x t − 3 x_{t-2},x_{t-3} xt−2,xt−3 都相关, 因为信息是"传递的"
若 x t x_t xt 与 x t − 1 x_{t-1} xt−1 强相关,那么一般 x t x_t xt 和 x t − 2 x_{t-2} xt−2 也会被间接带相关
-> PACF(k) = 在控制了 x t − 1 , ... , x t − k + 1 x_{t-1},\dots,x_{t-k+1} xt−1,...,xt−k+1 后, x t x_t xt 与 x t − k x_{t-k} xt−k 的"纯粹相关"
偏自相关可以理解为回归系数 -> 用线性模型回归:
x t = ϕ 1 x t − 1 + ⋯ + ϕ k x t − k + ϵ t x_t = \phi_1 x_{t-1}+\cdots+\phi_k x_{t-k}+ \epsilon_t xt=ϕ1xt−1+⋯+ϕkxt−k+ϵt
那么:
P A C F ( k ) = ϕ k \mathrm{PACF}(k)=\phi_k PACF(k)=ϕk
也就是:第 k k k 阶滞后的"直接贡献"