1. 東京大学 医学系研究科
M1 倉橋一成
3.2 カテゴリカルデータの例
欠測前の事象の確率を推定する
ノンパラメトリック bootstrap と MI を比較するために,(3.1)~(3.7)をノンパラメト
リックに解釈する.そのため,以下のようなカテゴリカルデータを想定する.
・ X j ∈X
= { X ( x=
), x 1,..., 4} ,
=X (1) (= ( male, right ) , X ( 3) ( female, left ) , X ( 4 ) ( female, right )
male, left ) , X ( 2 ) = =
・ O j=
∈O {O (=
o) , o 1,..., 6} ,
=O (1) (= ( male, right ) , O ( 3) ( female, left ) , O ( 4 ) ( female, right ) ,
male, left ) , O ( 2 ) = =
=O ( 5) (= ( female,? )
male,? ) , O ( 6 )
これは性別と利き腕を示したものであり,X が完全データ(潜在変数)で O が欠測を含む
データ(観測値)である.そのため,X と O の集合関係は次のようになる.
{ X (1) , X ( 2 )} = {O (1) , O ( 2 ) , O ( 5)} , { X ( 3) , X ( 4 )} = {O ( 3) , O ( 4 ) , O ( 6 )}
また j 番目の人の潜在変数と観測値のペアを次のように簡単に表現する.
yj = ( xj ,oj )
さらに x と o が同一のものである,又は同一のものを指している可能性がある場合に 1 を
とる指示関数 δ ( x, o ) を用意する.つまりこの指示変数は,y が取り得ることのできる x と
o のペアで 1 となる.
δ ( x, o )
= 1 if x ∈ o
= 0 if x ∉ o
具体的には δ (1,5 ) 1,= 1, δ (1, 6 ) 0,= 0 などである.さらに欠測メカニズ
= δ ( 3, 6 ) = δ ( 3,5 )
ムを表す関数を設定する.
= Oj (
c ( o x ) Pr= o= x
Xj )
この関数は潜在変数が x である際に o が観測される確率を表しているので,観測確率又は
欠測確率を表現していることになる.以下に全例を挙げる.
1
2. 東京大学 医学系研究科
M1 倉橋一成
( ) ( ) ( ) ( )
観測確率: c 11 , c 2 2 , c 3 3 , c 4 4
( ) ( ) ( ) ( )
欠測確率: c 5 1 , c 5 2 , c 6 3 , c 6 4
確率 0:その他の組み合わせ
つまり関数 c は,指示関数が 1 であると観測確率又は欠測確率を表し,指示関数が 0 であ
る場合は確率が 0 となる関数である.また各 x,o が取る確率を f,g で表す.式で書くと次
のようになる.
Pr ( X= x= f x , Pr ( O= o= g o
j ) j )
よって先に述べた c を用いて,f と g の関係を以下のように記述することができる.
go = ∑ c ( o x ) f x
x
これを観測値と欠測に分けると次のようになる.
= c=
観測: g o ( o x ) f x ( x, o )
for ( {(1,1) , ( 2, 2 ) , ( 3,3) , ( 4, 4 )}) ,
欠測: g o c= c (o (
( o x1 ) f x1 + x2 ) f x2 for ( x1 , x2 , o ) {(1, 2,5) , ( 3, 4, 6 )})
また、以上の関係を図示すると次のようになる.
= =
Pr( x 1) f1 Pr(= 2) f 2
x =
X(1) X(2)
O(1) O(2)
Pr(o 1) g1 c (11) f1
= = = Pr(= 2) g= c ( 2 2 ) f 2
o = 2
O(5)
Pr(o 5) g= c ( 5 1) f1 + c ( 5 2 ) f 2
= = 5
さらに,以上を行列で表現すると以下のようになる.
g = fC
この f が MI でのηの役割を担っている.行列表現を要素で書き下すと次のようになる.
2
3. 東京大学 医学系研究科
M1 倉橋一成
c (11) c ( 2 1) c ( 6 1)
c (1 2 )
( g1 ,..., g6 ) = ( f1 ,..., f 4 )
c (1 4 ) c (6 4)
ここでベイズの定理より導かれる以下の条件付き確率を考える.
c (o x) fx
df ( x o ) =
go
この d を用いて f と g の関係をベクトルで表現すると以下のようになる.
f = gDT
f
この行列を要素で書き下すと次のようになる.
c (11) f1 c (1 2 ) f 2 c (1 4 ) f 4
df (11) df ( 2 1) df ( 4 1) g1 g1 g1
c 21 f
( ) 1
df (1 2 )
( f1 ,..., f 4 ) (=
g1 ,..., g 6 ) ( g1 ,..., g6 ) g 2
df (1 6 ) df ( 4 6 )
c 61 f
( ) 1
c ( 6 4) f4
g
6 g6
C は f に依存していないと仮定すると,D は f に依存しているので,この表現は先の行列表
現とは同値ではない.ここで,観測値ベクトル o = ( o1 ,..., on ) に応じた経験確率ベクトルを
g = ( g1 ,..., g 6 ) とすると,それぞれの経験確率は以下のように表せる.
ˆ ˆ ˆ
# {oi = O ( k )}
gk =
ˆ
n
つまりこれは,全観測値のうち o1 ~ o6 が観測されている割合である.さらにこの経験確率
をもとにして f の推定を以下のように行う.
f = gDT
ˆ ˆ
ˆ
f
しかし,D が c の関数になっているのでこの計算は困難である.そのため ignorable な欠測
過程を仮定すると,以下の p と先の d が等しくなる.
3
4. 東京大学 医学系研究科
M1 倉橋一成
δ ( x, o ) f x
pf ( x o ) =
∑ δ ( x ', o ) f x '
x'
ignorable な欠測過程では,x の値に限らず欠測確率は等しい.そのため欠測確率 c が等し
くなる.
c ( 5 1) c= c= c= p
= (5 2) ( 6 3) ( 6 4 )
この欠測確率を p とおくと,d は以下のようになる.
c ( o x1 ) f x1 c ( o x1 ) f x1 pf x1 f x1
f ( x1 o )
d= = = = = pf ( o x1 )
go c ( o x1 ) f x1 + o x2 ) f x2 pf x1 + pf x2
c( f x1 + f x2
(
( x1 , x2 , o ) = {(1, 2,5 ) , ( 2,1,5 ) , ( 3, 4, 6 ) , ( 4,3, 6 )}
for )
また, と o が上記以外の組み合わせでは p と d が欠測過程に寄らず等しくなるのは自明で
x
ある(欠測していない組み合わせでは p=d=1 であり,それ以外では p=d=0 である).よっ
て ignorable な欠測では D を P で置き換え,以下のように表現することができる.
f = gPfˆT
ˆ ˆ
この関係により,g の経験確率から f の推定値(MLE)を得ることができる.
推定された確率を用いた MI と bootstrap の比較
ABB 法を用いた MI とノンパラメトリック bootstrap を比較する.bootstrap 法は,単純
に bootstrap サンプルによって MLE を推定する.ABB 法は bootstrap サンプルによって x
の条件付き確率 p を推定し,この p から仮想的な実現値 x**を発生させる.この操作は x
が連測量であれば乱数を発生させることになるのだが,今回はカテゴリカルデータの例な
ので確率ベクトル p によるリサンプリングに相当する.つまりこれは bootstrap であると解
釈でき,カテゴリカルデータの場合の ABB 法は 2 回の bootstrap によって構成されている
と考えることができる.そのため ABB 法に比べてノンパラメトリック bootstrap 法の方が
単純であり目的パラメータを直接推定している.しかし ABB 法はパラメトリックな問題や
事前情報をベイズ流に用いる際に有用であると思われる.
MI を用いる際の一般的な仮定として,「欠測が無ければ目的パラメータに関する推測は
簡単である」というものがある.目的パラメータを得る際には積分計算を行うことになる
が,パラメータが高次元である場合は,欠測が無い場合でも積分計算は困難になる.その
点 BCa 法や ABC 法は自動的に周辺をとることになるのでその心配はない(?).さらにベ
イズ流の解析では事前分布に無情報事前分布を仮定することが多いが,これもパラメータ
が多いと無情報事前分布によってバイアスが生じることが知られている(Bernardo and
Berger 1991, Tibshirani 1989).しかし次の 4 章のような方法を用いると,簡単で正確な
4
5. 東京大学 医学系研究科
M1 倉橋一成
結果を得ることができる.
4. MI bootstrap
MI の前提として,iteration によって計算された事後分布が適切でなければいけないが,
高次元パラメータの場合はこの前提を満たすことが難しい.そのためこの問題を解消する
ことができる bootstrap 法を紹介する.
θ x (α ) を,データ x に基づいたθのα信頼限界とすると,θの信頼密度(確率密度)は
以下のようになる.
dθ x ( α )
π † (θ x ) = 1
dα
これはαがθの累積密度を表しているため,αをθで微分するとθの確率密度になり上の
様に表現できる(確率密度を積分すると累積密度になるため)
.図で表現すると次のように
なる.
α :累積確率
1
dα dθ
π
= = 1 :θの密度関数
dθ dα
0.5
0 θˆ θ
この確率密度を用いてパラメータの事後分布を得る方法が ABC 法による MI bootstrap 法
である.
図 5 の左は MI bootstrap 法の結果の一部,右の実線は MI 法の結果を,破線は ABC 法
の結果を示す.
5. ABC 法
ABC 法と ABCq 法
BCa 法の欠点は bootstrap サンプリングを行うために何千回ものコンピュータ計算をし
5
6. 東京大学 医学系研究科
M1 倉橋一成
なければいけないことであった.そのため,bootstrap サンプリングを行わなくても
bootstrap 信頼区間を近似的に得ることができる方法が ABC(approximate bootstrap
confidence)法である.これは指数型分布族のパラメータを求る際の微分計算によって導出
されたものである(詳細は DiCiccio and Efron 1992)
.ABC 法には 2 種類の計算方法があ
り,それぞれ“ABC”と“ABCq”と呼ばれる.これら ABC 法と通常の信頼区間との大き
な違いは,second-order accuracy 又は first-order accuracy である点なので ABC 法の方が
より正確な信頼区間が得られると思われる.
ABC の計算方法を理解するために最も重要な点は,パラメータの表現を観測値にかかる
T
1 1
重み(確率)を用いて表現する点である.例えば P = ˆ
0
,..., とすると,経験分布 G を
n n
0
得ることと得られた観測値に P で重みを付けることは同値であるため,パラメータを以下
のように表現することができる.
ˆ ˆ
G ( )
= t = T ( P0 )
θ
実際には T の引数が P ではない場合の計算を行わなくてはならないが,詳しい説明は後で
0
行う.
θは最終的に知りたいパラメータである.今回の例に照らし合わせると t や T は
「imputation→共分散行列の計算→その行列の最大固有値を得る」という操作に相当し,
計算の結果得られた最大固有値がθである.また表現上θを T P と表すこともある.この ( )
~
関数については後述する.
ここから ABC 信頼区間を得るために計算すべきものを列挙する(これらは Efron の教科
書より抜粋した)
.
n
T {(1 − ε ) P + ε ei } − T ( P
0 0
) , σˆ = n
t 2
1
1
2 ∑t 3
i
ti = lim ∑ , a = ⋅ n
i i =1
,
ε →0 ε i =1 n 2
6
32
∑ t i2
i =1
ε ε
( )
T (1 − ε )P + n 2 ⋅ σ t − 2T P + T (1 − ε )P − n 2 ⋅ σ t
0 0 0
ˆ ˆ
c = lim ,
ε →0 2
ε
Ti = lim T {(1 − ε )P + εei }− 2T (P ) + T {(1 − ε )P − εei } ,
n 0 0 0
b ∑ 2 , Ti
ˆ=
i =1 2n
ε →0 ε2
ˆ
γˆ = − c , z 0 = a − γˆ , zα = Φ −1 (1 − α ) , ei = ( 0,..., 0,1, 0,..., 0 )
b
σˆ
6
7. 東京大学 医学系研究科
M1 倉橋一成
ti はデルタ法によって求まる empirical influence function でり,a は BCa の時と同じく
( )
歪度を表す. b は θ = T P 0 を二階テイラー展開することによって求まる近似バイアスを
ˆ
ˆ { ˆ }
表す.γ は P :T ( P ) = θ の曲率を表すため,これが大きいと θ のバイアスが大きい. z0 は
ˆ
BCa の時と同じく bootstrap サンプルのバイアスを補正する項である.そのため BCa の際
の式 z0 = Φ
# θ* <θ
−1
ˆ ˆ { } でも求まるが,この計算のためには bootstrap サンプルが必要で
B
あるため,コンピュータ計算に負荷がかかる.その点 ABC 法では z0 も数式計算によって求
めることができるのでコンピュータ計算の負荷は格段に小さくなる.
( )
ここで, T P の説明を行う.
~
( )
T P の説明
~
これは引数ベクトル P を重みとして計算される最大固有値である.具体的な計算方法を以下
~
に書く.
∑∑ P {o − (ν + α + β i )} を最小にするパラメータを推定し,
n m
2
まず重み付き二乗和 ij i このパラ
~ i
i =1 j =1
メータをもとに欠側値を imputation する.Imputation を式で表すと次のようになる.
xij = ν + α i + β j
ˆ ˆ ˆ ˆ
この値をもとに,重み付き共分散行列を次のように計算する.
n n
Σ = ∑ P ( xi − µ )( xi − µ ) , µ = ∑ P xi
ˆ ˆ ˆ ˆ T ˆ ˆ
~ ~ i ~ i
i =1 i =1
そしてこの共分散行列の最大固有値が T P である. ( ) ~
最終的に次のような計算により 2 種の ABC 信頼区間が得られる.
以上の計算結果を基に,
ABCq(計算に必要なもの: θ , σ , a, z 0 , c )
ˆ ˆ
, ζ = λ + cλ2 , θ ABCq (1 − α ) = θ + σζ
w
w = z 0 + zα , λ = ˆ ˆ ˆ
(1 − aw) 2
7
8. 東京大学 医学系研究科
M1 倉橋一成
ABC(計算に必要なもの: θ , σ , a, z 0 )
ˆ ˆ
λδˆ
w = z 0 + zα , λ =
w
( )
,δ = t P0
ˆ , θ ABC (1 − α ) = T P 0 +
ˆ
σ
(1 − aw)2 ˆ
ここで,これらの計算をする際に核となる部分は以下のものである.
方法 1)
0.001 0 0.001
T 1 − P + ei − T ( P 0 )
n
ti = lim
n
,
ε →0 0.001
n
0.001 0 0.001 0.001 0 0.001
T 1 −
n
P + ( )
ei − 2T P 0 + T 1 − P − ei
Ti = lim
n n n ,
ε →0 2
0.001
n
0.001 0 0.001 0
T 1 − P +
0.001
( )
t − 2T P 0 + T 1 − P −
0.001
t
n n ⋅ n2 ⋅σˆ n n ⋅ n2 ⋅σˆ
c = lim 2
ε →0
0.001
n
実際に計算する際にはεにごく小さい値を代入すれば良いかと思われる(例えば上の方法
では 0.001/n を代入している)が,SAS によってプログラミングを行うと極端な結果とな
った.
結果 1)
α=0.05
σ a b c γ z0 w λ ξ ABCq
220.04 0.099 -632235 -27839991 27837118 -27837118 -27837119 -3.70E-06 -0.00039 633.16
α=0.95
σ a b c γ z0 w λ ξ ABCq
220.04 0.099 -632235 -27839991 27837118 -27837118 -27837116 -3.70E-06 -0.00039 633.16
しかし Efron は S のプログラム abcnon において次のように計算を行うようにプログラミ
ングしている.
8
9. 東京大学 医学系研究科
M1 倉橋一成
方法 2)
tp = P 0 +
T
0.001
n
( ei − P0 ) , tm = P0 − 0.001 ( ei − P0 ) ,
T
n
tp − tm
ti = ,
2 ⋅0.001 n
tp − 2T P + tm ,
Ti =
0
( )
(0.001 n )2
n
∑t i
2
ti
σ=
ˆ i =1
,δ =
n n 2σˆ
0.001 0.001
T P0 + ⋅ δ − 2T ( P 0 ) + T P 0 − ⋅δ
c= n n
2
ˆ
0.001
2σ ⋅
n
このような計算をおこなうように SAS でプログラミングすると結果は以下のようになった.
結果 2)
α=0.05
σ a b c γ z0 w λ ξ ABCq
220.05 0.10 -22.85 -0.03 -0.07 0.18 -1.47 -1.12 -1.16 377.68
α=0.95
σ a b c γ z0 w λ ξ ABCq
220.05 0.10 -22.85 -0.03 -0.07 0.18 1.82 2.70 2.47 1176.31
各信頼限界値
0.025 0.050 0.100 0.160 0.840 0.900 0.950 0.975
337 378 430 476 946 1043 1176 1304
方法 1)を用いて計算すると a=0.0985 となり Efron の結果と一致したが,c が大きくなり
すぎるために最終的な信頼限界値は妥当なものとならない.さらにαの値を変えても信頼
限界値はほとんど変わらない.しかし方法 2)を用いたプログラミングを行うと結果は妥当
なものとなった.a の値は Efron の結果と一致し,z0 も Efron の結果にほぼ等しい(Efron
は z0=0.19)
.z0 の微妙な差異は S と SAS の丸め誤差の違いであろうと考えている.さら
にバイアスを表している b も値が-22.85 となっており,bootstrap サンプルによって得られ
たバイアスを良く近似していることがわかる.
9
10. 東京大学 医学系研究科
M1 倉橋一成
MI bootstrap
MI bootstrap のアルゴリズムは以下のようになる.
∗( m )
1)欠測を含むデータ o を bootstrap サンプルする
∗( m ) ∗( m )
2)欠測を imputation し,平均ベクトル µ
ˆ と共分散行列 Σ
ˆ を推定する
∗( m ) ∗( m ) ( m)
3) µ
ˆ とΣ
ˆ をパラメータとする多変量正規分布から x を発生させる
( m)
4) x をもとに ABC 信頼区間を計算し,確率密度を得る
5)この操作を M 回 replicate し MI bootstrap 信頼区間を得る
以結 果 。。
下 。。。。
6. まとめ
bootstrap 法
imputation estimate
bootstrap
θ*
θ*
欠測を含む θ*
観測データ:o
bootstrap 欠測を埋めた パラメータ推定
サンプル:o* データ:x*
※推定されたパラメータの分布から直接推測を行う方法が nonparametric bootstrap 法
(first-order accurate)
※BCa 法は Z0 と a を使って信頼区間を補正する(second-order accurate)
※ABC 法は数値計算によって BCa 法と同等の信頼区間を得ることができる
(second-order accurate)
10