多元统计分析-主成分分析的原理与实现

news/2024/11/14 23:32:54/

目录

一、什么是主成分分析?

二、主成分分析的原理

三、主成分分析的应用

四、使用sklearn实现主成分分析

五、总结


一、什么是主成分分析?

主成分分析(Principal Component Analysis,PCA)是一种常用的多元统计分析方法,它是一种线性变换技术,可以将高维数据转换为低维数据,同时保留数据的主要特征。主成分分析可以用于数据降维、数据可视化、特征提取等领域。

主成分分析的基本思想是将原始数据通过线性变换,将其转换为一组新的变量,这些新的变量是原始变量的线性组合,且彼此之间不相关。这些新的变量被称为主成分,它们按照方差的大小依次排列,第一主成分包含原始数据中最大的方差,第二主成分包含次大的方差,以此类推。主成分分析的目标是通过保留主要的方差,将原始数据的维度降低到一个较小的空间中,从而更好地理解和解释数据。

二、主成分分析的原理

主成分分析的核心是通过线性变换将原始数据转换为一组新的变量,这些新的变量是原始变量的线性组合,且彼此之间不相关。这些新的变量被称为主成分,它们按照方差的大小依次排列,第一主成分包含原始数据中最大的方差,第二主成分包含次大的方差,以此类推。

假设我们有一个包含n个样本和p个变量的数据集X,其中每个样本有p个变量,可以表示为:

X = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1p} \\ x_{21} & x_{22} & \cdots & x_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ x_{n1} & x_{n2} & \cdots & x_{np} \end{bmatrix}

我们的目标是将这个数据集转换为一组新的变量,这些新的变量是原始变量的线性组合,且彼此之间不相关。这些新的变量被称为主成分,它们按照方差的大小依次排列,第一主成分包含原始数据中最大的方差,第二主成分包含次大的方差,以此类推。

假设我们将原始数据集X通过线性变换转换为一组新的变量Z,可以表示为:

Z = \begin{bmatrix} z_{11} & z_{12} & \cdots & z_{1k} \\ z_{21} & z_{22} & \cdots & z_{2k} \\ \vdots & \vdots & \ddots & \vdots \\ z_{n1} & z_{n2} & \cdots & z_{nk} \end{bmatrix}

其中,k是我们希望得到的主成分个数,通常k小于p。我们希望通过线性变换,使得新的变量Z满足以下条件:

1. 主成分是原始变量的线性组合,即:

z_{ij} = \sum_{l=1}^{p} a_{jl}x_{il}

其中,$a_{jl}$是线性变换的系数,表示第j个主成分中第l个原始变量的权重。

2. 主成分之间不相关,即:

cov(z_i,z_j) = 0, i \neq j

其中,$cov(z_i,z_j)$表示第i个主成分和第j个主成分之间的协方差。

3. 主成分按照方差的大小依次排列,即:

Var(z_1) \geq Var(z_2) \geq \cdots \geq Var(z_k)

其中,Var(z_i)表示第i个主成分的方差。

为了满足以上条件,我们需要通过求解特征值和特征向量来确定线性变换的系数。具体来说,我们需要求解原始数据集X的协方差矩阵C_X,然后求解C_X的特征值和特征向量。特征向量构成的矩阵V就是线性变换的系数,即:

Z = XV

其中,X是原始数据集,V是特征向量构成的矩阵,Z是转换后的数据集。

三、主成分分析的应用

主成分分析可以应用于许多领域,例如金融、医学、社会科学等。以下是一些主成分分析的应用:

1. 金融领域:主成分分析可以用于股票市场的预测和投资组合的优化。通过对股票市场的数据进行主成分分析,可以识别出影响股票市场的主要因素,并预测未来的市场趋势。在投资组合优化方面,主成分分析可以帮助投资者识别出最重要的资产类别,并构建一个最优的投资组合。

2. 医学领域:主成分分析可以用于研究疾病的风险因素和治疗效果。通过对患者的数据进行主成分分析,可以识别出与疾病相关的主要因素,并预测患者的疾病风险。在治疗效果方面,主成分分析可以帮助医生评估不同治疗方法的效果,并选择最佳的治疗方案。

3. 社会科学领域:主成分分析可以用于研究人类行为和社会现象。通过对调查数据进行主成分分析,可以识别出影响人类行为和社会现象的主要因素,并预测未来的趋势。在政策制定方面,主成分分析可以帮助政府制定最佳的政策方案。

