应用统计分析实验R软件分析解析ppt课件.ppt

上传人:小飞机 文档编号:1999923 上传时间:2022-12-30 格式:PPT 页数:51 大小:202KB
返回 下载 相关 举报
应用统计分析实验R软件分析解析ppt课件.ppt_第1页
第1页 / 共51页
应用统计分析实验R软件分析解析ppt课件.ppt_第2页
第2页 / 共51页
应用统计分析实验R软件分析解析ppt课件.ppt_第3页
第3页 / 共51页
应用统计分析实验R软件分析解析ppt课件.ppt_第4页
第4页 / 共51页
应用统计分析实验R软件分析解析ppt课件.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《应用统计分析实验R软件分析解析ppt课件.ppt》由会员分享,可在线阅读,更多相关《应用统计分析实验R软件分析解析ppt课件.ppt(51页珍藏版)》请在三一办公上搜索。

1、应用统计分析实验 R软件,R软件:免费的,志愿者管理的软件。编程方便,语言灵活,图形功能强大有不断加入的各个方向统计学家编写的统计软件包。也可以自己加入自己算法的软件包.这是发展最快的软件,受到世界上统计师生的欢迎。是用户量增加最快的统计软件。对于一般非统计工作者来说,主要问题是它没有“傻瓜化”。,R免费 资源公开(不是黑盒子,也不是吝啬鬼)R可以在UNIX, Windows和Macintosh运行.R 有优秀的内在帮助系统.R有优秀的画图功能学生能够轻松地转到商业支持的 S-Plus程序(如果需要使用商业软件) R语言有一个强大的,容易学习的语法,有许多内在的统计函数.,通过用户自编程序,

2、R语言很容易延伸和扩大. 它就是这样成长的.R 是计算机编程语言. 类似于UNIX语言,C语言,Pascal,Gauss语言等.对于熟练的编程者, 它将觉得该语言比其他语言更熟悉.而对计算机初学者, 学习R语言使得学习下一步的其他编程不那么困难.那些傻瓜软件(SAS,SPSS等)语言的语法则完全不同.,R的历史,S语言在1980年代后期在AT它是一个由志愿者组成的工作努力的国际团队,下载R软件http:/www.r-project.org,学习网站http:/www.biosino.org/pages/newhtm/r/schtml/,R软件的使用基本语法向量、矩阵 list与data.fra

3、me读写数据文件控制语句与自定义函数二. 数据描述性分析1.分布2.统计量3.一维数据的统计图形4.多维数据的图形表示,R软件,三. 回归分析四. 判别分析五. 聚类分析六. 主成分分析,基本语法,1. 变量使用即定义,变量名区分大小写, 可用中文命名 变量赋值可采用4种形式:=,, assign() 变量类型自动由变量赋值确定。 # 注释符号, 分号; 语句连接符,例子:a=10 aa assign(“a”,10)A=10 AA assgin(ab,200)中国=“中华人民共和国” #生成字符串变量assign(“中国”, “中华人民共和国”) a=10; A=10; a; A,算术运算符:

4、 +,-,*,/,(乘方),% (模), %/% (整除),3.常用的数学函数有:abs , sign , log , log2, log10 , sqrt , exp , sin , cos , tan , acos , asin, atan , cosh , sinh, tanh,4. 查看帮助,例如: help(round), ?abs,向量、矩阵,向量 (一维数组, 下标从1开始) a=c(d1,d2,d3,) 间隔为1的等差序列: a:b 指定间隔的等差序列: seq(from,to,by) seq(length=, from=, by=) 重复函数: rep(vec, times)

5、 rep(vec,times,len=,each=),a=c(3,5,8,10) a=1:10; b=seq(1,10,2); c=rep(a, 2,each=3) a=seq(-pi,pi, 0.2),随机向量 rnorm(10) #10个服从标准正态分布的随机数,z=1:5z7=8;z1 1 2 3 4 5 NA 8 # 缺失数据 NAzc(1,3,5)=1:3; z1 1 2 2 4 3 NA 8 zis.na(z)=0 # 函数is.na()判断数据是否缺失 ,将其为真的赋为0 zz3 # z中小于3的元素z(length(z)-1):length(z) #最后二个元素.z-c(1,3

