elsur.jpn.org >

« 読了:Scott & Varian (2014) ベイジアン構造時系列モデリング | メイン | 読了:Asparouhov, Hamaker, & Muthen (2017) ものども跪け、これがMplus8の新機能「動的SEM」だ »

2017年8月19日 (土)

Asparouhov, T., Hamaker, E.L., Muthen, B. (2017) Dynamic latent class analysis. Structural Equation Modeling. 24, 257-269.

 哀れなデータ解析ユーザの諸君、Mplusがこのたび実装した時系列データ分析の世界へとご招待しよう。その名も動的潜在クラス・モデルだ。という論文。正直、そんなややこしい世界にはご招待してほしくないんですが。できればずっと寝ていたいんですが。

 いわく。
 [前置きをはしょって...]
 このモデリングの枠組みを提出する目的は:(a)異なる状態 (いわゆる潜在クラス、レジーム)のあいだでのスイッチングを説明する潜在マルコフモデル(隠れマルコフモデル)をつくりたい。(b)個人の遷移確率をランダム効果としてモデル化したい。(c)時系列分析とそのマルチレベルへの拡張を通じて、状態のあいだの動的な関係性を調べたい。
 すでに以上のうち2つの組み合わせは存在する。レジーム・スイッチング状態空間モデルとか、個人の遷移確率がランダムな隠れマルコフモデルとか。でも3つの組み合わせははじめて。
 [そのほか、まだまだイントロが続くけど、はしょって...]

 まずはMplusが実装しているDSEMフレームワークについて説明しよう。詳細はAsparouhov et al. (2016, Mplus Tech. Rep.) を参照のこと。
 個人$i$の時点$t$における観察ベクトルを$Y_{it}$とする。これをwithinレベルとbetweenレベルに分割して
 $Y_{it} = Y_{1,it} + Y_{2, i}$
いずれも正規分布に従う確率ベクトルとみなす。
 betweenレベルのほうは次のようにモデル化する。
 $Y_{2,i} = v_2 + \Lambda_2 \ \eta_{2,i} + \epsilon_{2,i}$
 $\eta_{2,i} = \alpha_2 + B_2 \ \eta_{2,i} + \Gamma_2 x_{2,i} + \xi_{2,i}$
 withinレベルのほうにはラグがはいって、
 $Y_{1,it} = \sum_{l=0}^L \Lambda_{1,i,l} \ \eta_{1,i,t-l} + \epsilon_{1,it}$
 $\eta_{1,i,t} = \alpha_{1,i} + \sum_{l=0}^{L} B_{1,i,l} \ \eta_{1,i,t-l} + \Gamma_{1,i} x_{1,it} + \xi_{1,it}$
[以下、Asparouhov et al. (2016) の簡略版的説明。省略]

 これを混合モデルへと拡張します。
 withinレベルの潜在クラス$S_{it}$を導入する。記号を$C$じゃなくて$S$にしたのは、時系列の文脈では「潜在状態変数」と呼ばれることが多いから。
 $[Y_{1,it}|S_{it} = s] = v_{1,s} + \sum_{l=0}^L \Lambda_{1,l,s} \ \eta_{i,t-l} + \epsilon_{it} $
 $[\eta_{i,t} |S_{it} = s] = \alpha_{1,s} + \sum_{l=0}^{L} B_{1,l,s} \ \eta_{i,t-l} + \Gamma_{1,s} x_{it} + \xi_{it}$
[記法の変化に注意。DSEMとのちがいをメモしておくと、(1)観察方程式にクラス別切片$v_{1,s}$が追加され、状態方程式の切片が個人別からクラス別になった。(2)観察方程式・状態方程式の係数が、個人別係数$\Lambda_{1,i,l}, B_{1,i,l}$からクラス別係数$\Lambda_{1,l,s}, B_{1,l,s}$に変わった。添え字の順序が変わった理由はよくわからない。(3)潜在変数、観察誤差、共変量、状態誤差の添え字から$1$がとれ、たとえば$\eta_{1,i,t}$から$\eta_{i,t}$になった。理由はわからない]
 $S_{it}$の分布は
 $\displaystyle P(S_{it} = s) = \frac{\exp(\alpha_{is})}{\sum_{s=1}^K \exp(\alpha_{is}) }$
