SSブログ

階層ベイズ2項ロジットモデルの推定 [階層ベイズ]

階層ベイズ2項ロジットモデルの推定をする際に、よく使われるのが R のパッケージの "bayesm" でしょうか。
rhierBinLogit / rhierMnlRwMixture という関数を使います。

ただ、細かい設定をしたい場合は、尤度関数を書く必要があります。

## 2項ロジットモデルの対数尤度関数の定義
loglike <- function(y, X, beta) {
u <- X %*% beta
p <- exp(u)/(1 + exp(u))
ll <- y * log(p) + (1 - y) * log(1 - p)
sum(ll)
}


尤度関数はこうなります。

尤度関数を自由に扱うことができれば、ここから Nested Logit に拡張したり、いろいろな分析をすることができるのですが、少しプログラムをいじると、急に動かなくなるのが難しいところ。。。

その場合は、原理原則に戻って、丁寧にプログラムを作っていく必要がありますね。。。

なかなか動かないプログラムが、上手く動くようになった瞬間が、一番目の醍醐味ですね。
二番目の醍醐味は、シミュレーションした結果から、何かマーケティング的に面白い知見を得られた瞬間。

苦労が多ければ多いほど、成功したときに喜びは大きい。

nice!(8)  コメント(0) 
共通テーマ:学問