【发布时间】:2013-12-11 22:03:29
【问题描述】:
我正在尝试使用以下代码“手动”计算 SSB 和 SSW:
> data.soy
protein amount
1 cereal 5
2 cereal 17
3 cereal 12
4 cereal 10
5 cereal 4
6 energy 19
7 energy 10
8 energy 9
9 energy 7
10 energy 5
11 veggie 25
12 veggie 15
13 veggie 12
14 veggie 9
15 veggie 8
> soy.fit<-lm(amount~protein, data=data.soy)
> anova(soy.fit)
Analysis of Variance Table
Response: amount
Df Sum Sq Mean Sq F value Pr(>F)
protein 3 55.53 18.511 0.4916 0.6953
Residuals 11 414.20 37.655
> n1<-length(cereal)
> n1
[1] 5
> n2<-length(energy)
> n2
[1] 5
> n3<-length(veggy)
> n3
[1] 5
> m<-mean((cereal+energy)+(cereal+veggy))
> m
[1] 43
> s<-sd((cereal+energy)+(cereal+veggy))
> s
[1] 15.11622
> m1<-mean(cereal)
> m1
[1] 9.6
> m2<-mean(energy)
> m2
[1] 10
> m3<-mean(veggy)
> m3
[1] 13.8
> overallm<-(((n1*m1)+(n2*m2)+(n3*m3))/(n1+n2+n3))
> overallm
[1] 11.13333
> SSB<-((n1*(m1-overallm)^2)+(n2*(m2-overallm)^2)+(n3*(m3-overallm)^2))
> SSB
[1] 53.73333
但是当我使用anova() 函数检查我的答案时,它显示的是 55.53。我做错了什么,还是舍入问题?
【问题讨论】:
-
欢迎。作为一种好的做法,您能否给出一个最小的工作示例(例如
dput数据集或向量)?您还可以发布用于生成方差分析结果的代码吗? -
当然!刚刚添加了