R单因子方差分析(仅获得1 DF并期望2个DF)

时间:2015-06-28 17:32:54

标签: r statistics anova

我正在加州大学洛杉矶分校网站上http://www.ats.ucla.edu/stat/r/faq/posthoc.htm处理单因素方差分析的例子。 当我运行命令a1 <-aov(write ~ ses)时,我的输出与示例输出不同。我特别感到困扰的是,当我运行命令summary(a1)时,我的DF上的ses是1并且有三个ses类别(1,2,3)所以我期待2个DF这就是网站上的示例显示。我已经检查了'write'列和'ses'列的数据,计数和平均值似乎与示例匹配,但aov(write ~ ses)的结果却没有。有什么变化?为什么我只得到1个DF。

hsb2 <- read.table("http://www.ats.ucla.edu/stat/data/hsb2.csv", sep=",", header=TRUE)
a1 <- aov(write ~ ses, data = hsb2)
summary(a1)
#              Df Sum Sq Mean Sq F value Pr(>F)   
# ses           1    770   769.8   8.908 0.0032 **
# Residuals   198  17109    86.4         

1 个答案:

答案 0 :(得分:1)

您正在学习的页面有错误,因为它没有告诉您如何正确输入数据。 ses变量应该是一个因素,正如我们从它们给出的数据中看到的那样,它被读入数字:

str(hsb2$ses)

如果我们将其转换为因子,我们会得到与示例相同的答案:

hsb2$ses <- as.factor(hsb2$ses)
a1 <- aov(write ~ ses, data=hsb2)
summary(a1)

             Df Sum Sq Mean Sq F value  Pr(>F)   
ses           2    859   429.4    4.97 0.00784 **
Residuals   197  17020    86.4                   
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

此外,大多数R用户都非常不鼓励使用附件。