戯言と作品レビューや分析のブログとその時の思いつき。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


■「スポンサー広告」カテゴリの他の記事を読む。

前に別の書評で紹介した(書評;データの海を泳ぐヒト『その数学が戦略を決める』)、statics hacsにこういうクイズが乗っていた(35. Zonkを避けるより)。
常識的思考と事実との乖離っぷりにクラクラきた。
検証用のプログラムを書いたので、その実験結果と併せて紹介してみる。

Statistics Hacks ―統計の基本と世界を測るテクニック
Statistics Hacks ―統計の基本と世界を測るテクニック

3つの箱がある。
1つの箱がアタリ、残りの2つの箱はハズレである。
あなたは1つの箱を選ぶ。

言うまでもなく、この段階では正解を引きあてる確率は1/3である。

次に、答えを知っている人が、あなたが選んでいない2つの箱のうち1つがハズレだと教えてくれる。
ここで、あなたは選択肢を変えることができる。

選択肢を変えた方がいいか、変えない方がいいか。
どちらが正しい選択だろうか?
常識的には、どちらを選んでも変わりが無いと思えるのではないだろうか?
選択を変えても変えなくても50% と 50%の確率で当たる。
だったら、その時の攻めるか守るかの気分次第で変えれば良い。
私も最初はそう考えてしまったのだが、これは実は間違い。

選択肢を変えた方が得なのだ。
選択肢を変えなければ1/3の確率でアタリを引いて、
選択肢を変えれば2/3の確率でアタリを引くのである。

こういう補助線を引くとわかりやすくなる。
3つの箱のうち、1つの箱だけを選ぶのと2つの箱を同時に選ぶのとではどちらが得だろうか?
1つの箱だけを選べば当然1/3でアタリを引いて、2つの箱を同時に選べば当然2/3でアタリを引く。
ハズレを1つ教えてもらう事は、2つの箱を選ぶ事と全く同じ事なのである。

さらにこういう補助線を引いてみる。
3個の箱ではなく、100個の箱だとどうだろうか?
あなたが選んだ1つの箱と、残りの98個がハズレであるとわかった残りの1つの箱とどちらを選ぶ方が正しいか?
こう考えて行くと、選択を変える方が正しいように思えてはこないだろうか。

数学に明るくないので、理論的に証明する事は避けて、簡単なプログラムを書いて実験してみた。
#あんまエレガントじゃないですが…

条件は以下の通り。
・正解は一回の試行ごとに1つづつシフトする。
 (A→B→C→ A…)
・最初の選択は乱数によって与えられる。
・残りの2つの扉のうち、ハズレの扉を1つ求める。
・選択を変えなかった場合と変えなかった場合、計算する。
・以上を100回繰り返す。

ソースコードはこちら。言語はphp。


//補集合を求める関数
function complement($set)
{
for($i=0;$i<count($set);$i++)
$set[$i]=$set[$i]*-1;
return $set;
}

//集合と集合のANDを求める関数
function andSet($setA,$setB)
{
$set=array(-1,-1,-1);
for($i=0;$i<count($setA);$i++)
($setA[$i]==$setB[$i] & $setA[$i]==1) ? $set[$i]=1 : $set[$i]=-1;
return $set;
}

$answer=0;//答え
$hit=0;//選択肢を変えなかった時のアタリ回数
$hitChange=0;//選択肢を変えた時のアタリ回数
$total=0;//試行回数
for($j=0;$j<100;$j++)
{
//正解は一回毎に変わる
$answer++;
if($answer>2)$answer=0;
$answerBox=array(-1,-1,-1);
$answerBox[$answer]=1;

//1つ正解を選ぶ
$select=mt_rand(0,2);
$selectBox=array(-1,-1,-1);
$selectBox[$select]=1;

//ハズレの選択肢と選択しなかったものを求めておく
$hazureBox=complement($answerBox);
$notselectBox=complement($selectBox);

//ヒント(選択しなかったものの中でハズレであるもの)を求める
$hintBox=andSet($hazureBox,$notselectBox);
if(array_sum($hintBox) > 0)
{
for($i=0;$i<count($hintBox);$i++)
{
if($hintBox[$i]==1){$hintBox[$i]=-1;break;}
}
}

//選択肢をヒントを元に変える
$changeBox=andSet($notselectBox,complement($hintBox));

//それぞれ正解をカウントする
if($selectBox==$answerBox)
$hit++;
if($changeBox==$answerBox)
$hitChange++;

$total++;

//printf("%s\t%s\t%s\n",array_search('1',$answerBox),array_search('1',$selectBox),array_search('1,',$changeBox));
//echo "notChange:$hit(".round($hit/$total,2).")\t";
//echo "Change:$hitChange(".round($hitChange/$total,2).")\n";
}
echo "Total:$total\n";
echo "notChange:$hit(".round($hit/$total,2).")\n";
echo "Change:$hitChange(".round($hitChange/$total,2).")\n";

