R语言学习之主成分分析法的R实践
主成分分析R软件实现程序(一):
>d=read.table("clipboard",header=T) #从剪贴板读取数据
>sd=scale(d) #对数据进行标准化处理
>sd #输出标准化后的数据和属性信息,把标准化的数据拷贝到剪贴板备用
>d=read.table("clipboard",header=T) #从剪贴板读取标准化数据
>pca=princomp(d,cor=T) #主成分分析函数
>screeplot(pca,type="line",mian="碎石图",lwd=2) #画出碎石图
从碎石图上可以看出,前两个主成分的方差贡献率比重比较大,下面计算前两个主成分的累积方差贡献率是否超过80%……
>dcor=cor(d) #求相关矩阵
>deig=eigen(dcor) #求相关矩阵的特征值和特征向量
>deig$values #输出特征值
>sumeigv=sum(deig$values)
>sumeigv 得到k值
>sum(deig$values[1:2])/k #求前两个主成分的累积方差贡献率
>pca$loadings[,1:2] #输出前2个主成分的载荷系数
观察载荷系数可以得到:主成分C1在……
>deig$values[1]/k;deig$values[2]/k; #计算主成分C1、C2的系数b1、b2
C=(b1*C1+b2*C2)/(b1+b2)=q1*C1+q2*C2
>s=pca$scores[,1:2] #输出前两个主成分的得分
>c=s[1:评价对象的个数,1]*q1+s[1:评价对象的个数,2]*q2
>cbind(s,c)
然后把综合得分c的值从小到大排序,得到最后评价结果。
注意:在这里c的值指的是c的实数的值,并非绝对值。
主成分分析R软件实现程序(二):较为简便
在excel中点击复制要读取的文件
>data<-read.table("clipboard",header=T,sep='\t')
>data
>data.pr<-princomp(data,cor=TRUE) #data为数据矩阵或数据框,cor为是否用相关阵,默认为协差阵,scores为是否输出成分得分
>summary(data.pr,loading=TRUE) #loading=TURE选项列出了主成分对应原始变量的系数
其中:standard deviation 标准偏差 Porportion of Variance 贡献率(方差比例)
comulative proportion 累计贡献率(累计比例)
画出三种碎石图:
>screeplot(data.pr) #条型
>biplot(data.pr) #分散型
>screeplot(data.pr,type=("line")) #线型
主成分分析R软件实现程序(三):作业
首先读取成绩数据
```{r, echo=TRUE}
grade <- read.csv(file.choose(),sep=",",header=T)
```
下面对数据进行标准化处理
```{r, echo=TRUE}
sd_grade <- scale(grade[2:43,2:7]);sd #对数据进行标准化处理
sd_grade_pcomp <- princomp(sd_grade,cor=T); #sd_grade_pcomp #主成分分析函数,cor=T为使用相关系数阵来进行分析,默认用协方差阵
summary(sd_grade_pcomp,loadings=TRUE)
#形成一个总结,内含standard deviation 标准偏差 Porportion of Variance 贡献率(方差比例)comulative proportion 累计贡献率(累计比例)
```
由结果看,前三个主成分的累积贡献方差率已达85%,故可选前三个主成分.
```{r, echo=TRUE}
screeplot(sd_grade_pcomp,type="lines")
p<-predict(sd_grade_pcomp);p
```
R语言学习之主成分分析法的R实践的更多相关文章
- R 语言学习笔记(1)——R 工作空间与输入输出
什么是工作空间? 工作空间(workspace)就是当前 R 的工作环境,它储存着所有用户定义的对象(objectives)包括了向量.矩阵.函数.数据框.列表等. 处理 R 文件的工作流程 #设置当 ...
- R语言学习 第四篇:函数和流程控制
变量用于临时存储数据,而函数用于操作数据,实现代码的重复使用.在R中,函数只是另一种数据类型的变量,可以被分配,操作,甚至把函数作为参数传递给其他函数.分支控制和循环控制,和通用编程语言的风格很相似, ...
- R语言学习 第一篇:变量和向量
R是向量化的语言,最突出的特点是对向量的运算不需要显式编写循环语句,它会自动地应用于向量的每一个元素.对象是R中存储数据的数据结构,存储在内存中,通过名称或符号访问.对象的名称由大小写字母.数字0-9 ...
- R语言学习 第九篇:plyr包
在数据分析中,整理数据的本质可以归纳为:对数据进行分割(Split),然后应用(Apply)某些处理函数,最后将结果重新组合(Combine)成所需的格式返回,简单描述为:Split - Apply ...
- R语言学习 第十一篇:日期和时间
R语言的基础包中提供了三种基本类型用于处理日期和时间,Date用于处理日期,它不包括时间和时区信息:POSIXct/POSIXlt用于处理日期和时间,其中包括了日期.时间和时区信息.R内部在存储日期和 ...
- R语言学习路线和常用数据挖掘包(转)
对于初学R语言的人,最常见的方式是:遇到不会的地方,就跑到论坛上吼一嗓子,然后欣然or悲伤的离去,一直到遇到下一个问题再回来.当然,这不是最好的学习方式,最好的方式是——看书.目前,市面上介绍R语言的 ...
- R语言学习笔记:基础知识
1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...
- R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...
- R语言学习笔记(二)
今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...
随机推荐
- linux学习 建立静态库,动态库,写简单的makefile
建立静态库 建立四个文件 bin(可运行文件),lib(库),include(头文件),src(放源文件) 这里的起的库明为add 在src文件里运行 1)gcc -c add.c //编译add.c ...
- 各类形参(引用,const,指针)
#include <stdlib.h> #include <iostream> //这是一个关于引用形参,const形参,指针形参的程序,用于理解不同形式的区别 using n ...
- ContentType 属性 MIME
".asf" = "video/x-ms-asf" ".avi" = "video/avi" ".doc&qu ...
- 初学JSoup
jsoup 是一款 Java 的 HTML 解析器,可直接解析某个 URL 地址.HTML 文本内容.它提供了一套非常省力的 API,可通过 DOM,CSS 以及类似于 jQuery 的操作方法来取出 ...
- English - refer to...和refer to...as
refer to...和refer to...as...本来就是refer的两个固定搭配,这个只能讲讲后两者用法,剩下的就是单独的refer的用法了. 1. refer to sb/sth 指的是/提 ...
- iOS网络请求之---GET和POST
get是从服务器上获取数据,post是向服务器传送数据.前者把参数数据加在了将参数直接写在访问路径上.操作简单,不过容易被外界看到,安全性不高,地址最多255字节,后者则是将参数放到body里面.PO ...
- Visual Studio之Nuget
一.NuGet是什么? NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件,同时也可以通 ...
- AngularJS ng-class用法
mark from https://my.oschina.net/gejiawen0913/blog/188547 ng-class是AngularJS预设的一个指令,用于动态自定义dom元素的css ...
- linux系统性能监控常用命令
一.Linux服务器性能关注点 1)CPU -> load:表示cpu在一段时间内正在处理以及等待处理的任务之和统计信息,简单可理解为cpu正处理的线程数和能同时处理的线程数的比值.一般认为 ...
- Delphi获取与设置系统时间格式,即GetLocaleInfo和SetLocaleInfo
在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或者用 StrToDateTime将字 ...