階層ベイズ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 に拡張したり、いろいろな分析をすることができるのですが、少しプログラムをいじると、急に動かなくなるのが難しいところ。。。
その場合は、原理原則に戻って、丁寧にプログラムを作っていく必要がありますね。。。
なかなか動かないプログラムが、上手く動くようになった瞬間が、一番目の醍醐味ですね。
二番目の醍醐味は、シミュレーションした結果から、何かマーケティング的に面白い知見を得られた瞬間。
苦労が多ければ多いほど、成功したときに喜びは大きい。
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 に拡張したり、いろいろな分析をすることができるのですが、少しプログラムをいじると、急に動かなくなるのが難しいところ。。。
その場合は、原理原則に戻って、丁寧にプログラムを作っていく必要がありますね。。。
なかなか動かないプログラムが、上手く動くようになった瞬間が、一番目の醍醐味ですね。
二番目の醍醐味は、シミュレーションした結果から、何かマーケティング的に面白い知見を得られた瞬間。
苦労が多ければ多いほど、成功したときに喜びは大きい。