R语言学习笔记9_多元统计分析介绍_r语言多元统计分析-程序员宅基地

技术标签: R  r语言  big data  

九、多元统计分析介绍

研究客观事物中1)多变量(多因素或多指标)之间的相互关系2)多样品对象之间差异3)以多个变量为代表的多元随机变量之间的依赖和差异的现代统计分析理论和方法。

  • 主成分分析与因子分析的目的是寻找多个变量的“代表”
  • 判别分析能将对象分类到已知类别中
  • 聚类分析按照一定的尺度把对象分类
  • 典型相关分析研究两组变量之间的相关问题
  • 对应分析探究行列变量的关系

9.1 主成分分析与因子分析

9.1.1 主成分的R通用程序

主成分分析:是把多维空间的相关多变量的数据集,通过降维化简为少量且相互独立新综合指标(尽可能多的包括或尽可能不损失原指标群中的主要信息)

princomp(formula, data = NULL, subset, na.action, ...)

princomp(x, cor = FALSE, scores = TRUE, covmat = NULL,
         subset = rep_len(TRUE, nrow(as.matrix(x))), fix_sign = TRUE, ...)

formula是没有响应变量的公式;x是用于主成分分析的数据;cor是逻辑变量,cor = FALSE表示用样本的协方差矩阵S作主成分,cor=TRUE表示用样本点相关阵R作主成分分析。

例:学生身体4项指标的主成分分析:随机抽取30名某年级中学生,测量其身高X1,体重X2,胸围X3,坐高X4,数据如下表。试对这30名学生身体的四项指标作主成分分析。

X1 X2 X3 X4
148 41 72 78
139 34 71 76
160 49 77 86
149 36 67 79
159 45 80 86
142 31 66 76
153 43 76 83
150 43 77 79
151 42 77 80
139 31 68 74
140 29 64 74
161 47 78 84
158 49 78 83
140 33 67 77
137 31 66 73
152 35 73 79
149 47 82 79
145 35 70 77
160 47 74 87
156 44 78 85
151 42 73 82
147 38 73 78
157 39 68 80
147 30 65 75
157 48 80 88
151 36 74 80
144 36 68 76
141 30 67 76
139 32 68 73
148 38 70 78
> student<-data.frame(x1<-c(148,139,160,149,159,142,153,150,151,139,140,161,158,140,137,152,149,145,160,156,151,147,157,147,157,151,144,141,139,148),x2<-c(41,34,49,36,45,31,43,43,42,31,29,47,49,33,31,35,47,35,47,44,42,38,39,30,48,36,36,30,32,38),x3<-c(72,71,77,67,80,66,76,77,77,68,64,78,78,67,66,73,82,70,74,78,73,73,68,65,80,74,68,67,68,70),x4<-c(78,76,86,79,86,76,83,79,80,74,74,84,83,77,73,79,79,77,87,85,82,78,80,75,88,80,76,76,73,78))
> student.pr<-princomp(student,cor = T)
> summary(student.pr,loadings=T)
Importance of components:
                          Comp.1     Comp.2     Comp.3     Comp.4
Standard deviation     1.8817805 0.55980636 0.28179594 0.25711844
Proportion of Variance 0.8852745 0.07834579 0.01985224 0.01652747
Cumulative Proportion  0.8852745 0.96362029 0.98347253 1.00000000

Loadings:
                                                                 Comp.1 Comp.2 Comp.3 Comp.4
x1....c.148..139..160..149..159..142..153..150..151..139..140..   0.497  0.543  0.450  0.506
x2....c.41..34..49..36..45..31..43..43..42..31..29..47..49..33..  0.515 -0.210  0.462 -0.691
x3....c.72..71..77..67..80..66..76..77..77..68..64..78..78..67..  0.481 -0.725 -0.175  0.461
x4....c.78..76..86..79..86..76..83..79..80..74..74..84..83..77..  0.507  0.368 -0.744 -0.232

Standard deviation 表示主成分的标准差
Proportion of Variance 表示方差的贡献率
Cumulative Proportion 表示方差的累计贡献率
loadings=T表示列出主成分对应原始变量的系数,因此得到前两个主成分是:
Y1=0.497X1+ 0.543X2+ 0.450x3+ 0.506X4
Y2=0.515X1 - 0.210X2+ 0.462X3 - 0.691X4
由于前两个主成分的累计贡献率已经达到了96.36%,所以取前两个主成分来降维。

9.1.2 因子分析R通用程序

