第10章 主成分分析(PCA)

人工智能56

1 概念

主成分是选出比原始变量个数少,能解释大部分资料中的变异的几个新变量 主成分分析是考察多个变量间相关性一种多元统计方法,通过 较少的变量(几个主成分)来解释多个变量间的内部结构,即从原始变量中导出少数几个主分量,使它们尽可能多地保留原始变量的信息,且 彼此间相互独立(互不相关) 主成分分析--->数据降维
常被用来寻找判断事物或现象的 综合指标,并对综合指标所包含的信息进行适当的解释

2 基本思想

设法将原来众多具有一定相关性的变量(如p个变量), 重新组合成一组新的相互无关的综合变量来代替原始变量
将原来p个变量做线性组合作为新的综合变量 &#x65B9;&#x5DEE;<--->&#x4FE1;&#x606F;&#x91CF;<!------->,即v a r ( F 1 ) var(F1)v a r (F 1 )越大,表示F 1 F1 F 1包含的信息越多,因此在所有的线性组合中所选取的F 1 F1 F 1应该是 方差最大的,故称之为 第一主成分

  • 如果把两个变量用一个变量来表示,同时这一个新的变量又尽可能包含原来的两个变量的信息,这就是 &#x964D;&#x7EF4;&#x7684;&#x8FC7;&#x7A0B;
  • 以两个变量X1和X2为例,找出的这些新变量是 原来变量的线性组合,叫做 &#x4E3B;&#x6210;&#x5206;[Z=a1X1+a2X2]

主成分构造原则:

  1. 损失很少的数据信息的前提下,把多个因素指标利用 &#x6B63;&#x4EA4;&#x65CB;&#x8F6C;&#x53D8;&#x6362;&#x8F6C;&#x6362;成几个 综合指标&#x4E3B;&#x6210;&#x5206;
  2. 每个 主成分都是 原始变量&#x7EBF;&#x6027;&#x7EC4;&#x5408;,且各个 &#x4E3B;&#x6210;&#x5206;&#x4E4B;&#x95F4;&#x76F8;&#x4E92;&#x72EC;&#x7ACB;&#xFF08;&#x4E92;&#x4E0D;&#x76F8;&#x5173;&#xFF09;

根据主成分的构造思想和(皮尔逊)相关系数公式,要使得综合变量之间 不相关,则各自对应的 &#x65B9;&#x5DEE;&#x5E94;&#x8BE5;&#x8D8A;&#x5927;&#x8D8A;&#x597D;

第10章 主成分分析(PCA)

主成分选取原则【任一个满足即可】:

  1. &#x5404;&#x4E3B;&#x6210;&#x5206;&#x7684;&#x7D2F;&#x79EF;&#x65B9;&#x5DEE;&#x8D21;&#x732E;&#x7387;>80%&#x200B;
  2. &#x7279;&#x5F81;&#x503C;λ > 1 \lambda>1 λ>1

主成分性质:

  1. 主成分Z Z Z的协方差阵为 对角阵,且对角线 元素为λ 1 , λ 2 , . . . , λ p \lambda_1,\lambda_2,...,\lambda_p λ1 ​,λ2 ​,...,λp ​
  2. 记∑ = ( σ i j ) \sum {} = ({\sigma {ij}})∑=(σi j ​),有∑ i = 1 p λ i = ∑ i = 1 p σ i j \sum\limits{i = 1}^p {{\lambda i}} = \sum\limits{i = 1}^p {{\sigma {ij}}}i =1 ∑p ​λi ​=i =1 ∑p ​σi j ​,称α i = λ i ∑ i = 1 p λ i , i = 1 , 2 , . . . , p {\alpha _i} = \frac{{{\lambda _i}}}{{\sum\limits{i = 1}^p {{\lambda i}} }},i = 1,2,...,p αi ​=i =1 ∑p ​λi ​λi ​​,i =1 ,2 ,...,p为第i个主成分的 &#x8D21;&#x732E;&#x7387;,称∑ i = 1 m λ i ∑ i = 1 p λ i , i = 1 , 2 , . . . , p \frac{{\sum\limits{i = 1}^m {{\lambda i}} }}{{\sum\limits{i = 1}^p {{\lambda _i}} }},i = 1,2,...,p i =1 ∑p ​λi ​i =1 ∑m ​λi ​​,i =1 ,2 ,...,p为前m个主成分的 &#x7D2F;&#x79EF;&#x8D21;&#x732E;&#x7387;
  3. 选取的主成分对原始变量的贡献值用相关系数的平方和来表示,若选取的主成分为Z 1 , Z 2 , . . . , Z m Z_1,Z_2,...,Z_m Z 1 ​,Z 2 ​,...,Z m ​,则它们对原始变量X i X_i X i ​的贡献值为ρ i = ∑ k = 1 m r 2 ( Z k , X i ) {\rho i} = \sum\limits{k = 1}^m {{r^2}} ({Z_k},{X_i})ρi ​=k =1 ∑m ​r 2 (Z k ​,X i ​)其中r ( Z k , X i ) r({Z_k},{X_i})r (Z k ​,X i ​)为Z k Z_k Z k ​与X i X_i X i ​的 相关系数

