Follow @data_no_memo

メモ

個人的なメモです。他者にわかりやすく書くよりも未来の自分にわかりやすく書いています。なお、記事内容の正確さは保証できません。勉強中の身ですので、間違い等ご指摘頂けたら幸いです。

混合分布モデル・潜在クラス分析

今回は、潜在クラス分析について。

潜在クラス分析はクラスター分析ほど知名度が低いが、とても便利な分析手法。

なお、クラスター分析については以下の記事を参照。

abcxyzonetwothree.hatenablog.com

 

潜在クラス分析は、ある質的な変数の応答パターンを用いて、その応答パターンの背後にある質的なクラスへと回答者を分類する確率を求める分析手法である。

クラスター分析のイメージは、ある変数の関係から顕在的なクラスターへと回答者を分類する方法であるが、潜在クラス分析は、そのクラスターが潜在的に存在しているイメージ。

因子分析では、あるいくつかの変数からその背後にある変数を求めるイメージだが、潜在クラス分析ではあるいくつかの変数からその背後にあって回答者が分類されるクラスターを求めるイメージ。

 

よく潜在クラス分析が使用される例は、いくつかの政治に関する意識調査から、例えば「右翼」「左翼」「あいまい型」といったクラスに人々を分類するときに用いられたりする。

 

なお、社会学系の領域ではあまり明示的に言われることはないっぽいが、潜在クラス分析は混合分布を用いたクラスタリングの名義尺度verと考えると分かりやすい。

そこで、まずは潜在クラス分析の準備として混合分布モデルによるクラスタリングを考える。

 

混合分布によるクラスタリングでは、手元にある連続的な変数がいくつかの異なる確率分布から生成されていると仮定し、そのもともとの確率分布のパラメータを求める方法である

 

例えば、以下のような分布のデータを得られたとしよう。

 

f:id:abcxyzonetwothree:20190423100030p:plain
 

明らかにこれは2つの確率分布から導出されている。先に種明かしすると、これらは異なるパラメータを持つ正規分布2つから乱数を発生させている。色分けすると、以下のようになっている。

 

f:id:abcxyzonetwothree:20190423100045p:plain

すなわち、これは混合正規分布である。一般的に、混合正規分布を数式で表現すると以下の通りである。

 \sum_{t = 1}^{T}\pi_{t}f(x; \mu_t, \sigma_t)

 \sum_{t = 1}^{T}\pi_t = 1

これは、T個の正規分布にそれぞれ\pi_tというウェイト(0以上1以下)をかけて足し合わせたものである。

 

この時の、各パラメータ( \pi_t\mu_t\sigma_t)を求めたい。 

パラメータを求めるために、まずは最尤法を行いたいという発想が出てくる。

そこで、サンプル数をNとし、あるサンプルをiとすると、その尤度関数は以下のように表現できる。

 L(\pi_t, \mu_t, \sigma_t) = \prod_{i = 1}^{N}\sum_{t =1 }^{T}\pi_{t}f(x_i: \mu_t, \sigma_t) 

対数を取ってやると以下のようになる。

 logL(\pi_t, \mu_t, \sigma_t) = \sum_{i=1}^{N}log( \sum_{t =1 }^{T}\pi_{t}f(x_i: \mu_t, \sigma_t) ) 

この対数尤度関数を確認すると、logの中が和の形になっている。そのことが理由で、この対数尤度関数の最大値を求める際にはEMアルゴリズムが用いられる。EMアルゴリズムについては、混合分布モデルや潜在クラス分析を用いる際には、本質的な議論ではないので、ここではスキップし後に議論するが、とにかく考え方は、上記の対数尤度を最大化するパラメータを求めるというものである。 

 

冒頭にも言及したように、潜在クラス分析は、上記の混合分布モデルにおけるデータが名義尺度になったverであると言える。

特に、あるカテゴリカルな潜在変数を仮定して、その潜在変数とカテゴリカルな顕在変数との混合分布を想定する。

 

ここでは、単純化のために3つの顕在変数(観測される変数)A、B、Cを考える。なお、ここで潜在変数はXとする。また、iはAの応答パターン、jはBの応答パターン、kはCの応答パターン、tは潜在変数Xのクラスである。

 

また、確率を以下のように表現する。

\pi_t ^x:潜在変数Xに対して個人が潜在クラスtに属する確率

\pi_{ijk} ^ {ABC}:顕在変数A、B、Cに対して(i, j, k)と応答する確率

\pi_{ijkt} ^ {ABCX}:潜在変数xを仮定した時にA、B、C、Xに対して(i, j, k, t)となる確率

\pi_{ijkt} ^{\bar{A}\bar{B}\bar{C}X}:潜在変数Xを所与とした時に、顕在変数A、B、Cに対して(i, j, k)と応答する確率

 

潜在クラス分析では、個人は潜在変数Xにおけるいずれかのクラスに所属していると考えられる。そして、ある個人が潜在変数Xにおけるクラスtに確率的に属していることを所与とした上で、顕在変数A、B、Cに対して(i, j, k)と応答する確率を考える。

