主成分分析
一.应用二.数据降维的作用三.一个简单的例子四.主成分分析的思想五.PCA的计算步骤六.例题1讲解七.例题2讲解八.主成分分析用于聚类九.主成分回归十.关于主成分回归的看法
一.应用
主成分分析是一种降维算法,它能将多个指标转换为少数几个主成分,这些主成分是原始变量的线性组合,且彼此之间互不相关,其能反映出原始数据的大部分信息。 一般来说,当研究的问题涉及到多变量且变量之间存在很强的相关性时,我们可考虑使用主成分分析的方法来对数据进行简化
二.数据降维的作用
降维是将高维度的数据(指标太多)保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。 在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为应用非常广泛的数据预处理方法。
降维具有如下一些优点:
使得数据集更易使用;降低算法的计算开销;去除噪声;使得结果容易理解
三.一个简单的例子
例如,某人要做一件上衣要测量很多尺寸,如身长、袖长、胸围、腰围、肩宽、肩厚等十几项指标,某服装厂要生产一批新型服装绝不可能把尺寸的型号分得过多 ?而是从多种指标中综合成几个少数的综合指标,做为分类的型号,利用主成分分析将十几项指标综合成3项指标,一项是反映长度的指标,一项是反映胖瘦的指标,一项是反映特殊体型的指标。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210121160332928.png)
四.主成分分析的思想
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210121210800966.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
五.PCA的计算步骤
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210121212338983.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
六.例题1讲解
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210121212407685.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
clear;clc
load data1.mat % 主成分聚类
% load data2.mat % 主成分回归
% 注意,这里可以对数据先进行描述性统计
% 描述性统计的内容见第5讲.相关系数
[n,p] = size(x); % n是样本个数,p是指标个数
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210121212556380.png)
%% 第一步:对数据x标准化为X
X=zscore(x) % matlab内置的标准化函数(x-mean(x))/std(x)
%% 第二步:计算样本协方差矩阵
R = cov(X)
%%以上两步可合并为下面一步:直接计算样本相关系数矩阵
R = corrcoef(x);
disp('样本相关系数矩阵为:')
disp(R)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210123085606961.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
%% 第三步:计算R的特征值和特征向量
% 注意:R是半正定矩阵,所以其特征值不为负数
% R同时是对称矩阵,Matlab计算对称矩阵时,会将特征值按照从小到大排列哦
% eig函数的详解见第一讲层次分析法的视频
[V,D] = eig(R) % V 特征向量矩阵 D 特征值构成的对角矩阵
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210123085740257.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
%% 第四步:计算主成分贡献率和累计贡献率
lambda = diag(D); % diag函数用于得到一个矩阵的主对角线元素值(返回的是列向量)
lambda = lambda(end:-1:1); % 因为lambda向量是从小大到排序的,我们将其调个头
contribution_rate = lambda / sum(lambda); % 计算贡献率
cum_contribution_rate = cumsum(lambda)/ sum(lambda); % 计算累计贡献率 cumsum是求累加值的函数
disp('特征值为:')
disp(lambda') % 转置为行向量,方便展示
disp('贡献率为:')
disp(contribution_rate')
disp('累计贡献率为:')
disp(cum_contribution_rate')
disp('与特征值对应的特征向量矩阵为:')
% 注意:这里的特征向量要和特征值一一对应,之前特征值相当于颠倒过来了,因此特征向量的各列需要颠倒过来
% rot90函数可以使一个矩阵逆时针旋转90度,然后再转置,就可以实现将矩阵的列颠倒的效果
V=rot90(V)';
disp(V)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210123090824838.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
经过计算,相关系数矩阵的特征值、相应的特征向量以及贡献率列于下表: 从表中可以看到前三个主成分的累计贡献率达85.9%,因此可以考虑 只取前面三个主成分,它们能够很好地概括原始变量。 写出主成分并简要分析 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210123090659126.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210121214633979.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
七.例题2讲解
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210123091326990.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
八.主成分分析用于聚类
Spss聚类 聚类效果图 个人觉得,主成分聚类最大的意义就是能帮我们可视化最后的聚类效果,毕竟, 使用主成分是会降低部分信息的。言外之意,只有在指标个数特别多,且指标 之间存在很强的相关性时才用主成分聚类。
九.主成分回归
在Stata中回归结果 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210123091919612.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
十.关于主成分回归的看法
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021012309194750.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTI2MTE4,size_16,color_FFFFFF,t_70)
|