我使用ANOVA分析实验结果,看看我的解释变量(Heating和Dungfauna(是否对我的反应变量(Biomass(有任何影响。我首先看了主要的效果和相互作用:
full.model <- lm(log(Biomass) ~ Heating*Dungfauna, data= df)
anova(full.model)
我理解,有必要完成模型简化,消除非显著的相互作用或影响,最终达到最简单的模型,该模型仍然可以解释结果。我尝试了两种方法来消除交互。然而,当我手动删除交互(Heating*Fauna
->Heating+Fauna
(时,新的ANOVA给出了与我使用此模型简化"快捷方式"时不同的输出:
new.model <- update(full.model, .~. -Dungfauna:Heating)
anova(model)
哪种方式是删除交互和简化模型的合适方式
在这两种情况下,数据都是日志转换的-
lm(log(CC_noAcari_EmergencePatSoil)~ Dungfauna*Heating, data= biomass)
手动将Heating*Dungfauna
更改为Heating+Dungfauna
:的ANOVA输出
Response: log(CC_noAcari_EmergencePatSoil)
Df Sum Sq Mean Sq F value Pr(>F)
Heating 2 4.806 2.403 5.1799 0.01012 *
Dungfauna 1 37.734 37.734 81.3432 4.378e-11 ***
Residuals 39 18.091 0.464
使用简化"快捷方式"的方差分析输出:
Response: log(CC_noAcari_EmergencePatSoil)
Df Sum Sq Mean Sq F value Pr(>F)
Dungfauna 1 41.790 41.790 90.0872 1.098e-11 ***
Heating 2 0.750 0.375 0.8079 0.4531
Residuals 39 18.091 0.464
R的anova
和aov
函数计算类型I或";顺序的";平方和。预测器的指定顺序很重要。指定y ~ A + B
的模型要求A对B的影响,而Y ~ B + A
要求B对A的影响。请注意,第一个模型指定Dungfauna*Heating
,而比较模型使用Heating+Dungfauna
。
考虑使用";mtcars";数据集。这里我指定了两个加法模型(没有相互作用(。两个模型都指定了相同的预测因子,但顺序不同:
add.model <- lm(log(mpg) ~ vs + cyl, data = mtcars)
anova(add.model)
Df Sum Sq Mean Sq F value Pr(>F)
vs 1 1.22434 1.22434 48.272 1.229e-07 ***
cyl 1 0.78887 0.78887 31.103 5.112e-06 ***
Residuals 29 0.73553 0.02536
add.model2 <- lm(log(mpg) ~ cyl + vs, data = mtcars)
anova(add.model2)
Df Sum Sq Mean Sq F value Pr(>F)
cyl 1 2.00795 2.00795 79.1680 8.712e-10 ***
vs 1 0.00526 0.00526 0.2073 0.6523
Residuals 29 0.73553 0.02536
您可以使用car::Anova
:指定类型II或类型III的平方和
car::Anova(add.model, type = 2)
car::Anova(add.model2, type = 2)
这两种模型的结果相同:
Sum Sq Df F value Pr(>F)
vs 0.00526 1 0.2073 0.6523
cyl 0.78887 1 31.1029 5.112e-06 ***
Residuals 0.73553 29
summary
也提供了等效的(一致的(度量,而不管预测因子的顺序如何,尽管它不是一个正式的ANOVA表:
summary(add.model)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.92108 0.20714 18.930 < 2e-16 ***
vs -0.04414 0.09696 -0.455 0.652
cyl -0.15261 0.02736 -5.577 5.11e-06 ***