2010年12月26日日曜日

GAMの作図

GAM(一般化加法モデル)の結果をplot()したときの予測値がどう算出されているのか分からず、ずっともやもやしていたけど、何となく解決した。

とりあえず、plot()をして出てくる図のy軸は、
「線形予測子を正規化した値」
であることが判明。

Rで書くと、
scale(result$linear.predictor, scale=F)
あるいは、
result$linear.predictor - mean(result$linear.predictor)
とも書ける。
※resultはgam()の結果


では変数が二つ以上ある場合は、どうなっているのか?
これはどうやら注目しない変数を固定して求めているっぽい。
たとえば、y~x0+x1でx0の図を書くときは、x1の値は0とかに固定した上で予測すると結果が一致する。
(最後に正規化するので、x1はどの値に固定しても関係ない)

実際にやるには、以下のようなイメージ
dat.x0 <- data.frame(x0, x1_0) #x1を0に固定したデータセット
pre.x0 <- predict(result, dat.x0, type="link")
plot(x0, scale(pre.x0, scale=F))

散布図と重ねるにはどうすればよいのだろう?

0 件のコメント:

コメントを投稿