r语言主成分分析_PCA主成分分析

540e31eeb9d9ab15e36b4aab2e20cee8.png

PCA主成分分析

最近遇到了主成分分析法这个东西,一开始我觉得简直天才啊,这个想法虽然从经济意义上来解释有点奇怪,毕竟是数学方法计算出来的解释因子,但鉴于没人知道现实世界究竟被多少因素影响,这种方法可以将最主要的成分提取出来,供人使用。这对于没有足够的经验自己总结影响因子的人来说,确实是一个很好的主意。

但在应用中我遇到了许多小问题,又因为我糟糕的记忆力,我决定写下来问题的解决过程,下一次还能回忆起来。QAQ

0.写在最前面

主成分分析法,可以将随机向量变为少数几个主成分,换句话说,本来有几种向量,最后就有几种成分,然后从中选出解释力最强的几种“主成分”。但是原始向量的协方差矩阵可能不是一个对角矩阵,即原始向量之间相关,转换后的主成分之间,不相关,同时主成分可以反映原始向量的大部分信息。

1.数据标准化

标准化,意味着将原始数据减去对应变量的均值,再除以其方差。

这个问题的来源是在主成分分析中,有两种选择,按照相关系数矩阵分解还是按照协方差矩阵分解。

我的困惑在于,这两者有什么区别,和书标准化又有什么关系。

查询资料得知:经标准化的样本数据的协方差矩阵就是原始样本数据的相关矩阵。这里所说的标准化指正态化,即将原始数据处理成均值为0。

简单来说,原始样本相关矩阵=标准化后协方差矩阵。

2.按照协方差矩阵分解还是按照相关矩阵分解

虽然现在知道了:

原始样本相关矩阵=标准化后协方差矩阵

但我还是不确定,这是否意味着:

原始样本按照相关矩阵分解=标准化后样本按照协方差矩阵分解

但我这个人确实不太擅长从数学的角度进行理论分析。

所以我直接在程序里验证了,对比了两组结果。原始数据为data,R语言

第一组:

A <- princomp(data, cor = TRUE)

summary(A)

第二组:

b <- scale(data)

B <- princomp(b, cor = FALSE)

summary(B)

我得到的两组结果完全相同。显然,这证明了:

原始样本按照相关矩阵分解=标准化后样本按照协方差矩阵分解

这基本解决了我运算上的一些困惑。

3.关于意义

运算上的困惑解决了,我对主成分的一些含义还不清楚,主要有以下几个问题:

a. 第一主成分和第二主成分的区别是否在与第一主成分的解释力更强,或者说他们俩的第一第二究竟是什么意思。特征向量又有什么意义?

第一主成分和第二主成分的“第一”、“第二”意味着特征值的第一大和第二大。第一主成分,意味着对标准化后的数据找到一个线性组合,令主成分的方差最大。第二主成分与第一主成分无关,第二主成分的方差第二大。

特征值越大,代表了对原始信息解释的越多。

第一主成分的方差理论上等于第一大特征值,第二主成分的方差理论上等于第二大特征值。特征向量就是在原始数据上的系数。

系数的正负值,绝对值大的代表了盖主成分主要综合的变量信息,当有几个变量系数绝对值大小相当的时候,应当认为这一主成分是这几个变量的作用综合,至于意义需要结合具体的问题解决。

b. 原始数据中,某种向量与其他向量的相关性较低,和这种向量与主成分之间的关系有什么联系?

变量之间相关性高,意味着数据中的信息是有重叠的,因此,用主成分分析得到不重叠的信息。如果本身不相关,就没有重叠的信息,pca的效果就不明显。(这一点我仍旧存疑)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宫崎骏动画里的新垣结衣见过没?简直美呆!

全世界只有3.14 % 的人关注了爆炸吧知识本文经机器之心&#xff08;ID&#xff1a;almosthuman2014&#xff09;授权转载参与&#xff1a;肖清、思尽管最近 2019 年的图灵奖颁给了计算机图形学、颁给了皮克斯 3D 动画&#xff0c;但很多人可能认为二维动漫更有意思一些。像宫崎…

更了吗?Windows 11 22000.184 推送

面向 Beta 频道的 Windows 预览体验成员&#xff0c;微软现已发布 Windows 11 预览版 Build 22000.184。Windows 11 Insider Preview Build 22000.184 主要变化如下&#xff1a;1.微软现已修复在Windows 11 OOBE&#xff08;开箱体验&#xff09;阶段了解 Windows Hello 更多详…

java 快速io_如何快速理解Java的IO流

初学者觉得IO流复杂是很正常的&#xff0c;归根结底是没有理解JavaIO框架的设计思想&#xff1a;可以沿着这条路想一想&#xff1a;1&#xff0c;学IO流之前&#xff0c;我们写的程序&#xff0c;都是在内存里自己跟自己玩。比如&#xff0c;你声明个变量&#xff0c;创建个数组…

Effective C++ 学习笔记(11)