ただし、$\alpha_{is}$は正規ランダム効果で、識別の都合上$\alpha_{iK}=0$とする。これは$\eta_{2,i}$の一部として含まれている。[←頭のなかが疑問符でいっぱいになったが、この$\alpha_{is}$は、betweenレベルの構造方程式の切片$\alpha_2$でもwithinレベルの構造方程式の切片$\alpha_{1,s}$でもなく、ここで初出の確率変数らしい。時間の添え字がついていないのは誤植かと疑ったが、どうやらこれで正しい模様。下記参照]
 [以下、 $\alpha_{is}$ の推定の話がしばらく続く。よくわからんので省略]

 以上のモデルには欠点がある。クラスのなかでは自己回帰をモデル化できてるけれども、潜在クラスの自己相関をモデル化できていない。つまり、上の$P(S_{it}=s)$のモデルをみるとわかるように、隣り合う二つの時点のあいだで個人が属するクラスが、$a_{is}$のもとで条件つき独立になっている[←そう!そうですよね! だから$\alpha_{is}$が時間不変なのっておかしいと思ったのだ]。これはちょっと現実的でないので、あとで隠れマルコフモデル(HMM)を導入して手直しする。

 さて、ここでちょっと話かわって、マルチレベル混合モデルの事例紹介。いずれもランダム効果の数が多くて、理論的にはML推定できるけど、計算量的にはMCMCでないと歯が立たないものばかりである。

 事例1, データがクラスタ化されていて測定変動性がある潜在クラス分析。
 [従来のロバストML推定をディスるくだりがあって... ベイジアン化する前からのMplusユーザとしては、自分がディスられているようでちょっとつらい...]
 例として、3クラス, 2値項目8個のモデルを考える。クラスタ$j$の個人$i$の項目$p$の得点$U_{pij}$について
 $P(U_{pij} = 1 | C_{ij} = k) = \Phi(\tau_{pk} + \epsilon_{pj})$
とする。$\tau_{pk}$は閾値, $\epsilon_{pj}$はクラスタ間の測定変動ね。
 で、クラス所属確率を
 $\displaystyle P(C_{ij} = k) = \frac{\exp(\alpha_k + \alpha_{jk})}{\sum_{j=1}^K \exp(\alpha_k + \alpha_{jk}) }$
とする。識別のため、$\alpha_K, \alpha_{jK}$は0とする。
 このモデル、ML推定だと、 $\epsilon_{pj}$が8項目, $ \alpha_{jk}$が2クラス、計10次元の数値積分が必要になる。でもベイジアンならあっという間さ。

 事例2. 制約のない2レベル混合モデル。[パス]
 事例3. クラスタ別の遷移確率を持つマルチレベル潜在遷移分析。[これもパス。本題に入るまで体力を温存したい]

 隠れマルコフモデル(HMM)を導入します。
 HMMは測定モデルとマルコフ・スイッチング・モデルからなる。測定モデルは普通の混合モデルと同じで、$P(Y_t | C_t)$のモデル。マルコフ・スイッチング・モデルは遷移行列$P(C_t | C_{t-1})$のモデル。1レベルモデルなら、この遷移行列自体をパラメータとみてモデル化できる(自然共役事前分布としてディリクレ分布が使える)。周辺確率$P(C_t)$はパラメータでないことに注意。
 見方を変えると、HMMというのは1次自己回帰モデルである。云々...
 [以下、パラメータ推定方法の話とシミュレーションが続く。パス]

 お待たせしました。動的潜在クラスモデル(DLCA)の登場です。
 DLCAとは、ここまでに紹介した3つのアプローチの統合だ。(1)マルチレベルとSEMをあわせてマルチレベルSEM、さらに混合モデルをあわせてマルチレベル混合モデル、これに潜在遷移モデルをあわせてマルチレベル潜在遷移モデル。(2)時系列をSEMをあわせてDSEM、これに混合モデルをあわせて混合DSEMモデル。(3)HMM。
 まずは
 $Y_{it} = Y_{1,it} + Y_{2, i}$
withinレベルのほうがクラスごとのDSEMモデルとなり
 $[Y_{1,it} | S_{it} = s] = v_{1,s} + \sum_{l=0}^L \Lambda_{1,l,s} \ \eta_{i,t-l} + \epsilon_{it}$
 $[\eta_{i,t} | S_{ot} = s] = \alpha_{1,i} + \sum_{l=0}^{L} B_{1,l,s} \ \eta_{i,t-l} + \Gamma_{1,s} x_{it} + \xi_{it}$
潜在クラス$S_{it}$はマルコフ・スイッチング・モデル。
 $\displaystyle P(S_{it} = d | S_{i,t-1} = c) = \frac{\exp(\alpha_{idc})}{\sum_{k=1}^K \exp(\alpha_{ikc})}$
betweenレベルは
 $Y_{2,i} = v_2 + \Lambda_2 \eta_{2,i} + \epsilon_{2,i}$
 $\eta_{2,i} = \alpha_2 + B_2 \eta_{2,i} + \Gamma_2 x_{2,i} + \xi_{2,i}$

 事例1. 2クラスDLCA。[パス]
 事例2. マルチレベル・マルコフ・スイッチング自己回帰モデル。[パス]
 事例3. 潜在因子のレジーム・スイッチング。[パス]

 Mplusではもっともっと柔軟なモデルが組めるので使うがよろしい。
 さらなる課題:モデルの比較をどうするか。非定常時系列モデルをどうやって実現するか(共変量をいれる;時変効果をいれる)。時変する潜在クラスと時変しない潜在クラスの両方を入れる。などなど。

 ... いやあ、眠かった。ふらふらになりながら読了。事例をほぼ全部スキップしてしまったが、必要になったらコードと一緒に勉強する、ということで。

論文:データ解析 - 読了:Asparouhov, Hamaker, & Muthen (2017) ものどもひれ伏せよ、これが動的潜在クラス分析だ