您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > R语言常用统计方法实现.ppt
常用统计方法用R实现R中内嵌的分布•R提供了四类有关统计分布的函数:密度函数、(累积)分布函数、分位数函数、随机数函数.它们都与分布的英文名称(或者其缩写)相对应.•对于所给的分布名称,加前缀“d”就是密度函数(对于离散分布,指分布律);加前缀“p”就是分布函数;加前缀“q”就是分位数函数;加前缀“r”就是随机数发生函数.•这四类函数的第一个参数是有规律的:形为dfunc的函数为x,pfunc的函数为q,qfunc的函数为p,rfunc的函数为n(但rhyper和rwilcox是特例,他们的第一个参数为nn).•若R中分布的函数名为func,则四类函数的调用格式为:1)概率密度函数:dfunc(x,p1,p2,...),x为数值向量;2)(累积)分布函数:pfunc(q,p1,p2,...),q为数值向量;3)分位数函数:qfunc(p,p1,p2,...),p为由概率构成的向量;4)随机数函数:rfunc(n,p1,p2,...),n为生成数据的个数,p1,p2,...是分布的参数值.R提供的常用分布(要加前缀)•分布名称R名称选项•betabetashape1,shape2•binomialbinomsize,prob•Cauchycauchylocation=0,scale=1•chi-sqaured(2)chisqdf,ncp•exponentialexprate•Fisher-Snedecor(F)fdf1,df2,ncp•gammagammashape,scale=1•geometricgeomprob•hypergeometrichyperm,n,k•lognormallnormmeanlog=0,sdlog=1•logisticlogislocation=0,scale=1•multinomialmultinomsize,prob•normalnormmean=0,sd=1•negativebinomialnbinomsize,prob•Poissonpoislambda•Student's(t)tdf•uniformunifmin=0,max=1•Weibullweibullshape,scale=1•Wilcoxon'sstatisticswilcoxm,nsignrankn描述性统计•位置的度量:均值、顺序统计量、中位数、百分位数。•均值计算:niixnx11•若x是向量、矩阵,则mean(x)返回其全部元素均值。•若要返回数组某一维的均值:apply(x,dim,mean);dim=1计算行均值,dim=2计算列均值。•若x是数据框,则mean(x)返回各列的均值•Mean的一般用法:mean(x,trim=0,na.rm=FALSE)•trim指定去掉x两端数的比例;na.rm=TRUE允许有缺失值。•类似有sum(x)函数可求x的和。顺序统计量•将n个数据(观测值)按从小到大的顺序排列后,称其为顺序统计量.•函数sort(x)给出了样本x的顺序统计量•order()给出排序后的下标•rank()给出了样本x的秩次统计量•x-c(75,64,47.4,66.9,62.2,62.2,58.7,63.5)•sort(x)•order(x)中位数•中位数描述数据中心位置的数字特征.大体上比中位数大或小的数据个数为整个数据的一半.对于对称分布的数据,均值与中位数比较接近;对于偏态分布的数据,均值与中位数不同.中位数的又一显著特点是不受异常值的影响,具有稳健性,因此它是数据分析中相当重要的统计量.•在R软件中,函数median()给观测量的中位数.如•x-c(75,64,47.4,66.9,62.2,62.2,58.7,63.5)•median(x)•median(x,na.rm=TRUE)#若数据中有缺失值百分位数•百分位数(percentile)是中位数的推广.将数据按从小到大的排列后,0p1,它的p分位点定义为:•在R软件中,quantile()函数计算观测量的百分位数.如w-c(75.0,64.0,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,72.0)quantile(w)•一般用法:quantile(x,probs=seq(0,1,0.25),na.rm=FALSE)分散程度的度量•表示数据分散(或变异)程度的特征量有方差、标准差、极差、四分位极差、变异系数和标准误等.•在R软件中,用var()和sd()计算方差、标准差:var(x,na.rm=FALSE,)sd(x,na.rm=FALSE)变异系数、平方和•对于变异系数、校正平方和、未校正平方和等指标,需要编写简单的程序.•变异系数CV计算:cv-100*sd(x)/mean(x);cv•校正平方和CSS:css-sum((x-mean(x))^2);css•未校正平方和USS:uss-sum(x^2);uss极差与标准误•样本极差(记为R)的计算:R=max(x)-min(x)•样本上、下四分位数之差称为四分位差(或半极差),记为R1.它也是度量样本分散性的重要数字特征,特别对于具有异常值的数据,它作为分散性具有稳健性,因此在稳健性数据分析中具有重要作用.•半极差计算:R1=quantile(x,0.75)-quantile(x,0.25)•样本标准误(记为sm)定义为s/sqrt(n)•样本标准误计算:sm=sd(x)/sqrt(length(x))分布形状的度量•偏度系数Kurtosis是刻划数据的对称性指标.关于均值对称的数据其偏度系数为0.右侧更分散的数据偏度系数为正,左侧更分散的数据偏度系数为负.•当数据的总体分布为正态分布时,峰度系数Skewness近似为0;当峰度系数为正时,两侧极端数据较多;当峰度系数为负时,两侧极端数据较少.偏度系数Skewness•样本峰度系数sk计算程序n-length(x)m-mean(x)s-sd(x)•sk-n/((n-1)*(n-2))*sum((x-m)^3)/s^3•计算公式niixxsnnnSk133)()2)(1(峰度系数Kurtosis计算•样本峰度系数ku计算程序n-length(x)m-mean(x)s-sd(x)ku-((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/s^4-(3*(n-1)^2)/((n-2)*(n-3)))•计算公式)3)(2()1(3)()3)(2)(1()1(2144nnnxxsnnnnnKunii茎叶图•茎叶图也是考查数据分布的重要方法•R中用stem()制作茎叶图:•stem(x,scale=1,width=80,atom=1e-08)其中x是数据向量,scale控制茎叶的长度,width控制宽度,atom控制容差;如果选择scale=2,即将10个个位数分成两段,0〜4为一段,5〜9为另一段.x-c(25,45,50,54,55,61,64,68,72,75,75,78,79,81,83,84,84,84,85,86,86,86,87,89,89,89,90,91,91,92,100)•stem(x)•stem(x,scale=2)•stem(x,scale=.5)直方图•直方图是探索性数据分析的基本工具,它给出了数据的频率分布图形,在组距相等场合下常用宽度相等的长条矩形表示,矩形的高低表示频率的大小在图形上,横坐标表示所关心变量的取值区间,纵坐标表示频率或频数的大小。这样就得到频数或频数直方图。图形的形状与我们选择的各组区间端点有关,故选择区间端点时我们要谨慎。•R中使用函数hist()来画直方图,其常用的调用格式如下:hist(x,breaks=Sturges,freq=NULL,probability=!freq,col=NULL,main=paste(Histogramof,xname),xlim=range(breaks),ylim=NULL,xlab=xname,ylab,axes=TRUE,nclass=NULL)•说明:若选项breaks取向量,则用于指明直方图区间的分割位置;若取正整数,则用于指定直方图的小区间数.freq取T表示使用频数画直方图,取F则使用频率画直方图.probability与freq恰好相反.col用于指明小矩形的颜色.直方图示例•已知15位学生体重w•w-c(75.0,64.0,47.4,66.9,62.2,62.2,58.7,63.5,66.6,64.0,57.0,69.0,56.9,50.0,72.0)•hist(w,freq=FALSE)•lines(density(w),col=blue)•x-44:76•lines(x,dnorm(x,mean(w),sd(w)),col=red)•执行后绘出直方图和密度估计曲线和正态分布的概率密度曲线条形图•barplot(height,names.arg=NULL,legend.text=NULL,beside=FALSE,horiz=FALSE,col=NULL,xlab=NULL,ylab=NULL)•height为表示各条形高度的向量或矩阵,names.arg为各条形名称向量;beside控制条块是否非堆叠式;horiz控制条形方向是否水平;col为表示各条形的颜色向量;legend.text表示图例的文本向量•pie.sales=c(0.12,0.3,0.26,0.16,0.04,0.12)•pie.col=c(purple,violetred1,green3,cornsilk,cyan,white)•barplot(pie.sales,col=pie.col)•t=c(.20,.20,.60,.20,.30,.50,.10,.30,.6);dim(t)=c(3,3)•lt=c(高中及以下,大专,本科及以上)•nt=c(上海,广州,北京)•barplot(t,beside=T,xlab=城市,ylab=比例,legend.text=lt,names.arg=nt);圆饼图•pie(x,labels=names(x),main=NULL,...)•x表示各扇形的比例向量;labels表示各扇形的名称向量;main为标题串。•pie.sales=c(0.12,0.3,0.26,0.16,0.04,0.12)•names(pie.sales)=c(Blueberry,Cherry,Apple,BostonCream,Other,VanillaCream)pie.col=c(purple,violetred1,green3,cornsilk,cyan,white)•pie(pie.sales,col=pie.col)频数统计•R中可用table(data)来进行频数统计。•示例1:dd=c(a,b,c,a,c,b,c,c,a);ddx=table(dd);x#频数统计pie(x,labels=paste(names(x),'\n',round(100*x/sum(x),1),'%'))#绘制饼图,paste函数可将多个字符串联接•示例2:dt1=read.table(d:/tmp/pstj1.txt)x=table(dt1);xas.data.frame(x,responseName=频数)#转换为表格显示as.data.frame(x/sum(x),responseName=频率)#显示频率表pie(x,labels=paste(names(x),'\n',100*x/sum(x),'%'))#圆饼图barplot(x,names.arg=1:5,legend.text=paste(1:5,'',names(x)))#绘制条形图卡方检验:chisq.test()•chisq.test(x,y=NULL,correct=TRUE,p=rep(1/length
本文标题:R语言常用统计方法实现.ppt
链接地址:https://www.777doc.com/doc-4480000 .html