R语言基础统计分析
1. 正态性检验
单变量正态性检验
1.1 Shapiro-Wilk正态检验方法
# 示列:
shapiro.test(var)
# 正态性检验,p-value 大于0.05时为正态分布
说明:对小样本资料才进行正态性检验,大样本可放松此要求。以上检验方法要求样本在3-5000之间。
1.2 QQ图
示列
qqnorm(MS$MMSE) # 绘制QQ图
qqline(MS$MMSE) # 添加趋势线
# 若QQ图在一条直线附件,说明比较正态
2. 方差齐性检验
2.1 Bartlett检验,适用于正态分布数据
# 示列
# 两样本比较
bartlett.test(var1 , var2)
# 有分组变量
bartlett.test(var1 ~ groupvar) # group可以是多分组
# 方差齐性检验p-value大于0.05时为齐性
2.2 Levene检验,非正态分布与正态分布数据均适用
library(carData)
library(car)
leveneTest(var1, groupvar, center=median, ...)
# 注意,groupvar需要是factor,可以提前转换为factor。
# 或leveneTest(var1, as.factor(groupvar))
# 方差齐性检验,p-value大于0.05时为方差齐性
3. t 检验
注意,t检验,方差分析等需要满足一些前提条件,尤其是小样本。若不适合可选择秩和检验
官方示列:
t.test(x, ...)
t.test(x, y = NULL,
alternative = c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, var.equal = FALSE,
conf.level = 0.95, ...)
# x: a (non-empty) numeric vector of data values.
# y: an optional (non-empty) numeric vector of data values.
# paired = FALSE, var.equal = FALSE为默认选项,默认非配对样本,
# 默认方差不齐
# p-value小于0.05差异有统计学意义
3.1 单样本t检验
检验样本均数与总体均数的差异
t.test(var, mu = )
3.2 两独立样本t检验
t.test(var1,var2)
t.test( var1~ groupvar)
3.3 两配对样本t检验
t.test(var1,var2,paired = TRUE)
# 既然是配对样本,需要两样本一一对应
4. 方差分析
官方示列:
aov(formula, data = NULL, projections = FALSE, qr = TRUE,
contrasts = NULL, ...)
oneway.test(formula, data, subset, na.action, var.equal = FALSE)
pairwise.t.test(x, g, p.adjust.method = p.adjust.methods,
pool.sd = !paired, paired = FALSE,
alternative = c("two.sided", "less", "greater"),
...)
# p-value小于0.05有统计学意义
本节仅展示单因素方差分析
my1 <- summary(aov(var1~groupvar, data = mydata))
#结果存储于my1中,注意:my1为list形式。
#若不满足方差齐性且每组样本数也不平衡,
#还可以使用oneway.test()
oneway.test(var1~groupvar, data = mydata)
#若方差分析结果显示组间有差异,还可进一步两两比较
pairwise.t.test(var1, groupvar, p.adjust.method = "holm")
#method 默认"holm",还可用"bonferroni", "BH"等p值校正方法
#注意,此处用,分隔var与group。
5. 秩和检验
官方示列:
wilcox.test(x, ...)
wilcox.test(x, y = NULL,
alternative = c("two.sided", "less", "greater"),
mu = 0, paired = FALSE, exact = NULL, correct = TRUE,
conf.int = FALSE, conf.level = 0.95,
tol.root = 1e-4, digits.rank = Inf, ...)
kruskal.test(x, ...)
kruskal.test(x, g, ...)
kruskal.test(formula, data, subset, na.action, ...)
# p-value小于0.05有统计学意义
5.1 两样本比较
wilcox.test(var1,var2) # 两独立样本
wilcox.test(var1,var2,paired = TRUE) #两配对样本
wilcox.test(var~groupvar) #分组变量为groupvar
5.2 多样本比较
kruskal.test(var~groupvar,mydata) # 多样本比较
kruskal.test(var1,var2,var3,……) #多样本比较
参考资料:《R语言实战》、《R官方帮助文件》等