T检验与秩和检验
T检验:符合正态分布的数据用T检验
秩和检验:不满足正态分布的数据用秩和检验
正态分布的检验
##生成正态分布的随机1000个数
data=rnorm(1000)
data
#画柱形图
hist(data,prob=T)
#画分布密度的线
lines(density(data))
##检验是否符合正太分布。P值>0.05符合正态分布
shapiro.test(data)
##检验是否正太分布输出图形,符合对角线为正态分布
qqnorm(data)
qqline(data)
非正态分布
#非正态分布
a=c(rep(1,10),rep(2,5),rep(3,4),6,8,10,12,20)
a
#生成柱形图
hist(a, breaks = seq(0.5, 21, by = 1),prob = TRUE)
lines(density(a),col="blue")
#画数据密度分布曲线
abline(v=median(a),col="red")
#画平均线abline中参数V为垂直线,H为加水平线
abline(v=mean(a),col="green")
#中值
median(a)
#均值
mean(a)
#看是否符合正态分布
qqnorm(a)
qqline(a)
非正态分布中值比均值有意义
如果点在直线两侧则为正态分布。图示为非正态分布
秩和检验
wilcox.test(变量1,变量2)
#生成非正态分布的b
b=c(rep(2,7),rep(3,5),rep(5,8),8,10,18,25)
#画柱形图
hist(b, breaks = seq(0.5, 26, by = 1),prob = TRUE)
#分别看是否符合正太分布
shapiro.test(a)
shapiro.test(b)
#结果a和b都不符合正态分布
#误用T检验p值无明显差别。
t.test(a,b)
#正常应用秩和检验P则有明显差别
wilcox.test(a,b)
##加exact=F则不需要计算精确P值
wilcox.test(a,b, exact=FALSE)
百分比检验
prop.test(抽样阳性, 抽样总数, p=已知百分比, alternative = "greater")
alternative 参数,假设方向用greater或less,默认双侧检验。
##已知全球死亡率10%,调查400人发现51死亡,检验实际死亡率是否显著高于全球死亡率
51/400
#百分比检验
prop.test(51, 400, p=0.1, alternative = "greater")
卡方检验
用于检验实际观测值与理论推断值之间的偏离程度。卡方值越大说明偏离越大,卡方值越小,说明偏离程度低。卡方值为0说明完全符合。
data=rbind(c(50,250), c(8,10))
data
mode(data)
rownames(data)=c("non-smoker", "smoker")
colnames(data)=c("disease", "without disease")
data
#卡方检验
chisq.test(data)
#样本太少时会报warnning。可以改用fisher精确检验
fisher.test(data)
卡方检验比较多组
disease <- rbind(c(20, 40, 20),c(30,30,10))
colnames(disease) <- c("stage1", "stage2", "stage3")
rownames(disease) <- c("Male", "Female")
disease
chisq.test(disease)