1. 方差分析基础与实验设计
单因素方差分析(One-way ANOVA)是检验三个或更多组间均值差异是否具有统计学意义的经典方法。与t检验只能比较两组不同,ANOVA能够同时处理多组比较,有效控制I类错误率。在R语言中,aov()函数是最常用的实现方式,其背后数学模型为:
Y_ij = μ + α_i + ε_ij
其中μ为总体均值,α_i表示第i组的处理效应,ε_ij为随机误差项。方差分析的核心思想是通过比较组间变异(MSB)与组内变异(MSW)的比值(F值)来判断组间差异是否显著。
重要前提假设:1)各组观测独立 2)残差服从正态分布 3)方差齐性(各组方差相等)。实际操作中需用Shapiro-Wilk检验正态性,Bartlett或Levene检验方差齐性。
实验设计阶段就需要考虑样本量问题。通过pwr.anova.test()函数可进行功效分析:
r复制library(pwr)
pwr.anova.test(k=3, f=0.3, sig.level=0.05, power=0.8)
这里k为组数,f为效应量(0.1小效应,0.25中效应,0.4大效应)。输出会给出所需每组样本量。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据准备与假设检验
以三种肥料对作物产量的影响为例,演示完整分析流程。首先构建测试数据:
r复制set.seed(123)
fertilizer <- rep(c("A", "B", "C"), each=20)
yield <- c(rnorm(20, mean=50, sd=3),
rnorm(20, mean=55, sd=3),
rnorm(20, mean=60, sd=4))
crop_data <- data.frame(fertilizer, yield)
正态性检验使用分组Shapiro检验:
r复制tapply(crop_data$yield, crop_data$fertilizer, shapiro.test)
若p值均>0.05则满足正态性。方差齐性检验:
r复制library(car)
leveneTest(yield ~ fertilizer, data=crop_data)
当假设不满足时,可考虑非参数Kruskal-
