« 読了: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ではもっともっと柔軟なモデルが組めるので使うがよろしい。
さらなる課題:モデルの比較をどうするか。非定常時系列モデルをどうやって実現するか(共変量をいれる;時変効果をいれる)。時変する潜在クラスと時変しない潜在クラスの両方を入れる。などなど。
... いやあ、眠かった。ふらふらになりながら読了。事例をほぼ全部スキップしてしまったが、必要になったらコードと一緒に勉強する、ということで。
論文:データ解析(2015-) - 読了:Asparouhov, Hamaker, & Muthen (2017) ものどもひれ伏せよ、これが動的潜在クラス分析だ