研究相关矩阵的内在依赖关系,把多个显在的变量综合为少数几个不可观测的潜在因子或公共因子。
根据研究对象和分析方法不同,可分为R型和Q型两种:R型因子分析研究指标(变量) 之间的相互关系,通过多变量相关系数矩阵内部结构的研究找出控制所有变量的几个主因子(成分),需要考虑变量量纲及数量级;Q型因子分析研究样品之间控制所有样品的几个主要因素。

factanal(x, factors, data = NULL, covmat = NULL, n.obs = NA,
         subset, na.action, start = NULL,
         scores = c("none", "regression", "Bartlett"),
         rotation = "varimax", control = NULL, ...)

x是用于因子分析的数据;factors表示因子个数,scores表示选用因子得分方法,rotation=“varimax”表示用最大方差旋转。

9.2 判别分析

目的在于对已知归类的数据建立由数值指标构成的归类规则,然后把这样的规则应用到未知归类的样品去归类。

9.2.1 距离判别

计算样品到各类的马氏距离。样品和哪个总体距离最近,就判它属于哪个总体。

9.2.2 Fisher判别法

投影。将K组m维数据投影到某个方向,使投影后组与组之间尽可能地分开。用一元方差分析思想衡量组于组之间是否分开。

9.2.3 R通用程序

lda(formula, data, ..., subset, na.action)

formula用法为groups~x1+x2+…, groups表明总体来源,x1+x2+…表示分类指标;subset指明训练样本

例1:利用R内置数据包鸢尾花Iris进行判别分析

