見出し画像

人間の選択の面白い話と私の独自研究を行動経済学の視点から

今回はかなり自己満足の色が強い記事です。行動経済学とは何たるか、など、そういった導入部分はバッサリカットして、今回私が行った研究(と呼べるほど高尚ではないが)に関するレポートを書くという感じのテンションで書かせて頂こうと思っています。

行動経済学に関してしりたい!という方はこの新書をお勧めしているのでぜひ読んでみてください。巷にある非常にわかりやすく書いてある読み物よりは専門的で、かつ、事前に知識を蓄えることなく読める書籍になっているので入門書として最適な一冊だと思います。↓書影をクリックでAmazonに飛びます。

画像1

1.導入

上記で紹介した書籍「行動経済学 経済は『感情』で動いている」を手に取る機会があり、行動経済学の根幹をなすとプロスペクト理論に関して興味を持ったことにこの研究は端を発している。

人間は、よく知られている通り、「感情」をもっている。喜びや悲しみ、期待や不安を感じるのだ。こういった感情は人間の意思決定にも影響を与えている。

ここでひとつ、簡単な質問をするので皆さんも考えてみて欲しい。


Q1.次のようなくじを一回ひく。あなたはAとBのくじ、どちらを選ぶか?

Aのくじ:80%の確率で400万円、20%の確率で0円もらえる。        Bのくじ:100%の確率で320万円もらえる。

Q2.次のようなくじを一回ひく。あなたはAとBのくじ、どちらを選ぶか?

Cのくじ:80%の確率で400万円、20%の確率で0円失う。          Dのくじ:100%の確率で320万円失う。

という、二つの質問だ。


あなたの答えはきまっただろうか?

メンタリストとして世界に名を馳せる私()が言い当てて見せよう。

あなたの答えはQ1ではB、Q2ではC、となったのではないだろうか?(あてずっぽうでも1/4の確率で当たるが、これはあてずっぽうではない!)

私はメンタリストなのであなたの考えを読み取ることができたが、実はメンタリストでないあなたもこれを言い当てることができる。

その種明かしをする前に、数学的に思考してみよう。期待値、という概念がある。その存在を知っている、もしくは生活している中で自然とその感覚がついた人もたくさんいるだろうが、期待値に関して履修しない高校なども意外と多くみられるため、一応その定義のみ書いておく。

この記事における期待値の定義は、

期待値=もらえる金額×もらえる確率

とする。これを踏まえて先ほど提示したくじについて考えてみる。

任意のくじXの期待値をE(X)と表記することにすると、

一つ目の質問の選択肢は

E(A)=0.8×400万+0×0=320万、E(B)=1×320万=320万

となっており、二つ目の選択肢は

E(C)=0.8×(-400万)+0×(-0)=-320万、E(D)=1×(-320万)=-320万

となっており、E(A)=E(B)、E(C)=E(D)となっている。人間が期待値を計算して、それによってはんだんをしているのであれば、いずれの質問も、選択肢の期待値は等しく、後はランダムにどちらか選ぶので、数学的にはAを選ぶ人とBを選ぶ人の人数はおおよそ同じになる、つまりAを選んだ人とBを選んだ人割合両者ともおおよそ50%前後になるはずである、と予測できる(CとDに関しても同様)。

では、ここで私が実際に行った調査の結果をみてみよう。

画像2

驚いたことに、数学的な予測に反して、「偶然」では片付けられないほど顕著な偏りが出た。

この現象は、行動経済学でも人間の「リスクへの態度」の特徴として知られている。この回答結果からわかる「人間のリスクへの態度」とは、「人間は利益のときはリスク回避的で、損失のときはリスク追求的だ」ということである。

Q1ではお金をもらえるくじが2種類用意されており、Q2ではお金を失うくじが2種類用意されていた。お金をもらえるくじを引くときには額は小さいが確実にもらえるBを選び、お金を失うくじの時には失う額は大きいが確実に失うわけではないCを選んだ。もっと平易な言い方をすると「貰えるもんは確実にもらうけど盗られるってなったらワンチャンに賭ける」というような感じだろう。

2.仮説

さて、長い導入になってしまいここまでで既に1700字を超えているが、ここからやっと本題に入る。「は?もっと簡潔に書けやゴミ」と思わずに最後まで読んでいただきたいですお願いしますこれ書き上げるまでに死ぬほど時間かかってるんです許してくださいよろしくお願いします。

さて、導入で「人間は利益のときはリスク回避的で、損失のときはリスク追求的だ」と述べたが、わたしはこの知見に対し疑問を持った。試行回数が増えたらどうだろうか?と。

サイコロを6回振っただけではそれぞれの目が同じ回数でるとはなかなか考えにくいが、一億回サイコロを振ったらそれぞれの目が大体同じ回数で出る、という話があるが、これはつまり「試行回数が増えれば増えるほど数学的に求めた値に実験の値が近くなる」ということだ。

人々の回答にあれほどまでに偏りが出たのは、試行回数(=くじを引く回数)が1回だけ(つまり、1回引いただけで結果が確定してしまう)で多くの人が「このくじによってもたらされる結果は、期待値から大きく乖離する」と判断したからなのではないか?

つまり、わたしの疑問を仮説っぽい文章でまとめると

「もっと試行回数の多いくじの場合には、この偏りは緩和されるのではないか?」

という感じになる。

3.実験

この仮説について検討するため、以下のような実験を行った。

