多元统计方法的R语言实现.ppt

上传人:公**** 文档编号:576952729 上传时间:2024-08-20 格式:PPT 页数:27 大小:111KB
返回 下载 相关 举报
多元统计方法的R语言实现.ppt_第1页
第1页 / 共27页
多元统计方法的R语言实现.ppt_第2页
第2页 / 共27页
多元统计方法的R语言实现.ppt_第3页
第3页 / 共27页
多元统计方法的R语言实现.ppt_第4页
第4页 / 共27页
多元统计方法的R语言实现.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《多元统计方法的R语言实现.ppt》由会员分享,可在线阅读,更多相关《多元统计方法的R语言实现.ppt(27页珍藏版)》请在金锄头文库上搜索。

1、兰州大学 王定1BG1、判别分析2、聚类分析3、主成分分析4、因子分析5、典型相关分析目录对样本进行分类通过提取公共部分对变量进行降维分析两组变量之间的相互关系2BG1、判别分析实现方法:(1)利用MASS包里的lda( ) 函数可完成判别分析(略)(2)利用R软件进行编程 简要介绍: 已知有多少类,且在各类均有训练样本的前提下,利用训练样本得到判别函数以及判别规则,对待测样本进行分类。 本课程只讲述距离判别,有兴趣的朋友可以课后研究一下其他判别方法的R实现。3BG1、判别分析(1)读程序(2)作分析(3)讲应用4BG双分类距离判别R程序discriminiant.distance-funct

