我有一个像这样开始的数据集:
> d.weight
R N P C D.weight
1 1 0 0 GO 45.3
2 2 0 0 GO 34.0
3 3 0 0 GO 19.1
4 4 0 0 GO 26.6
5 5 0 0 GO 23.5
6 1 45 0 GO 22.1
7 2 45 0 GO 15.5
8 3 45 0 GO 23.4
9 4 45 0 GO 15.8
10 5 45 0 GO 42.9
...
依此类推。
R
被复制,其中有5个(1-5)。N
是氮水平,也有5(0、45、90、180、360)。P
是磷水平,也有5(0、35、70、140、280)。C
是植物组合,有4个(GO,GB,LO,LB)。]]D.weight
是干重,以克为单位。但是,当我进行方差分析时,我得到了错误的自由度。我通常在全部数据的子集上运行方差分析,但让我们做一下我本来不会做的分析,以便您可以看到几乎所有的Df(自由度)都是错误的。
> example.aov=aov(D.weight ~ R+N+P+C, data=d.weight) > summary(example.aov) Df Sum Sq Mean Sq F value Pr(>F) R 1 1158 1158 9.484 0.00226 ** N 1 202 202 1.657 0.19900 P 1 11040 11040 90.408 < 2e-16 *** C 3 41032 13677 112.010 < 2e-16 *** Residuals 313 38220 122
所以,基本上,唯一正确的是C因子。是因为它是字母而不是数字吗?
[我发现某个地方,如果我用每一项写interaction()
,我都会得到正确的Df,但是我不知道这总体上是否正确。例如:
> example.aov2=aov(D.weight ~ interaction(R)+interaction(N)+interaction(P)+interaction(C), data=d.weight) > summary(example.aov2) Df Sum Sq Mean Sq F value Pr(>F) interaction(R) 4 7423 1856 19.544 2.51e-14 *** interaction(N) 4 543 136 1.429 0.224 interaction(P) 4 13788 3447 36.301 < 2e-16 *** interaction(C) 3 41032 13677 144.042 < 2e-16 *** Residuals 304 28866 95
我尝试使用
C
因子进行尝试,只是看它是否弄乱了任何东西:
> example.aov3=aov(D.weight ~ C, data=d.weight) > summary(example.aov3) Df Sum Sq Mean Sq F value Pr(>F) C 3 41032 13677 85.38 <2e-16 *** Residuals 316 50620 160 > > example.aov4=aov(D.weight ~ interaction(C), data=d.weight) > summary(example.aov4) Df Sum Sq Mean Sq F value Pr(>F) interaction(C) 3 41032 13677 85.38 <2e-16 *** Residuals 316 50620 160
而且看起来也一样。我应该到处添加
interaction()
吗?
这是我的荣誉论文!我的顾问不知道如何使用R,我也不知道如何使用其他任何东西,所以我在这里。我有一个像这样开始的数据集:> d.weight R N P C D ....
R通过检查变量是numeric
还是factor
变量,确定将变量视为分类变量(ANOVA类型分析)还是连续变量(回归类型分析)。最简单的是,您可以通过