; 3 数学模型

假定有n个样本,每个样本共有p个变量(指标),构成一个n × p n \times p n ×p的数据矩阵

当p p p较大时,在p p p维空间中考察问题比较麻烦。为了克服这一问题,就需要进行 &#x964D;&#x7EF4;&#x5904;&#x7406;,即 用较少的几个综合变量代替原来较多的变量,而且使这些较少的综合变量能尽量多地反映原来较多变量所反映的信息

要从原来的所有变量得到新的综合变量,一种较为简单的方法是 &#x4F5C;&#x7EBF;&#x6027;&#x53D8;&#x6362;使新的综合变量为原始变量的线性组合

第10章 主成分分析(PCA)

条件:

  • 对于任意常数c c c,有v a r ( c F i ) = c 2 v a r ( F i ) {\mathop{\rm var}} (c{F_i}) = {c^2}{\mathop{\rm var}} ({F_i})v a r (c F i ​)=c 2 v a r (F i ​)为了使方差v a r ( F i ) var(F_i)v a r (F i ​)可以比较,要求 线性组合的系数满足规范化条件:a i 1 2 + a i 2 2 + a i 3 2 + . . . + a i p 2 = 1 a_{i1}^2 + a_{i2}^2 + a_{i3}^2 + ... + a_{ip}^2 = 1 a i 1 2 ​+a i 2 2 ​+a i 3 2 ​+...+a i p 2 ​=1
  • 要求 原始变量之间存在一定相关性(相关系数分析判断)
  • 要求 各个综合变量间互不相关,即协方差为0
  • 为了 消除变量量纲不同对方差的影响,通常对数据进行 标准化处理,变量之间的协方差即为相关系数
  • &#x505A;&#x4E0D;&#x505A;&#x4E3B;&#x6210;&#x5206;&#x5206;&#x6790;&#x7684;&#x4E24;&#x5927;&#x68C0;&#x9A8C;(&#x4EFB;&#x4E00;&#x4E2A;&#x6EE1;&#x8DB3;&#x5373;&#x53EF;)&#xFF1A; 第10章 主成分分析(PCA)
  • KMO(Kaiser-Meyer-Olkin) &#x68C0;&#x9A8C;:检验变量之间的偏相关系数是否过小【此值 >0.5时可以作主成分分析】
  • Bartlett's&#x68C0;&#x9A8C;:检验显著性水平(Sig.)【此值 <0.05< code>&#x65F6;&#x53EF;&#x4EE5;&#x4F5C;&#x4E3B;&#x6210;&#x5206;&#x5206;&#x6790;&#x3011;<!--0.05<-->

4 步骤

  1. 对原来p p p个指标进行 &#x6570;&#x636E;&#x6807;&#x51C6;&#x5316;&#x5904;&#x7406;,以消除变量在水平和量纲上的影响
  2. 根据标准化后的数据矩阵求出 &#x76F8;&#x5173;&#x7CFB;&#x6570;&#x77E9;&#x9635;(&#x7B49;&#x540C;&#x4E8E;&#x534F;&#x65B9;&#x5DEE;&#x77E9;&#x9635;)
  3. 求出协方差矩阵的 &#x7279;&#x5F81;&#x6839;&#x548C;&#x7279;&#x5F81;&#x5411;&#x91CF;
  4. &#x786E;&#x5B9A;&#x4E3B;&#x6210;&#x5206;,并对各主成分所包含的信息给予适当的解释

5 主成分回归

&#x4E3B;&#x6210;&#x5206;&#x56DE;&#x5206;&#x6790;(PCR)是为了 克服最小二乘(LS)估计在数据矩阵A存在 多重共线性时表现出的不稳定性而提出的,就是将主成分Z 1 , Z 2 , . . . , Z p Z_1,Z_2,...,Z_p Z 1 ​,Z 2 ​,...,Z p ​或选择部分作自变量,对y y y与Z Z Z之间建立回归模型的过程

基本思想:

将原来的回归自变量转化为另一组变量,即主成分,选取一些重要的主成分作为新的自变量,去掉一些影响较小的自变量,实际上达到了降维的目的。然后用最小二乘法对选取主成分后的模型参数进行估计,再转换回原始模型进行参数估计。

[En]

Transform the original regression independent variables into another group of variables, that is, principal components, select some of the important principal components as new independent variables, discard some independent variables with little influence, and actually achieve the purpose of reducing dimensionality. Then the parameters of the model after selecting principal components are estimated by the least square method, and then transformed back to the original model to estimate the parameters.

目的:

  • 解决当方程个数n n n
  • 消减自变量之间的多重共线性