> data("iris")
> attach(iris)
> names(iris)
[1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"     
> library(MASS)
> iris.lda<-lda(Species~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width)
> iris.lda
Call:
lda(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width)

Prior probabilities of groups:
    setosa versicolor  virginica 
 0.3333333  0.3333333  0.3333333 

Group means:
           Sepal.Length Sepal.Width Petal.Length Petal.Width
setosa            5.006       3.428        1.462       0.246
versicolor        5.936       2.770        4.260       1.326
virginica         6.588       2.974        5.552       2.026

Coefficients of linear discriminants:
                    LD1         LD2
Sepal.Length  0.8293776  0.02410215
Sepal.Width   1.5344731  2.16452123
Petal.Length -2.2012117 -0.93192121
Petal.Width  -2.8104603  2.83918785

Proportion of trace:
   LD1    LD2 
0.9912 0.0088 
> iris.pred=predict(iris.lda)$class
> table(iris.pred,Species)
            Species
iris.pred    setosa versicolor virginica
  setosa         50          0         0
  versicolor      0         48         1
  virginica       0          2        49
> detach(iris)

Group means 包含了每组的平均向量
Coefficients of linear discriminants 线性判别系数
Proportion of trace 表明了第 i 判别式对区分各组贡献的大小
Species 表示将原始数据带入线性判别函数的判别结果,setosa组没有判错, versicolor组有两个判错,virginica组有一个判错。

9.3 聚类分析

事先对总体到底有几种类型无从知晓。

9.3.1 基本思想

先将n个样品各自看成一类,然后规定类与类之间的距离(有多种定义方法)选择距离最小的一对合并成新的一类,计算新类与其他类的距离,再将距离最近的两类合并,每次减少一类,直至所有的样品成为一类为止。

dist(x, method = "euclidean", diag = FALSE, upper = FALSE, p = 2)

method表示计算距离的方法,默认为欧氏距离;diag=T时输出距离矩阵对角线上的距离;upper=T时输出距离矩阵上三角部分。
类与类之间的距离有许多定义方法,主要有以下7种:

  • 类平均法(average Linkage)
  • 重心法(centroid method)
  • 中间距离法(median method)
  • 最长距离法(complete method)
  • 最短距离法(single method)
  • 离差平方和法(ward method)
  • 密度估计法(density method)

9.3.2 R通用程序

hclust(d, method = "complete", members = NULL)

d是由dist构成的距离结构,method是系统聚类的方法。

例1:设有5个产品,每个产品测得一项质量指标x,值为:1,2,4.5,6,8,试用最短距离法、最长距离法、中间距离法、离差平方和法分别对5个产品按质量指标进行分类。

> x<-c(1,2,4.5,6,8)
> dim(x)<-c(5,1)
> d<-dist(x)
> hc1<-hclust(d,"single")
> hc2<-hclust(d,"complete")
> hc3<-hclust(d,"median")
> hc4<-hclust(d,"ward")
The "ward" method has been renamed to "ward.D"; note new "ward.D2"
> par(mfrow=c(2,2))
> plot(hc1,hang = -1)
> plot(hc2,hang = -1)
> plot(hc3,hang = -1)
> plot(hc4,hang = -1)

在这里插入图片描述
可见,四种分类方法结果一致,都将1,2分在一类,其余在第二类。

例2:对Iris数据集进行聚类分析。假设我们只知道数据内有三种品种的鸢尾花,而不知道每朵花的真正分类,只能凭借花萼及花瓣的长度和宽度去分成三类。

> data("iris")
> attach(iris)
> iris.hc<-hclust(dist(iris[,1:4]))
> plot(iris.hc,hang = -1) #绘制聚类的谱系图
> re<-rect.hclust(iris.hc,k=3) #给定类的个数
> iris.id<-cutree(iris.hc,3) #将数据的分类结果编为三组,分别以1,2,3表示
> table(iris.id,Species) 
       Species
iris.id setosa versicolor virginica
      1     50          0         0
      2      0         23        49
      3      0         27         1
> detach(iris)

在这里插入图片描述
将iris.id与Species作比较发现1应该是setosa类,2应该是virginica类,3是versicolor类。

9.4 典型相关分析

研究两组变量相关关系的一种多元统计方法。(猪肉、牛肉、玉米的价格和其相应销售量的相关关系)

9.4.1 基本思想

首先在每组变量中找出变量的线性组合,使其具有最大相关性;再在每组变量中找出第二对线性组合,使其分别与第一对线性组合不相关,而第二对本身具有最大的相关性,直到两组变量之间的相关性被提取完毕为止。

典型相关关系是对两组变量的每一组作为整体考虑的,因此可以广泛应用于变量群之间的相关分析研究

9.4.2 R通用程序

cancor(x, y, xcenter = TRUE, ycenter = TRUE)

x,y是两组变量的数据矩阵,xcenter和ycenter=T时表示将数据中心化。

9.5 对应分析

研究样本与指标之间的关系。

9.5.1 R通用程序

corresp(x, nf = 1, ...)

x是数据矩阵,nf表示计算因子个数。

例:利用90年代初期对某市若干个郊区已婚妇女的调查资料,主要调查她们对“应该男人在外工作,妇女在家操持家务”的态度,依据文化程度和就业观点两个变量进行分类汇总。

文化程度 就业 观点
非常同意 同意 不同意 非常不同意
小学以下 2 17 17 5
小学 6 65 79 6
初中 41 220 327 48
高中 72 224 503 47
大学 24 61 300 41
> x.df=data.frame(HighlyFor=c(2,6,41,72,24),For=c(17,65,220,224,61),Against=c(17,79,327,503,300),HighlyAgainst=c(5,6,48,47,41))
> rownames(x.df)<-c("BelowPrimary","Primary","Secondary","HighSchool","College")
> library(MASS)
> biplot(corresp(x.df,nf=2))

在这里插入图片描述
看就业观点和文化程度的横坐标距离,可以看出对该观点持赞同态度的是小学以下、小学和初中,大学文化程度的妇女主要持不同意或非常不同意的观点,高中文化程度的持有非常不赞同、非常同意两种观点。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/skye_s_/article/details/119933802

智能推荐

Ubuntu python3.6的安装_ubuntu python3.6安装-程序员宅基地

文章浏览阅读3.5k次。文章目录安装python3.6设置python优先级卸载Python参考资料安装python3.6'方法一'sudo add-apt-repository ppa:deadsnakes/ppasudo apt-get updatesudo apt-get install python3.6'方法二'sudo add-apt-repository ppa:jonathonf/python-3.6sudo apt-get updatesudo apt-get install python3.6_ubuntu python3.6安装

黑马程序员---对JPA的理解与回顾总…_jpa 黑马程序员-程序员宅基地

文章浏览阅读330次。接上文:多对多关系的映射:思路多对多关系是通过一个中间表或者说关联表来实现的,即两个多对一关系的综合就是一个多对多;1:首先确定好关系的维护端和被维护端;ManyToMany注解标识多对多对应的字段;指定关系的维护端是通过JoinTable注解来实现的,这个注解可以指定关联表的名称,和关联表的字段名称,其中joinColumns指定关系维护端这个字段对应于关联表的字段名称inv_jpa 黑马程序员

Data too long for column ‘数据库字段‘ at row 1_data too long for column at row 1-程序员宅基地

文章浏览阅读6.4k次。这个一般就是设计数据库字段的时候字段长度没给够,导致执行插入语句的时候,数据长度大于数据库对应字段长度报错。两种方法:1.对执行插入的数据长度做出限制,2.对数据库字段长度进行设置。记录一下今天执行sql语句的报错。_data too long for column at row 1

一文搞定OpenCV快速入门(附网盘链接)_opencv4快速入门pdf百度网盘-程序员宅基地

文章浏览阅读6.6k次,点赞15次,收藏13次。前言本系列包含两篇博客,主要分享OpenCV常用的操作,文末会分享相关著作电子版链接。传送门基础操作进阶操作资源链接:https://pan.baidu.com/s/1FlioORwwixsopfESgnsJpA提取码:aogg_opencv4快速入门pdf百度网盘

时序列数据库之InfluxDB_数据库 断面查询-程序员宅基地

文章浏览阅读6.8k次。作为时序列数据库中表现很好的InfluxDB,已经被越来越多的项目应用到实际当中。比如资源的监控来说,Cadvisor监控到某一断面某一节点整体资源的状况,而且能够不断地从画面中看到不断变化的信息,但是这些数据如何持久化的保存是一个问题,而InfluxDB正好可以满足这个需求,其简单好用,耦合度小,容易集成到整体的系统之中。_数据库 断面查询

功放前级的左右_相当超值的中档天龙家庭影院功放!天龙AVR-X3600H功放试用-程序员宅基地

文章浏览阅读6.3k次。很久没有给大家带来家庭影院功放,特别是中低档的家庭影院功放试用了。要说我为什么要试用这台天龙AVR-X3600H,还真不是我主动去找的。这是影院君告诉我天龙最新的X3000系列功放也加入了7.2.4声道的前级输出能力,说这应该去找天龙借一台试一下。而我借这台功放的目的,是想证明天龙X6500H以下的型号,人声都偏薄!大家去买同一家公司的马兰士吧!高端和旗舰差多少?天龙AVR-X4500H与AVC-..._天龙avr功放等级排列

随便推点

sourcetree 报错'git log' failed with code 128:'fatal: bad revision 'feature-xxx'-程序员宅基地

文章浏览阅读1.1w次。这个是由于建立分支后又删除了,会提示这个错,再建立这个分支即可,如果不需要推送到远程仓库不推送只在本地就好。_git log' failed with code 128:'fatal: bad revision

php 打开模态框,模态框打开页面-程序员宅基地

文章浏览阅读227次。## iframe打开页面1、为list表格增加链接按钮,将popup属性设置为true。属性modal-type用于调节模态框大小,有fs,lg,md(默认),sm,xs四种类型。~~~->addListButton(['type'=> 'edit','href_base'=> 'editQuestionBank','icon_class'=> 'fa fa-pencil..._php模态框按钮方法

ACM算法竞赛入门——算法竞赛赛制、题目形式、常见评测状态_算法赛-程序员宅基地

文章浏览阅读2.2k次,点赞33次,收藏48次。最全的acm算法竞赛赛制介绍、比赛、题目形式、常见测评状态_算法赛

《深入浅出MFC》书中DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC宏的详细解释_深入浅出 mfc declare 宏-程序员宅基地

文章浏览阅读5.9k次。最近有些朋友在看《深入浅出MFC》的时候,被第三章的几个宏给卡住了,记得我第一次看此书时,也被这几个宏给卡住。当然真正卡人的其实是第一个,也就是DECLARE_DYNAMIC/IMPLEMENT_DYNAMIC。我做了一个详解,供同样被卡住的朋友做个参考:)说明:这两个宏的主要目的,是在所指定的class(比如CView)的声明和实现里,加上一些静态成员函数和静态成员变量。所以,不要管“/”这个换_深入浅出 mfc declare 宏

图片转灰度报错cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)_cv2.cvtcolor报错-程序员宅基地

文章浏览阅读3.2w次,点赞11次,收藏24次。图片转灰度cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)报错如下: img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cv2.error: OpenCV(4.5.4) d:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\color.simd_helpers.hpp:92: error: (-2:Unspecified error) in function '__cdecl_cv2.cvtcolor报错

SigmaStar SSD201 SSD202室内网关开发板防雷防静电图_ssd202 最高分辨率-程序员宅基地

文章浏览阅读387次。一、 应用场合1、楼宇对讲–室内机2、智能家居–智能网关3、语音播放,视频播放机–带智能语音离线识别4、电梯广告机及楼层显示5、智能家居–86盒中控6、家电产品–破壁机,洗衣机等7、VOIP产品–SIP话机8、智能咖啡机9、打印机网关…二、 功能概述1、CPU:SSD201 ARM Cortex-A7 512Mbit DDR22、存储:SPI flash 128Mbit3、语音:支持一路数字音频输入和一路模拟音频输入4、音频:3W 音频放大输出5、串口:一路 485 输出,2 _ssd202 最高分辨率

推荐文章

热门文章

相关标签