header detail 1
header detail 2
世界杯热身赛_世界杯赛程 - toption-intl.com
世界杯热身赛_世界杯赛程 - toption-intl.com

数据预处理——相关性分析详解

Home 2025-09-30 16:57:21 数据预处理——相关性分析详解
世界杯第一场比赛

什么是相关性分析?

在数据预处理阶段,相关性分析是一项关键任务。它帮助我们理解特征之间的关系,从而为后续建模提供指导。本篇文章将详细介绍 卡方测试、皮尔逊相关系数 和 协方差,并结合案例逐步解析每种方法的应用。

1. 相关性分析的意义

相关性分析用于衡量数据特征之间的关联程度。高相关性可能表明一个特征可以解释另一个特征的变化,而低相关性或无相关性意味着两者之间缺乏统计关系。

正相关:一个特征增加,另一个特征也增加。负相关:一个特征增加,另一个特征减少。无相关:特征间无显著关系。

相关性与因果性

需注意,相关性不等于因果性。即使两个变量相关,也不一定存在直接因果关系。

2.常见的相关性分析方法:

卡方( χ2\chi^2χ2)测试:分析离散变量之间是否存在显著关系。皮尔逊相关系数:衡量连续变量之间的线性相关性。协方差:分析两个变量的变化方向是否一致。

相关性分析的作用

相关性分析的主要目的是通过特征之间的关联性来帮助决策,例如:

特征选择

去除冗余特征,简化数据结构。提高模型的训练效率和性能。

数据降维

当特征间相关性较强时,可通过主成分分析(PCA)等方法将高维特征降至低维,减少数据维度。

识别异常

通过相关性分析,发现数据中存在的不合理关联或异常模式。

方法一:卡方测试(Chi-Square Test)

1. 什么是卡方测试?

卡方测试是一种非参数统计检验,用于判断两个离散变量之间是否存在显著关系。

例如,我们可以用卡方测试来分析“性别”和“是否喜欢某款游戏”是否相关。

2. 公式解释

卡方( χ2\chi^2χ2)统计量的公式为:

χ2=∑(O−E)2E

\chi^2 = \sum \frac{(O - E)^2}{E}

χ2=∑E(O−E)2​

( χ2\chi^2χ2):卡方统计量,表示实际观测值和期望值之间的差异程度。(OOO):实际观测值(Observed Value)。(EEE):期望值(Expected Value),计算公式为:

E=行合计总计×列合计总计总样本数

E = \frac{\text{行合计总计} \times \text{列合计总计}}{\text{总样本数}}

E=总样本数行合计总计×列合计总计​

当( χ2\chi^2χ2)值越大,表明实际观测值与期望值之间的差距越大,两变量的关联性越强。

3. 案例分析

问题:性别(男/女)与是否喜欢某款游戏(是/否)是否存在显著关系?

数据如下:

性别喜欢不喜欢总计男250200450女5010001050总计30012001500第一步:计算期望值

使用公式E=行合计总计×列合计总计总样本数E = \frac{\text{行合计总计} \times \text{列合计总计}}{\text{总样本数}}E=总样本数行合计总计×列合计总计​计算:

男且喜欢:

E=450×3001500=90

E = \frac{450 \times 300}{1500} = 90

E=1500450×300​=90男且不喜欢:

E=450×12001500=360

E = \frac{450 \times 1200}{1500} = 360

E=1500450×1200​=360女且喜欢:

E=1050×3001500=210

E = \frac{1050 \times 300}{1500} = 210

E=15001050×300​=210女且不喜欢:

E=1050×12001500=840

E = \frac{1050 \times 1200}{1500} = 840

E=15001050×1200​=840

期望值表格如下:

性别喜欢不喜欢男90360女210840第二步:计算卡方统计量

χ2=(250−90)290+(200−360)2360+(50−210)2210+(1000−840)2840

\chi^2 = \frac{(250 - 90)^2}{90} + \frac{(200 - 360)^2}{360} + \frac{(50 - 210)^2}{210} + \frac{(1000 - 840)^2}{840}

χ2=90(250−90)2​+360(200−360)2​+210(50−210)2​+840(1000−840)2​

Python实现

import numpy as np

from scipy.stats import chi2_contingency

# 实际观测值

observed = np.array([[250, 200], [50, 1000]])

# 卡方检验

chi2, p, dof, expected = chi2_contingency(observed)

print(f"卡方统计量: {chi2:.2f}") #504.77

结果解读

χ2\chi^2χ2 = 504.77:值很大说明性别与游戏喜好存在显著关系。

方法二:皮尔逊相关系数(Pearson Correlation Coefficient)

1. 什么是皮尔逊相关系数?

皮尔逊相关系数是衡量两个连续变量之间线性相关程度的指标,其值介于 −1-1−1 和 111 之间:

(r>0r > 0r>0):正相关,值越接近 (1),正相关越强。( r<0r < 0r<0):负相关,值越接近 (-1),负相关越强。( r=0r = 0r=0):两个变量之间没有线性相关。

注意:皮尔逊相关系数只衡量线性相关性,不适用于非线性关系。

2. 公式及解释

皮尔逊相关系数的公式为:

r=∑(Xi−Xˉ)(Yi−Yˉ)∑(Xi−Xˉ)2⋅∑(Yi−Yˉ)2

r = \frac{\sum (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum (X_i - \bar{X})^2 \cdot \sum (Y_i - \bar{Y})^2}}

r=∑(Xi​−Xˉ)2⋅∑(Yi​−Yˉ)2​∑(Xi​−Xˉ)(Yi​−Yˉ)​