步骤:

  1. 先进行 &#x4E3B;&#x6210;&#x5206;&#x5206;&#x6790;,确定主成分
  2. &#x4E3B;&#x6210;&#x5206;&#x548C;&#x56E0;&#x53D8;&#x91CF;&#x4F5C;&#x6700;&#x5C0F;&#x4E8C;&#x4E58;&#x56DE;&#x5F52;,得到主成分回归方程
  3. 主成分变量的回归系数乘以特征向量,化成 &#x6807;&#x51C6;&#x5316;&#x53D8;&#x91CF;&#x7684;&#x56DE;&#x5F52;&#x65B9;&#x7A0B;
  4. 恢复为 &#x539F;&#x59CB;&#x53D8;&#x91CF;&#x7684;&#x4E3B;&#x6210;&#x5206;&#x56DE;&#x5F52;&#x65B9;&#x7A0B;

6 PCR之Matlab实例

%% 主成分回归分析(PCR)
%% I.清空环境
clc,clear
close all
%% II.导入数据
load sn.txt
[m,n]=size(sn)
%% III.数据预处理
% 提取数据
x0=sn(:,[1:n-1])
y0=sn(:,n)

%% IV.最小二乘法回归(LSR)
% X是系数矩阵(第1列全是1+其余列是自变量) Y是因变量(列向量)
X=[ones(m,1),x0]
Y=y0
% 最小二乘法估计回归系数(最小二乘法的Matlab实现--左除\)
ls_hg=X\Y
ls_hg=ls_hg' % 行向量显示回归系数(第1分量是常数项)
% 显示最小二乘法回归结果
fprintf('最小二乘法回归方程:\n')
fprintf('y=%f',ls_hg(1))
for i=2:n
    if ls_hg(i)>0
        fprintf('+%f*x%d',ls_hg(i),i-1)
    else
        fprintf('%f*x%d',ls_hg(i),i-1)
    end
end
fprintf('\n')

%% V.主成分回归(PCR)
% 数据标准化处理
xd=zscore(x0)
yd=zscore(y0)
% 计算相关系数矩阵
r=corrcoef(xd)
% 计算协方差矩阵(相关系数矩阵)的特征向量(vec1)和特征值(lamda)以及各个主成分的贡献率(rate)
[vec1,lamda,rate]=pcacov(r)
% 计算累积贡献率,第i个分量表示前i个主成分的累积贡献率
contr=cumsum(rate)
% 构造与vec1同维数的元素为1和-1的矩阵
% sign:符号函数
% repmat(ones(1,4),4,1):垂直堆叠行向量四次
f=repmat(sign(sum(vec1)),size(vec1,1),1)
% 修改特征向量的正负号,使得特征向量的所有分量和为正
vec2=vec1.*f
% 计算所有主成分的得分
df=xd*vec2
%% 通过累积贡献率交互式选择主成分的个数
num=input('请根据累积贡献率(contr值)输入主成分的个数:')
% 最小二乘法估计回归系数(最小二乘法的Matlab实现--左除\)
pca_hg=df(:,[1:num])\yd   % 主成分变量的回归系数,这里由于数据标准化,回归方程的常数项为0
% 标准化变量的回归方程系数
bz_hg=vec2(:,[1:num])*pca_hg
% 计算原始变量回归方程系数(第1分量是常数项)
hg=[mean(y0)-std(y0)*mean(x0)./std(x0)*bz_hg, std(y0)*bz_hg'./std(x0)]
% 显示主成分回归方程结果
fprintf('主成分回归方程:\n')
fprintf('y=%6.4f',hg(1))
for i=2:n
    if hg(i)>0
        fprintf('+%6.4f*x%d',hg(i),i-1)
    else
        fprintf('%6.4f*x%d',hg(i),i-1)
    end
end
fprintf('\n')

%% VI.计算两种回归分析的剩余标准差【均方根误差RMSE:越小越稳定】
ls_rmse=sqrt(sum((ls_hg(1)+x0*ls_hg(2:end)'-y0).^2)/(m-n)) % 最小二乘法回归(LSR)
rmse=sqrt(sum((hg(1)+x0*hg(2:end)'-y0).^2)/(m-num)) % 主成分回归(PCR)

Original: https://blog.csdn.net/qq_41566530/article/details/121660637
Author: 执志@☆飞扬か
Title: 第10章 主成分分析(PCA)

相关文章
opencv 直方图均衡化 人工智能

opencv 直方图均衡化

文章目录 前言 一、原理 opencv 函数支持equalizeHist() 前言 在图像直方图详解中详细讲解了图像直方图,这章来讲解一下直方图的均衡化。 直方图均衡化是图像处理领域中利用图像直方图对...
汇编语言 人工智能

汇编语言

汇编语言一发入魂 – 杨河老李 (kviccn.github.io) posted @ 2022-05-10 21:14 Bigben 阅读( 31 ) 评论( ) 编辑 Original: http...
产品经理必须要知道的6大人性 人工智能

产品经理必须要知道的6大人性

01 人是懒惰的 我们都知道这个观点,但是在产品设计中怎么应用这个观点呢? 张小龙举了语音查找联系人的例子。 在走路或者不方便用双手的时候,要给一个人发微信,输入半天还找不出,这个时候就可以通过微信的...