确定基类有虚析构函数 class A{public: A() { cout<<"A constructor"<<endl; }~A() { cout<<"A destructor"<<endl; }};class B: public A{public: B() { cout<<"B constru…

微软职位内部推荐-Software Development Engineer 2

微软近期Open的职位:SDE IIOrganization Summary:Engineering, Customer interactions & Online (ECO) is looking for a great "Software Development Engineer" to join our team. Customer support is a strategic differentiator for Microsoft and we are i…

C#判断某软件是否安装

代码 privatevoidbutton1_Click(objectsender, EventArgs e) { if(checkAdobeReader() true) { MessageBox.Show("有安裝 Adobe Reader "); } else{ MessageBox.Show("沒有安裝 Adobe Reader "); } …

男朋友和女朋友的区别。。。

1 区别于这耳光来的也是猝不及防。。。2 铲屎官做的一个防止猫咪抢食的装置大概就是这只橘猫保持苗条的秘籍吧3 学生时代的爱情大概就是这样吧。。4 这样的哥哥给我来一打&#xff01;5 据我多年经验&#xff0c;应该是溺水身亡了6 治婊专家陈豪&#xff0c;专业补刀二十年&…

如何在 C# 循环中捕获局部变量?

咨询区 Morgan Cheng&#xff1a;我遇到了一个有趣的问题&#xff0c;它的代码大概是这样的。List<Func<int>> actions new List<Func<int>>();int variable 0; while (variable < 5) {actions.Add(() > variable * 2); variable; }foreach (v…

java创建计数器变量,用于检查变量(计数器)最大长度的Java方法

Kindly please anyone who knows is the any method to knowwhat is the limit of length of a counter?Depsite from initiliazed variables types (either int, byte, long etc)is there any way for me to check my variable (counter)s max lenght?Please share the info…

【原创】Newlife.XCode的常见功能使用(一)查询与数据初始化

本博客所有文章分类的总目录&#xff1a;http://www.cnblogs.com/asxinyu/p/4288836.html Newlife XCode组件相关文章目录&#xff1a;http://www.cnblogs.com/asxinyu/p/4329747.html 1.前言 声明&#xff1a;此Newlife.XCode非Mac的XCode&#xff0c;避免误会。 1.QQ群:16008…

IronRuby - 如何在VS2010下调试IronRuby代码

在OpenExpressApp &#xff0d; 使用VS2010的CodedUI来做自己的自动化测试框架中介绍了我将使用IronRuby进行测试框架的编写。虽然Ruby已经非常的流行&#xff0c;我所在公司有的项目也深入的应用过&#xff0c;但它对于我来说还是非常新的&#xff0c;对它的认识也就是快速的看…

python七夕快乐图片_提前祝七夕快乐图片

1.微信朋友圈圣诞快乐图片制作 轻松获得无数点赞朋友圈是当下人们经常浏览的社交空间&#xff0c;倘若自己的发文得到很多点赞&#xff0c;这就成了一件很有面子的事情。今天小编要教大家的就是微信朋友圈圣诞快乐图片制作&#xff0c;学会后就不愁在朋友圈吸引眼球获得点赞啦&…

AgileConfig轻量级配置中心1.4.0发布,重构了发布功能

加入 NCC 先说一个事&#xff0c;AgileConfig 在 7 月底终于通过了 NCC 社区的审核&#xff0c;正式成为了 NCC 大家庭的一员。这对 AgileConfig 来说是一个里程碑&#xff0c;希望加入 NCC 后能更好的帮助到大家。同时责任也更大了&#xff0c;本人会一如既往的对这个项目维护…

你为什么不爱发朋友圈了?

全世界只有3.14 % 的人关注了爆炸吧知识想发自拍、想秀恩爱、想分享生活状态但一想到别人指手画脚的评论发朋友圈这件事便索然失味人生是不是已经了无生趣了呢关注以下这几个优质订阅号远离朋友圈的日子令你耳目一新不信你就扫码试试RSS精选ID&#xff1a;KindleNewsRSS精选是一…

控制台编写JAVA程序教程_写一个java程序的步骤是什么?写java程序技巧

写Java程序是要按照步骤来的&#xff0c;这样才能写好一个java程序&#xff0c;那么接下来&#xff0c;我们就来给大家讲解一下写一个java程序的步骤是什么?(1)创建Java项目&#xff1a;“FileNewProjectJava Project”;(2)创建Java源程序&#xff1a;“FileNewOtherClass”;(…

IE6下z-index犯癫不起作用bug的初步研究

by zhangxinxu from http://www.zhangxinxu.com 本文地址&#xff1a;http://www.zhangxinxu.com/wordpress/?p471 一、匆匆带过的概念 关于CSS中层级z-index的定义啊什么的不是本文的重点&#xff0c;不会花费过多篇幅详细讲述。这里就简单带过&#xff0c;z-index伴随着层的…

C#读取INI文件

虽然微软早已经建议在WINDOWS中用注册表代替INI文件&#xff0c;但是在实际应用中&#xff0c;INI文件仍然有用武之地&#xff0c;尤其现在绿色软件的流行&#xff0c;越来越多的程序将自己的一些配置信息保存到了INI文件中。 INI文件是文本文件,由若干节(section)组成,在每个带…

本地打开extjs api docs 的方法

将docs目录下 index.html 中的 <script type"text/javascript"src"../adapter/ext/ext-base.js">替换为 <script type"text/javascript"src"../adapter/jquery/jquery-1.4.2.min.js"></script><script type&quo…

独孤思维:穷b只对小概率惶恐不安,对100%确定却视而不见

穷b只对小概率事件惶恐不安&#xff0c;而对于100%确定的事情却视而不见。 穷逼有一个特点&#xff0c;喜欢把外界问题当作自己最大的挡箭牌&#xff1a; 对于小概率发生的事件&#xff0c;惶恐不安&#xff0c;避而远之&#xff0c;而对于100%确定的事情&#xff0c;却装作视…

电子报账系统源码_亲清直播间 | “互联网+财税”引领企业专票电子化变革

2019年11月27日&#xff0c;国务院常务会议要求“ 2020年年底前实现增值税专用发票电子化”&#xff0c;这标志着将增值税专用发票电子化工作正式提上日程。2020年8月3日&#xff0c;国家税务总局发布《关于进一步支持和服务长江三角洲区域一体化发展若干措施的通知》(税总函〔…