04.06.2013 Views

DS_Lec9_20101213

DS_Lec9_20101213

DS_Lec9_20101213

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2010/12/13 第9回<br />

平滑化法、一般化加法モデル<br />

滑 法、 般 法<br />

東京の平均気温 1876年~2007年<br />

(単変量)回帰モデル<br />

y 0 1<br />

year <br />

傾向を、もっと柔軟に表現したい<br />

統計関連学会連合<br />

統計教育推進委員会<br />

教材教育サイトより<br />

1


2010/12/13 第9回<br />

移動平均法<br />

(2m+1)項移動平均:当期と前後m期の合計(2m+1)期の<br />

平均を当期の移動平均値とする<br />

21項移動平均<br />

東京の平均気温 1876年~2007年<br />

2


2010/12/13 第9回<br />

移動平均法:局所的な平均<br />

局所重み付き回帰法<br />

局所重み付き回帰法<br />

局所的 局所的に多項式回帰モデルをあてはめる<br />

多項式回帰 デ をあ はめる<br />

x x<br />

の近傍で局所的に = に近いほど大きな重み、<br />

遠い値には0の重み、を付けて<br />

多項式を最小2乗法であてはめる<br />

2 x x y f x ) <br />

w<br />

i<br />

i ( i ⇒ 最小化<br />

f (x)<br />

:多項式関数<br />

(直線、2次曲線、…)<br />

直線 次曲線<br />

3


2010/12/13 第9回<br />

局所重み付き回帰法<br />

東京の平均気温 1876年~2007年<br />

関数 loess による<br />

あてはめ<br />

4


2010/12/13 第9回<br />

関数 loess<br />

局所重み付き多項式回帰法により曲線(曲面)をあ 局所重み付き多項式回帰法により曲線(曲面)をあてはめる はめる<br />

loess(formula, data, weights, subset, na.action, span = 0.75,<br />

enp.target, ddegree = 2, parametric = F, ddrop.square<br />

= F,<br />

normalize = T, family = c("gaussian", "symmetric"), model = F,<br />

control control, ...) )<br />

誤差に正規分布を 誤差に正規分布を仮定せず、<br />

仮定する.重みの再計算 重みの再計算を繰り返して、<br />

をしない(デフォルト) 頑健なあてはめを行う<br />

formula モデル式 をしない(デフォルト)<br />

data 用いるデータフレーム(指定は任意)<br />

span 平滑の度合いをコントロールするパラメータ<br />

平滑の度合いをコントロールするパラメータ.<br />

大きいほど滑らかな曲線になる. デフォルトは 0.75<br />

degree あてはめる多項式の次数 あてはめる多項式の次数. デフォルトは2次<br />

デフォルトは2次.<br />

どの平滑化手法も、平滑の度合いをコントロールするパラメー<br />

タの値によって、結果が大きく異なることに注意.<br />

5


2010/12/13 第9回<br />

関数 loess: パラメータspan ラ タ p の値による違い<br />

値 る違<br />

6


2010/12/13 第9回<br />

平滑化スプライン法<br />

平滑化 ライ 法<br />

f (x)<br />

3次スプライン関数<br />

2階までの導関数が連続な 2階までの導関数が連続な、区分的3次多項式<br />

区分的3次多項式<br />

, , x x <br />

, 2<br />

x<br />

x x <br />

• 節点(knots): 1 m 1 2<br />

m<br />

