Python 数据统计实战:相关性分析指南

相关性分析用于量化两个变量间的关联强度与方向。核心指标是相关系数,取值范围为$[-1, 1]$:

  • $1$:完全正相关
  • $-1$:完全负相关
  • $0$:无线性关联
常用方法
  1. 皮尔逊相关系数
    适用于连续变量,测量线性关系。公式:
    $$\rho_{X,Y} = \frac{\text{cov}(X,Y)}{\sigma_X \sigma_Y}$$
    其中$\text{cov}$为协方差,$\sigma$为标准差。

  2. 斯皮尔曼秩相关系数
    适用于有序数据或非线性关系,基于变量排名计算。


Python 实现步骤

1. 数据准备
import pandas as pd
import numpy as np
from scipy import stats

# 示例数据:广告投入 vs 销售额
data = {
    "广告费": [20, 35, 50, 65, 80],  
    "销售额": [120, 180, 250, 300, 370]
}
df = pd.DataFrame(data)

2. 计算皮尔逊相关系数
pearson_corr = df.corr(method='pearson')
print("皮尔逊相关系数矩阵:")
print(pearson_corr)

3. 计算斯皮尔曼相关系数
spearman_corr = df.corr(method='spearman')
print("\n斯皮尔曼相关系数矩阵:")
print(spearman_corr)

4. 可视化分析
import seaborn as sns
import matplotlib.pyplot as plt

sns.scatterplot(x='广告费', y='销售额', data=df)
plt.title("广告投入与销售额关系")
plt.show()


结果解读

  • 若输出值接近$1$(如$0.98$),表明强正相关:广告费增加时销售额显著上升
  • 若输出值接近$-1$(如$-0.85$),表明强负相关
  • 值在$(-0.3, 0.3)$区间可认为无显著关联
注意事项
  1. 皮尔逊系数要求数据满足正态分布
  2. 异常值会扭曲结果,需预先清洗数据
  3. 高相关≠因果关系,需结合业务逻辑判断

实战建议:对金融数据可尝试滚动相关性分析,动态观察指标随时间的变化趋势。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