主成分分析(principal component analysis)是1901年Pearson对非随机变量引 入的,1933年Hotelling将此方法推广到随机向量的情形,主成分分析和聚类分析有很 大的不同,它有严格的数学理论作基础。  主成分分析的主要目的是希望用较少的变量去解释原来资料中的大部分变异,将我 们手中许多相关性很高的变量转化成彼此相互独立或不相关的变量。通常是选出比原始 变量个数少,能解释大部分资料中的变异的几个新变量,即所谓主成分,并用以解释资 料的综合性指标。由此可见,主成分分析实际上是一种降维方法


主成分分析系列:

主成分分析 (一): 基本思想与主成分估计方法

主成分分析 (二): 特征值因子的筛选

主成分分析法(三):计算步骤


目录

1  基本思想及方法

1 确定各个主成分的方法

2 注意事项

2  主成分估计

单参数主成分估计


1  基本思想及方法

1 确定各个主成分的方法

一个主成分不足以代表原来的 p 个变量,因此需要寻找第二个乃至第三、第四主 成分,第二个主成分不应该再包含第一个主成分的信息,统计上的描述就是让这两个主 成分的协方差为零,几何上就是这两个主成分的方向正交。具体确定各个主成分的方法 如下。

2 注意事项

1)主成分分析的结果受量纲的影响,由于各变量的单位可能不一样,如果各自改变量纲,结果会不一样,这是主成分分析的大问题,回归分析是不存在这种情况的, 所以实际中可以先把各变量的数据标准化,然后使用协方差矩阵或相关系数矩阵进行分 析

2)为使方差达到大的主成分分析,所以不用转轴(由于统计软件常把主成分分 析和因子分析放在一起,后者往往需要转轴,使用时应注意)。

3)主成分的保留。用相关系数矩阵求主成分时,Kaiser主张将特征值小于1的主成 分予以放弃(这也是SPSS软件的默认值)。

4)在实际研究中,由于主成分的目的是为了降维,减少变量的个数,故一般选取 少量的主成分(不超过5或6个),只要它们能解释变异的70%~80%(称累积贡献率) 就行了。  下面我们直接通过主成分估计(principle estimate)进一步阐述主成分分析的基 本思想和相关概念。

2  主成分估计

主成分估计(principal component estimate)是Massy在1965年提出的,它是回归系数参数的一种线性有偏估计(biased estimate),同其它有偏估计,如岭估计(ridge estimate)等一样,是为了克服小二乘(LS)估计在设计矩阵病态(即存在多重共线性) 时表现出的不稳定性而提出的。

主成分估计采用的方法是将原来的回归自变量变换到另另一组变量,即主成分,选择其中一部分重要的主成分作为新的自变量(此时丢弃了一部分,影响不大的自变量, 这实际达到了降维的目的),然后用小二乘法对选取主成分后的模型参数进行估计, 后再变换回原来的模型求出参数的估计。

单参数主成分估计

理论上表明:主成分估计在设计阵病态时优于LS估计,但(31)在特征值为1的附 近存在跳跃,会影响计算的稳定性,杨虎在1989年给出的单参数主成分估计解决了这个 问题。

例3  Hald水泥问题,考察含如下四种化学成分

相关系数阵的四个特征值依次为2.2357,1.5761,0.1866,0.0016。最后一个特征值接近于零,前三个特征值之和所占比例(累积贡献率)达到0.999594。于是我们略去 第4个主成分。其它三个保留的特征值对应的三个特征向量分别为

对Hald数据直接作线性回归得经验回归方程

再由(31)式计算出主成分估计,即可获得如下主成分回归方程

两个方程的区别在于后者具有更小的均方误差,因而更稳定。此外前者所有系数都无法 通过显著性检验。  计算的MATLAB程序如下:

