指定错误作为块和治疗之间的相互作用

时间:2015-03-16 19:10:50

标签: r interaction anova

编程器,

我正在尝试在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      

1 个答案:

答案 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