先の混合分布のクラスタリングから見れば、潜在変数Xの確率分布と顕在変数A、B、Cに対して(i, j, k)と応答する多項分布の同時確率分布(多項分布の同時確率分布は、結局多項分布であるが)の混合分布と見ることもできる。

それを数式で表現すると以下の通り。

\pi_{ijk}^{ABC}=\sum_{t=1}^{T}\pi_t ^X×  \pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}

なお、以下のような制約を課す。

\sum_{t=1}^{T}\pi_t ^X = 1

この時、潜在変数Xのカテゴリーtにおいては、顕在変数へ応答する確率が独立していることを仮定している(局所独立の仮定)。すなわち、顕在変数同士の相関関係は潜在変数を導入することで全て説明されるとする。

だから、上記のように、潜在変数を所与とした場合の顕在変数の応答パターンを単純な積で表現することができるのである。

この仮定のもとでは、以下の等式も成立する。

\pi_{ijkt} ^{\bar{A}\bar{B}\bar{C}X} =\pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}

 

なお、上の式はまさに先の混合分布と同じ構造をしている。

その混合分布の定義は以下の通りであった。

 \sum_{t = 1}^{T}\pi_{t}f(x; \mu_t, \sigma_t)

 \sum_{t = 1}^{T}\pi_t = 1

 

潜在クラス分析においては、顕在変数A, B, Cに対して(i, j, k)と応答する個人iが潜在変数Xにおけるクラスtに所属する確率はベイズの公式を用いて以下のように表現できる。

 

Pr( X = t | A = i, B = j, C = k ) = \frac {Pr(A = i, B = j, C = k | X = t )Pr(X = t)}{Pr(A = i, B = j, C = k )} = \frac{\pi_{ijkt} ^{\bar{A}\bar{B}\bar{C}X}\pi_t ^x}{\pi_{ijk} ^ {ABC}}

ここで、\pi_{ijk}^{ABC}=\sum_{t=1}^{T}\pi_t ^X×  \pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}であるので、上の式は以下の通りに変形できる。

Pr( X = t | A = i, B = j, C = k ) =\frac{\pi_{ijkt} ^{\bar{A}\bar{B}\bar{C}X}\pi_t ^x}{\sum_{t=1}^{T}\pi_t ^X×  \pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}}

また、局所独立の仮定のもとでは{\pi_{ijkt} ^{\bar{A}\bar{B}\bar{C}X}} =  \pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}なので、上式は以下のようになる。

Pr( X = t | A = i, B = j, C = k ) = \frac{\pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}\pi_t ^x}{\sum_{t=1}^{T}\pi_t ^X×  \pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}}

 

なお、最大化すべき尤度は以下の通りになる。

\prod_{i=1}^{N} \sum_{t=1}^{T}\pi_t ^X×  \pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X} 

対数尤度は以下の通り。

\sum_{i=1}^{N} log(\sum_{t=1}^{T}\pi_t ^X×  \pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X})

 

この対数尤度関数を最大化するパラメータを求めるためにも、EMアルゴリズムが用いられる。

 

EMアルゴリズムにはE(estimation) stepとM(maximization) stepがある。

まず、ランダムに\pi_t ^X\pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}の初期値を決定し、尤度(pre尤度とする)を求める。

 

次に、それらのパラメータを用いて以下を求める(E step)。

Pr( X = t | A = i, B = j, C = k ) = \frac{\pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}\pi_t ^x}{\sum_{t=1}^{T}\pi_t ^X×  \pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}}

 

ここで計算された Pr( X = t | A = i, B = j, C = k )を用いて、新しく\pi_t ^X\pi_{it}^{\bar{A}X}\pi_{jt}^{\bar{B}X}\pi_{kt}^{\bar{C}X}を求め、これらを用いて再度尤度を計算する(post尤度とする)。 

ここで、pre尤度とpost尤度を比較し、尤度が改善されれていれば再度E stepから行う。尤度が収束すればアルゴリズムを終了させる。

 

このように、パラメータが収束するまでE stepとM stepを繰り返す。このことで、最も尤もらしいパラメータを求めるのである。

ただし、ここで得られるパラメータは局所解に陥っている可能性がある。そこで、このEMアルゴリズムを複数回行うこと(初期値を変えてやること)がベターである。

 

 

さらに潜在クラス分析では、クラスター数はクラスター分析同様に、分析者が決定する必要がある。ただし、クラスター分析とは異なって、潜在クラス分析では尤度を計算できるので、クラス数を決定するにあたって尤度にまつわる指標を用いることができる。

それらは、①尤度比カイ二乗値 ②AIC ③BIC である。

クラス数を決定する際には、これらの指標を参照しながら、クラス数を決定していくことになる。

通常、クラスタ数1からはじめ、上記の指標を検討しながらクラスタ数を1つずつ増加させる。

 

以上である。