2、ion(TrnX1,TrnX2,TstX=NULL, var.equal=FALSE) if (is.null(TstX)=TRUE) TstX-rbind(TrnX1,TrnX2) if (is.vector(TstX)=TRUE) TstX-t(as.matrix(TstX) else if (is.matrix(TstX)!=TRUE) TstX-as.matrix(TstX) if (is.matrix(TrnX1)!=TRUE) TrnX1-as.matrix(TrnX1) if (is.matrix(TrnX2)!=TRUE) TrnX2-as.matrix(TrnX2) nx-n

3、row(TstX) blong-matrix(rep(0,nx),nrow=1,byrow=TRUE, dimnames=list(blong,1:nx) mu1-colMeans(TrnX1); mu2-colMeans(TrnX2) if (var.equal=TRUE | var.equal=T) S-var(rbind(TrnX1,TrnX2) w-mahalanobis(TstX,mu2,S)-mahalanobis(TstX,mu1,S) else S1-var(TrnX1);S2-var(TrnX2) w0) blongi-1 else blongi-2 blong5BG多分类距

4、离判别R程序(部分)distinguish.distance-function (TrnX, TrnG, TstX = NULL, var.equal = FALSE) blong-matrix(rep(0, nx), nrow=1, dimnames=list(blong, 1:nx) g-length(levels(TrnG) mu-matrix(0, nrow=g, ncol=ncol(TrnX) for (i in 1:g) mui,-colMeans(TrnXTrnG=i,) D-matrix(0, nrow=g, ncol=nx) if (var.equal = TRUE | va

5、r.equal = T) for (i in 1:g) Di,- mahalanobis(TstX, mui, var(TrnX) else for (i in 1:g) Di,- mahalanobis(TstX, mui, var(TrnXTrnG=i,) for (j in 1:nx) dmin-Inf for (i in 1:g) if (Di,jdmin) dmin-Di,j; blongj-i blong6BG如何用(1)discriminiant.distance(TrnX1,TrnX2,TstX, var.equal=FALSE)TrnX1,TrnX2:两分类中两个类的训练样本

6、。TstX:待判样本。可为空值;当为空值时,默认将训练样本回代进行判别。var.equal:逻辑变量,FALSE(默认)表示协方差不等,TRUE表示协方差相同。(2)distinguish.distance(TrnX, TrnG, TstX, var.equal = FALSE)TrnX:训练样本。TrnG:输入样本的分类情况,为因子变量。TstX:待判样本。可为空值;当为空值时,默认将训练样本回代进行判别。var.equal:逻辑变量,FALSE(默认)表示协方差不等,TRUE表示协方差相同。所有训练样本、待判样本的输入格式均为矩阵(样本按行输入)或数据框。7BG应用举例医学 医生对病人的诊

7、断是靠对病人观测若干症状来综合评定。如一个人发高烧,医生根据他的体温高低、白血球数目及其它症状来判断他是得感冒、肺炎还是其它。再如某人发现腹部有肿瘤,医生根据肿瘤的大小、生长的速度、边界是否清楚,质硬或软等症状来判断肿瘤是良性或恶性。这些判别问题就是判别分析的实际应用。(显然偶然的误判是避免不了的。这就加剧了医患关系的紧张。但并不能说医生完全的不负责任或者水平不够。可能是很多因素导致了误判。) 不同的病就是不同的类。一般而言,事先应有一批经专家确诊或手术后经病理化验确诊的病例资料(训练样本),根据这批资料数据,利用多元统计方法建立诊断的准则(即判别函数与判别规则)。对来就诊的病人(待判样本),

8、按诊断准则的要求,观测若干项指标后,即可作出诊断。8BG2、聚类分析实现方法: 调用R函数。 简要介绍: 事先不知道多少类的情况下,根据对象特征的近似程度,将样本进行分类。 主要讲述系统聚类和动态聚类的K均值法聚类。 9BG2.1 系统聚类输入数据,生成距离结构利用R自带函数进行系统聚类绘出谱系图,分类10BG有关系统聚类的R函数(1)dist( ), dist(scale( ) #对样本数据(标准化处理后)生成距离结构(2)hclust( , method=“ ”) #进行系统聚类;method=(“single”,“complete”,“average”,“centroid”,“ward”

9、)(3)cutree(hc, k) #进行分类 sort(cutree(hc, k) #按分类变量水平大小排序以方便查看(4)as.dendrogram(hc) #将结果强制转换为做谱系图类型 plot(hcd, type=“ “, horiz=FALSE) #做谱系图;type=(“rectangle”,“triangle”) rect.hclust(hc, k= , border=“ “) #进行分类并在谱系图中 显示;k=分类个数;border设置分类框的颜色11BG有关R型聚类的R函数(1)as.dist(sqrt(1-cor(X)2) #将相关系数转化为距离矩阵(2)hclust(d

10、,method=single)(3)plot(hc,hang=-1)12BG2.2 K均值聚类Kmeans(X, k= , iter.max=10)#矩阵或数据框格式的样本数据;K=聚类个数;iter.max=最大迭代次数13BG有关K均值聚类动态展示的包与函数(1)amap,R2SWF,animation #进行K均值聚类及制作动画的包(2)dev2swf(kmeans.ani( ), output=“ ”) #包中进行动态聚类并输出FLASH动画的函数14BG应用举例文学历史研究 在1985-1986年,我国复旦大学统计运筹系的李贤平教授对我国的名著红楼梦的著作权进行研究。使用的统计方法中

11、就用到了聚类分析。 先选定数十个与情节无关的虚词(如:了,吗,嘛,喱,呢,么,等)作为变量, 把红楼梦一书中的120回作为120个样品,统计每一回(即样品)选定的这些虚词(即变量)出现的频数。由此得到的120行m列的数据阵,进行聚类分析,由输出的结果可以看出:前80回和后40回截然地分为两类。 在红楼梦的著作权的研究中,使用较多的方法是聚类分析,主成分分析,典型相关分析等方法,15BG3、主成分分析实现方法:(1)R自带函数(2)psych包(3)编程(略) 简要介绍: 利用降维技术,将多个变量化成少数几个主成分,且主成分能够反映原始变量绝大部分信息。16BG有关主成分分析的R函数(1)pri

12、ncomp(x, cor=FALSE, scores=TRUE) #进行主成分分析 x:矩阵或数据框形式的样本数据 cor:逻辑变量。TRUE表示从相关矩阵R出发;FALSE表示从协 方差阵S出发 scores:是否计算主成分得分(2)summary(pr, loadings=FALSE) #提取主成分信息 pr:princomp()得到的对象 loadings:逻辑变量。TRUE表示显示各主成分对应的载荷(3)predict(pr) #预测各样本在各主成分上的得分(4)screeplot(pr, type=“”) #碎石图 type:设置碎石图样式。lines为直线图,barplot为直方图

13、(5)biplot(pr, choies= , ) #样本数据关于主成分散点图17BG主成分分析的psych包函数(1)fa.parallel(x, fa=“pc”, main=“”) #作碎石图以确定主成分个数(2)principal(x, nfactors= , scores= ) #主成分分析(默认相关阵)(3)factor.plot(pr) #变量数据关于主成分散点图18BG4、因子分析实现方法:(1)R自带函数(2)psych包(3)编程(略) 简要介绍: 因子分析是主成分分析的推广和发展。它研究相关阵或者协方差阵的内部依赖关系,将多个变量综合为少数几个因子,以再现原始变量与因子之间

14、的相关关系。19BG有关因子分析的R函数factanal(x, factors= , covmat=, scores=“ “, rotation=“ “) x:矩阵或者数据框格式的样本数据 factors:因子个数 covmat:样本协方差阵或相关阵。(x与covmat只输入一个) scores:因子得分的方法(“none”“regression”“Bartlett”) rotation:旋转设置(“varimax”“promax”“none”)20BG有关因子分析的psych包函数(1)fa.parallel(x, fa=“fa”, main=“”) #碎石图 x:原始数据矩阵或样本相关阵

15、fa:是因子分析还是主成分分析(2)fa(x, nfactors= , rotate=“ “, scores=FALSE, fm=“”) nfactors:设置公共因子个数 fm:因子分析方法。(“pc”“m1”“pa”“minres”)(3)factor.plot(fa) #原始变量关于各公共因子的散点图(4)fa.diagram(fa) #公共因子与原始变量结构图21BG应用举例综合评价 从若干商业合作对象的各种指标入手,进行主成分分析或者因子分析,简化评价指标,对商业合作对象进行综合评定,确定合作公司。22BG5、典型相关分析实现方法: R自带函数 简要介绍: 分析两组随机变量之间的相关

16、性,揭示两组随机变量之间的相互线性依赖关系。 采用主成分提取方法,找出两组变量的线性组合U和V,将两组变量之间相关性的研究变为两个变量之间相关性的研究。23BG有关典型相关分析的R函数cancor(x,y) #进行典型相关分析x, y是两组变量的数值矩阵或数据框24BG典型相关系数的检验程序corcoef.test-function(r, n, p, q, alpha=0.1) m-length(r); Q-rep(0, m); lambda - 1 for (k in m:1) lambda-lambda*(1-rk2); Qk- -log(lambda) s-0; i-m for (k i

17、n 1:m) Qk- (n-k+1-1/2*(p+q+3)+s)*Qk chialpha) i-k-1; break s-s+1/rk2 i25BG应用举例环境科学 环保局对城市多种污染气体(CO,CO2,SO2)的浓度与气象因子(风向,风速,温度,湿度等)之间的相互关系的研究。 多元统计分析方法,在各行各业的应用非常之多,大家可以课后搜集一些资源,多看看各行各业的报告文章等,看看我们课堂学到的理论知识在现实世界中具体是如何用的,这样既能加深对理论的理解,又能增强我们的实战能力。 我们是专业硕士,想必大部分人的目标就是成为一个既懂理论又能实战的高级应用型人才。如何走出象牙塔,不拘泥于理论,更看重理论所学与实际应用的结合,我觉得是我们课余应该思考的问题。仅个人观点! 谢谢大家!26BG结语 多元统计分析方法,在各行各业的应用非常之多,大家可以课后搜集一些资源,多看看各行各业的报告文章等,看看我们课堂学到的理论知识在现实世界中具体是如何用的,这样既能加深对理论的理解,又能增强我们的实战能力。 我们是专业硕士,想必大部分人的目标就是成为一个既懂理论又能实战的高级应用型人才。软件掌握的不再多在于精。理论方法我想也是吧,学会一种理论方法能够融会贯通最重要。如何走出象牙塔,不拘泥于理论,更看重理论所学与实际应用的结合,我觉得是我们课余应该思考的问题。仅个人观点! 谢谢大家!27BG

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号