Written by
広本 拓麻
SEEDATA Technologies

消費行動の統計モデリング #3:階層的な選択構造を仮定したネステッドロジットモデル

[mathjax]

購買の行動や意思決定にまつわるビッグデータの出現や消費者の多様化が進む中、企業のマーケティング活動においてはミクロな市場に対して理解を深め、的確なインサイトを突いた訴求を実現することが求められています。SEEDATAでは定性的なリサーチに加え、統計モデルを駆使した消費者の理解に取り組んでおり、その一環として本ブログでは選択肢を階層的に取り込んだネステッドロジットモデルについて説明していきます。

階層的な選択構造を仮定した、ネステッドロジットモデル


 前回は、離散選択行動の最も単純なモデルとして、ロジットモデルを説明しました。その中で、誤差項に仮定するガンベル分布と尤度関数について説明し、また選択肢が加わった場合に確率の比率が保存してしまうIIA特性について触れました。

消費行動の統計モデリング #2:ロジットモデルとその尤度関数

 今回は、このIIA特性を解消するモデルとして選択肢を階層状の構造にしたネステッドロジットモデルついて、選択肢の構造と尤度関数の定義までを解説していきます。

1. 階層構造を持った選択肢

 ロジットモデルで生じたIIA特性をおさらいしながら、ネステッドロジットモデル(以下、NLモデル)で問題がどのように解決されているのか見てみましょう。ロジットモデルではそれぞれの選択肢の確率が他の選択肢の効用の確定項に影響せず、例えば移動手段でバスと自転車を考えたときに、色が増えただけでバスが選択される確率が2倍になるという非現実的な問題がありました。

 そこで、NLモデルでは全ての選択肢を一様に扱うのではなく、カテゴリでまとめることを考えます。例になぞらえると、色が異なってもバスの機能は同じなので一つにまとめ、選択肢の入り口をバスと自転車の二つに絞ることができるようにします。

 元々ロジットモデルでは、全集合の中で何らかの類似性や共通点を持った選択肢が存在することで、IIA特性という非現実的な選択確率構造が生じていました。対してNLモデルでは、あらかじめこの類似性をモデルの中で選択肢の階層性として取り込んでいるため、問題の解消を実現していることが分かります。

2. 選択確率の定式化

 次に、このような階層状の選択肢を仮定した際に、選択確率がどのようになるかを考えてみましょう。簡単のために全体で選択肢が2層構造となっていて、第1層が(J)個、第1層が選択肢(j)のとき第2層が(K_j)個の選択肢を持つような場合を考えます。

 (y_{t,i})は個人(i)の時点(t)における第1層で選んだ選択肢を表し、これが選択肢(j)であった場合は(y_{t,i}=j)となります。また(y_{t,i|j})は、第1層で選択肢(j)を選んだ場合における第2層での選択結果を表す変数で、これが選択肢(k)であった場合は(y_{t,i|j}=k)となります。このように階層性がある場合、一意に選択肢を決定するためには第1層から第2層を経過する必要があるため、同時確率(p(y_{t,i}=j,y_{t,i|j}=k))を求めなければなりません。条件付き確率の公式を元にすれば、この同時確率は次のように表現できるでしょう。

begin{eqnarray}
p(y_{t,i}=j,y_{t,i|j}=k)=p(y_{t,i|j}=k|y_{t,i}=j)p(y_{t,i}=j)tag {1}
end{eqnarray}

 それぞれの確率はロジットモデルと同じように、各階層で効用を定義することにより計算することができます。第1層での効用を(U_{j,t,i})、第2層を(U_{k|j,t,i})とすると、これも確定項と確率項に分けることができて以下のように表式されます。

begin{eqnarray}
第1層 &:& U_{j,t,i}=V_{j,t,i}+epsilon_{j,t,i}tag{2}\[0.7em]
第2層 &:& U_{k|j,t,i}=V_{k|j,t,i}+epsilon_{k|j,t,i}tag{3}
end{eqnarray}

 さらに第1層の効用(U_{j,t,i})は、それぞれ第2層の選択結果に依存した項(U^*_{k|j,t,i})と、第2層の選択に無関係の項(U’_{j,t,i})へ分離することができます。またそれぞれが確定項と確率項を有しているため、(U_{j,t,i})は以下のようになります。

begin{eqnarray}
U_{j,t,i}&=&V_{j,t,i}+epsilon_{j,t,i}tag{4}\[0.7em]
&=&V’_{j,t,i}+V^*_{k|j,t,i}+epsilon’_{j,t,i}+epsilon^*_{k|j,t,i}tag{5}
end{eqnarray}

(V’_{j,t,i},epsilon’_{j,t,i})は、第2層の選択にかかわらず独立に存在するファクターであり、対して(V^*_{k|j,t,i},epsilon^*_{k|j,t,i})は第2層の選択に影響されて変動する項になります。さらにこの(V^*_{k|j,t,i})は、( 0 leq lambda leq 1)を満たす実パラメタを用いて次のように表されます。

begin{eqnarray}
V^*_{k|j,t,i}= lambda logdisplaystyle sum_{k=1}^{K_j}exp(V_{k|j,t,i})tag{6}
end{eqnarray}