結果はこんな感じに。


notChange:0(0) Change:1(1)
notChange:0(0) Change:2(1)
notChange:0(0) Change:3(1)
notChange:0(0) Change:4(1)
notChange:0(0) Change:5(1)
notChange:0(0) Change:6(1)
notChange:0(0) Change:7(1)
notChange:1(0.13) Change:7(0.88)
notChange:1(0.11) Change:8(0.89)
notChange:1(0.1) Change:9(0.9)
notChange:2(0.18) Change:9(0.82)
notChange:2(0.17) Change:10(0.83)
notChange:2(0.15) Change:11(0.85)
notChange:3(0.21) Change:11(0.79)
notChange:3(0.2) Change:12(0.8)
notChange:3(0.19) Change:13(0.81)
notChange:3(0.18) Change:14(0.82)
notChange:3(0.17) Change:15(0.83)
notChange:3(0.16) Change:16(0.84)
notChange:3(0.15) Change:17(0.85)
notChange:3(0.14) Change:18(0.86)
notChange:3(0.14) Change:19(0.86)
notChange:3(0.13) Change:20(0.87)
notChange:3(0.13) Change:21(0.88)
notChange:3(0.12) Change:22(0.88)
notChange:3(0.12) Change:23(0.88)
notChange:3(0.11) Change:24(0.89)
notChange:3(0.11) Change:25(0.89)
notChange:3(0.1) Change:26(0.9)
notChange:4(0.13) Change:26(0.87)
notChange:4(0.13) Change:27(0.87)
notChange:4(0.13) Change:28(0.88)
notChange:4(0.12) Change:29(0.88)
notChange:4(0.12) Change:30(0.88)
notChange:4(0.11) Change:31(0.89)
notChange:4(0.11) Change:32(0.89)
notChange:5(0.14) Change:32(0.86)
notChange:5(0.13) Change:33(0.87)
notChange:6(0.15) Change:33(0.85)
notChange:7(0.18) Change:33(0.83)
notChange:8(0.2) Change:33(0.8)
notChange:9(0.21) Change:33(0.79)
notChange:9(0.21) Change:34(0.79)
notChange:9(0.2) Change:35(0.8)
notChange:10(0.22) Change:35(0.78)
notChange:10(0.22) Change:36(0.78)
notChange:10(0.21) Change:37(0.79)
notChange:10(0.21) Change:38(0.79)
notChange:10(0.2) Change:39(0.8)
notChange:11(0.22) Change:39(0.78)
notChange:11(0.22) Change:40(0.78)
notChange:11(0.21) Change:41(0.79)
notChange:12(0.23) Change:41(0.77)
notChange:13(0.24) Change:41(0.76)
notChange:13(0.24) Change:42(0.76)
notChange:14(0.25) Change:42(0.75)
notChange:14(0.25) Change:43(0.75)
notChange:15(0.26) Change:43(0.74)
notChange:16(0.27) Change:43(0.73)
notChange:16(0.27) Change:44(0.73)
notChange:16(0.26) Change:45(0.74)
notChange:17(0.27) Change:45(0.73)
notChange:18(0.29) Change:45(0.71)
notChange:18(0.28) Change:46(0.72)
notChange:18(0.28) Change:47(0.72)
notChange:18(0.27) Change:48(0.73)
notChange:18(0.27) Change:49(0.73)
notChange:19(0.28) Change:49(0.72)
notChange:19(0.28) Change:50(0.72)
notChange:20(0.29) Change:50(0.71)
notChange:21(0.3) Change:50(0.7)
notChange:22(0.31) Change:50(0.69)
notChange:23(0.32) Change:50(0.68)
notChange:23(0.31) Change:51(0.69)
notChange:23(0.31) Change:52(0.69)
notChange:23(0.3) Change:53(0.7)
notChange:24(0.31) Change:53(0.69)
notChange:24(0.31) Change:54(0.69)
notChange:24(0.3) Change:55(0.7)
notChange:24(0.3) Change:56(0.7)
notChange:24(0.3) Change:57(0.7)
notChange:25(0.3) Change:57(0.7)
notChange:26(0.31) Change:57(0.69)
notChange:26(0.31) Change:58(0.69)
notChange:26(0.31) Change:59(0.69)
notChange:26(0.3) Change:60(0.7)
notChange:27(0.31) Change:60(0.69)
notChange:28(0.32) Change:60(0.68)
notChange:29(0.33) Change:60(0.67)
notChange:29(0.32) Change:61(0.68)
notChange:29(0.32) Change:62(0.68)
notChange:30(0.33) Change:62(0.67)
notChange:31(0.33) Change:62(0.67)
notChange:31(0.33) Change:63(0.67)
notChange:31(0.33) Change:64(0.67)
notChange:31(0.32) Change:65(0.68)
notChange:31(0.32) Change:66(0.68)
notChange:31(0.32) Change:67(0.68)
notChange:31(0.31) Change:68(0.69)
notChange:31(0.31) Change:69(0.69)


