<< トップページへ

<< 目次へ

最終更新日: 2008.11.22

RでSASのType II、Type IIIの平方和を求める



 SASでいうところのType II平方和とType III平方和をRでも出すことができる。そのためにはcarパッケージのAnova()という関数を利用する。なお、carパッケージはダウンロード・インストールする必要がある。

 ちなみに、以下の例ではどのタイプの平方和であっても全く同じ結果が得られる。

> Y <- rnorm(18)
> Group <- rep(c(1, 2, 3), c(6, 6, 6))
> Group <- as.factor(Group)
> Group
 [1] 1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3
Levels: 1 2 3
> result <- lm(Y ~ Group)

# Type Iの平方和
> summary(aov(result))
            Df  Sum Sq Mean Sq F value Pr(>F)
Group        2  0.6800  0.3400  0.2042 0.8175
Residuals   15 24.9778  1.6652

# carパッケージのインストール
> install.packages("car")

# carの呼び出し
> library(car)

# carパッケージのAnova()は何も指定しなければType IIの平方和を計算する
> Anova(result)
Anova Table (Type II tests)

Response: Y
          Sum Sq Df F value Pr(>F)
Group      0.680  2  0.2042 0.8175
Residuals 24.978 15

# Type IIIの平方和は引数typeで指定できる
> Anova(result, type="III")
Anova Table (Type III tests)

Response: Y
             Sum Sq Df F value Pr(>F)
(Intercept)  0.0278  1  0.0167 0.8989
Group        0.6800  2  0.2042 0.8175
Residuals   24.9778 15