趋近智
均值和方差等指标可以告诉我们单个变量的特点,但我们通常还需要了解数据集中两个或多个变量之间如何相互关联。一个变量的增加是否倾向于对应另一个变量的增加(或减少)?相关性分析提供了一种定量方法来衡量两个定量变量之间线性关系的强度和方向。
理解数据集中两个或多个变量之间如何相互关联非常重要。相关性分析提供了一种定量方法,用于衡量两个定量变量之间线性关系的强度和方向。其中,最常用的相关性衡量指标是皮尔逊相关系数,通常用 r 表示。它量化了 X 和 Y 这两个变量之间的线性关联。r 的值总是介于 -1 和 +1 之间(包括 -1 和 +1)。
变量 X 和 Y 之间,以及 n 个数据点 (xi,yi) 的样本皮尔逊相关系数 r 的公式为:
r=∑i=1n(xi−xˉ)2∑i=1n(yi−yˉ)2∑i=1n(xi−xˉ)(yi−yˉ)其中 xˉ 和 yˉ 分别是 X 和 Y 的样本均值。此公式计算 X 和 Y 共同变化的程度(协方差),并根据它们的各自变异性(标准差)进行归一化。
可视化查看两个定量变量之间关系的最好方法是使用散点图。图上的每个点代表一对值 (xi,yi)。点的整体模式表明了相关性的类型和强度。
散点图显示了强正相关(顶部,r ≈ +1)、强负相关(中部,r ≈ -1)以及弱线性或无线性相关(底部,r ≈ 0)的示例。
在顶部的图中,当 X 增加时,Y 持续增加,紧密地聚集在一条向上倾斜的直线周围。在中间的图中,当 X 增加时,Y 持续减少。在底部的图中,没有明显的线性趋势;点分散,没有可辨别的直线。
尽管理解公式有帮助,但你通常会使用软件库来计算相关系数。在 Python 中,Pandas 库为 DataFrame 提供了一个方便的 .corr() 方法,用于计算所有列之间的成对相关性。
import pandas as pd
# 示例 DataFrame
data = {'变量_A': [1, 2, 3, 4, 5, 6],
'变量_B': [2, 4, 5, 8, 10, 11],
'变量_C': [10, 8, 7, 4, 2, 1]}
df = pd.DataFrame(data)
# 计算相关矩阵
correlation_matrix = df.corr()
print(correlation_matrix)
# 输出:
# Variable_A Variable_B Variable_C
# Variable_A 1.000000 0.984916 -0.996205
# Variable_B 0.984916 1.000000 -0.963823
# Variable_C -0.996205 -0.963823 1.000000
此矩阵显示了每对变量的相关系数。例如,Variable_A 和 Variable_B 之间的相关性约为 0.985,表示非常强的正线性关系。Variable_A 和 Variable_C 之间的相关性约为 -0.996,表示非常强的负线性关系。对角线元素始终为 1,因为一个变量与自身完美相关。
在机器学习中,相关性分析是探索性数据分析(EDA)中的一个基本步骤。它有助于理解特征之间以及特征与目标变量之间的关系。输入特征之间的高度相关性可能表示多重共线性,这可能对某些模型造成问题。特征与目标变量之间的高度相关性表明该特征可能具有预测性。
这部分内容有帮助吗?
corr方法的官方文档,该方法是Python中计算相关系数矩阵的标准工具,涵盖了其参数和用法。© 2026 ApX Machine Learning用心打造