多元统计方法的r语言实现

上传人:E**** 文档编号:118510761 上传时间:2019-12-16 格式:PPT 页数:27 大小:375.50KB
返回 下载 相关 举报
多元统计方法的r语言实现_第1页
第1页 / 共27页
多元统计方法的r语言实现_第2页
第2页 / 共27页
多元统计方法的r语言实现_第3页
第3页 / 共27页
多元统计方法的r语言实现_第4页
第4页 / 共27页
多元统计方法的r语言实现_第5页
第5页 / 共27页
点击查看更多>>
资源描述

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

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

2、iant.distance-function (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-a

3、s.matrix(TrnX2) nx-nrow(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 b

4、longi-2 blong 多分类距离判别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 (va

5、r.equal = TRUE | var.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 blong 如何用 (1)discriminiant.distance(TrnX1,TrnX2,TstX, var.equal=FALSE) TrnX1

6、,TrnX2:两分类中两个类的训练样本。 TstX:待判样本。可为空值;当为空值时,默认将训练样本回代进行判别。 var.equal:逻辑变量,FALSE(默认)表示协方差不等,TRUE表示协方差 相同。 (2)distinguish.distance(TrnX, TrnG, TstX, var.equal = FALSE) TrnX:训练样本。 TrnG:输入样本的分类情况,为因子变量。 TstX:待判样本。可为空值;当为空值时,默认将训练样本回代进行判别。 var.equal:逻辑变量,FALSE(默认)表示协方差不等,TRUE表示协方差 相同。 所有训练样本、待判样本的输入格式均为矩阵(

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

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

9、le”,“complete”,“average”,“centroid”,“ward”) (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设置分类框的颜色 有关R型聚类的R函数 (1)as.di

10、st(sqrt(1-cor(X)2) #将相关系数转化为距离矩阵 (2)hclust(d,method=single) (3)plot(hc,hang=-1) 2.2 K均值聚类 Kmeans(X, k= , iter.max=10) #矩阵或数据框格式的样本数据;K=聚类个数;iter.max=最大 迭代次数 有关K均值聚类动态展示的包与函数 (1) amap,R2SWF,animation #进行K均值聚类及制作动 画的包 (2) dev2swf(kmeans.ani( ), output=“ ”) #包中进行动态聚类 并输出FLASH动画的函数 应用举例文学历史研究 在1985-1986

11、年,我国复旦大学统计运筹系的李贤平教授对我国 的名著红楼梦的著作权进行研究。使用的统计方法中就用到了聚 类分析。 先选定数十个与情节无关的虚词(如:了,吗,嘛,喱,呢,么,等) 作为变量, 把红楼梦一书中的120回作为120个样品,统计每一回( 即样品)选定的这些虚词(即变量)出现的频数。由此得到的120行m列 的数据阵,进行聚类分析,由输出的结果可以看出:前80回和后40回 截然地分为两类。 在红楼梦的著作权的研究中,使用较多的方法是聚类分析, 主成分分析,典型相关分析等方法, 3、主成分分析 实现方法: (1)R自带函数 (2)psych包 (3)编程(略) 简要介绍: 利用降维技术,将多

12、 个变量化成少数几个主成 分,且主成分能够反映原 始变量绝大部分信息。 有关主成分分析的R函数 (1)princomp(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)scree

13、plot(pr, type=“”) #碎石图 type:设置碎石图样式。lines为直线图,barplot为直方图 (5)biplot(pr, choies= , ) #样本数据关于主成分散点图 主成分分析的psych包函数 (1)fa.parallel(x, fa=“pc”, main=“”) #作碎石图以确定主成分个数 (2)principal(x, nfactors= , scores= ) #主成分分析(默认相关阵 ) (3)factor.plot(pr) #变量数据关于主成分散点图 4、因子分析 实现方法: (1)R自带函数 (2)psych包 (3)编程(略) 简要介绍: 因子分析

14、是主成分分 析的推广和发展。它研究 相关阵或者协方差阵的内 部依赖关系,将多个变量 综合为少数几个因子,以 再现原始变量与因子之间 的相关关系。 有关因子分析的R函数 factanal(x, factors= , covmat=, scores=“ “, rotation=“ “) x:矩阵或者数据框格式的样本数据 factors:因子个数 covmat:样本协方差阵或相关阵。(x与covmat只输入一个) scores:因子得分的方法(“none”“regression”“Bartlett”) rotation:旋转设置(“varimax”“promax”“none”) 有关因子分析的psych包函数 (1)fa.parallel(x, fa=“fa”, main=“”) #碎石图 x:原始数据矩阵或样本相关阵 fa:是因子分析还是主成分分析 (2)fa(x, nfactors= , rotate=“ “, scores=FALSE, fm=“”) nfactors:设置公共因子个数 fm:因子分析方法。(“pc”“m1”“pa”“minres”) (3)factor.plot(fa) #原始变量关于各公共因子的散点图 (4)fa.diagram(fa) #公共因子与原始变量结构图 应用举例综合评价 从若干商业合作对象的各种指标入手,进行主成分分析或者因子

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

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