6、) #去掉第1、3元素.,x=rnorm(10) sort(x) 按从小到大的顺序排列order(x),2. 矩阵(二维数组) 及多维数组 matrix(data=NA, nrow=1, ncol=1, byrow=FALSE, dimnames=NULL) byrow=TRUE 以行序放置,(默认FALSW,以列序) array(data=NA, dim=c(),dimnames=),a=c(1,2,3,4,5,6,7,8,9,10) b=matrix(data=a, nrow=5,ncol=2,byrow=TRUE) c=array(data=1:12,dim=c(2,3,2) ),3.

7、向量和数组/矩阵的转化 只要定义向量的维数即可实现向量和数组转化例如: c=1:12; a=matrix(c, nrow=2,ncol=6) dim(c)=c(3,4);,A=diag(c(1,4,5) #以向量为对角元生成对角矩阵 a=diag(A) #获取矩阵的对角元,b=as.vector(c),d=rbind(a,a) #行合并,要求列数相等e=cbind(a,a) #列合并,要求行数相等,4. 维数问题 dim() #获得维数,返回向量 nrow() ,ncol() #获得行数和列数,rownames(), colnames() #访问各维名称,x=matrix(rnorm(24),

8、4,6)xc(2,1), #第2和第1行x,c(1,3) #第1和第3列x2,1 #第2,1元素xx,n0,n #第n列大于0的元素x,-c(1,3) #没有第1、3列的x.x-2,-c(1,3) #没有第2行、第1、3列的x.,5. 基本矩阵运算 矩阵间四则运算:+,-,*,/ 分别是对应元素的四则运算 向量矩阵间:向量按列匹配与矩阵运算例如: A=matrix(1:6, nrow=3) B=matrix(10:15,nrow=3) C=c(100,200)则: A+B A*B A+C,11 17 10 52 101 204 13 19 22 70 102 20515 21 36 90 10

9、3 206,6. 矩阵运算 转置 t(mat) 行列式 det(mat) 逆矩阵 solve(mat) 特征 eigen(mat) #返回列表(values, vectors) 乘法 A %*% B 向量内积/外积 x %*% y, x %o% y (笛卡尔积) 生成对角 diag(Vec) 取对角 diag(mat) 奇异值分解 svd(mat) mat=UDV 得到列表(d,u,v) qr分解 qr(mat) Choleski分解 chol(mat),列表和数据框,1. 列表是一种特殊的对象集合,各元素类型任意生成: list(name1=value1, , namen=valuen)访问