まず、アンケート①とアンケート②の2種類のアンケートを作成した。

①は、くじを引く回数が1回のアンケートである。くじの内容は、以下の通り。

次のようなくじを一回ひきます。あなたはAとBのくじ、どちらを選びますか?【Q1.利益のくじ】
Aのくじ:80%の確率で400万円、20%の確率で0円もらえる。
Bのくじ:100%の確率で320万円もらえる。                                                                 【Q2.損失のくじ】
Cのくじ:80%の確率で400万円、20%の確率で0円失う。
Dのくじ:100%の確率で320万円失う。


②は、くじを引く回数が1万回のアンケートである。くじの内容は以下の通り。

次のようなくじを一万回ひきます。あなたはAとBのくじ、どちらを選びますか?
【Q1.利益のくじ】
Aのくじ:80%の確率で400円、20%の確率で0円もらえる。
Bのくじ:100%の確率で320円もらえる。                  【Q2.損失のくじ】
Cのくじ:80%の確率で400円、20%の確率で0円失う。
Dのくじ:100%の確率で320円失う。                                                                   

 期待値(±320万円)がアンケート間で等しくなるように、1万回くじを引くアンケート②では一回のくじでもらえる金額を①の1万分の1に設定してある。

これをインターネット上でSNSやわたしの個人的な連絡先を駆使して回答を集めた(無作為な抽出?知らない子だな)(許してください)。

(1万回という回数が「十分に多い数かどうか」ということについてはのちに考察している)

4.結果

さて、結果は以下のようになった。


【結果1】

画像3

【結果2】

画像4

まず、【結果1】についてだが、Bを選ぶ人の割合が、アンケート①(一回くじ)で6%から、アンケート②(一万回くじ)での21.2%へ、15.2ポイントの上昇が見られる。これは、一万回くじなら偏りが緩和されるという仮説を支える結果となっている。しかし、【結果2】では、上昇は0.3ポイントにとどまり、有意な差は見られなかった。(統計を学んでないので何が有意で何が有意じゃないのかはわかってませんすみません)

5.考察

【結果1】、つまり利益が出る時にはBを選ぶ人の割合に増加が見られ、「一回くじに比べ一万回くじのときは偏りが緩和される」という仮説を支える結果が得られた。一方【結果2】、つまり損失が出る時には有意な差は見られなかった。

「考察」と銘打った章を設けたもの、なぜ利益の時には一回くじと一万回くじで差が見られたのに損失の時には差が見られなかったのかというのは考えても思いつきませんでした。何か閃いたら後日加筆するかもしれません。

この研究は、アンケート対象者が無作為に選ばれていないこと、筆者に行動経済学の知識が豊富にないことなど、様々な問題をはらんでいます

6.最後に

最後に書いておかねばならないことをチャチャっと書きます。

まず、1万回という試行回数は「十分に多くの回数くじをひく」という文脈での「十分に多い」という条件を満たしているのかどうか、という点についてです。これに関しては、数学的にどの程度が十分か、というのを数学的に導き出すことは不可能なのでどこかで研究者や筆者である私が「これで十分だ」と主観的に決めるか、この分野で求められている通説的な精度基準を用いるべきです。しかし私はこの分野への知識が深いわけでもなければ、どの程度を十分とすれば良いのか基準を決めることもしたくありませんでした。そこで、実際に計算を行なってみて、その結果を提示することで、読者の皆さんの主観によってこの「一万回」という数字が十分に多いのか判断してもらうことにしました。

エクセルを用いて計算を行ってみたのですが、私の根気と技術ではせいぜい五回分くらいしか結果を画面内に収めることができなかったので、プログラムをかける方に計算を依頼し、コードを書いていただきました。私も書けるようにならなければいけないんですけどね、、、

#include<iostream>
#include<random>
#include<cstdint>

int main()
{
   constexpr int OUTPUT_NUM = 1000;//出力の試行回数
   constexpr int RANDOM_TRY_NUM = 10000;//乱数生成の試行回数
   constexpr float SUCCESS_PROBABILITY = 0.8f;//成功確率
   constexpr int SUCCESS_VALUE = 400;//成功した時に得られる値
   constexpr int RANDOM_MAX = 100000;
   
   std::random_device rnd;// 非決定的な乱数生成器を生成
   std::mt19937 mt(rnd());// メルセンヌ・ツイスタの32ビット版、引数は初期シード値
   std::uniform_int_distribution<> dist(0, RANDOM_MAX);// 範囲の一様乱数
   
   int sum = 0;
   for(int j = 0 ; j<OUTPUT_NUM; ++j){
       for (int i = 0; i < RANDOM_TRY_NUM; ++i) {
           const int RAND_NUM = dist(mt);
           if( ( static_cast<float>(RAND_NUM)/RANDOM_MAX ) < SUCCESS_PROBABILITY ){
               //成功
               sum += SUCCESS_VALUE;
           }else{
               //失敗
           }
       }
       std::cout<<"result : "<<sum<<std::endl;
       sum = 0;
   }
   
}

これがそのコードです。言語はC++です。

これを実行してみてください。Wandboxはこちら


今回の記事はこれで以上です。約5000字にものぼる記事を最後まで読んでくださってありがとうございます。いそがしい時期なので更新頻度低いですが、よければぜひフォローお願いします。他の記事も是非読んでくださいね!!


サポートよろしくお願いします! いただいたお金は、本かご飯に使わさせていただきます!