353 字
1 分钟
R语言方差分析 (ANOVA)
单因素方差分析
检验一个因素(如:不同品种)对指标的影响。
# 拟合模型model_1w <- aov(产量 ~ 品种, data = df)summary(model_1w)
# 事后多重比较 (Tukey 法):看看具体哪两个品种之间有差异library(agricolae)HSD.test(model_1w, "品种", group = TRUE, console = TRUE)双因素方差分析及交互作用
如果存在两个因素,我们还要关心它们之间会不会相互影响(交互作用)。
# 带交互作用的模型model_2wi <- aov(产量 ~ 品种 * 施肥方式, data = df)summary(model_2wi)ANOVA 的前提假设检验
方差分析要求数据服从正态分布并且各组方差齐性。
# 正态性检验 (Shapiro-Wilk)shapiro.test(x) # p > 0.05 说明符合正态
{{ ... }}library(car)leveneTest(产量 ~ 品种, data = df) # p > 0.05 说明方差齐进阶补充:ANOVA 的线性模型本质与平方和类型
- ANOVA 即一般线性模型(GLM):在数学上,方差分析与线性回归是等价的,其本质是通过引入虚拟变量(Dummy Variables)来拟合分类自变量的线性模型(
Y = X \eta + \epsilon)。在 R 中,aov()实际上就是lm()的包装器。 - I 类、II 类与 III 类平方和的深层陷阱:
- R 的默认 ANOVA(使用
summary(aov()))计算的是 Type I (Sequential) Sum of Squares。这意味着变量进入模型的顺序会直接改变计算结果!如果你的设计是非平衡的(各组样本量不同),这会导致错误的结论。 - 为了得到顺序无关的结果(如 SAS 和 SPSS 的默认输出),必须使用
car::Anova(model, type=3)来计算 Type III 平方和,并且必须将因子的正交对比属性(contrasts)修改为contr.sum而非默认的contr.treatment。
- R 的默认 ANOVA(使用
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时
相关文章 猜你想看
1
R语言描述统计分析核心指南
管理统计与R实训 拿到数据后,首先要用描述统计量来把握数据的整体面貌:集中趋势、离散程度以及分布形态。
2
R语言基础数据结构
管理统计与R实训 本文将带你了解 R 语言中最基础也是最重要的数据结构:向量、矩阵、数组、数据框、因子和列表。掌握它们是处理任何复杂数据的第一步。
3
R语言字符串与日期处理
管理统计与R实训 在数据清洗中,字符串和日期处理是无法避开的难点。本文重点介绍如何分割、拼接字符串,使用正则表达式提取匹配,以及基础的日期计算。
4
R语言数据导入导出与基础绘图
管理统计与R实训 数据分析的第一步是把数据“搬”进 R 里,分析结束后再输出结果。同时,利用 R 的基础图形系统,我们可以快速生成散点图并进行探索性分析。
5
相关分析与线性回归
管理统计与R实训 当我们要研究两个连续变量(如身高与体重、投入与产出)之间的数量关系时,相关分析和回归分析是最犀利的武器。

