五、多元数据的数据特征

1. 协方差与相关系数的概念

1.1 介绍

协方差和相关系数是用于衡量两个变量之间关系的统计指标。它们描述了变量的线性关联程度,帮助我们了解它们是如何一起变化的。

1.2 原理

  • 协方差: 衡量两个变量是否倾向于一起高、一起低,或者一个高时另一个低。它可以是正值、负值或接近 0。
图片[1]-五、多元数据的数据特征-大赛人网
  • 这一步相当于把协方差除以两个变量各自的标准差,去掉单位影响。也正因为如此,相关系数可以用来比较不同量纲变量之间的线性关系强弱。

1.3 重点和注意事项

  • 重点: 协方差和相关系数提供了关于两个变量关联程度的信息,有助于理解它们的联动性。
  • 注意事项:
    • 协方差的单位是两个变量单位的乘积,数值大小不容易直接比较。
    • 相关系数是无量纲的,绝对值越接近 1,线性关系越强。
    • 相关不等于因果。两个变量一起变化,不代表一个变量一定导致另一个变量变化。

2. Python实现多元数据分析

考虑一个案例:某班级学生的数学、物理和化学成绩数据。

我们将计算协方差矩阵、相关矩阵,并进行主成分分析。

数据:

数学成绩:[75, 82, 90, 65, 88, 78, 94, 70]
物理成绩:[68, 80, 85, 60, 75, 92, 88, 72]
化学成绩:[78, 92, 85, 75, 80, 85, 90, 88]
图片[2]-五、多元数据的数据特征-大赛人网

Python代码:

import numpy as np
import pandas as pd
from sklearn.decomposition import PCA
import seaborn as sns
import matplotlib.pyplot as plt

# 学生成绩数据
data = {
    'Math': [75, 82, 90, 65, 88, 78, 94, 70],
    'Physics': [68, 80, 85, 60, 75, 92, 88, 72],
    'Chemistry': [78, 92, 85, 75, 80, 85, 90, 88]
}

df = pd.DataFrame(data)

# 计算协方差矩阵
cov_matrix = df.cov()

# 计算相关矩阵
cor_matrix = df.corr()

# 主成分分析。这里三个科目分数量纲一致,可以直接做 PCA;
# 如果变量单位差异很大,应先标准化。
pca = PCA()
pca_result = pca.fit_transform(df)

# 绘制相关矩阵的热力图
sns.heatmap(cor_matrix, annot=True, cmap='coolwarm', fmt='.2f', linewidths=0.5)
plt.title('Correlation Matrix')
plt.show()

# 输出协方差矩阵和相关矩阵
print("Covariance Matrix:")
print(cov_matrix)
print("\nCorrelation Matrix:")
print(cor_matrix)

# 输出主成分分析结果
print("\nPrincipal Components:")
print(pd.DataFrame(pca.components_, columns=df.columns))

print("\nExplained variance ratio:")
print(pca.explained_variance_ratio_)

代码计算了学生成绩数据的协方差矩阵和相关矩阵,并进行了主成分分析。

热力图展示了变量之间的相关关系,而主成分分析提供了新的主成分变量。

图片[3]-五、多元数据的数据特征-大赛人网

结果解释

  • 协方差矩阵和相关矩阵: 提供了变量之间关系的信息,协方差矩阵更侧重于变量的共变性,相关矩阵更侧重于标准化的关系。
  • 主成分分析: 提供了原始变量的线性组合,用于降维和理解数据的结构。explained_variance_ratio_ 告诉我们每个主成分解释了多少比例的信息。

通过这些分析,我们可以更全面地了解学生的多个科目成绩之间的关系,并找到潜在的结构。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容