clc,clear
load sn.txt  %把原始的x1,x2,x3,x4,y的数据保存在纯文本文件sn.txt中
[m,n]=size(sn);num=3; %num为选取的主成分的个数
mu=mean(sn);sigma=std(sn);
snb=zscore(sn); %数据标准化
b=snb(:,1:end-1); %x1,x2,x3,x4的数据赋给b
r=cov(b);  %标准化数据的协方差阵就是相关系数阵
[x,y,z]=pcacov(r);
f=repmat(sign(sum(x)),size(x,1),1);
x=x.*f;
%以下是普通的小二乘法回归
r=[ones(m,1),b]\snb(:,end);  %标准化数据的回归方程系数
bzh=mu./sigma;
ch10=mu(end)-bzh(1:end-1)*r(2:end)*sigma(end)  %原始数据的常数项
fr=r(2:end);fr=fr';
ch1=fr./sigma(1:end-1)*sigma(end) %原始数据的x1,x2等等系数
%以下是主成分回归
pval=b*x(:,1:num);
rp=[ones(m,1),pval]\snb(:,end);  %主成分数据的回归方程系数
beta=x(:,1:num)*rp(2:num+1);           %标准化数据的回归方程系数
ch20=mu(end)-bzh(1:end-1)*beta*sigma(end)  %原始数据的常数项
fr=beta';
ch2=fr./sigma(1:end-1)*sigma(end) %原始数据的x1,x2等等系数
check1=sqrt(sum((sn(:,1:end-1)*ch1'+ch10-sn(:,end)).^2)/(m-n))
check2=sqrt(sum((sn(:,1:end-1)*ch2'+ch20-sn(:,end)).^2)/(m-num-1)) 

主成分分析系列:

主成分分析 (一): 基本思想与主成分估计方法

主成分分析 (二): 特征值因子的筛选

主成分分析法(三):计算步骤

主成分分析 (一): 基本思想与主成分估计方法相关推荐

  1. 关于聚类分析、判别分析、主成分分析、因子分析等多元统计分析方法

    转载自:http://blog.csdn.net/nieson2012/article/details/25408421 主成分分析与因子分析的区别 1. 目的不同: 因子分析把诸多变量看成由对每一个 ...

  2. pde中微元分析法的主要思想_果然是清北学霸,高中数学解题思想与技巧方法,学会不下145分...

    美国著名数学教育家波利亚说过,掌握数学就意味着要善于解题.而当我们解题时遇到一个新问题,总想用熟悉的题型去"套",这只是满足于解出来,只有对数学思想.数学方法理解透彻及融会贯通时, ...

  3. 对数学语言、简单的数学思想与数学方法的一点简单的理解

    文章结构 1. 数学语言 1.1 ==数学语言的理解方法:互译== 1.2 数学语言的阅读方法 2. 常见数学思想 2.1 函数思想 2.2 方程思想(数学建模) 2.3 分类讨论思想 2.3.1 引 ...

  4. 以精益思想为产品方法

    以精益思想为产品方法 精益:看不见的角落,更要有光 精益 --以最小的资源为用户提供更有价值的产品.面对资源稀缺的事实,产品经理的工作必定需要精益思想去整合资源做事.特别是B端产品经理为企业级用户设计 ...

  5. 【足式机器人控制算法】(5.1)分解式虚拟模型VMC解耦思想 +反馈控制的方法规划反作用力 +运动学雅可比+虚功原理规划关节扭矩方法

    系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录 系列文章目录 前言 一.分解式VMC 的实现原理 1.虚拟力的定义 2.虚拟力分配方法 ...

  6. pde中微元分析法的主要思想_有限元方法的核心思想

    有限元法(Finite Element Method)是基于近代计算机的快速发展而发展起来的一种近似数值方法,用来解决力学,数学中的带有特定边界条件的偏微分方程问题(PDE).而这些偏微分方程是工程实 ...

  7. 时间序列早期分类问题定义和基本思想以及具体方法简述

    时间序列分类是将待测样本分配到预先定义好的类别中. 时间序列数据定义: 狭义:按时间顺序排序的一组数据. 广义:任何实质性的有次序的序列都可以当作时间序列处理. 应用:医学诊断.灾害预测.入侵检测.过 ...

  8. 统计学中的参数估计思想与参数估计方法python实现(以2010-2014上证指数收益率的均值区间估计为例)

    参数估计是统计学中"推断统计" 的一部分,推断统计是统计学中最重要的部分之一,它源于统计学中一个最基本的目的,也是这个概率论与数理统计这一学科的数理统计部分存在的唯一目的:用样本推 ...

  9. 3.分治算法的设计思想与分析方法: 芯片测试, 快速排序, 幂乘算法, 减少子问题数, 增加预处理

    本文内容为北大慕课课程的算法分析与设计的课程讲义, 将其整理为OneNote笔记同时添加了本人上课时的课堂笔记, 且主页中的思维导图就是根据课件内容整理而来, 为了方便大家和自己查看,特将此上传到CS ...

最新文章

  1. 准确判断他人忠诚度的有效办法
  2. CV之MTCNN:MTCNN算法过程及其相关思路配图集合
  3. Vue项目怎样打包并部署在WindowsServer服务器通过IP访问
  4. JavaWeb -- Struts2 ResultType细化, 国际化
  5. 配置本地及网络yum源(详细步骤)
  6. 太平鸟上云 推动中国服饰行业新零售转型
  7. java xy,java – 某个z深度的xy位置
  8. 基础算法 —— 递归/递推 —— 汉诺塔问题(Hanoi)
  9. python 读取json与xml格式化等处理
  10. C3D行为识别(一):UCF101视频数据集预处理
  11. TCP与UPD的比较
  12. 抖音短视频系统开发Service后台播放音乐实例
  13. CorelDRAW快速制作八心八箭钻石项链效果
  14. unbuntu 中部署jenkins
  15. 机械考公一般有哪些岗位?
  16. C#WinForm中的太空侵略者
  17. u盘读不出来怎么修复?
  18. Exploitation and Exploration
  19. SQL Native Client][SQL Server]无法将函数单元 'sp_sqlagent_get_startup_info' 添加到组件 'Agen...
  20. 毛头小子初学Java

热门文章

  1. 传统目标跟踪——卡尔曼滤波Kalman(结合MeanShift+Kalman)
  2. ubuntu下如何查看和设置分辨率
  3. 【MySQL】SQL执行顺序
  4. bzoj 4430: [Nwerc2015]Guessing Camels赌骆驼
  5. MyBatis 关联映射
  6. 我们应该怎样做需求分析?(一)需求调研
  7. [极客时间]《算法面试通关40讲》
  8. oracle 控制文件 dump,将控制文件dump出来研究下内容
  9. 给App启用MultiDex功能
  10. Flink-FileSystem