20
2010/1/15 1 一般化加法モデル(Generalized Additive Model, p.266) 0 1 1 ( ( )) p p gE y 1 x x () ( ( )) Var VE y y 一般化線形モデル 1 0 1 ( ( )) ( ) ( ) p p f g f E y 1 x x () ( ( )) Var VE y y 一般化加法モデル 1 2 , ,..., p f f f ただし, は未知

一般化加法モデル(Generalized Additive Model, p.266)221.114.158.246/~bunken/statistics/gam2.pdfsmooth, lowess S/N (Signal/Noise)比 •例 z fx f y 12() ()H ff12, は未知の(平滑な)関数であり,平滑化スプライン,あるいは局所回帰

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

  • 2010/1/15 1

    一般化加法モデル(Generalized Additive Model, p.266)

    0 1 1( ( )) p pg E y 1 x x

    ( ) ( ( ))Var V Ey y

    一般化線形モデル

    10 1( ( )) ( ) ( )ppfg fE y 1 x x

    ( ) ( ( ))Var V Ey y

    一般化加法モデル

    1 2, ,..., pf f fただし, は未知

  • 平滑化(Smoothing)

    2010/1/15 2

    • 局所回帰(loess)関数 lo

    • 平滑化シュプライン関数(smoothing spline) s

    • Bシュプライン関数(basic spline) bs

    • 自然シュプライン関数(natural spline) ns

    1 2, ,..., pf f f非線形関数 

  • 平滑化と補間

    • 補間(interpolation),補外(extrapolation)– 観測されていない値を補う

    – 求める曲線は観測された値は通らなければならない

    – 線形補間

    – 区分多項式(spline)補間

    • 自由度を残した平滑曲線はデータの背後にある現象の一つのモデルとして用いることができる

    ( )y f x

    approx

    spline

    .RData.RData.RData

  • 一次元平滑化(p.172~)

    • 平滑化の背景となるモデル

    • 平滑(smooth)な曲線...具体的な形は未知

    • 平滑化によるデータの分解

    ( ) , , ,y f x x y R

    ( ) , , , nf y x x y R

    ( )', '',..,k kf C f f f数学としての定義 :  が存在して連続

    smooth, lowess

    S/N (Signal/Noise)比

    .RData

  • • 例

    1 2( ) ( )z f x f y

    1 2,f f は未知の(平滑な)関数であり,平滑化スプライン,あるいは局所回帰によって得られる関数を想定

    gam(z ~s(x)+lo(y) )

    平滑化スプライン 局所回帰

  • 2010/1/15 6

    > attach(ethanol)

    > names(ethanol)

    [1] "NOx" "C" "E"

    > eth1=gam(NOx~C+lo(E,degree=2))

    > eth1

    Call:

    gam(formula = NOx ~ C + lo(E, degree = 2))

    Degrees of Freedom: 88 total; 80.1184 Residual

    Residual Deviance: 5.16751

    > par(mfrow=c(2,2))

    > plot(NOx~C+E)

    > plot(eth1, residual=T, se=T, rug=F, scale=4)

  • 2010/1/15 7

    C

    NO

    x

    8 10 12 14 16 18

    12

    34

    E

    NO

    x

    0.6 0.8 1.0 1.2

    12

    34

    C

    part

    ial fo

    r C

    8 10 12 14 16 18

    -2-1

    01

    2

    E

    lo(E

    , deg

    ree

    = 2)

    0.6 0.8 1.0 1.2

    -2-1

    01

    2

  • 2010/1/15 8

    > eth2=gam(NOx~C+poly(E,2))

    > eth2

    Call:

    gam(formula = NOx ~ C + poly(E, 2))

    Degrees of Freedom: 88 total; 84 Residual

    Residual Deviance: 19.67801

    > plot(eth2, residual=T, se=T, rug=F, scale=4)

  • 2010/1/15 9

    C

    part

    ial fo

    r C

    8 10 12 14 16 18

    -2-1

    01

    2

    E

    lo(E

    , deg

    ree

    = 2)

    0.6 0.8 1.0 1.2

    -2-1

    01

    2

    C

    part

    ial fo

    r C

    8 10 12 14 16 18

    -2-1

    01

    2

    E

    poly

    (E, 2

    )

    0.6 0.8 1.0 1.2

    -3-2

    -10

    12

  • 2010/1/15 10

    一般化加法モデルの当てはめ

    gam(formula, family = gaussian, data = , weights = , subset = ,

    na.action = na.fail, start = , control = gam.control(...),

    trace = F, model = F, x = F, y = T, contrasts = NULL, ...)

    引数は glm とほとんど同じ.大きな違いは formula に与えるモデル式の右辺にlo, s, bs, ns などの非線形関数を与えられること.

    これらの非線形関数は,当てはめを確かめるたびに計算しなおすのではなく,gam が必要とする情報だけをわたす(p.287)

  • 2010/1/15 11

    当てはめ値

    0 1 1 1 1 1( ( )) ( ) ( )q q q q p p q pg E f f y 1 x x x x

    additive.predictors: 結果の成分 右辺の当てはめ値

    1 1 2 2smooth: ( ), ( ),..., ( )q q p q pf f f x x x結果の成分 を行列に

             まとめたもの

    0 1 pcoefficients: , ,..., 結果の成分

    1fitted values: g結果の成分 を施した値

    (fittedで求まる) (新たな x の値に対しては predict)

  • 2010/1/15 12

    当てはめ結果

    データ数=係数の数(p+1) +等価自由度(Npar)の和+残差(Residual)の自由度

    0 1 1 1 1 1( ( )) ( ) ( )q q q q p p q pg E f f y 1 x x x x

    当てはめは,線形項も含めて行われ,各項の寄与を調整するため非線形項にも係数を導入する(p.325)

    基本的に,自由度と尤離度だけしか表示しない

    summary, anova

  • 局所回帰による平滑化

    0 0 0 0 1 0 0 0

    ( ) , 1,2,...,

    ( ) :

    ( ; ) ( ) ( ) ( ) ( ) ( )

    i i i

    p

    p

    y g x i n

    g x

    g x x x x x x x x x

    局所的に多項式

           

    2

    ( )

    ( ) || ( ; ) || minj

    j j jg

    x U x

    W x x y g x x

    0ˆˆ ˆ( ) ( ; ) ( )g x g x x x

    ( )W x実際には,重み関数 を残差によって変更する

    手続きを繰り返す.

  • シュプライン関数

    2010/1/15 14

    spline(x, y, n = , periodic = F, boundary = 0,

    xmin =min(x), xmax = max(x))

    0 1 2 :kx x x x 節点

    1( ) ( ) , 0,1,2,..., 1i i if x p x for x x x i k

    ( ) ( )

    1 1 1( ) ( ), 0,1,2,..., 2, 0,1,2,..., 1j j

    i i i ip x p x i k j d

    ( )ip x d各 は 次の多項式

    3次シュプライン関数による補間

    approx(x, y, xout=,method="linear",n=50, rule=1, f=0)

    1次シュプライン関数による補間、つまり線形補間

  • 2010/1/15 15

    (3次)平滑化シュプライン

    2 2

    1

    ( ( )) ( ( )) minn

    i if

    i

    PRESS y f x f t dt

    となるような3次区分多項式 を平滑化関数とする.

    f

    は平滑化パラメータ(smoothing parameter)

    と呼ばれる.

    smooth.spline(x, y, w = , df = ,

    spar = 0, cv = F, all.knots = F, df.offset = 0, penalty = 1)

    :

    :

    df

    spar

    等価自由度

  • 2010/1/15 16

    等価自由度

    線形平滑化法(lo, s)に特有な量

    1

    ˆ ( ) ( , )n

    i i

    i

    f t S t x y

    t yに関しては非線形であるが, に関しては線形

    1ˆ ˆ ˆ( )T TX X X X X y β ε y ε

    1( ( ) ) 1, :T Ttr X X X X p p  説明変量の数

    ( ) 1 df tr S :等価自由度

    { ( , ), 1 , }i jS S x x i j n

    平滑化行列

  • 2010/1/15 17

    GAM用の、モデル式中で平滑化の種類を指定するための関数

    lo( . . ., span=0.5, degree=1)

    s(x, df =4, spar=0)

    :

    :

    df

    spar

    等価自由度

    :

    :

    span U

    degree

     データの何割を近傍 とするか

    局所多項式の次数

    0 ,spar

    df

     が でなければこれが優先され

    0ならば が優先される。

  • 2010/1/15 18

    bs(x, df, knots, degree=3, intercept=FALSE, Boundary.knots)

    knots: 内節点の位置をベクトルで与えるdf: これが与えられれば,df-degree 個の節点が,各区間に入るデータ数が等しくなるように選ばれる.

    両方とも省略したときは,内節点はなし.

    Bシュプラインと名前が付いているが,特別な区分多項式ではなく,計算精度を確保するため,シュプラインを基底関数の線形結合で表すので,この名前が付いている

    節点を指定して、スプライン関数をモデル式中で平滑化関数として用いる

    Bシュプライン

  • 2010/1/15 19

    ns(x, df, knots, intercept=F, Boundary.knots)

    両端点を越えたところで線形という制約を課した3次区分多項式

    定めなければならないパラメータを一つづつ減らすことができる,

    内部節点を2つ多くとっても残差の自由度は変わらない(利点)

    自然シュプライン

  • 2010/1/15 20

    4つの平滑化関数の使い分け

    • 局所回帰,平滑化シュプライン

    –明確な節点(変化点)を想定できないとき

    –平滑度を大域的に押さえたいなら後者

    • Bシュプライン,自然シュプライン

    –明確な節点(変化点)(の存在)が想定できる

    –データの範囲外で線形が自然なら後者