R语言-T检验、秩和检验、百分比检验、卡方检验

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)
实例
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容