r-模型简化(双向方差分析)



我使用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的anovaaov函数计算类型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 ***

最新更新