编程器,
我正在尝试在R中指定aov中的错误术语是块和我的处理的交互。你能帮助我吗?我在下面构建了一个例子。
-Rik
d <- data.frame("a"=as.factor(rep(1:3,12)),
"b"=as.factor(rep(1:3,each=3)),
"block"=as.factor(rep(1:4,each=9)));
d$y <- as.numeric(d$a)*rnorm(36, mean=.75, sd=1) +
as.numeric(d$b)*rnorm(36, mean=1.2, sd=1) +
as.numeric(d$block)*rnorm(36, mean=1.2, sd=1)+
rnorm(36);
anova1=aov(y~a+b+Error(a*b*block),data=d)
summary(anova1)
我做了以上但我的输出不包含p值:
Error: a
Df Sum Sq Mean Sq
a 2 50.38 25.19
Error: b
Df Sum Sq Mean Sq
b 2 16.61 8.307
Error: block
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 3 138.2 46.06
Error: a:b
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 4 46.39 11.6
Error: a:block
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 6 69.71 11.62
Error: b:block
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 6 110 18.33
Error: a:b:block
Df Sum Sq Mean Sq F value Pr(>F)
Residuals 12 289.5 24.12
答案 0 :(得分:2)
作为summary.aov
状态的帮助,仅返回p值&#34;如果存在非零剩余自由度。&#34;这是明智的,因为没有剩余的df,在模型中没有剩余的随机性来估计。
您的模型已完全饱和&#39;意味着它试图估计的因子水平组合中没有复制。有关进一步的讨论,请参阅this cross-validated answer。
要诊断数据中的此问题,请尝试以下代码。它表明每个块/ a * b组合中只有一个观察结果:
> xtabs( ~ a + b + block, d)
, , block = 1
b
a 1 2 3
1 1 1 1
2 1 1 1
3 1 1 1
, , block = 2
b
a 1 2 3
1 1 1 1
2 1 1 1
3 1 1 1
, , block = 3
b
a 1 2 3
1 1 1 1
2 1 1 1
3 1 1 1
, , block = 4
b
a 1 2 3
1 1 1 1
2 1 1 1
3 1 1 1