2水準の要因での自由度の計算

[OS]
[リリース]
[キーワード] SAS/STAT

[質問]

すべて2水準の要因A、B、C、Dを用いて、以下の解析を行うと、自由度が1のはずの3要因交互作用a*b*c、a*b*dの自由度が3になります。 自由度の計算はどのように行っているのでしょうか?

proc glm;
  class a b c d;
  model y = a b c d a*b c*d a*b*c a*b*d;
run;

[回答]

高次の交互作用の検定を行うときには、それより低次の交互作用・主効果はすべて指定しておくのが普通です。 あえて下位の効果を指定しなかった場合、その交互作用の解釈には注意が必要です。 たとえば2水準の要因a、b、cがある場合に、次のように2要因交互作用を飛ばして3要因交互作用を指定したとします。

proc glm;
  class a b c;
  model y = a b c a*b*c;
  class a b c;
  model y = a b c a*b*c;
run;

このとき、a*b*cの自由度は、自由なセル数8から全体平均1と3つの主効果の自由度を引いた4になります。 このように下位の効果を飛ばした場合には、自由度も平方和も下位の効果の和になります。