您好,欢迎访问三七文档
计算描述性统计量:1、summary():例:summary(mtcars[vars])summary()函数提供了最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计。2、apply()函数或sapply()函数计算所选择的任意描述性统计量。mean、sd、var、min、max、median、length、range和quantile。函数fivenum()可返回图基五数总括(Tukey’sfive-numbersummary,即最小值、下四分位数、中位数、上四分位数和最大值)。sapply()例:mystats-function(x,na.omit=FALSE){if(na.omit)x-x[!is.na(x)]m-mean(x)n-length(x)s-sd(x)skew-sum((x-m)^3/s^3)/nkurt-sum((x-m)^4/s^4)/n-3return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt))}sapply(mtcars[vars],mystats)3、describe():Hmisc包:返回变量和观测的数量、缺失值和唯一值的数目、平均值、分位数,以及五个最大的值和五个最小的值。例:library(Hmisc)describe(mtcars[vars])4、stat.desc():pastecs包若basic=TRUE(默认值),则计算其中所有值、空值、缺失值的数量,以及最小值、最大值、值域,还有总和。若desc=TRUE(同样也是默认值),则计算中位数、平均数、平均数的标准误、平均数置信度为95%的置信区间、方差、标准差以及变异系数。若norm=TRUE(不是默认的),则返回正态分布统计量,包括偏度和峰度(以及它们的统计显著程度)和Shapiro–Wilk正态检验结果。这里使用了p值来计算平均数的置信区间(默认置信度为0.95:例:library(pastecs)stat.desc(mtcars[vars])5、describe():psych包计算非缺失值的数量、平均数、标准差、中位数、截尾均值、绝对中位差、最小值、最大值、值域、偏度、峰度和平均值的标准误例:library(psych)describe(mtcars[vars])分组计算描述性统计量1、aggregate():例:aggregate(mtcars[vars],by=list(am=mtcars$am),mean)2、by():例:dstats-function(x)(c(mean=mean(x),sd=sd(x)))by(mtcars[vars],mtcars$am,dstats)by(mtcars[,vars],mtcars$am,plyr::colwis(dstats))3、summaryBy():doBy包例library(doBy)summaryBy(mpg+hp+wt~am,data=mtcars,FUN=mystats)4、describe.by():doBy包(describe.by()函数不允许指定任意函数,)例:library(psych)describe.by(mtcars[vars],mtcars$am)5、reshape包分组:(重铸和融合)例:library(reshape)dstats-function(x)(c(n=length(x),mean=mean(x),sd=sd(x)))dfm-melt(mtcars,measure.vars=c(mpg,hp,wt),id.vars=c(am,cyl))cast(dfm,am+cyl+variable~.,dstats)频数表和列联表1、table():生成简单的频数统计表mytable-with(Arthritis,table(Improved))Mytable2、prop.table():频数转化为比例值prop.table(mytable)3、prop.table()*100:转化为百分比prop.table(mytable)*100二维列联表4、table(A,B)/xtabs(~A+b,data=mydata)例:mytable-xtabs(~Treatment+Improved,data=Arthritis)5、margin.table()和prop.table():函数分别生成边际频数和比例(1:行,2:列)行和与行比例margin.table(mytable,1)prop.table(mytable,1)列和与列比例margin.table(mytable,2)prop.table(mytable,2)prop.table(mytable)6、addmargins():函数为这些表格添加边际和addmargins(mytable)admargins(prop.table(mytable))addmargins(prop.table(mytable,1),2)addmargins(prop.table(mytable,2,1)7.crossTable():gmodels包例:library(gmodels)CrossTable(Arthritis$Treatment,Arthritis$Improved)多维列联表1、table()和xtabs():都可以基于三个或更多的类别型变量生成多维列联表。2、ftable():例:mytable-xtabs(~Treatment+Sex+Improved,data=Arthritis)mytableftable(mytable)margin.table(mytable,1)margin.table(mytable,2)margin.table(mytable,3)margin.table(mytable,c(1,3))ftable(prop.table(mytable,c(1,2)))ftable(addmargins(prop.table(mytable,c(1,2)),3))gtable(addmargins(prop.table(mytable,c(1,2)),3))*100独立检验1、卡方独立性检验:chisq.test()例:library(vcd)mytable-xtabs(~Treatment+Improved,data=Arthritis)chisq.test(mytable)mytable-xtabs(~Improved+Sex,data=Arthritis)chisq.test(mytable)2、Fisher精确检验:fisher.test()例:mytable-xtabs(~Treatment+Improved,data=Arthritis)fisher.test(mytable)3、Cochran-Mantel—Haenszel检验:mantelhaen.test()例:mytable-xtabs(~Treatment+Improved+Sex,data=Arthritis)mantelhaen.test(mytable)相关性度量1、assocstats():例:library(vcd)mytable-xtabs(~Treatment+Improved,data=Arthritis)assocstats(mytable)2、cor():函数可以计算这三种相关系数,3、cov():函数可用来计算协方差例:states-state.x77[,1:6]cov(states)cor(states)cor(states,method=spearman)x-states[,c(Population,Income,Illiteracy,HSGrad)]y-states[,c(LifeExp,Murder)]cor(x,y)4、pcor():偏相关ggm包例:library(ggm)pcor(c(1,5,2,3,6),cov(states))相关性的显著性检验1、cor.test()其中的x和y为要检验相关性的变量,alternative则用来指定进行双侧检验或单侧检验(取值为two.side、less或greater),而method用以指定要计算的相关类型(pearson、kendall或spearman)当研究的假设为总体的相关系数小于0时,请使用alternative=less。在研究的假设为总体的相关系数大于0时,应使用alternative=greater。在默认情况下,假设为alternative=two.side(总体相关系数不等于0)。例:cor.test(states[,3],states[,5])2、corr.test():可以为Pearson、Spearman或Kendall相关计算相关矩阵和显著性水平。例:library(psych)corr.test(states,use=complete)3、pcor.test():psych包t检验1、t.test(y~x,data)(独立样本)例:library(MASS)t.test(Prob~So,data=UScrime)2、t.test(y1,y2,paired=TRUE)(非独立)例:library(MASS)sapply(UScrime[c(U1,U2)],function(x)(c(mean=mean(x),sd=sd(x))))with(UScrime,t.test(U1,U2,paired=TRUE))组间差异的非参数检验两组的比较:1、wilcox.test(y~x,data):评估观测是否是从相同的概率分布中抽得例:with(UScrime,by(Prob,So,median))wilcox.test(Prob~So,data=UScrime)2、wilcox.test(y1,y2,paried=TRUE):它适用于两组成对数据和无法保证正态性假设的情境。例:sapply(UScrime[c(U1,U2)],median)with(UScrime,wilcox.test(U1,U2,paired=TRUE))多于两组的比较:1、kruskal.test(y~A,data):各组独立例:states-as.data.frame(cbind(state.region,state.x77))kruskal.test(Illiteracy~state.region,data=states)2、friedman.test(y~A|B,data):各组不独立非参数多组比较:1、npmc():npmc包例:class-state.regionvar-state.x77[,c(Illiteracy)]mydata-as.data.frame(cbind(class,var))rm(class,var)library(npmc)summary(npmc(mydata),type=BF)aggregate(mydata,by=list(mydata$class),median)回归用一个或多个预测变量(也称自变量或解释变量)来预测响应变量(也称因变量、效标变量或结果变量)的方法。1、lm():拟合回归模型lm(y~x1+x2+x3,data)简单线性回归1、lm():(data是数据框)例:fit-lm(weight~height,data=women)summary(fit)women$weightfitted(fit)residuals(fit)plot(women$height,women$weight,main=WomenAge30-39,xlab=Height(ininches),ylab=Weight(inpounds))多项式回归例:fit2-lm(weight~height+I(height^2),data=women)summary(fit2)plot(w
本文标题:R语言方法总结
链接地址:https://www.777doc.com/doc-1838563 .html