バナナでもわかる話

開設当初は計量経済学・統計学が専門の大学院生でした。今はデータを扱うお仕事をしています。統計学・経済学・投資理論・マーケティング等々に関する勉強・解説ブログ。ときどき趣味も。極力数式は使わずイメージで説明出来るよう心掛けていますが、時々暴走します。

人間の選択をモデル化するプロビット・ロジットモデルの違いと経済学的解釈法

今日は人間の選択をモデル化する方法について書いてみようと思います。


一応事前にプロビット・ロジットについてネット記事が無いか漁ってみたのですが、

・機械学習の文脈で説明されていることが多い
・プロビット・ロジットの選択基準が説明変数の観点から説明されていることが多い(実はもう一個ある)

ということで

「じゃあ私は経済学的な観点から定式化を行って、統計学的な観点からこのモデルの説明をして、モデルにおける2種類の選択基準に関して説明をすることで差別化して書いてみよう~」

なんて考えてみました。
それでは記事を書いていきます。


ちなみに、プロビット・ロジットや経済学の話はとりあえず良いから、この二つのモデルの違いだけ知りたい!という方は

↓下の方にあるこの見出しから読むと良い感じに理解できるかと。

プロビット・ロジットの特徴



スポンサーリンク


人間の選択とは

まず人間の選択について少し経済学の観点から考えます。
例えば今、夕食の献立を考えているとしてとりあえずザックリ「肉」か「魚」かみたいなものを選択したいとします。

人によっては「その日の気分」のみで決めるかもしれないし、とりあえずスーパーへ行ってみて「値段」を見て決めようと思うかもしれないし、はたまたスーパーで実際に見て「おいしそうな方」にしようと思うかもしれないし、今の基準を全て総合して決めるかもしれません。

とにかく人によって何かしらの選択の「基準」があって、その「基準」に従って

「今日は肉より魚だな」

とか決めているわけです。


この考え方は妥当でしょうか?

①「いやいや私は、どっちでも良いと思ってスーパーに赴いて先に目に入った方を取るから何も考えてないよ」
②「肉とか魚だから今の例が成り立つけど、例えば何か甘いものを食べたいなと思ってコンビニに行き、何も考えずにほとんどランダムに近い形でチョコレートを手に取り、買うことだってあるよ」

みたいな反応もあるかもしれません。

ただ、これは解釈の拡張次第でどうにでもなって
①は「一番初めに目に入ったものを買う」という基準に従って選択をした結果であり、
②は確かに何も考えて居なかったかもしれませんが、ということは最も手に取りやすい配置にあった商品が取られる可能性が高かったはずです。つまり無意識に配置によって選ばされていると考えれば「配置」という基準に従って選択をした結果です。


つまり、こんな風に人間の選択を考えると実際にその人が基準に従って選択をしているか否かに関わらず、柔軟に当てはめることが可能になります。


選択の定式化

さて、このままでは数式に出来そうにないのでもう少し考えてみます。
先ほどの選択で「肉より魚だな」と選ぶ時、人は何らかの基準に従って「肉を買った時の嬉しさよりも魚を買った時の嬉しさの方が大きいな」と思ったから魚を選んだと考えましょう。

"嬉しさ"と言ってしまうと多少語弊があるので"メリット"と言い換えてもらっても問題ありません。

この嬉しさ(メリット)は測ることは出来ませんが、各人が自分の頭の中で大きさを比べて、その大きい方を選んでいると考えます。
この嬉しさ(メリット)を経済学の用語で効用と呼びます。


肉を選ぶ際の効用を U_{肉},魚を選ぶ際の効用を U_{魚}とし、

「肉より魚を選んだ」というのを次のように表現します。

 U_{肉}< U_{魚}



そして、この効用の大きさ自体は分かりませんが、選んだ基準(価格や配置等々)を数値化することは可能です。

そこで回帰分析の要領で次のように考えてやろうというわけですね。



 U_{肉}=X' \beta_{肉} +\epsilon_{肉}
 U_{魚}=X' \beta_{魚} +\epsilon_{魚}

そんでもって U_{肉}< U_{魚}という式に放り込んでやれば

 X' \beta_{肉} +\epsilon_{肉}<X' \beta_{魚} +\epsilon_{魚}
