版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
贾俊平2024/1/30StatisticswithR统计学R语言贾俊平2024/1/301.1数据与统计学1.2R语言的初步使用1.3R语言数据处理1.4R语言绘图基础
数据与R语言
思维导图统计方法分类与本时体系描述方法(推断基础)图表描述第2章数据可视化统计量描述第3章概括性度量推断方法(推断理论与方法)推断理论第4章概率分布推断方法第5章参数估计第6章假设检验其他方法(关系分析,预测)关系分析第7章类别变量分析类别变量与类别变量第8章方差分析因变量:数值自变量:类别第9章一元线性回归一个数值因变量一个数值自变量第10章多元线性回归一个数值因变量多个数值或类别自变量预测第11章时间序列预测统计学是数据分析方法数学是方法的基础统计学与R语言一种自由软件编程语言,主要用于统计分析、绘图、数据挖掘最初由新西兰奥克兰大学的RossIhaka和RobertGentleman开发(也因此成为R)。现在由“R开发核心团队”负责开发R全称:
英文名:TheRProgrammingLanguage
中文名:R语言—统计计算语言
R语言
统计学——收集、处理、分析、解释数据并从数据中得出结论的科学
1.1
数据与统计学什么是统计学描述性方法研究数据收集、整理和描述的统计学方法描述数据特征,找出数据的基本规律内容包括:数据收集、处理、展示、描述性分析推断性方法研究如何利用样本数据来推断总体特征的统计学方法对总体特征作出推断内容包括:参数估计和假设检验变量(variable)观察一个企业的销售额,这个月和上个月不同;观察股票市场上涨股票的家数,今天与昨天数量不一样;观察一个班学生的生活费支出,一个人和另一个人不一样;投掷一枚骰子观察其出现的点数,这次投掷的结果和下一次也不一样“企业销售额”、“上涨股票的家数”、“生活费支出”、“投掷一枚骰子出现的点数”等就是变量数据(data)变量的观测结果
1.1
数据与统计学变量和数据变量的基本分类类别变量(定性变量)无序类别变量(名义值)有序类别变量(顺序值)数值变量(定量变量)离散变量(有限值)连续变量(无限制)二手数据抽取样本总体(population):包含所研究的全部个体(或数据)的集合样本(sample):从总体中抽取的一部分元素的集合样本量(samplesize):构成样本的元素的数目概率抽样方法根据已知的概率抽取样本元素,也称随机抽样
1.1
数据与统计学数据来源简单随机抽样从总体N个单位(元素)中随机地抽取n个单位作为样本,使得总体中每一个元素都有相同的机会(概率)被抽中抽取元素的具体方法有放回抽样和无放回抽样分层抽样将总体单位按某种特征或规则划分为不同层,再从不同的层中随机地抽取样本系统抽样将总体中的所有单位(抽样单位)按一定顺序排列,在规定的范围内随机地抽取一个单位作为初始单位,然后按事先规定好的规则确定其他样本元素整群抽样将总体中若干个单位合并为组(群),抽样时直接抽取群,再对中选群中的所有单位全部实施调查
1.2
R语言的初步使用
R下载、安装和更新#install.packages("installr")#需要安装包“installr”library(installr)#加载包updateR()#更新
1.2
R语言的初步使用对象赋值与运行#对象赋值x<-c(80,87,98,73,100)#将5个数据赋值给对象xy<-example1_1#将数据框example1_1赋值给对象y#对象运行sum(x)#计算对象x的总和mean(x)#计算对象x的平均数barplot(x)#绘制x的条形图
1.2
R语言的初步使用编写代码脚本——以绘制直方图为例#绘制直方图d<-rnorm(100)#生成100个标准正态分布的随机数hist(d,prob=TRUE,col="green")#绘制直方图lines(density(d))#为直方图添加核密度曲线barplot(x)#绘制x的条形图
1.2
R语言的初步使用查看帮助信息help(sum)#查看mean函数的帮助信息help(plotmath)#查看R的数学运算符help(package="stats")#查看包stats的信息var#查看var函数源代码
1.2
R语言的初步使用包的安装和加载#安装包install.packages("car")#安装包carinstall.packages(c("car","vcd"))#同时安装car和vcd两个包#加载包library(car)#加载包carrequire(car)#加载包car#显示已安装包的名称.packages(all.availabee=TRUE)#卸载(删除)安装在R中的包remove.packages("vcd")#从R中彻底删除vcd包#解除(不是删除)加载到R界面中的包detach("vcd")#解除加载到R界面中的vcd包#查看包中的函数help(package=vcd)向量——一维数组,其中可以是数值型数据,也可以是字符数据或逻辑值(如TRUE或FALSE
1.2
R语言的初步使用创建R格式数据——向量、矩阵和数组#用c函数创建向量a<-c(2,5,8,3,9)#数值型向量b<-c("甲","乙","丙","丁")#字符型向量c<-c("TRUE","FALSE","FALSE","TRUE")#逻辑值向量#创建向量其他方法v1<-1:6#产生1~6的等差数列v2<-seq(from=2,to=4,by=0.5)#在2~4之间产生步长为0.5的等差数列v3<-rep(1:3,times=3)#将1~3的向量重复3次v4<-rep(1:3,each=3)#将1~3的向量中每个元素重复3次v1;v2;v3;v4#运行向量v1,v2,v3,v4矩阵
——二维数组,其中的每个元素都是相同的数据类型。用matrix函数可以创建矩阵
1.2
R语言的初步使用创建R格式数据——向量、矩阵和数组#用matrix函数创建矩阵a<-1:6#生成1到6的数值向量mat<-matrix(a,#创建向量a的矩阵
nrow=2,ncol=3,#矩阵行数为2,列数为3byrow=TRUE)#按行填充矩阵的元素#用matrix函数创建矩阵rownames(mat)=c("甲","乙")#添加行名colnames(mat)=c("A","B","C")#添加行名#用t函数对矩阵转置t(mat)#矩阵转置数据框
——一种表格结构的数据,类似于Excel中的数据表。使用data.frame函数可创建数据框
1.2
R语言的初步使用创建R格式数据——向量、矩阵和数组#写入姓名和分数向量names<-c("刘文涛","王宇翔","田思雨","徐丽娜","丁文斌")#写入姓名向量stat<-c(68,85,74,88,63)#写入各门课程分数向量math<-c(85,91,74,100,82)econ<-c(84,63,61,49,89)#将向量组织成数据框形式table1_1<-data.frame(学生姓名=names,统计学=stat,数学=math,经济学=econ)
#将数据组织成数据框形式,并储存在对象table1_1中姓名统计学数学经济学刘文涛688584王宇翔859163田思雨747461徐丽娜8810049丁文彬638289数据框
——数据框查看
1.2
R语言的初步使用创建R格式数据——向量、矩阵和数组#查看数据框table1_1<-read.csv("C:/example/chap01/table1_1.csv")#加载数据框table1_1table1_1#显示table1_1中的数据head(table1_1,3);tail(table1_1,3)#查看前3行和后3行#查看数据框的行数和列数nrow(table1_1)#查看table1_1的行数ncol(table1_1)#查看table1_1的行数dim(table1_1)#同时查看行数和列数#查看数据的类型class(table1_1)#查看数据结构str(table1_1)#查看tabe1_1的数据结构#查看数据框table1_1<-read.csv("C:/example/chap01/table1_1.csv")#读数据table1_2<-read.csv("C:/example/chap01/table1_2.csv")table1_3<-read.csv("C:/example/chap01/table1_3.csv")mytable<-rbind(table1_1,table1_2)#按行合并数据框cbind(mytable,table1_3[2:3])#按列合并数据框数据框
——数据框合并数据框
——数据框排序
1.2
R语言的初步使用创建R格式数据——向量、矩阵和数组#数据框排序table1_1<-read.csv("C:/example/chap01/table1_1.csv")#加载数据library(dplyr)#加载包arrange(table1_1,姓名)#按姓名升序对整个数据框排序arrange(table1_1,desc(数学))#按数学分数降序对整个数据框排序因子
——类别变量在R语言中称为因子(factor),因子的取值称为水平(level)
1.2
R语言的初步使用创建R格式数据——因子#将无序因子转换为数值a<-c("金融","地产","医药","医药","金融","医药")#向量af1<-factor(a)#将向量a编码为因子as.numeric(f1)#将因子转换为数值#将无序因子转换为有序因子或数值b<-c("很好","好","一般","差","很差")#向量bf2<-factor(b,ordered=TRUE,levels=c("很好","好","一般","差","很差"))#将向量b编码为有序因子as.numeric(f2)#将因子转换为数值读取——保存
1.3
R语言数据处理数据处理和保存#读取包含标题的csv格式数据table1_1<-read.csv("C:/example/chap01/table1_1.csv")
#读取不包含标题的csv格式数据table1_1<-read.csv("C:/example/chap01/table1_1.csv",header=FALSE)#将tablel_1存为csv格式文件write.csv(table1_1,file="C:/mydata/chap01/table1_1.csv")#将tablel_1存为R格式文件save(table1_1,file="C:/mydata/chap01/table1_1.RData")随机数
1.3
R语言数据处理随机数和数据抽样#生成随机数rnorm(n=20,mean=0,sd=1)#产生20个标准正态分布随机数set.seed(15)#设定随机数种子rnorm(n=20,mean=50,sd=5)#产生20个均值为50、标准差为5的正态分布随机数runif(n=20,min=0,max=10)#在0到10之间产生20个均匀分布随机数rchisq(n=20,df=15)#产生20个卡方分布随机数#抽取随机样本N<-1:20#1到20的数值向量n1<-sample(N,size=10);n1#无放回抽取10个数据n2<-sample(N,size=10,replace=TRUE);n2#有放回抽取10个数据Ncols<-c("black","red","green","blue","yellow")#5种不同的颜色向量ncols<-sample(Ncols,size=8,replace=TRUE);ncols#有放回抽取8个颜色数据抽样
数据框
向量
1.3
R语言数据处理数据类型的转转——将变量转换成向量#将table1_1中的统计学分数、统计学分数和数学分数转换为向量table1_1<-read.csv("C:/example/chap01/table1_1.csv")vector1<-as.vector(table1_1$统计学);vector1#将统计学分数转换成向量vector2<-as.vector(c(table1_1$统计学,table1_1$数学));vector2#将统计学和数学分数合并转换成vector3<-as.vector(as.matrix(table1_1[,2:4]));vector3#将数据框转换为向量数据框
矩阵
1.3
R语言数据处理数据类型的转转——将变量转换成矩阵#将数据框转换为矩阵table1_1<-read.csv("C:/example/chap01/table1_1.csv")mat<-as.matrix(table1_1[,2:4])#转换为矩阵matrownames(mat)=table1_1[,1]#矩阵的行名为table1_1第1列的名称mat#查看矩阵#将矩阵转化成数据框as.data.frame(mat)短格式
长格式
1.3
R语言数据处理数据类型的转转——将短格式数据转换成长格式#将短格式数据转换为长格式——有标识变量table1_1<-read.csv("C:/example/chap01/table1_1.csv")library(reshape2)#加载reshape2包tab.long<-melt(table1_1,id.vars="姓名",="课程",="分数")
#融合table1_1与id变量,并命名="课程",="分数"tab.long#显示tab.long#将短格式数据转换为长格式——无标识变量table1_3<-read.csv("C:/example/chap01/table1_3.csv")library(reshape2)#加载reshape2包tab.long<-melt(table1_3,="课程",="分数")head(tab.long,3)#显示tab.long的前6行#使用tidyr包中的gather函数转换为长格式(有标识变量)table1_1<-read.csv("C:/example/chap01/table1_1.csv")library(tidyr)df1<-gather(table1_1,key="课程",value="分数","统计学","数学","经济学")#key为融合后的变量名称df1#使用tidyr包中的gather函数转换为长格式(无标识变量)table1_3<-read.csv("C:/example/chap01/table1_3.csv")library(tidyr)df2<-gather(table1_3,key="课程",value="分数","统计学","数学","经济学")df2生成频数表一个类别变量——简单频数表两个类别变量——二维列联表多个类别变量——多维列联表计算描述统计量频数(frequency):落在各类别中的数据个数比例(proportion):某一类别数据个数占全部数据个数的比值百分比(percentage):将对比的基数作为100而计算的比值比率(ratio):不同类别数值个数的比值
1.3
R语言数据处理生成频数分布表【例1-1】(数据:example1_1.csv)某物业管理公司准备施行一项物业管理改革措施,为征求社区居民的意见,在所管理的4个社区随机调查80个住户,对户主进行调查。表1-4是被调查者所属的社区、性别及其对该项改革措施的态度数据(为节省篇幅,只列出前5行和后5行)。生成频数分布表,观察被调查者在所属社区、性别以及对改革措施态度的分布状况
1.3
R语言数据处理生成频数分布表——类别数据——例题分析社区性别态度社区性别态度A社区男反对B社区女反对B社区女反对D社区女赞成D社区女反对A社区男反对C社区男反对C社区男赞成A社区男赞成A社区男赞成………………………………A社区男反对A社区女反对B社区男赞成C社区男赞成A社区女赞成B社区男赞成C社区女赞成A社区女赞成A社区男赞成C社区女反对
1.3
R语言数据处理生成频数分布表——类别数据——例题分析#生成满意度的简单频数表example1_1<-read.csv("C:/example/chap01/example1_1.csv")mytable<-table(example1_1$社区);mytable#生成频数表prop.table(mytable)*100#将频数表转化成百分比表简单频数表—一维
二维列联表#生成社区与态度的二维列联表example1_1<-read.csv("C:/example/chap01/example1_1.csv")attach(example1_1)#绑定数据mytable1<-table(态度,社区);mytable1#生成性别和满意度的二维列联表addmargins(mytable1)#为列联表添加边际和addmargins(prop.table(mytable1)*100)#将列联表转换成百分比表
1.3
R语言数据处理生成频数分布表——类别数据——例题分析多维频数表
多维频数表#生成三维频数表(列变量为“社区”)example1_1<-read.csv("C:/example/chap01/example1_1.csv")mytable2<-ftable(example1_1,row.vars=c("性别","态度"),col.vars="社区")
#行变量为性别和态度,列变量为社区mytable2#为列联表添加边际和ftable(addmargins(table(example1_1$性别,example1_1$态度,example1_1$社区)))
#生成三维频数表(列变量为"社区",行变量为“性别”和"满意度")ftable(example1_1,row.vars=c("社区"),col.vars=c("性别","态度"))#使用vcd包中的structable函数read.csv("C:/example/chap01/example1_1.csv")library(vcd)structable(性别+态度~社区,data=example1_1)#不同表达式产生不同形式的多维表structable(example1_1)#默认structable(~社区+性别+态度,data=example1_1)#使用表达式structable(example1_1,direction=c("h","h","v"))#指定态度变量放在列structable(example1_1,direction=c("v","h","v"))#指定性别变量放在列
1.3
R语言数据处理生成频数分布表——类别数据——例题分析将列联表转换成原始数据框
#将列联表转换成原始数据框read.csv("C:/example/chap01/example1_1.csv")example1_1<-read.csv("C:/example/chap01/example1_1.csv")library(DescTools)mytable<-ftable(example1_1)#生成多维列联表df<-Untable(mytable)#将列联表转化成原始数据框head(df,3);tail(df,3)#显示前3行和后3行Untable(table(example1_1))#将列联表转化成数据框#将列联表转换成带有交叉频数标签的数据框read.csv("C:/example/chap01/example1_1.csv")example1_1<-read.csv("C:/example/chap01/example1_1.csv")tab<-ftable(example1_1)#生成列联表(可用table函数生成)df<-as.data.frame(tab);df#将列联表转化成带有类别频数的数据框将频数表转换成带有交叉频数的数据框
1.3
R语言数据处理生成频数分布表——数值数据
1.3
R语言数据处理生成频数分布表——数值数据——例题分析read.csv("C:/example/chap01/example1_1.csv")library(DescTools)#加载包example1_2<-read.csv("C:/example/chap01/example1_2.csv")#使用默认分组,含上限值tab<-Freq(example1_2$销售额)tab#指定组距=15(不含上限值)library(DescTools)tab1<-Freq(example1_2$销售额,breaks=c(160,175,190,205,220,235,250,265,280),right=FALSE)
#指定组距=15,不含上限值tab2<-data.frame(分组=tab1$level,频数=tab1$freq,频数百分比=tab1$perc*100,累积频数=tab1$cumfreq,累积百分比=tab1$cumperc*100)#重新命名频数表中的变量print(tab2,digits=3)#用print函数定义输出结果的小数位数函数默认指定组距
1.4
R语言绘图基础基本绘图函数传统绘图系统—graphicsgraphics包也称为传统绘图系统,一些基本绘图函数均由该包提供graphics包中的绘图函数大致可分为两大类:一类是高级绘图函数,这类函数可以产生一幅独立的图形;另一类是低级绘图函数,这类函数通常不产生独立的图形,而是在高级函数产生的图形上添加一些新的图形元素,如标题、文本注释、线段等plot函数是graphics包中最重要的高级绘图函数,它是一个泛函数,可以绘制多种图形。给函数传递不同类型的数据,可绘制不同的图形。除plot函数外,graphics包中还有其他一些高级绘图函数,如绘制条形图的barplot函数,绘制直方图的hist函数,绘制箱线图的boxplot函数,等等。低级绘图函数中,有为图形添加图例的legend函数、页面布局的layout函数、为图形添加注释文本的mtext函数,等等。这些函数的详细信息可使用help(函数名)查阅帮助
1.4
R语言绘图基础基本绘图函数——plot函数应用的例子par(mai=c(0.6,0.6,0.4,0.4),cex=0.7)#设置图形边界和符号的大小set.seed(2025)#设置随机数种子x<-rnorm(200)#产生200个标准正态分布的随机数y<-1+2*x+rnorm(200)#产生变量y的随机数d<-data.frame(x,y)#将数据组织成数据框dplot(d,xlab="x=自变量",ylab="y=因变量")#绘制散点图grid(col="grey60")#添加网格线axis(side=4,col.ticks="blue",lty=1)#添加坐标轴polygon(d[chull(d),],lty=6,lwd=1,col="lightgreen")#添加多边形并填充底色points(d)#重新绘制散点图points(mean(x),mean(y),pch=19,cex=5,col=2)#添加均值点abline(v=mean(x),h=mean(y),lty=2,col="gray30")#添加均值水平线和垂直线abline(lm(y~x),lwd=2,col=2)#添加回归直线lines(lowess(y~x,f=1/6),col=4,lwd=2,lty=6)#添加拟合曲线segments(-0.8,0,-1.6,3.3,lty=6,col="blue")#添加线段arrows(0.45,-2.2,-0.8,-0.6,code=2,angle=25,length=0.06,col=2)
#添加带箭头的线段text(-2.2,3.5,labels=expression("拟合的曲线"),adj=c(-0.1,0.02),col=4)
#添加注释文本rect(0.4,-1.6,1.8,-3,col="pink",border="grey60")#添加矩形mtext(expression(hat(y)==hat(beta)[0]+hat(beta)[1]*x),cex=0.9,side=1,line=-2.5,adj=0.7)#添加注释表达式legend("topleft",legend=c("拟合的直线","拟合的曲线"),lty=c(1,6),col=c(2,4),cex=0.8,fill=c("red","blue"),box.col="grey60",ncol=1,inset=0.02)#添加图例title("散点图及拟合直线和曲线\n并为图形增加新的元素",cex.main=1,font.main=4)#增加标题并折行,使用斜体字box(col=4,lwd=2)#添加边框14
1.4
R语言绘图基础图形控制和页面布局——图形控制——绘制符号符号线型颜色
1.4
R语言绘图基础图形控制和页面布局——页面布局#图1-5(a)的绘制代码par(mfrow=c(2,2),mai=c(0.4,0.4,0.3,0.1),cex=0.7,mgp=c(2,1,0),cex.axis=0.8,cex.main=0.8,font.main=1)set.seed(123)#设置随机数种子x<-rnorm(100)#生成100个标准正态分布随机数y<-rexp(100)#生成100个指数分布随机数plot(x,y,col=sample(c("black","red","blue"),100,replace=TRUE),main="(a)散点图")boxplot(x,y,col=2:3,main="(b)箱线图")hist(x,col="orange1",ylab="y",main="(c)直方图")barplot(runif(5,10,20),col=2:6,main="(d)条形图")layout(matrix(c(1,2,3,3),nrow=2,ncol=2,byrow=TRUE),heights=c(2,1))layout.show(3)#图1-6(b):2行2列的图形矩阵,第2列为1个图layout(matrix(c(1,2,3,3),nrow=2,ncol=2),heights=c(2,1))layout.show(3)#图1-6(c):2行3列的图形矩阵,第2行为3个图layout(matrix(c(1,1,1,2,3,4),nrow=2,ncol=3,byrow=TRUE),widths=c(3:1),heights=c(2,1))layout.show(4)#图1-6(d):3行3列的图形矩阵,第2行为2个图layout(matrix(c(1,2,3,4,5,5,6,7,8),3,3,byrow=TRUE),widths=c(2:1),heights=c(1:1))layout.show(8)页面布局—par函数
页面布局—layout函数
1.4
R语言绘图基础图形控制和页面布局——页面布局——例题分析layout函数的应用
#图1-7的绘制代码n=100;set.seed(12);x<-rnorm(n);y<-rexp(n)layout(matrix(c(1,2,3,4,5,5,6,7,8),3,3,byrow=TRUE),widths=c(2:1),heights=c(1:1))par(mai=c(0.3,0.3,0.3,0.1),cex.main=0.9,font.main=1)barplot(runif(8,1,8),col=2:7,main="(a)条形图")pie(1:12,col=rainbow(6),labels="",border=NA,main="(b)饼图")qqnorm(y,col=1:7,pch=19,xlab="",ylab="",main="(c)Q-Q图")plot(x,y,pch=19,col=c(1,2,4),xlab="",ylab="",main="(d)散点图")plot(rnorm(25),rnorm(25),cex=(y+2),col=2:4,lwd=2,xlab="",ylab="",main="(e)气泡图")plot(density(y),col=4,lwd=1,xlab="",ylab="",main="(f)核密度图");polygon(density(y),col="gold",border="blue")hist(rnorm(1000),col=3,xlab="",ylab="",main
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全投标售后保障
- 玩具店内部装修工装施工合同
- 矿石材料标签规范
- 车站监控系统施工合同
- 农业用肥料标签管理办法
- 铝厂混凝土施工合同
- 咨询公司财务规划策略
- 环保技术开发招标办法
- 酒类批发市场卫生条例
- 温泉公园施工合同
- 部编人教版《道德与法治》四年级上册第11课《变废为宝有妙招》说课课件(第1课时)
- 年产40万吨灰底涂布白板纸造纸车间备料及涂布工段初步设计
- “全民健身”体育与健康知识考试题库(供参考)
- 三年级语文学情全面分析
- 评审专家个人评审意见表
- 【语文】江苏省苏州市实验小学小学三年级上册期末试题(含答案)
- 过敏性休克抢救步骤流程图
- MOOC创新创业与管理基础(东南大学)
- 医疗器械经营质量管理制度汇编
- 中国八大植被区域划分
- 厂内机动叉车日常检查记录表
评论
0/150
提交评论