つまり、選択肢(j)における2層目の選択肢の数(K_j)が多く、またそれぞれの効用が大きいほど(V^*_{k|j,t,i})の効用が大きくなるようになっています。

 注意点として、この仮定は必ずしも実際の消費者心理に一致せず、選択肢が多いことが逆に負荷となる可能性があるということです。手間がかかる選択を避けたいという欲求は、近年出現している新しいインサイトの一つであり、それに合わせてリコメンドや少数精鋭のラインナップを展開するD2Cなども増加しています。この対策には、同じく実パラメタ(theta)を用いて、選択肢が多くなるほど効用が小さくなるように働くペナルティ項(-theta K_j)を加えることなどが考えられます。今回はこの点までは言及せずに、ここまで議論してきた一般的なNLモデルの選択確率を求めていきたいと思います。

 第1層で選択肢(j)を選ぶ確率(p^{(1)}_{j,t,i}={rm Prob}(y_{t,i}=j))と、第1層で選択肢(j)を選んだとき第2層でこれが選択肢(k)を選ぶ確率(p^{(2)}_{k|j,t,i}={rm Prob}(y_{t,i|j}=k))は、ロジットモデルと同じくそれぞれの確定項を用いて以下のように表されます。

begin{eqnarray}
p^{(1)}_{j,t,i}&=&{rm Prob}(y_{t,i}=j)\[0.5em]
&=&frac{exp(V’_{j,t,i}+V^*_{k|j,t,i})}{exp(V’_{1,t,i}+V^*_{k|j,t,i})+dots+exp(V’_{J,t,i}+V^*_{k|j,t,i})}tag{7}\[1.0em]
p^{(2)}_{k|j,t,i}&=&{rm Prob}(y_{t,i|j}=k)\[0.5em]
&=&frac{exp(V_{k|j,t,i})}{exp(V_{1|j,t,i})+dots+exp(V_{K_j|j,t,i})}tag{8}\[0.7em]
end{eqnarray}

これを用いて、効用確定項の係数を決定するために尤度関数を計算しましょう。

3. NLモデルの尤度関数

 個人(i)としていたものは計(I)人おり、それぞれの個人から(T_i)個のデータを得ていたとします。これまでの議論と同じく第1層には(J)個、第2層にはそれぞれ(K_j)個の選択肢があり、各個人での選択や個人内の選択は全て独立であるとします。選択したかどうかを({0,1})の2値で返す変数として、それぞれの階層で(y_{j,t,i})と(y_{k|j,t,i})をおくと、尤度関数は以下のようになります。

begin{eqnarray}
L(theta)&=&displaystyle prod_{i=1}^{I}displaystyle prod_{t=1}^{T_i}displaystyle prod_{j=1}^{K_j}
bigg(p^{(1)}_{j,t,i}(p^{(2)}_{1|j,t,i})^{y_{1|j,t,i}}p^{(1)}_{j,t,i}(p^{(2)}_{2|j,t,i})^{y_{2|j,t,i}}dots p^{(1)}_{j,t,i}(p^{(2)}_{K_j|j,t,i})^{y_{K_j|j,t,i}}bigg)^{y_{j,t,i}}: theta={beta_0,beta_1,dots,beta_p}tag{9}\[1.0em]
&=&displaystyle prod_{i=1}^{I}displaystyle prod_{t=1}^{T_i}displaystyle prod_{j=1}^{K_j}
Bigg(frac{exp(V’_{j,t,i}+V^*_{k|j,t,i})}{exp(V’_{1,t,i}+V^*_{k|j,t,i})+dots+exp(V’_{J,t,i}+V^*_{k|j,t,i})}
bigg( frac{exp(V_{1|j,t,i})}{exp(V_{1|j,t,i})+dots+exp(V_{K_j|j,t,i})}bigg)^{y_{1,t,i}}\[1.0em]
&& timesfrac{exp(V’_{j,t,i}+V^*_{k|j,t,i})}{exp(V’_{1,t,i}+V^*_{k|j,t,i})+dots+exp(V’_{J,t,i}+V^*_{k|j,t,i})}
bigg( frac{exp(V_{2|j,t,i})}{exp(V_{1|j,t,i})+dots+exp(V_{K_j|j,t,i})}bigg)^{y_{2,t,i}}\[1.0em]
&& dots \[1.0em]
&& timesfrac{exp(V’_{j,t,i}+V^*_{k|j,t,i})}{exp(V’_{1,t,i}+V^*_{k|j,t,i})+dots+exp(V’_{J,t,i}+V^*_{k|j,t,i})}
bigg( frac{exp(V_{K_j|j,t,i})}{exp(V_{1|j,t,i})+dots+exp(V_{K_j|j,t,i})}bigg)^{y_{K_j,t,i}}Bigg)tag{10}\[1.0em]
end{eqnarray}

かなり複雑に見えますが、対数尤度をとることで計算としては簡略化されます。

まとめ


今回は、選択肢を階層的な構造で仮定したネステッドロジットモデルについて解説しました。次回は、効用を用いた選択肢の識別性について触れ、モデルの中に選択肢の相関を取り入れたプロビットモデルを解説します。

参考文献
[1] ビッグデータ時代のマーケティング, (著)佐藤忠彦,樋口知之,講談社 理工学専門書

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です