四、使用sklearn实现主成分分析

在sklearn中,可以使用PCA类来实现主成分分析。以下是一个简单的示例代码:

from sklearn.decomposition import PCA
import numpy as np# 创建一个数据矩阵
X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 创建PCA对象,设置主成分数量为2
pca = PCA(n_components=2)# 对数据进行主成分分析
pca.fit(X)# 输出主成分分析结果
print("主成分方差:", pca.explained_variance_)
print("主成分方差比例:", pca.explained_variance_ratio_)
print("主成分系数:", pca.components_)
print("降维后的数据:", pca.transform(X))

在上面的代码中,我们首先创建了一个数据矩阵X,然后创建了一个PCA对象,并将主成分数量设置为2。接着,我们对数据进行主成分分析,并输出了主成分分析的结果。

五、总结

主成分分析是一种常用的多元统计分析方法,可以用于数据降维、特征提取和数据可视化等方面。在sklearn中,可以使用PCA类来实现主成分分析。通过本文的介绍,相信读者已经对主成分分析有了更深入的了解,可以在实际应用中灵活运用。


http://www.ppmy.cn/news/65350.html

相关文章

css布局——flex布局知识点总结(青蛙游戏)

文章目录 学习网址推荐align-items、justify-content合并使用左右分布和垂直end flex-directionrowrow-reversecolumncolumn-reserse横向逆转并水平start垂直列并从末尾排列逆向垂直列并左右排列水平居中,垂直end,横向逆向 order、align-selforder改变排…

Group相关问题-组内节点限制移动范围

1.在节点中定义dragComputation,限制节点的移动范围 注意事项 组节点不定义go.Placeholder ,设置了占位符后组内节点移动将改变组节点位置dragComputation中自定义stayInGroup计算规则是根据groupNode的resizeObject计算 如果开启了resizable:true,建议指定其改变大的零部件r…

《素未谋面》 - 王忻辰

哭过之后还怎么装傻 长发侧脸迷人的脸颊 分手之后没问候的话 怕你误会尴尬 是我犯贱受到了惩罚 脑海中重复你的情话 我们种下的花 要不然扔了吧 感情的画面不过是 彼此之间深深浅浅 动人心弦的语言 悲情的剧本不过是 缠缠绵绵 字字句句都可怜 你妆扮的鲜艳 换上了高跟鞋 陌生的…

oracle内存估算

如何计算几个命中率 LC的命中率: 计算公式:Library Cache Hit Ratio sum(pinhits) / sum(pins) SELECT SUM(pinhits)/sum(pins) FROM V$LIBRARYCACHE 通常在98%以上,否则,需要要考虑加大共享池,绑定变量,修改cursor_sharing等参数…

Java—JDK8新特性—方法引用【内含思维导图】

目录 4.方法引用 思维导图 4.1 什么是方法引用 4.2 为什么要使用方法引用 4.3 方法引用语法 4.4 方法引用的5种情况使用示例 4.方法引用 思维导图 4.1 什么是方法引用 方法引用就是Lambda表达式,也就是函数式接口的一个实例,通过方法的名称来指向一…

FL Studio 2023年最新安装使用图文教程,FL Studio 21怎么激活解锁?

Image-Line宣布针对Win和Mac版本的数字音频工作站FL Studio的21版本更新。FL Studio2023是一个完整的软件音乐制作环境或数字音频工作站(DAW)。代表超过 25年的创新发展,它包含了您在一个包装中编排,编排,录制&#xf…

逛逛GitHub

好玩项目 《干掉马赛克》 马赛克是不可逆的,但是能够脑补。 《女朋友为我写了一个防猝死插件》 为了我身体健康,女朋友开发了一款插件并开源,在 IDEA 中安装了这个插件可以 40 分钟提醒一次该起来起来运动啦。 《程序员的网易云》 命令行版本…

scalable tcp 的扩展性和公平性

高效的 TCP 拥塞控制算法在连接生命周期中做下面的循环: 尽快找到饱和点。快速逼近饱和点。在饱和点尽可能久停留后 probe,回到第 1 步。 CUBIC 用下凸曲线实现 1,用上凸曲线实现 2,上凸和下凸的拐点附近斜率很小,这…