( rrr):皮尔逊相关系数。( XiX_iXi​)、( YiY_iYi​):变量 ( XXX) 和 ( YYY) 的样本值。(Xˉ\bar{X}Xˉ)、( Yˉ\bar{Y}Yˉ):变量 ( XXX) 和 (YYY) 的均值。分子:两个变量的中心化偏差的乘积之和,表示变量之间的协同变化。分母:变量 ( XXX) 和 ( YYY) 的标准差乘积,用于归一化,确保结果在 ([−1,1][-1, 1][−1,1]) 范围内。

简化理解:皮尔逊相关系数描述了变量 ( XXX) 和 ( YYY) 偏离均值的方向和程度是否一致。如果 ( XXX) 和 (YYY) 同时偏高或偏低,相关系数趋近于 ( 111);若 ( XXX) 偏高时 ( YYY) 偏低,则趋近于 (−1-1−1)。

3. 案例分析

问题:学生的数学成绩和物理成绩是否存在线性相关性?

数据如下:

学生数学物理A8590B9288C7885D8082E9592第一步:计算均值

Xˉ=85+92+78+80+955=86

\bar{X} = \frac{85 + 92 + 78 + 80 + 95}{5} = 86

Xˉ=585+92+78+80+95​=86

Yˉ=90+88+85+82+925=87.4

\bar{Y} = \frac{90 + 88 + 85 + 82 + 92}{5} = 87.4

Yˉ=590+88+85+82+92​=87.4

第二步:计算分子部分

∑(Xi−Xˉ)(Yi−Yˉ)=(85−86)(90−87.4)+(92−86)(88−87.4)+⋯

\sum (X_i - \bar{X})(Y_i - \bar{Y}) = (85 - 86)(90 - 87.4) + (92 - 86)(88 - 87.4) + \cdots

∑(Xi​−Xˉ)(Yi​−Yˉ)=(85−86)(90−87.4)+(92−86)(88−87.4)+⋯

第三步:计算分母部分

∑(Xi−Xˉ)2⋅∑(Yi−Yˉ)2

\sqrt{\sum (X_i - \bar{X})^2 \cdot \sum (Y_i - \bar{Y})^2}

∑(Xi​−Xˉ)2⋅∑(Yi​−Yˉ)2​

4. 用 Python 实现

import numpy as np

# 数据

math = [85, 92, 78, 80, 95]

physics = [90, 88, 85, 82, 92]

# 计算均值

mean_math = np.mean(math)

mean_physics = np.mean(physics)

# 计算分子

numerator = sum((x - mean_math) * (y - mean_physics) for x, y in zip(math, physics))

# 计算分母

denominator = np.sqrt(sum((x - mean_math)**2 for x in math) * sum((y - mean_physics)**2 for y in physics))

# 计算皮尔逊相关系数

r = numerator / denominator

print(f"皮尔逊相关系数: {r}") #0.80

结果解读

( r=0.80r = 0.80r=0.80):数学成绩与物理成绩之间具有强正相关性。

方法三:协方差(Covariance)

1. 什么是协方差?

协方差用于衡量两个变量的变化方向是否一致:

协方差 ( >0> 0>0):两个变量同向变化。协方差 ( <0< 0<0):两个变量反向变化。协方差 ( =0= 0=0):两个变量无相关性。

2. 公式解释

协方差的计算公式为:

Cov(X,Y)=∑(Xi−Xˉ)(Yi−Yˉ)n−1

\text{Cov}(X, Y) = \frac{\sum (X_i - \bar{X})(Y_i - \bar{Y})}{n - 1}

Cov(X,Y)=n−1∑(Xi​−Xˉ)(Yi​−Yˉ)​

( Cov(X,Y)\text{Cov}(X, Y)Cov(X,Y)):协方差。( Xi,YiX_i, Y_iXi​,Yi​):变量 ( XXX) 和 ( YYY) 的具体取值。( Xˉ,Yˉ\bar{X}, \bar{Y}Xˉ,Yˉ):变量 ( XXX) 和 ( YYY) 的均值。( nnn):样本数量。

3. 案例分析

Python实现

# 计算协方差

cov_matrix = np.cov(math, physics)

print(f"协方差矩阵:\n{cov_matrix}") #协方差矩阵:[[54.5 23.5][23.5 15.8]]

print(f"协方差:\n{cov_matrix[0, 1]}") #协方差: 23.5

np.cov() 是同时处理多组数据,计算所有变量两两之间的协方差。因此,它返回的是一个协方差矩阵。

如果输入是两个变量(如 ( XXX) 和 ( YYY)),那么结果是 ( 2×22 \times 22×2) 的矩阵:

Cov=[Var(X)Cov(X,Y)Cov(Y,X)Var(Y)]

\text{Cov} =

\begin{bmatrix}

\text{Var}(X) & \text{Cov}(X, Y) \\

\text{Cov}(Y, X) & \text{Var}(Y)

\end{bmatrix}

Cov=[Var(X)Cov(Y,X)​Cov(X,Y)Var(Y)​]

结果解读

协方差矩阵的非对角线元素即为数学和物理成绩的协方差。正值表示同向变化,负值表示反向变化。

协方差: 23.5,表示数学成绩提升的同时,物理成绩也会提升。

总结

方法适用场景输出结果卡方测试分类变量( χ2\chi^2χ2) 值皮尔逊系数连续变量( rrr) 值 [−1,1-1, 1−1,1]协方差连续变量协方差值,表示变化方向一致性通过这些方法,我们可以有效分析变量之间的关系,为特征选择、降维和建模提供科学依据。

Post navigation

  • Prev Post 小米用户必看!微信双开详细设置教程一学就会
Copyright © 2088 世界杯热身赛_世界杯赛程 - toption-intl.com All Rights Reserved.
友情链接