• 各 各区間 間 [ , x 1 ] ( k 1 1,...,<br />

m 1 ) で3次多項式 次多項式 f ( (x )<br />

xk k <br />

m 1<br />

f ( x)<br />

I[<br />

x x ] ( x)<br />

fk<br />

<br />

f ( ) [ x ] ( ) f<br />

k , xk1<br />

k<br />

k 1<br />

;<br />

( x )<br />

• 各節点(端点を除く)で2階までの導関数が 連続<br />

f<br />

k 1<br />

f <br />

f<br />

k 1<br />

k 1<br />

( x<br />

( x<br />

( x<br />

k<br />

k<br />

k<br />

)<br />

)<br />

)<br />

<br />

<br />

<br />

f<br />

k<br />

k<br />

( x<br />

f ( x<br />

f (<br />

x<br />

k<br />

k<br />

k<br />

k<br />

)<br />

) ,<br />

)<br />

k<br />

2 , , m 1<br />

x<br />

f k<br />

7


2010/12/13 第9回<br />

節点での値を f ( x ) ( k 1 ,..., m ) と固定したとき<br />

y k k<br />

• m‐1個(区関数)の3次多項式 4(m‐1) パラメータ<br />

• 節点(区間の両端点)での制約 2(m‐1) 2(m 1)<br />

• 1階微分の連続性の制約 m‐2<br />

• 2階微分の連続性の制約 m‐2<br />

⇒ 4(m‐1) –{2(m‐1)+m‐2+m‐2} = 2個の自由度が残る<br />

2個の自由パラメータをどう定めるかでいろいろなスプライン関<br />

数がある<br />

• 自然スプライン(natural spline) f ( x 1 ) f <br />

( x m ) 0<br />

• B‐スプライン(B‐spline, B for Basic)(両端に任意の3節点を加える)<br />

B<br />

B<br />

m 3<br />

<br />

i1<br />

( 3)<br />

f ( x ) B ( x ) <br />

( d )<br />

i<br />

( 0)<br />

i<br />

i<br />

x xi<br />

( x)<br />

<br />

x x<br />

id<br />

1<br />

<br />

1 xi<br />

x x<br />

( x)<br />

<br />

0<br />

その他<br />

i<br />

i<br />

B<br />

i1<br />

( d 1)<br />

i<br />

x<br />

( x)<br />

<br />

x<br />

id<br />

id<br />

x<br />

x<br />

i<br />

B<br />

( d 1)<br />

i1<br />

( x)<br />

i 1,...,<br />

m<br />

d<br />

<br />

0,<br />

1,<br />

2<br />

8


2010/12/13 第9回<br />

平滑化と補間<br />

平滑化 補間<br />

補間 (interpolation) 、補外(extrapolation)<br />

– 観測されていない値を補う<br />

– 観測された点は通らなければならない<br />

x に対する y の値を補う場合、<br />

補間は観測された値の範囲内の x に対する y を補い、<br />

補外は観測された値の範囲外の x に対する y を補う。<br />

平滑曲線は 平滑曲線は、観測された点を通るわけではない。<br />

観測された点を通るわけではない<br />

y<br />

f (x)<br />

<br />

f ( (x ) は y の‘傾向’を表す滑らかな曲線<br />

9


2010/12/13 第9回<br />

平滑化スプライン法<br />

平滑化 ライ 法<br />

• 3次平滑化スプライン法は、罰則付き残差2乗和<br />

n<br />

y f x ) <br />

<br />

2<br />

<br />

2<br />

i ( i f (<br />

x)<br />

dx<br />

i1<br />

<br />

<br />

<br />

データの当てはまり<br />

具合を表す<br />

関数のでこぼこに<br />

対するペナルティー<br />

(roughness penalty)<br />

を最小にするスプライン曲線を平滑化関数とする方法。<br />

<br />

• はデータへの当てはまり具合と関数の滑らかさのバラン<br />

スをコントロ スをコントロールするパラメータで平滑化パラメータ<br />

ルするパラメ タで平滑化パラメ タ<br />

(smoothing parameter) と呼ばれる。<br />

• が大きいほど が大きいほど、滑らかな曲線が得られる。<br />

滑らかな曲線が得られる<br />

<br />

10


2010/12/13 第9回<br />

関数 smooth.spline p<br />

B‐スプライン関数による平滑化スプライン曲線を当てはめる<br />

smooth smooth.spline(x, spline(x yy, w = below>>, df = below>>,<br />

spar = 0, cv = F, all.knots = F, df.offset = 0, penalty = 1)<br />

x 予測変量<br />

y 反応変量<br />

df 等価自由度 等価自由度. これを用いても滑らかさを制御できる<br />

これを用いても滑らかさを制御できる。<br />

spar と同等の平滑化パラメータ. 滑らかさについての指<br />

定がない場合は、一般化交差検証法(GCV)で自動的に選択<br />

定がない場合は、 般化交差検証法(GCV)で自動的に選択<br />

される。<br />

等価自由度: 等価 度 平滑化スプライン法による推定値ベクトルは、観<br />

滑 ラ 法 推定値 、観<br />

測値ベクトルの線形結合として yˆ My と表現でき、行列 M<br />

は疑似射影行列とみなせる。この対角和 tr(M)<br />

が等価自由度<br />

11


2010/12/13 第9回<br />

Tokyotemp T<br />

Tokyoteemp<br />

平滑化スプライン法による平滑曲線<br />

平滑化 ライ 法 る平滑曲線<br />

17<br />

15 16<br />

13 14<br />

16 17<br />

13<br />

14 15<br />

GCV(spar=0.0254)<br />

1880 1900 1920 1940 1960 1980 2000<br />

Time<br />

spar=1<br />

1880 1900 1920 1940 1960 1980 2000<br />

Time<br />

Tokyotemp T<br />

17<br />

15 16<br />

13 14<br />

spar=0.000001<br />

1880 1900 1920 1940 1960 1980 2000<br />

Time<br />

> smooth.spline(Tttime, p ( Tokyotemp) y p)<br />

Call:<br />

smooth.spline(x = Tttime, y = Tokyotemp)<br />

Smoothing Parameter (Spar): 00.02544036 02544036<br />

Equivalent Degrees of Freedom (Df): 4.018848<br />

Penalized Criterion: 26.63255<br />

GCV: 0.2073451<br />

><br />

12


2010/12/13 第9回<br />

一般化加法モデル<br />

GAM GAM, GGeneralized li dAdditi Additive MModel d l<br />

一般化線形モデル<br />

X X<br />

g <br />

<br />

g ( ) 0 1 1 2 2 <br />

Y<br />

一般化加法モデル<br />

~ 指数型分布 ,<br />

E[Y ]<br />

g <br />

) <br />

<br />

f ( X ) <br />

f ( X ) <br />

<br />

<br />

<br />

p p X p p<br />

( 0 1 1 2 2 f p ( X p<br />

Y<br />

~ 指数型分布 ,<br />

f X ), f ( X ), ,<br />

1( 1 2 2 f p ( X p<br />

)<br />

E[Y ]<br />

<br />

<br />

:平滑化関数<br />

)<br />

13


2010/12/13 第9回<br />

一般化加法モデルの当てはめ<br />

般化加法 デ 当<br />

gam(formula = formula(data), family = gaussian, data = , weights h = , subset b = ,<br />

na.action = na.fail, start = , control =<br />

gam gam.control(...), control( ) trace = FF, model = FF, x = FF, y = TT, qr = F, F<br />

method = "qr", contrasts = NULL, ...)<br />

引数は glm とほとんど同じ.大きな違いは、formula に与えるモ<br />

デル式の右辺に lo, s, bs, ns などの平滑化関数を指定できる<br />

こと.<br />

• 局所回帰(loess)関数 lo(…, span=0.5, degree=1)<br />

• 平滑化スプライン関数(smoothing spline) s(x, df=4, spar=0)<br />

• B‐スプライン関数 (basic spline) bs<br />

• 自然スプライン関数(natural spline) ns<br />

14


2010/12/13 第9回<br />

partial residualls<br />

脊椎後湾症データへの一般化加法モデルのあてはめ<br />

脊椎後湾症デ タ の 般化加法モデルのあてはめ<br />

1 2<br />

-3 -22<br />

-1 0<br />

0 50 100 150 200<br />

partial residualls<br />

AAge<br />

St Startt<br />

2<br />

-6 -4 - -2 0<br />

5 10 15<br />

>kypho.gam = gam(Kyphosis ~ s(Age,4) +s(Start)+ Number, family =<br />

binomial binomial, data = kyphosis)<br />

>kyphopdt = predict(kypho.gam,type='terms')<br />

>plot(Age, plot(Age, kyphopdt[,1]+residuals(kypho.gam), kyphopdt[,1] residuals(kypho.gam), ylab="partial ylab partial residuals residuals") )<br />

>lines(Age[order(Age)], kyphopdt[order(Age),1],col=3,lwd=2)<br />

>plot(Start, kyphopdt[,2]+residuals(kypho.gam),ylab="partial residuals")<br />

>lines(Start[order(Start)], ( [ ( )], kyphopdt[order(Start),2],col=3,lwd=2)<br />

yp p [ ( ), ], , )<br />

15


2010/12/13 第9回<br />

燃費データへの一般化加法モデルのあてはめ<br />

燃費<br />

0.12<br />

0.10<br />

0.08<br />

2000 3000 4000 5000<br />

排気量<br />

>attach(fuel)<br />

>fuel.gam= gam(Fuel~lo(Disp.), data=fuel)<br />

>plot(Disp., Fuel,xlab='排気量',ylab='燃費')<br />

>lines(Disp.[order(Disp.)], predict(fuel.gam)[order(Disp.)],col=3,lwd=2)<br />

16

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!