Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
2016年4月26日@統計モデリング
担当:田中冬彦
統計モデリング第三回配布資料
文献:A. J. Dobson and A. G. Barnett:
An Introduction to Generalized Linear Models. 3rd ed.,
CRC Press.
J. J. Faraway:
Extending the Linear Model with R.
CRC Press.
配布資料のPDFは以下からもDLできます. 短縮URL http://tinyurl.com/lxb7kb8
3.1 分析例
ガラパゴス諸島の29の各島ごとのカメの種類 (NS)は2~444種類.
種類に影響を与える要因にはどのようなものがあるだろうか?
考えてみよう
NS=Number of species, 島で観測されたカメの種類
galapagos 各島ごとのカメの種類(サンプルサイズ29)、島の地理情報
ここでの分析の目標
1つの島でのカメの種類は上の5つの要因からどのように決まっていると考えられるか
> galapagos
NS Area Anear Dist DistSC Elevation
Baltra 58 25. 09 1.84 0.6 0.6 NA
Bartolome 31 1.24 572.33 0.6 26.3 109
Caldwell 3 0.21 0.78 2.8 58.7 114
実際のデータ(2/2)
Dist= 一番近い島との距離 [km], DistSC=Santa Cruz島からの距離 [km],
Area= 島の面積 [hr], Anear = 一番近い島の面積 [hr],
Elevation = 島の標高 [m]
散布図
> pairs(gala.cor); NS
0 2000 4000 0 500 1500
0100
300
02000
4000
Area
Dist
010
20
30
40
0 100 300
0500
1500
0 10 20 30 40
Elevation
はずれ値?
散布図をみると、Areaでひとつでかいのが目立つ
→ Isabera island
散布図
Chap. 3: データは主にFarawayから
Google map から転載
面積 (Area) の、はずれ値!
gala.test = galapagosデータの一部を削除 (説明の都合含む)
加工後のデータ
> gala.test
NS Area Anear Dist DistSC Elevation
Bartolome 31 1.24 572.33 0.6 26.3 109
Caldwell 3 0.21 0.78 2.8 58.7 114
Champion 25 0.10 0.18 1.9 47.4 46
....
Santa_Maria 285 170.92 0.10 2.6 49.2 640
Tortuga 16 1.24 17.95 6.8 50.9 186
Wolf 21 2.85 2.33 34.1 254.7 253
上のデータについてまずは線形モデルであてはめてみる
NS
0 200 600 0 500 1000 1500
0100
300
0200
600
Area
Dist
010
20
30
40
0 100 300
0500
1000
1500
0 10 20 30 40
Elevation
線形モデルでむりやり解析
線形回帰
> gala.lm.res <- lm(NS~. , data=gala.test);
線形モデル
),0(~ 2 Nii
j
ijji xY
5
1
あてはめた値(Fitted Value)
5
1
ˆˆˆj
ijji xy
,290.0ˆ,0667.0ˆ,285.0ˆ,6.29ˆ321
144.0ˆ,133.0ˆ54
22,,2,1 i
R プログラム例
線形モデルでの残差プロット(1/2)
あてはめた値(Fitted Value)
残差 (Residuals)
ii yy ˆ
5
1
ˆˆˆj
ijji xy
モデルが正しいなら, 残差は平均0、分散一定の正規分布から発生しているようにみえるはずだが・・・
回帰式は6次元なので図示できない→ 残差プロットでモデルのよさを検討
yy ˆ
y0 100 200 300 400
-50
05
01
00
Galapagos Tortoise
Fitted
Re
sid
ua
ls
> plot(predict(gala.lm.res), residuals(gala.lm.res), xlab="Fitted", ylab="Residuals", main="Galapagos Tortoise" );> abline(h=0, col="red");
R プログラム例
実際の残差 (Residuals)と正規乱数との比較
yy ˆ
y0 100 200 300 400
-50
05
01
00
Galapagos Tortoise
Fitted
Re
sid
ua
ls
> var.res <- mean(residuals(gala.lm.res)^2);> residual.sim <- rnorm(22, sd=sqrt(var.res)); # sd= 40.9 > plot(predict(gala.lm.res), residual.sim, ylim=c(-60,60), xlab="Fitted", ylab="Residuals(Ideal)", main="Galapagos Tortoise" )> abline(h=0, col="red");
i
R プログラム例 (右上図)
y0 100 200 300 400
-60
-40
-20
02
04
06
0
Galapagos Tortoise
Fitted
Re
sid
ua
ls(I
de
al)
線形モデルでの残差プロット(2/2)
3.2 ポアソン回帰モデル
線形モデルの問題点
NS=Number of species, 島で観測されたカメの種類→ そもそも離散値 (Count data; 0,1,2,....,n,...)
線形モデルの限界
残差分析の結果→ 分散が一定とはいいがたい(モデルが不適切であることを示唆)
* 一般にAICや検定統計量の計算以前に残差はチェック(相関, 等分散 etc.)
ポアソン回帰モデル(一般化線形モデルのひとつ)を使ってみよう!
【復習】ポアソン分布
ポアソン分布
)(Var][E YY
)(~ PoY
カウントデータ (0,1,2,..., )の分布としてよく使われる
例: 1日, 一か月あたりの交通事故の件数;一定時間に銀行などの窓口にやってくる人の数
Y ポアソン分布にしたがう確率変数
)0(YP
)1(YP
)( yYP!
)|(y
eypy
e
e
ポアソン回帰モデル(1/2)
一般のポアソン回帰モデル
p
j
ijji x1
log iiY ][E
)(~ ii PoY
説明変数の意味
ni ,,1
1,0jx (男・女, 喫煙・喫煙なし, etc.)
jex
x
j
j
)0(
)1(
説明変数が連続量でも同様に β を解釈できる.
他の条件が同じ場合
ポアソン回帰モデル
5
1
logj
ijji xiiY ][E
)(~ ii PoY
あてはめた値(Fitted Value)
5
1
ˆˆˆlogj
ijji x
,1000.7ˆ,1026.5ˆ,1026.5ˆ,48.3ˆ 3
3
4
2
4
1
3
5
3
4 1041.2ˆ,1055.4ˆ
ポアソン回帰モデル(2/2)
ポアソン回帰モデル
22,,2,1 i
R プログラム例
> gala.glm.res <- glm(NS~. , family=poisson, data=gala.test);
ポアソン回帰の残差
線形モデル
→ 残差 はモデルが正しければ等分散
),0(~ 2 Ny
iiy
今のモデル(ポアソン回帰)
→ 残差 はモデルが正しくても, 分散は変化iiy
iiiY )(Var
Response residuals
Deviance residuals
)ˆˆ/log(2)ˆ,( iiiiiiii yyyydd
iiiDR dysignr )ˆ(
iiRR yr
残差の扱い
>plot(predict(gala.glm.res, type="link"), residuals(gala.glm.res, type="response"), xlab=expression(hat(log(mu))), ylab="Response Residuals", main="Galapagos Tortoise");
Response residuals
iiRR yr
3.0 3.5 4.0 4.5 5.0 5.5 6.0
-10
0-5
00
50
10
01
50
Galapagos Tortoise
log^
Re
sp
on
se
Re
sid
ua
ls
5
1
exp)(Varj
jijiii xY
ポアソン分布の分散
ポアソン回帰の残差プロット(1/3)
)ˆlog(
R プログラム例
# residuals(XXX, type=“response”), residuals(XXX, type=“deviance”)を用いて計算
ポアソン回帰の残差プロット(2/3)
そのままのスケールだと, 左によってしまっている→ log (mu) を横軸にとって残差プロットする
> plot(predict(gala.glm.res, type="response"), residuals(gala.glm.res), xlab=expression(hat(mu)), ylab="Deviance Residuals", main="Galapagos Tortoise");>
Deviance residuals
)ˆˆ/log(2)ˆ,( iiiiiiii yyyydd
iiiDR dysignr )ˆ(
100 200 300 400
-50
51
0
Galapagos Tortoise
^
De
via
nce
Re
sid
ua
ls
R プログラム例
DRr
特徴的なパターンは見つからない (線形モデルに比べて当てはまりが良い)
> plot(predict(gala.glm.res, type=“link"), residuals(gala.glm.res), xlab=expression(hat(log(mu))), ylab="Deviance Residuals", main="Galapagos Tortoise");>
3.0 3.5 4.0 4.5 5.0 5.5 6.0
-50
51
0
Galapagos Tortoise
log^
De
via
nce
Re
sid
ua
ls
ポアソン回帰の残差プロット(3/3)
)ˆlog(
DRr
R プログラム例
説明変数, 目的変数の非線形変換
補足:さらなる改良
ポアソン回帰に限らず, X,Y をいったん非線形変換することでフィットがよいモデルを見つけることは可能(試行錯誤が必要)
→ ただし, その場合、モデルの解釈ができなくなる,
log, 多項式, スプライン関数 など
p
j
ijji x1
log )(~ ii PoY
p
j
ijjji xs1
)(log
)( jj xs
今回のデータのよりよいモデル → See, Chap.6 in Faraway.
ポアソン回帰の注意点(1/2)
オフセット項(Offset term)を用いたモデル化
ある年における, 各村ごとの事故などによる死亡者数と村の人口、経済指標 etc.
p
j
ijji
p
j
ijjii xNxN11
logexpexp
オフセット項 (係数は既知)
*詳細は文献を参照
データ例(架空)
八つ墓村 4 128 134
犬神村 3 256 98
鬼首村 2 234 102
・・・・
村の経済指標(貧しいか)が死亡率に影響するか分析したい→ 死亡率ではポアソン回帰はできない
)(~ ii PoY
しかし, 実際のデータは分散が大きくみえることも多い
本来, ポアソン分布は期待値と分散は一致
Overdispersion
iii YY ][E)(Var
*詳細は文献を参照
1. 負の二項モデル (negative binomial model)
2. (GLMではなくなるが)
ゼロ過剰モデル (zero-inflated model)
/ ゼロ切断モデル (zero-truncated model)/ hurdle model
よくある対処法
ポアソン回帰の注意点(2/2)
3.3 一般化線形モデル
Yは確率変数であり, X を固定して測定, 観測しても値はバラツクことを暗に仮定
Y: 目的変数 (例: カメの種類の数, 出生時の体重, 家賃, Oリングの破損率 etc. )
X: 説明変数 (例:島の面積, 距離, 高度, 体内にいた期間, 徒歩距離, 温度 etc.)
ここまでの例をふりかえる
目的変数と説明変数の関係
Yの期待値 は説明変数 X を固定すると一つに定まる!][E Y
p
j
ijji x1
)log(
前回 (線形モデル)
p
j
ijji x1
今回 (ポアソン回帰モデル)
Y: 目的変数 (例: カメの種類の数, 出生時の体重, 家賃, Oリングの破損率 etc. )
X: 説明変数 (例:島の面積, 距離, 高度, 体内にいた期間, 徒歩距離, 温度 etc.)
リンク関数
Yの期待値 ][E Y
一般化線形モデルでのX, Yを関連付ける式
リンク関数
p
j
ijji xg1
)(
)(g
リンク関数は自由に定めてよいが, Yの分布によって自然なものがいくつかある.
次にYの分布も一般化する
多くの確率分布が指数型分布族になっている.
Yの確率密度関数(もしくは確率分布)が以下の形でかける時、(1変数の)指数型分布族 (Exponential Family)という.
指数型分布族 (1/2)
))()(exp()()()|( byatysyp
))()()()(exp( ydcbya
Y 確率変数 ),,( 1 p パラメータ
Canonical form
))(exp()()(~)|( bztzszp
Natural Parameter
)(: b
0)(,0)( tys
))()(exp()()()|( byatysyp
))()()()(exp( ydcbya
例: ポアソン分布
0)(,0)( tys
!)|(
yeyp
y
))!log(()(logexp
)!log(log
yy
eee yy
)!log()(,)(,log)(,)( yydcbyya
指数型分布族 (2/2)
例1: )1,(N m2)(
2
1
2
1)|(
my
emyp
平均 m, 分散 の正規分布(ガウス分布)12
)2log(
2
1
22exp
22
my
ym
二項分布 (n回の試行, nは固定) ny ,,2,1,0
yny qqy
nqyp
)1()|(
y
nqn
q
qy log)1log(
1logexp
考えてみよう
例2:
GLMでは共変量(説明変数)で以下を仮定
各々, 同じ指数型分布族に従うとき(1変数の)一般化線形モデル(Generalized Linear Models; GLM)という.
一般化線形モデル (1/2)
))()()(exp()|( iiiiii ydcbyyp
nYY ,,1 独立な確率変数
ここで興味あるパラメータは
n
i
i
n
i
i
n
i
ii
n
i
ii ydcbyyp1111
)()()(exp)|(
iiY ][E
p
j
ijji xg1
)(
i
i
ey
ypi
y
iii
!
)()|(
ポアソン回帰の例
p
j
ijji x1
)log(
以下の対数尤度関数を について数値最大化(最尤推定)
n
i
i
n
i
ii
n
i
i
n
i
ii yyyp1111
!loglog)|(log
p ,,1
※GLMではプログラムによる数値解法が前提になっている
ni ,,2,1
一般化線形モデル (2/2)
パラメータの推定方法
よくある分布とリンク関数ならRの glmコマンドで分析できる
まとめ:一般化線形モデル
Y: 目的変数 (例: カメの種類の数, 出生時の体重, 家賃, Oリングの破損率 etc. )
X: 説明変数 (例:島の面積, 距離, 高度, 体内にいた期間, 徒歩距離, 温度 etc.)
1.Yの分布
iiY ][E
一般化線形モデル
は リンク関数
p
j
ijji xg1
)( )(g
をみたす 指数型分布族
2.X, Yを結び付ける関係式
(あ)
(い)
・ リンク関数 を自由に定められる(い)
・Yの分布を 指数型分布族 の範囲で自由に定められる(あ)
線形モデルとの違い
分布辞典
補足:高度な確率分布の扱い
1変数の連続分布に関する辞典N. L. Johnson, S. Kotz, and N. Balakrishnan: Continuous Univariate
Distributions, Volume 1 (Wiley Series in Probability and Statistics)
1変数の離散分布に関する辞典N. L. Johnson, A.W. Kemp, and S. Kotz: Univariate Discrete Distributions
(Wiley Series in Probability and Statistics)
(*多変数もある)
*しばしば, 無限級数表示, 積分表示などを用いる.