Answers:
summary(aov)
使用所谓的I型(顺序)平方和。summary(lm)
使用所谓的III型平方和,不是连续的。有关详细信息,请参见gung的答案。
请注意,您需要调用lm(data ~ factor(f1) * factor(2))
(aov()
将公式的RHS自动转换为因子)。然后注意线性回归中一般统计量的分母(有关更多说明,请参见此答案):
β Ç ˚F对于每个测试的系数都不同,因为向量发生变化。相反,ANOVA检验中的分母始终是MSE。
set.seed(10)
data=rnorm(12)
f1=rep(c(1,2),6)
f2=c(rep(1,6),rep(2,6))
summary(aov(data~f1*f2))
Df Sum Sq Mean Sq F value Pr(>F)
f1 1 0.535 0.5347 0.597 0.462
f2 1 0.002 0.0018 0.002 0.966
f1:f2 1 0.121 0.1208 0.135 0.723
Residuals 8 7.169 0.8962
summary(lm(data~f1*f2))$coeff
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.05222024 2.732756 0.0191090 0.9852221
f1 -0.17992329 1.728346 -0.1041014 0.9196514
f2 -0.62637109 1.728346 -0.3624106 0.7264325
f1:f2 0.40139439 1.093102 0.3672066 0.7229887
这是两个不同的代码。从Lm模型中,您需要系数。而从aov模型中,您只是在列出变化的来源。尝试代码
anova(lm(data~f1*f2))
Analysis of Variance Table
Response: data
Df Sum Sq Mean Sq F value Pr(>F)
f1 1 0.5347 0.53468 0.5966 0.4621
f2 1 0.0018 0.00177 0.0020 0.9657
f1:f2 1 0.1208 0.12084 0.1348 0.7230
Residuals 8 7.1692 0.89615
这给出了导致相同结果的变异源列表。
f1
和的p值f2
不同。它看起来像你只显示出summary(aov(...))
和anova(lm(...))
在R
相似的输出。
lm
报告的类型,而类型II / III不是。您链接到@gung的答案中对此进行了相当详细的说明。