单因素方差分析--R
- 软件开发
- 2025-08-06 06:57:01

任务说明
三个剂量水平的药物处理受试者,每个剂量水平十个受试者,现在收集到数据后,问: 药物剂量水平显著影响受试者的response? 或者不同剂量药物处理受试者有显著效果的差异吗?
数据 library(tidyverse) library(reshape2) # install.packages("gplots") library(gplots) df <- read.table("AUClast1.csv",header = T,sep=",") head(df) dose <- c(0.2,0.6,1.8) fqr <- as.data.frame(t(df[1:3,2:11])) rownames(fqr) <- 1:nrow(fqr) colnames(fqr) <- dose fqr <- melt(fqr) fqr$variable <- as.factor(fqr$variable) head(fqr) # variable value #1 0.2 24.9 #2 0.2 19.7 #3 0.2 27.3 #4 0.2 26.8 #5 0.2 30.8 #6 0.2 30.2 table(fqr$variable) # 0.2 0.6 1.8 # 10 10 10 代码 # anove单因素方差分析 fit <- aov(value ~ variable,fqr) summary(fit) # Df Sum Sq Mean Sq F value Pr(>F) # variable 2 593525 296762 45.6 2.2e-09 # Residuals 27 175587 6503 # 分组之间的均值差异显著 # 可视化 plotmeans(fqr$value ~ fqr$variable, xlab="Treatment", ylab="Response", main="Mean Plot\nwith 95% CI") # 1.8的剂量分组 内部方差太大了,不过还是继续看看,后面做一下假设检验证实一下。 # 上述分析只知道组件均值差异大但是不知那几组之间差异大,需要多重比较才能知晓(杜肯法,最小极差法等等) # 多重比较 library(multcomp) # par语句扩大了图像的顶部面积 par(mar=c(5,4,6,2)) # 进行多重比较 tuk <- glht(fit, linfct=mcp(variable="Tukey")) # 图像展示 # 有相同字母的两组即为不显著差异 plot(cld(tuk, level=.05),col="lightgrey") # 0.2剂量组和0.6剂量组的response均值无明显差异,图像顶部都是a # 1.8剂量组和0.2剂量组或0.6剂量组的response均值相比较均有明显差异,图像顶部的字母不一致 # 上面的boxplot可以明显看到1.8剂量组的组内方差很大的,到底是组内方差还是组间方差引起了显著性差异呢? # 做一下 ”评估方差检验的假设条件“ # 1. 因变量的正态分布 library(car) qqPlot(lm(value ~ variable, data=fqr), simulate=TRUE, main="Q-Q Plot", labels=FALSE) # 不满足 # 2.离群点检测 library(car) outlierTest(fit) # rstudent unadjusted p-value Bonferroni p # 30 4.367 0.0001784 0.005352 # 第三十个数据点是离群点(去掉离群点后拟合还有可能出现离群点) # 3. 因变量的方差齐性 bartlett.test(value ~ variable, data=fqr) # Bartlett检验表明三组的方差有明显的不同(p-value = 1e-13) 结论 # 数据包含强影响点,而且因变量(误差)不满足正态分布 # 方差齐性分析也证实了 分组之间的组内放差有明显的不同 # 组内方差较大时,实验的结果无法解释,所以整个方差分析的结果也不可信。单因素方差分析--R由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“单因素方差分析--R”
上一篇
mysql进阶-索引基础
下一篇
JsonPath