« 読了:Smith & Linden (2017) amazon.com推薦システムの20年 | メイン | 読了:Carlin & Louis (2000) 経験ベイズのこれまでとこれから »
2017年9月 9日 (土)
引き続き、溜まったメモの整理。これは6月中頃。
Linzer, D.A., Lewis, J.B. (2011) poLCA: An R Package for Polytomous Variable Latent Class Analysis. Journal of Statistical Software, 42(10).
RのpoLCAパッケージの紹介。poってのはpolytomousの略であろう。
えーと、poLCAパッケージは多項変数の潜在クラス分析(LCA)をご提供します。
潜在クラスモデルを推定する関数としては、ほかにe1071パッケージのlca関数, gllmパッケージ, randomLCAパッケージがあるが、いずれも二値変数しか扱えない。
まずは基本的な潜在クラスモデルから。
対象者を$i=1, \ldots, N$とする。顕在変数は$J$個の多項カテゴリカル変数、$j$個めの変数がとりうる値を$K_j$個とする。顕在変数の値を二値変数$Y_{ijk}$で表す。つまり、対象者$i$が変数$j$で反応$k$を返したら$Y_{ijk}=1$。
潜在変数の数を$R$とする。事前の所属確率を$p_r$とする($\sum_r p_r =1$)。クラス$r$において$Y_{ijk}$に1が立つ条件付き確率を$\pi_{jrk}$とする($\sum_{k=1}^{K_j} \pi_{jrk} = 1$)。
クラスの下でのアウトカムの条件つき独立性を仮定すれば、クラス$r$の対象者$i$が特定のアウトカムのベクトルを生む確率は
$f(Y_i; \pi_r) = \prod_{j=1}^J \prod_{k=1}^{Kj} (\pi_{jrk})^{Y_{ijk}}$
全クラスを通した確率密度関数は
$P(Y_i|\pi, p) = \sum_{r=1}^R p_r \prod_{j=1}^J \prod_{k=1}^{Kj} (\pi_{jrk})^{Y_{ijk}}$
パラメータ$p_r$, $\pi_{jrk}$が推定できたとして、対象者$i$がクラス$r$に所属する事後確率は
$\displaystyle \hat{P}(r_i|Y_i) = \frac{\hat{p}_r f(Y_i; \hat{\pi}_r)}{\sum_{q=1}^R \hat{p}_q f(Y_i; \hat{\pi}_q)}$
さて、poLCAはパラメータを最尤法で推定する。対数尤度関数は
$\log L = \sum_{i=1}^N \log \sum_{r=1}^R p_r \prod_{j=1}^J \prod_{k=1}^{Kj} (\pi_{jrk})^{Y_{ijk}}$
これをEMアルゴリズムで最大化するわけです。
標準誤差はどうやって推定するかというと... [略。観測情報行列を使う由]
適合度指標としてAIC, BIC, ピアソンのカイ二乗、尤度比カイ二乗を提供する。
次にlatent class regressionモデルについて。ここでいうところのlatent class regressionとはlatent class models with covariates、すなわち潜在クラスの所属確率が共変量で予測されるのを同時推定するモデル。いっぽうfpcパッケージのregmix関数やflexmixパッケージでいうところのlatent class regressionとは、回帰モデルの推定の一部として従属変数が潜在クラスに分割されるというモデルである。意味がちがうので注意。
モデルは... パラメータ推定は... 標準誤差は...[面倒になってきたのでパス]
後半は使用方法と例題。モデルからの予測されたセル頻度表を出力する機能、いったん推定した後でクラスの順序を並び替える機能、シミュレーションしたデータを作る機能がある由。局所解の問題はやっぱり深刻らしくて、何度も推定しなさい、とのことである。
私自身はMplusの忠実なしもべなので、潜在クラスモデルを組もうかなと思った次の瞬間には無意識のうちに library(MplusAutomation) と叩いてしまうのだが、Rのなかで完結できたら助かるなと思うことも、まあ、なくはない。このパッケージだとMplusほど細かい制約は掛けられないけど、いつか使ってみてもいいかもな。
論文:データ解析(2015-) - 読了:Linzer & Lewis (2011) RのpoLCAパッケージ