将错误指定为块和处理之间的交互
Specify error as interaction between block and treatment
程序员,
我正在尝试在 R 中指定 aov 中的错误项是块和我的治疗的相互作用。你能帮助我吗?我在下面构建了一个示例。
-里克
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
作为对 summary.aov
状态的帮助,仅返回 p 值 "if there are non-zero residual degrees of freedom." 这是明智的,因为没有残差 df,模型中就没有随机性可以估计了。
您的模型是 'fully saturated',这意味着它试图估计的因子水平组合中没有重复。有关进一步讨论,请参阅 this cross-validated answer。
要诊断您数据中的这个问题,请尝试以下代码。它表明每个 block/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
程序员,
我正在尝试在 R 中指定 aov 中的错误项是块和我的治疗的相互作用。你能帮助我吗?我在下面构建了一个示例。
-里克
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
作为对 summary.aov
状态的帮助,仅返回 p 值 "if there are non-zero residual degrees of freedom." 这是明智的,因为没有残差 df,模型中就没有随机性可以估计了。
您的模型是 'fully saturated',这意味着它试图估计的因子水平组合中没有重复。有关进一步讨论,请参阅 this cross-validated answer。
要诊断您数据中的这个问题,请尝试以下代码。它表明每个 block/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