最終更新日 : 2007.10.31
モデルの検査U:さらなる3つの仮定
簡単にいってしまえば、残差とは「実測値と予測値とのズレ」のことである。つまり、残差が少ないというのは実測値と予測値がより一致しているということで、もちろん残差は少ない方が好ましい。この残差を図で表したものを残差プロットという(p149の図9.1がそうである)。
ここではp154のBOX 9.2の解析例とともに残差プロットを作成する方法を紹介しよう。また図9.6に載っている残差のヒストグラムと残差の正規確率プロット(Q-Qプロットともよばれる)の描き方も紹介する。
# Excelよりデータ取り込み
> dat <- excel.w(4)
Read 200 items
# データフレームの作成
> Plantlets <- data.frame(
+ HGHT = dat[,1], LONGEV = dat[,2], LEAFSIZE = dat[,3], SPECIES = as.factor(dat[,4]))
# glmを用いて解析
> attach(Plantlets)
> box9.3 <- glm(HGHT ~ SPECIES)
> summary(aov(box9.3))
Df Sum Sq Mean Sq F value Pr(>F)
SPECIES 1 260.833 260.833 46.277 1.476e-08 ***
Residuals 48 270.546 5.636
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> detach(Plantlets)
# 残差プロット
> plot.lm(box9.3, which=1)
# 残差のヒストグラム
> library(MASS) # MASSパッケージの呼び出し
> x <- stdres(box9.3) # 線形モデルから標準化された残差を取り出す
> hist(x) # ヒストグラムを描く
# 正規確率プロット
> plot.lm(box9.3, which=2)
上で紹介した残差プロットに関しての補足として、標準化残差ではなく"スチューデント化残差"というものがあり、これはRでも計算することができる。例えば、p157の図9.9をこれで描いてみよう。
> dat <- excel.w(4)
Read 120 items
> thrYs <- data.frame(X=dat[,1], Y1=dat[,2], Y2=dat[,3], Y3=dat[,4])
> attach(thrYs)
> box9.5 <- glm(Y1 ~ X)
> summary(aov(box9.5))
Df Sum Sq Mean Sq F value Pr(>F)
X 1 345772 345772 108377 < 2.2e-16 ***
Residuals 28 89 3
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> detach(thrYs)
> plot.lm(box9.5, which=1) # 上で紹介した方法と同じ
# スチューデント化残差プロット
> x <- rstudent(box9.5)
> plot(x)
> abline(h=c(-2,2))