つまり
 X' (\beta_{魚}-\beta_{肉}) +(\epsilon_{魚}-\epsilon_{肉})>0

よってこの式は
 X' \beta +\epsilon>0

と変形出来ました。この左側は回帰分析でよく見る形ですね。


ただ、このままでは回帰分析としては扱えません。だって Uの値はわからないわけですから。

そこで次のように考えます。

 U_{肉}< U_{魚} Y=1,
 U_{魚}< U_{肉} Y=0と表現することにします。

そして、 Xという情報(先ほどの価格等の基準)が与えられた時に Y=1を取る確率を Prob(Y=1|X)と書くことにすると

 Prob(Y=1|X)=Prob(X' \beta +\epsilon>0|X)


ですね。

ちなみにこれは次のように解釈することも出来ます。
 Y^*=X' \beta +\epsilonという線形関係を考えます。この時点では Y^*\in \mathcal{R}なので、

 Y^*≧0ならば Y=1
 Y^*<0ならば Y=0

つまり、実数範囲を取る潜在的な変数 Y^*が取る値に対して観測される変数 Y=0,1を結びつけるわけです。
統計や機械学習の文脈でこの話を学ぶ人はこちらの解釈の方が慣れてるかもしれませんね。

とにもかくにもこれでモデル化が出来ました。このプロセスが経済学的な観点から人間の選択を数式化するプロセスになります。



もっと背後のモデル

次に、個々の選択確率がわかったので、もっと背後にある確率を考えましょう。単純に考えると、0か1かという選択はベルヌーイ型の分布を考えるべきですよね。そこで次のような質量関数を考えます。

 f(y_i |X_i)=\pi_i^{y_i}(1-\pi_i)^{1-y_i}
 y_i=0,1

そしてこの \pi_iを先ほど考えた個々の選択確率に置き換えてやるわけです。
 \pi_i=Prob(Y_i=1|X_i)=Prob(X_i' \beta +\epsilon_i>0|X_i)


プロビット・ロジットモデル

ところで確率 Prob(Y=1|X)と確率 Prob(Y=0|X)はどうやって決めればよいでしょうか。

今のままだと漠然と Probとかいうよくわかんない記号でごまかしているにすぎませんよね。


そこでこの Probに対して、もう少し具体的な確率モデルを与えてやろうという方針が生まれ、そのモデルとしてプロビットモデル、ロジットモデルがあります。

それでは一つずつ見てみましょう。


プロビットモデル

別にロジットから説明しても良いんですけど、"プロビット"モデルの名付け親が日本人なので愛着をこめてこちらから説明します笑
先ほどの統計学的な解釈を思い出してみます。


 Y^*=X' \beta +\epsilonという線形関係を考えます。
この時点では Y^*\in \mathcal{R}なので、

 Y^*≧0ならば Y=1
 Y^*<0ならば Y=0

という話でした。線形回帰ではよく正規分布が考えられるので、プロビットでも正規分布を考えます。
使い勝手がよいので標準正規分布で考えましょう。つまり

 \epsilon ~Normal(0,1)

更に Y^*≧0とはつまり X' \beta +\epsilon≧0,

よって -X' \beta ≦\epsilonです。ということは

 -X' \beta ≦\epsilonならば Y=1
 -X' \beta >\epsilonならば Y=0

と書きなおすことが出来ます。
 \epsilonは標準正規分布に従うと仮定しているので図に表すとこんな感じ。

 -X' \beta ≦\epsilonならば Y=1
f:id:bananarian:20181115151037p:plain


この赤色部分を全部足してやれば Y=1の確率が出るよねということです。よって
 (標準正規分布の密度関数)=\phi(t)とおくことにすると

 Prob(Y=1|X)=\int_{-X'\beta}^{\infty}\phi(t)dt=1-\int_{-\infty}^{-X'\beta}\phi(t)dt

また、同様にして
 Prob(Y=0|X)=\int_{-\infty}^{-X'\beta}\phi(t)dt


これで分布による表現が出来ました。あとは先ほどのベルヌーイ型関数に放り込んで最尤法を行えば完了です。
ベイズの文脈で語るのであれば事前分布を設定して事後分布を見てやればおしまいです。

ロジットモデル

次、ロジットですね。こちらはどちらかというと数学的な扱いやすさから、よく使用されるモデルです。
 Prob(Y=1|X)=\frac{exp(X'\beta)}{1+exp(X'\beta)}

によって定義されます。これは何なんだというとロジスティック分布関数と呼ばれる分布です。少しマイナーですかね。


どういう点で数学的に扱いやすいかというと、オッズ比として解釈出来る点が強いです。
こちらのサイトさんのロジットの紹介がわかりやすかったので載せて置きます。是非参考にしてみてください。
ロジットとプロビットの使い分け - アドファイブ日記


※ちなみに、他にもモデルは存在します。記事下に補足として書いておくので興味のある方はご覧ください。


プロビット・ロジットの特徴

プロビットは標準正規分布を使っているので当たり前ですが、ロジットの方も左右対称になります。
というか、裾の重さを除いて標準正規分布とロジスティック分布はほぼ同じです。
実際-1.2から1.2の範囲においてこの二つの分布はほぼ同じ確率を弾きます。
ただ、ロジスティック関数の方が裾の重い分布となるのが特徴です。


「ほぼ同じならば、オッズ比を使えるロジットの方が扱いやすそうだし、ロジットの方がいいじゃ~ん。」

ということで考えるのが面倒な場面ではロジットを使う人が多かったりしますが、一応しっかり考えると次の二つの観点からモデル選択を行う必要があります。

①使っている基準(独立変数、Xのこと)の取りうる値の範囲が広いか否か(変数が多くある場合は、そのうち特に重要なものを見る)

②0,1の選択(従属変数、Yのこと)のデータでどちらか片方のデータがほとんど無いような場合



①はよく言われる話で、先ほど載せたサイトさんでも"サチる"といった言葉で説明していました。
要はロジットの方が裾が重いので、X'\betaがメチャメチャ大きい値を取った時の Y=1を取る確率、小さい値を取ったりした時の Y=0を取る確率がある程度大きいく、独立変数が広い範囲で動く場合はロジットを使うのが良いということです。
イメージとしては0から1へのシフトが緩やかって感じですね。


で、今回説明したかったのが②の方で、

例えば10000人のデータを取ってみて Y=0を選んでいる人が20人とかしかいなかったーなんてデータがあったとします。

この時、もしプロビットの方を適用しようとすると、標準正規分布の両端はほぼゼロに近いのでプロビットは使えません
これは別の記事で説明した「正規分布を適用するモデリングでは、外れ値(?)のようなデータに弱い」という話に似ていますね。

ただ、外れ値モデリングの話でもやりましたが、突飛な特徴がなく、0も1も万遍なくあるならより無難な分布を考慮できるという背景からプロビットを使った方が良さそうです。


プロビット・ロジットの使い分け

よって、次のような事が言えるかと思います。

まず、 Y=0, Y=1の内どちらかのデータが極端に少ない場合はロジットを考慮に入れ、
更に(重要な)説明変数の取りうる値の範囲が広いなら、ロジット使用が濃厚。

また、モデルを使用した後にオッズ比を考えたいような場面でもロジットが良い。

上の状況に該当しなければ、無難にプロビットの方が良い。


もし、他にも使い分けが考えられるよーという方がいれば是非コメントを頂けるとありがたいです。


オマケ

ちなみに、上の話では次のような疑問に答えていません。

対称性

ロジットもプロビットも左右対称な分布になっていました。この仮定は妥当なのか?という疑問があるかもしれません。そんな時はこのモデル

ガンベル分布を使ったガンベルモデルです。
 Prob(Y=1|X)=exp(-exp(-X'\beta))

ちなみに補対数対数モデルというのもあります。
 Prob(Y=1|X)=1-exp(exp(X'\beta))

独立性

プロビットもロジットも各選択が独立だという仮定を置いて、同時分布では各確率の積を取っているが、誤差の共分散は本当にゼロなのか?という疑問もあり得ます。そんな時は誤差を多変量に拡張した、多変量プロビットモデルというモデルがあります。

多項選択

今回は「肉」と「魚」の2種類の選択だったから Y=0, Y=1のモデルで良かったけど、サーロインステーキか焼肉か焼き鳥かケバブかどれにするみたいな選択だったらどうするんだという疑問も考えられますね。

そんな時はベルヌーイ型を多項分布に拡張し、多項プロビットモデル・多項ロジットモデルを考えたりします。