10、/修改:对象名下标 或 对象名$namei,stu=list(age=10, name=“Tom”, interests=c(“swimming”,”drawing”)stu2stu$namestu$name=“john” names(stu) #得到所有的变量名,2. 数据框是R的一种数据结构,以矩阵形式保存数据各列类型可以不同,每列为一变量,每行为样品 各列长度相等生成: data.frame( ),stu=data.frame(name=c(“john”,”wuji”), age=c(30,32) x=data.frame(matrix(1:6,nrow=2) names(stu) #得

11、到所有的变量名 rownames(stu) #得到行名,attach(x) #把数据框中的变量链接到内存中,x=matrix(1:6,2,3)x=data.frame(x);x X1 X2 X31 1 3 52 2 4 6x$X21 3 4attributes(x)$names1 “X1 “X2 “X3“$row.names1 1 2“$class1 data.frame,x=data.frame(id=101:120,score=round(rnorm(20,70,10)xseq(1,10,2),xorder(x2,decreasing = T ),xx260,数据格式及I/O,读表格形式文

12、本文件 read.table(file, header=FALSE,sep=“ “,) header表示第一行是否有变量名,sep表示数据分割的字符,D1=read.table(“e:test1.txt”,header=TRUE) D2=read.table(“clipboard”),3. 计算的数据保存成文本文件或CSV文本文件 write.table(data, file=“”) #纯文本格式,例:将数据D1写入文件 file_1.txt write.table(D1,file=“e:file_1.txt”),1. 分支结构 单分支:if(条件) 语句 if(条件) 复合语句; 双分支:i

13、f(条件) 语句1 else 语句2 多分支:if() 语句1 else if () 语句2 else if() 语句n else 语句n+1 switch: switch(表达式, list) 返回list中下标与表达式对应的值,例子:x=1; if(x0) a=10;b=10 else a=20; b=20; switch(x, 1:5, 100, 20) # 1 2 3 4 5 这三个构成列表 list,返回 listx,控制语句,2. 循环结构 for (name in express) expr; # expr_s while(condition) expr; # expr_s re

14、peat exprs; if(达到中止条件) break 中止循环语句:break; 跳空循环语句:next;,例子:完成1到100的求和运算 s1=0; j=1; k=1; s2=0; s3=0; for( i in 1:100) s1=s1+i; #或者 while(j100) break ,fun-function(arg1,arg2,) 注意:最后一句表达式的值为返回值,例子:完成一维向量均值运算 mymean mymean=function( x ) sum=0; n=length(x) for(j in 1:n) sum=sum+xj sum=sum/n meanofx=mymea

15、n(1:100); meanofx,自定义函数,dnorm() #计算正态分布的密度函数pnorm() #计算正态分布的分布函数qnorm() #计算正态分布的分位数rnorm() #计算正态分布的随机数其它分布的关键词:unif , exp,chisq, t, f, binom,pois,dexp(2,10 )runif(10,0,10),和分布相关,统计量,mean(), median(),quantile(),var(),sd(),cor()sum(),max(),min()summary()table() #列联表,x = c(10,71:78, 90) xm - mean(x) c(

16、xm, mean(x, trim = 0.10),A = cbind(c(90,60,70),c(85,66,95)apply(A,1,mean) # 对每一行取平均apply(A,2,mean) #对每一列取平均var(A)cor(A),数据的图形表示,x=seq(-10,10,2); y=rnorm(11)plot(x, y) plot(x, y,main=散点图,xlab=横坐标x,ylab=纵坐标y)text(x,y, 1:length(x),-1) # 写入点序号,第三个参数默认如此plot(x,y,type = o, col = red,pch=2,lty=3),1.散点图 plo

17、t(x,y,),type=“p” #散点图,默认type=“l #绘实线type=“o” #实线通过所有的点type=“n” #不画点参数lty表示线的类型0=blank, 1=solid (default), 2=dashed, 3=dotted, 4=dotdash, 5=longdash, 6=twodash,低水平作图函数还有points()lines()ablines()text()legend(),x=seq(-10,10,2); y=rnorm(11)par(mfrow=c(3,1) #准备画3个图plot(x, y) plot(x, y,main=散点图,xlab=横坐标x,y

18、lab=纵坐标y)text(x,y, 1:length(x),-1) # 写入点序号plot(x,y,type = o, col = red,pch=2,lty=3),2.散点图矩阵 pairs(x,),A=matrix(rnorm(12,70,20),nrow=4)pairs(A),3. 多组散点图,matplot(x,y,),x=seq(0,2*pi,0.2)matplot(x,cbind(sin(x),cos(x),type=c(“o”,”o”),col=2:3),4.星座图 5.脸谱图,library(aplpack)faces(x,nrow.plot,ncol.plot),stars

19、(x,full=TRUE,draw.segments=FALSE)stars(x,main=“星座图”)stars(x, draw.segments=T,main=“雷达图”)stars(x,location=c(0,0), col.lines=rainbow(n),main=“蜘蛛网图”),例1. 在同一图中绘制标准正态分布和自由度为5的t分布的概率密度图.,lot(x,dnorm(x),type=l,ylab=f(x),main=概率密度图)lines(x,dt(x,5),col=red,lty=2)legend(2,0.4,c(N(0,1),t(5),lty=1:2,col=c(blac

20、k,red),matplot(x,cbind(dnorm(x),dt(x,5),type=l,ylab=f(x),main=概率密度图)legend(2,0.4,c(N(0,1),t(5),lty=1:2,col=1:2),lwl.andrews=function(X) t=seq(-pi,pi,0.2) n=nrow(X) f=matrix(0,nrow=length(t),ncol=n) for(i in 1:n) f,i=Xi,1/sqrt(2) for(j in 2:ncol(X) if (j%2=0) f,i=f,i+Xi,j*sin(j/2*t) else f,i=f,i+Xi,j

21、*cos(j%/%2*t) matplot(t,f,col=1:n,type=o,main=调和曲线图) ,例2:绘制调和曲线图,hist(x,freq) #直方图,freq=counts, (默认)为频数直方图,freq=TRUE ,为频率直方图,freq=FALSE, 为密度直方图boxplot(x) #箱线图stem(x) #茎叶图barplot() #柱状图pie() #饼状图,统计图形,a=rnorm(100,70,10); hist(a),b=rbinom(100,5,0.5)nums=table(b)barplot(nums),例1:31省市地区的消费支出数据,进行如下统计1.计

22、算各地区的人均消费支出总和,并画出柱状图2.画出前十个地区的关于衣着和居住两项的复式柱状图。3.计算各消费类型的均值,并画出饼状图和柱状图3.画出各消费类型的箱线图4.画出各地区的雷达图和脸谱图,barplot(apply(X,1,sum),col=rainbow(31),cex.names=0.5),pie(apply(X,2,mean),barplot(apply(X,2,mean),names=NA,legend=names(X),col=1:ncol(X),barplot(t(X1:10,c(2,7),beside=T,legend=T),实验题,求矩阵B的行列式、逆矩阵、特征根和特征

23、向量及ABA,学号 性别 数学 语文 英语 物理1 3001 男 80 76 81 902 3002 男 55 67 79 633 3003 女 27 52 53 434 3004 女 62 57 66 695 3005 女 94 80 76 716 3006 男 97 59 61 747 3007 男 79 62 78 888 3008 男 70 92 78 839 3009 女 67 66 65 5510 3010 男 97 46 55 7511 3011 男 84 82 88 9212 3012 男 40 57 67 5313 3013 男 72 70 80 8414 3014 男 43

24、 31 56 6015 3015 男 95 75 58 7416 3016 男 62 85 91 8317 3017 女 71 76 68 7418 3018 男 80 40 52 7119 3019 女 96 75 77 8020 3020 女 82 51 73 7721 3021 女 70 73 85 7722 3022 男 61 40 47 5623 3023 女 64 75 66 7124 3024 女 60 21 48 6525 3025 男 81 88 80 8426 3026 女 89 54 65 7127 3027 男 55 38 58 6228 3028 女 60 54 68

25、 6229 3029 男 65 63 65 7530 3030 男 69 55 73 7531 3031 男 80 29 61 6832 3032 男 91 59 73 8533 3033 男 69 73 75 7834 3034 女 90 88 73 8735 3035 女 64 70 72 77,2. 某班35人期末成绩见右图绘制四科成绩的散点图矩阵、雷达图和脸谱图绘制前5名学生各科成绩的轮廓图绘制数学与物理成绩的散点图,其中男生与女生用不同的形状点表示。,绘制四科成绩的箱线图计算四科成绩的平均分,并画出柱状图分性别统计四科成绩的平均分,并画出复式柱状图g.在数据阵中增加总分列,并依总分从

26、高到低排序h.计算四科成绩的相关矩阵,回归分析,lm(yx) # y为向量, x可为向量与矩阵lm(yx+0) #回归方程没有常数项lm(yx+I(x2) lm(yx1+x2),lm(yx1+x2,data=X) # X为数据框,x1,x2为其中列名lm(y.,data=X)lm(yx1+x2+I(x22)-x3,data=X),lm.fit=lm(yX)lm.fit$coefficientslm.fit$residualslm.fit$fitted.valuesummary(lm.fit),例1:某气象站收集了15年关于年初的最高温度X(从1月11日算起)与秋季第一次强冷空气出现日期Y(从9

27、月11日算起)的数据,,fit=lm(yx)par(mfrow=c(2,1)plot(x,y,main=一元回归图)abline(fit)points(x,fit$fitted,col=red,pch=3)plot(fit$fitted,fit$residuals,main=残差图),例2:,x=runif(30,0,10)x=sort(x)y=2+3*x-0.2*x2+4*log(x)+rnorm(x)plot(x,y)l1=lm(yx)l2=lm(yx+0)l3=lm(yx+I(log(x)l4=lm(yx+I(x2)+I(log(x)abline(l1,col=2)abline(a=0,

28、b=l2$coef,col=3)lines(x,l3$fit,col=4)lines(x,l4$fit,col=5),例3,X=read.table(clipboard,T)fit=lm(y.,data=X)summary(fit),predict(object,newdate,interval = c(none, confidence, prediction),level = 0.95 ),预测,x1=1:10 x2=runif(10,0,10) y=x1+2*x2+rnorm(10) l=lm(yx1+x2)predict(l,interval=“prediction”) #对原有数据预测predict(l, data.frame(x1=c(3,5),x2=c(0,11),interval=prediction) #对新数据预测,library(leaps) r=summary(regsubsets(y.,data=X) n=nrow(X) aic=n*log(r$rss/n)+2*apply(r$which,1,sum) data.frame(r$outmat,r$rss,r$rsq,r$adjr2,r$cp,AIC=aic),挑选最佳自变量子集,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号