描述性统计分析
关注于连续性变量的中心趋势、变化性和分布形状
> summary(object,...)
> # 返回最小值、最大值、四分位数和平均值
> sapply(x,FUN,options)
> library(Hmisc)
> describe(x,...)
> # 返回变量和观测的数量、缺失值和唯一值得数目、平均值、分位数,以及
# 五个最大和五个最小的值
> library(pastecs)
> stat.desc(x,basic=TRUE,desc=TRUE,norm=FALSE,p=0.95)
> # basic=TRUE:
# 所有值、空值、缺失值的数量, 最小值、最大值、值域、总和
# desc=TRUE:
# 中位数、平均值、平均值的标准误、平均值置信度为95%的置信区间、
# 方差、标准差以及变异系数
# norm=TRUE:
# 偏度、峰度以及它们的统计显著程度和Shapiro-Wilk正态检验结果
分组聚合
> library(doBy)
> summaryBy(var1+var2~group1+group2,data,FUN)
> library(psych)
> describe.by(y,g)
> library(reshape)
> dfm <- melt(dataframe,measure.vars=y,id.vars=g)
> cast(dfm,group1+group2+...+variable~.,FUN)
频数统计
> table(var1,var2,var3)
> xtab(~var1+var2+var3,data)
> prop.table(table,margins)
> margin.table(table,margins)
> addmargins(table,margins)
> ftable(table)
列联分析
两个标称变量之间的相关性
卡方独立性检验
H0 : x 和 y 独立
> mytable <- xtabs(~x+y,data)
> chisq.test(mytable)
> ##p_value < 0.05 => x和y不独立
Fisher精确检验
解决卡方检验由于有频数<5时算法不精确问题
> fisher.test(mytable)
Cochran-Mantel-Haenszel检验
H0 : 两个名义变量在第三个变量的每一层中都是条件独立的
> mytable <- xtabs(~x+y+z,data)
> chisq.test(mytable)
> ##p_value < 0.05 => x和y在z的每一水平下并不独立
相关性度量
度量相关性强弱
> assocstats(mytable)
相关
相关系数
pearson相关系数:衡量两个定量变量之间的线性相关程度
spearman相关系数:衡量两个定序变量之间的线性相关程度
kendall相关系数:衡量两个定序变量之间的线性相关程度的非参数方法
> cor(x,y=NULL,use="everything",method = c("pearson", "kendall", "spearman"))
相关性的显著性检验
H0 : 相关系数为0
> cor.test(x,y)
> library(psych)
> corr.test(x, y = NULL, use = "pairwise", method = "pearson")
两组间差异
H0 : 两组间差异不明显
t.test
独立样本
> t.test(y~x,data)
> t.test(y1,y2)
匹配样本,假定组间差异呈正态分布
> t.test(y1,y2,paired=TRUE)
非参数检验
曼-惠特尼-威尔科克森检验
独立样本
> wilcox.test(y~x,data)
> wilcox.test(y1,y2)
威尔科克森符号秩检验
匹配样本,重复测量设计
> wilcox.test(y1,y2,paired=TRUE)
多组间差异
H0 : 多组间差异不明显
ANOVA
单因素方差分析
比较分类因子定义的两个或多个组别中的因变量均值
> library(doBy)
> summaryBy(y~A,data,FUN=function(x)(c(mean=mean(x),sd=sd(x)))
> fit <- aov(y~A,data)
> summary(fit)
> library(gplots)
> plotmeans(y~A,data,main='Mean Plot\nwith 95%CI')
> TukeyHSD(fit) #多重比较
> par(las=2,mar=c(5,8,4,2))
> plot(TukeyHSD(fit))
> library(multcomp)
> par(mar=c(5,4,6,2))
> tuk <- glht(fit,linfct=mcp(trt="Tukey"))
> plot(cld(tuk,level=.05),col='lightgrey') ##相同字母,均值差异不明显
待续
非参数方法
克鲁斯卡尔-沃利斯检验
独立样本
> kruskal.test(y~A,data)
Friedman检验
不独立,重复测量设计,随机区组设计
> friedman.test(y~A|B,data) ##y是结果变量,A是分组变量,B是区组变量
多组比较
> library(npmc)
> mydata <- df[c('y','A')]
> summary(npmc(mydata),type="BF")