我正在加州大学洛杉矶分校网站上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
答案 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用户都非常不鼓励使用附件。