[英]Why do I get different one way ANOVA output using R compared to excel and manual calculation?
我是R的新手,所以可能做错了什么,但是我搜索了许多不同的方法来做相同的事情,但仍然得到相同的结果。 我有以下数据(15个度量,3个因子,每个度量5个度量):度量:
##factors: 1, 2, 3
Y Z
1 43.0 1
2 40.5 1
3 39.6 1
4 44.9 1
5 37.2 1
6 44.4 2
7 40.5 2
8 40.1 2
9 43.3 2
10 36.1 2
11 41.1 3
12 39.2 3
13 36.4 3
14 37.2 3
15 36.7 3
当我在R中使用> anova(lm(Y~Z, data=data))
Y〜Z, anova(lm(Y~Z, data=data))
执行单向方差分析时,得到F = 2.7934,p = 0.1185和Df = 1。 我也使用aov和AOVModel函数得到相同的结果。
但是,Excel和手动计算(以及Minitab,实际上)都给我F = 1.728和p = 0.219,并具有2个自由度。 我无法理解-我在做什么错?
谢谢
这是因为您将data$Z
作为数字变量。 请参阅上方的Dason评论。 因此,您需要将Z转换为因子(我将数据重命名为dat,因为data
是R基础对象的名称)。 这是如何做:
dat$Z <- as.factor(dat$Z)
屈服:
> anova(lm(Y~Z, data=dat))
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
Z 2 26.949 13.4747 1.7281 0.219
Residuals 12 93.568 7.7973
旁注使用str
查看变量的存储方式。 它是最常用的R函数之一。
所以...
str(dat)
会告诉您:
> str(dat)
'data.frame': 15 obs. of 2 variables:
$ Y: num 43 40.5 39.6 44.9 37.2 44.4 40.5 40.1 43.3 36.1 ...
$ Z: int 1 1 1 1 1 2 2 2 2 2 ...
在因子转换之后:
> str(dat)
'data.frame': 15 obs. of 2 variables:
$ Y: num 43 40.5 39.6 44.9 37.2 44.4 40.5 40.1 43.3 36.1 ...
$ Z: Factor w/ 3 levels "1","2","3": 1 1 1 1 1 2 2 2 2 2 ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.