sigma

落書き

WAICとWBICによる混合Gauss分布のモデル選択

Stan Advent Calendar 2017 - Qiitaの12/7の記事です。

Stanによる混合Gauss分布のパラメータ推定のモデル選択をWAIC及びWBICで行なってみます。

 

statmodeling.hatenablog.com

上記の記事で1次元の場合にされていることを今回は2次元でやってみました。

 

WAICやWBICについては上記記事や、渡辺先生による以下のページをご覧ください。

http://watanabe-www.math.dis.titech.ac.jp/users/swatanab/waicwbic.html

http://watanabe-www.math.dis.titech.ac.jp/users/swatanab/waicwbic_j.html

 

今回扱うデータを生成する分布は

- 平均は等しく、x方向とy方向で分散が異なる二つの正規分布からの混合分布

でやりたかったのですが、平均を等しくすると収束がうまくいかなかったので、少し平均をずらした二つの正規分布の混合分布としました。

実際には

- 平均(0.1, 0)で共分散行列が(2, 0 \\ 0, 0.1)の正規分布と平均(0, 0.1)で共分散行列が(0.1, 0\\ 0, 2)である正規分布の混合比率1:1の混合分布

でデータを生成しています。

 

これを

- model1:クラスタ数1、つまり単純な正規分布モデル

- model2:クラスタ数2の混合分布モデル、ただし混合比率は0.5で固定

の2通りで平均、分散を推定し、データを複数回生成した上でWAICとWBICの分布の様子、及びモデル選択の結果を調べます。

 

サンプル数としてはN=30, 100の2通りで実験してみました。

サンプル数30ではmodel2の収束がなかなかうまくいっていないことも多いです。

事前分布を設定することでうまく収束させることもできるかもしれませんが、今後試してみます。

 

WAIC, WBIC及びモデル選択の結果は以下の通りです。

まずサンプル数30で100回試行した結果

- WAICではmodel1が49回

- WBICではmodel1が43回

サンプル数100で50回試行した結果

- WAICではmodel1が12回

- WBICではmodel1が7回

選択されるという結果となりました。

 

それぞれの分布の様子は以下のようになりました。

f:id:unaoya:20171207231733p:plain

f:id:unaoya:20171207231759p:plain

 

今回用いたコードは以下のものです。WAICやWBICを計算する部分は、上記記事のものを参考にさせていただきました。

gist308edbde04b774e49287026a0a969b16

 

 

本記事を書くにあたり、上記記事に加えちょうど一年前の同じ日にStan Advent Calendarに書かれた以下の記事も参考にさせていただきました。

 

statmodeling.hatenablog.com

 

また混合分布のコードを書くにあたっては、stanのmanualも参考にしました。

 

本記事では実験した結果の報告のみですが、別のケースで実験したり理論的な部分も含めて今後は考察していきたいと思っています。