您好,欢迎访问三七文档
统计建模与数据分析主讲人:李婷婷西南大学数学与统计学院参考书籍:《复杂数据统计方法——基于R的应用》,吴喜之编著,中国人民大学出版社主要内容引言横截面数据:因变量为实数轴上的数量变量横截面数据:因变量为分类变量及因变量为计数变量的情况纵向数据(多水平数据、面板数据)多元分析(不分因变量和自变量)路径建模(结构方程建模)数据的PLS分析多元时间序列数据引言统计是科学统计是科学?科学的基本特征是其方法论:对世界的认识源于观测或实验的信息(或者数据),总结信息时会形成模型(亦称为假说或理论),模型会指导进一步的探索,直到遇到这些模型无法解释的现象,这就导致对这些模型的更新和替代.统计可以定义为``收集、分析、展示和解释数据的科学,或者称为数据科学(scienceofdata).统计应用于几乎所有领域.统计与数学、计算机的关系统计的思维方式是归纳(induction),也就是从数据所反映的现实得到稍微一般的模型,希望以此解释数据所代表的那部分世界.这和以演绎(deduction)为主的数学思维方式相反,演绎则是在一些人为的假定(比如一个公理系统)之下,推导出各种结论.在统计发展的前期,没有计算机,只能在对数据加上一些数学假定后,建立一些假定的数学模型,推导出结果的性质,诸如置信区间,假设检验的p值,相合性等等.在数据分布与假定的正态分布相差甚远的情况,人们又利用诸如中心极限定理或大样本定理得到渐近正态的结果.据此又得到大样本时的各种性质,包括置信区间或置信带,p值,相合性等等.统计的这种发展方式,给统计打上了很深的数学烙印.在现成的数学模型无法处理大量的复杂数据的情况下,计算机领域的研究人员和部分概率论及统计学家开发了许多计算方法,处理了传统统计无法解决的大量问题。诸如人工神经网络、决策树、boosting、随机森林、支持向量机等大量算法模型。统计研究逐步由数据或者问题驱动,创造模型的目的是适应现实数据。随着时代的前进,院系现在也出现了诸如数据挖掘、机器学习等课程,统计杂志也开始逐渐重视这些研究.这些算法模型大都不是用封闭的数学公式来描述,而是体现在计算机算法或程序上.参考书籍:TheElementsofStatisticalLearning:DataMining,Inference,andPrediction.SecondEdition.TrevorHastie,RobertTibshirani,JeromeFriedman,Springer学术期刊Top期刊TheAnnalsofStatistics.JournaloftheRoyalStatisticalSociety,SeriesB.JournaloftheAmericanStatisticalAssociation.Biometrika.JournalofMachineLearningResearchEconometrikaBiostatistics文献检索文献检索的一点经验Nosweat,Nosweet.数据分析的实践数据收集.首先要根据实际目的.有数据不一定能够得到需要的结论,我们需要的是与所关心问题充分有关的变量的数据.数据预处理.缺失值寻找适合的模型:为了寻找模型,首先要对数据进行探索性分析,利用图形、各种统计量、或者比较复杂的探索方法来查看数据的关联性、线性性、异方差性、多重共线性、聚类特征、分布形状等。有了对数据的粗略认识之后,就寻找合适的模型。数据分析的实践比较模型的标准.传统统计中:各种判别准则(各种检验、一些统计量的临界值等等).都是在对数据分布及描述变量之间关系的模型所做的假定之下得到的.在使用算法模型时,由于没有传统模型的那些假定,判断模型好坏通常都用交叉验证(crossvalidation)。对结果的解释.选择模型并不是目的,目的是解释模型所产生的结果,而结果必须是应用领域的结果,必须有实际意义.仅仅用统计术语说某个模型较好,某个变量显著之类的话是不够的.R软件入门R软件的安装最初几步x=1:100#把1,2,...,100个整数向量赋值到xsample(x,20)#从1,...,100中随机不放回地抽取20个值作为样本set.seed(0);sample(1:10,3)#先设随机种子再抽样.z=sample(1:200000,10000)#从1,...,200000中随机不放回地抽取10000个值作为样本z[1:10]#方括号中为向量z的下标y=c(1,3,7,3,4,2)z[y]#以y为下标的z的元素值(z=sample(x,100,rep=T))#从x放回地抽取100个随机样本(z1=unique(z))length(z1)#z中不同的元素个数xz=setdiff(x,z)#x和z之间的不同元素--集合差sort(union(xz,z))#对xz及z的并的元素从小到大排序setequal(union(xz,z),x)#对xz及z的并的元素与x是否一样intersect(1:10,7:50)#两个数据的交sample(1:100,20,prob=1:100)#从1:100中不等概率随机抽样,#各数目抽到的概率与1:100成比例一些简单运算pi*10^2#能够用?”*”来看基本算术运算方法,pi是圆周率pi*(1:10)^-2.3#可以对向量求指数幂x=pi*10^2xprint(x)#和上面一样(x=pi*10^2)#赋值带打印pi^(1:5)#指数也可以是向量print(x,digits=12)#输出x的12位数字简单图形x=rnorm(200)#200个随机正态数赋值到xhist(x,col=lightblue)#直方图(histogram)rug(x)#在直方图下面加上实际点的大小stem(x)#茎叶图x-rnorm(500)y-x+rnorm(500)#构造一个线性关系plot(y~x)#散点图a=lm(y~x)#做回归abline(a,col=red)#或者abline(lm(y~x),col=red)在散点图上加拟合直线print(HelloWorld!)paste(x的最小值=,min(x))#打印数据输入输出x=scan()#从屏幕输入数据,可以键入,也可以粘贴,可多行输入,空行后Enter1.52.63.72.18.912-1.2-4x=c(1.5,2.6,3.7,2.1,8.9,12,-1.2,-4)#等价于上面w=read.table(file.choose(),header=T)#从列表中选择带有变量名的数据文件setwd(“f:/2010stat”)#或setwd(f:\2010stat)#建立工作目录(你必须有这个目录)(x=rnorm(20))#给x赋值20个标准正态数据值#(注:可以产生常见的各种分布的随机数,也有各种分布的分布函数,密度函数及分位数函数)write(x,f:/2010stat/test.txt)#把数据写入文件(你没有这个目录则会有出错信息)y=scan(f:/2010stat/test.txt);y#扫描文件数值数据到yy=iris;y[1:5,];str(y)#iris是R自带数据write.table(y,test.txt,row.names=F)#把数据写入文本文件w=read.table(f:/2010stat/test.txt,header=T)#读带有变量名的数据write.csv(y,test.csv)#把数据写入csv文件v=read.csv(f:/2010stat/test.csv)#读入csv数据文件data=read.table(“clipboard”)#读入剪贴板的数据序列等等(z=seq(-1,10,length=100))#-1到10等间隔的100个数的序列z=seq(-1,10,len=100)#和上面等价写法(z=seq(10,-1,-0.1))#10到-1间隔为-0.1的序列(x=rep(1:3,3))#三次重复1:3(x=rep(3:5,1:3))#自己看,这又是什么呢?x=rep(c(1,10),c(4,5))w=c(1,3,x,z);w[3]#把数据(包括向量)组合(combine)成一个向量x=rep(0,10);z=1:3;x+z#向量加法(如果长度不同,R如何给出警告和结果?)x*z#向量乘法rev(x)#颠倒次序z=c(nocat,has,nine,tails)#字符向量z[1]==nocat#双等号为逻辑等式z=1:5z[7]=8;z#什么结果?注:NA为缺失值(notavailable)z=NULL;z[c(1,3,5)]=1:3;zrnorm(10)[c(2,5)]z[-c(1,3)]#去掉第1、3元素z=sample(1:100,10);zwhich(z==max(z))#给出最大值的下标矩阵x=sample(1:100,12);x#抽样x=matrix(1:20,4,5);x#矩阵的构造x=matrix(1:20,4,5,byrow=T);x#矩阵的构造,按行排列t(x)#矩阵转置x=matrix(sample(1:100,20),4,5)2*xx+5y=matrix(sample(1:100,20),5,4)x+t(y)#矩阵之间相加(z=x%*%y)#矩阵乘法z1=solve(z)#solve(a,b)可以解ax=b方程z1%*%z#应该是单位向量,但浮点运算不可能得到干净的0round(z1%*%z,14)#四舍五入b=solve(z,1:4);b#解联立方程矩阵继续nrow(x);ncol(x);dim(x)#行列数目x=matrix(rnorm(24),4,6)x[c(2,1),]#第2和第1行x[,c(1,3)]#第1和第3列x[2,1]#第[2,1]元素x[x[,1]0,1]#第1列大于0的元素sum(x[,1]0)#第1列大于0的元素的个数sum(x[,1]=0)#第1列不大于0的元素的个数x[,-c(1,3)]#没有第1、3列的x.diag(x)#x的对角线元素diag(1:5)#以1:5为对角线,其它元素为0的对角线矩阵diag(5)#5维单位矩阵x[-2,-c(1,3)]#没有第2行、第1、3列的xx[x[,1]0&x[,3]=1,1]#第1中大于0并且相应于第3列中小于或等于1的元x[x[,2]0|x[,1].51,1]#第1中小于.51或者相应于第2列中大于0的元素(或)x[!x[,2].51,1]#第一列中相应于第2列中不小于.51的元素(“非”)apply(x,1,mean);apply(x,2,sum)#分别对行(第一维)和列(第二维)做均值和求和运算x=matrix(rnorm(24),4,6)x[lower.tri(x)]=0;x#得到上三角阵,#为得到下三角阵,用x[upper.tri(x)]=0)矩阵与向量之间的运算x=matrix(1:20,5,4)#5乘4矩阵sweep(x,1,1:5,*)#把向量1:5的每个元素乘到每一行sweep(x,2,1:4,+)#把向量1:4的每个元素加到每一列x*1:5sweep(x,2,1:4,+)#scale是标准化,即每一列元素减去该列均值,除以该列标准差:(x=matrix(sample(1:100,24),6,4));(x1=scale(x))(x2=scale(x,scale=F))#自己观察并总结结果(x3=scale(x,center=F))#自己观察并总结结果round(apply(x1,2,mean),14)#自己观察并总结结果apply(x1,2,sd)#自己观察并总结结果round(apply(x2,2,mean),14);apply(x2,2,sd)#自己观察并总结结果round(apply(x3,2,mean),14);apply(x3,2,sd)#自己观察并总结结果缺失值,数
本文标题:统计建模与数据分析
链接地址:https://www.777doc.com/doc-2138866 .html