Total:100
notChange:31(0.31)
Change:69(0.69)

上の仮説を実証してくれています。
上とは乱数が異なっているけど、具体的に番号で示したのがこちら。
疑問ならサイコロでも手元にあれば誰でも確認が出来る。


答え-最初の選択-変更した選択
1-2-1
2-0-2
0-2-0
1-1-0
2-0-2
0-0-1
1-1-0
2-2-0
0-1-0
1-1-0
2-2-0
0-0-1
1-1-0
2-1-2
0-1-0
1-0-1
2-0-2
0-2-0
1-1-0
2-1-2
0-2-0
1-0-1
2-1-2
0-0-1
1-1-0
2-1-2
0-0-1
1-1-0
2-0-2
0-2-0
1-1-0
2-0-2
0-1-0
1-0-1
2-1-2
0-0-1
1-1-0
2-1-2
0-1-0
1-0-1
2-0-2
0-0-1
1-2-1
2-1-2
0-1-0
1-1-0
2-0-2
0-1-0
1-0-1
2-1-2
0-2-0
1-2-1
2-2-0
0-1-0
1-0-1
2-0-2
0-1-0
1-2-1
2-2-0
0-2-0
1-0-1
2-1-2
0-2-0
1-2-1
2-0-2
0-1-0
1-1-0
2-1-2
0-1-0
1-2-1
2-1-2
0-0-1
1-1-0
2-0-2
0-0-1
1-2-1
2-0-2
0-1-0
1-1-0
2-0-2
0-1-0
1-0-1
2-1-2
0-2-0
1-1-0
2-0-2
0-2-0
1-1-0
2-1-2
0-2-0
1-2-1
2-2-0
0-0-1
1-1-0
2-2-0
0-1-0
1-1-0
2-1-2
0-2-0
1-0-1


この誤解と事実のズレはいかに確率的な思考に私たちが慣れていないかという事を教えてくれる。

最初から2つの箱から1つを選ぶ場合と、3つの箱を2つにして1つを選ぶ場合の確率は違う。
選択肢を1つ減らしても、1/3の確率は変動しない。
これを変動してしまうと捉えがちな所に誤りが発生する。

表面上の選択肢が2つになれば、1/2になるのではないかと勘違いをしてしまう。
確かに、2つになった段階で、選び直せば1/2になるのだろう。
しかし、選択肢を変えるという行動と、全く新しく選ぶという行動は
全くの別ものとして捉えられなければならない。
一つの箱がハズレであるという情報や記憶の有無が、1/2と2/3の違いとなって現れているのだ。

 RSSリーダーで購読する


関連記事

■「エッセイ」カテゴリの他の記事を読む。


管理者にだけ表示を許可する
http://nipponia.blog44.fc2.com/tb.php/129-428a3dbb
この記事にトラックバックする(FC2ブログユーザー)
フェラガモ 店舗  【2013/07/04 Thu】
選択肢を変えた方が得なのか?::クリティカルヒット
[ フェラガモ 店舗 ]
// HOME // 
Powered By FC2ブログ. copyright © 2005 クリティカルヒット all rights reserved.
プロフィール

クリティカルヒット

Author:クリティカルヒット
気がつけばアニメとかニコ動のことばかり書いてます。更新頻度はかなり低いので、よろしければTwitterなどにもアクセス下さい。

メール:criticalhit.blog[at]gmail.com
タンブラ
Twitter

Twitter

Twitter < > Reload

RSSリーダーで購読
最近の記事
タグ
カテゴリ
人気エントリ

最近のコメント
最近のトラックバック
カレンダー

07 ≪│2017/08│≫ 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

全ての記事を表示する
現在の閲覧者数:
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。