我在Excel中完成了实验设计与分析(Montgomery,2013ISBN:9781118097939)的示例5.3,得到了同样的结果。然而,当在R中完成方差分析时,我得到了不同的结果。虽然我对python很熟悉,但我对R还不熟悉,所以我不知道我做错了什么。我怀疑这与在R中计算的自由度有关,因为它们与Excel中计算的自由度有很大的不同。找到附加的结果作为一个图像。教材成绩由本人在Excel中确认。问题陈述也附在这里。问题陈述。
我在R中的代码如下
bottel_vul_data <- data.frame(A = rep(c(10, 12, 14), each = 2),
B = rep(c(25, 30), each = 12),
C = rep(c(200, 250), each = 6),
vul = c(-3, -1, 0, 1, 5, 4,
-1, 0, 2, 1, 7, 6,
-1, 0, 2, 3, 7, 9,
1, 1, 6, 5, 10, 11))
bottel_anova <- aov(vul ~ A * B * C, data = bottel_vul_data)
summary(bottel_anova)产生了
Df Sum Sq Mean Sq F value Pr(>F)
A 1 248.06 248.06 275.306 1.67e-11 ***
B 1 45.37 45.37 50.358 2.53e-06 ***
C 1 22.04 22.04 24.462 0.000146 ***
A:B 1 5.06 5.06 5.618 0.030675 *
A:C 1 0.56 0.56 0.624 0.441016
B:C 1 1.04 1.04 1.156 0.298229
A:B:C 1 0.06 0.06 0.069 0.795626
Residuals 16 14.42 0.90
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1虽然不是主要问题的一部分,但我也不知道这是什么意思。密码意味着。如果有人知道的话,这将是很好的背景知识。
发布于 2022-11-02 13:56:41
这里的问题是,R将变量A解释为一个数值预测器,而在您的教科书示例中,他们将其视为一个因素(即,一个范畴变量)。一旦将A转换为r中的一个因子,就会得到正确的结果(与课本中的照片相同)。有很多方法可以做到这一点,但最简单的方法可能是:
bottel_anova <- aov(vul ~ factor(A) * B * C, data = bottel_vul_data)
summary(bottel_anova)
Df Sum Sq Mean Sq F value Pr(>F)
factor(A) 2 252.75 126.38 178.412 1.19e-09 ***
B 1 45.37 45.37 64.059 3.74e-06 ***
C 1 22.04 22.04 31.118 0.00012 ***
factor(A):B 2 5.25 2.63 3.706 0.05581 .
factor(A):C 2 0.58 0.29 0.412 0.67149
B:C 1 1.04 1.04 1.471 0.24859
factor(A):B:C 2 1.08 0.54 0.765 0.48687
Residuals 12 8.50 0.71
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1至于你的签名。代码问题--它只是在最后一列(*** p< .001、** p< .01、* p< .05等)显示p值的一种快速方法。
https://stackoverflow.com/questions/74289366
复制相似问题