toto

AWS Machine Learningでtotoが当たらなかったので反省と考察

More than 1 year has passed since last update.

あらまし

本記事は、AWS Machine Learningでtotoを当てる(当たるとは言っていない)の結果発表と反省と考察になりますので、読んでない方は先に前記事に目を通していただくとよりお楽しみいただけると思います。

前回記事で、totoの過去データの収集、AWS MLを使った学習と予想までを行いました。

結果発表

前回の記事で作成したデータモデルを使って試合結果を予想し、第800回totoのもっとも確率の高いくじを買いました。

そしてそのくじの結果が下記です。

  1 2 3 4 5 6 7 8 9 10 11 12 13
購入くじ 1 1 1 1 2 0 2 1 0 0 0 0 2
当選くじ 1 1 0 1 1 1 0 0 0 1 0 0 2
結果 🙆 🙆 🙆 🙆 🙆 🙆 🙆

参考リンク: 第800回 toto くじ結果

13試合中 7試合的中!
1枚しか買ってないことを考えるとまあまあすごい的中率ですが残念ながら賞金は0円でした...

なぜ当たらなかったか

前回、各試合のスコアを予想したところでくじを買って終わりにしてしまったんですが、そもそもMLで予想した結果がすべて的中する確率というものはどれくらいあったのでしょうか?
前回のMLがはじき出した第800回totoの各試合の確率分布を下に示します。

確率分布

No. 1(home勝利)の確率 2(home敗北)の確率 0(その他)の確率
1 0.7754 0.1020 0.1226
2 0.6348 0.2315 0.1336
3 0.5233 0.1505 0.3262
4 0.7601 0.0934 0.1465
5 0.3370 0.4892 0.1738
6 0.1962 0.2312 0.5726
7 0.2437 0.6113 0.1450
8 0.5273 0.1618 0.3109
9 0.2580 0.3340 0.4080
10 0.2971 0.3341 0.3688
11 0.4028 0.1441 0.4532
12 0.3111 0.2878 0.4010
13 0.3184 0.4268 0.2548

各試合の3択について0.7を超えているそこそこ固い試合もあれば、0.4程度しかないどっちに転ぶかわからないものもあります。
この表と先ほどの買ったくじの番号を掛け合わせていくと、(AWS MLではじき出した確率が完全に正しいという前提に立った上での、)僕が買った1枚のくじが1億円に化ける確率が計算できます。
やってみましょう。

0.7754 * 0.6348 * 0.5233 * 0.7601 * 0.4892 * 0.5726 * 0.6113 * 0.5273 * 0.4080 * 0.3688 * 0.4532 * 0.4010 * 0.4268 = 0.00020632122

というわけで、1枚のtotoが当たる確率はMLを活用しても、そもそも 0.02% しかなかったようです。そりゃまあ当たらないですね...

totoの当選確率と投資効率

このまま引き下がると、機械学習なんか全然役に立たないじゃないかと怒られてしまいそうなので、1枚で0.02%の確率が実はめちゃくちゃ凄いという説明をしておきます。

一旦機械学習のことは忘れてもらって、ランダムにtoto1枚を買った時の当選確率について考えてみましょう。
1枚での当選確率は、1 or 2 or 0 の3択を13回当てればいいだけなので、とっても簡単ですね。

0.3333 ^ 13 = 6.2641057e-7

たったの 0.00006264% でした。
くじ1枚が100円で、当選時の賞金が1億円だとすると、くじ1枚をランダムに購入した時の資産の期待値は

100,000,000 * 6.2641057e-7 - 100 = -37.358943

マイナス37円になります。
世の中においしい話はないもので、宝くじの類はちゃんと計算すると期待値がマイナスになるのは当たり前ですね。

さて、totoなんか買わないで明日からもこつこつ真面目に働こうという気持ちになってきたところで、先ほどMLではじき出したくじは当選確率が0.02%だと言いました。こっちの期待値を計算してみます。

100,000,000 * 0.00020632122 - 100 = 20532.122

おや、2万532円とプラスの数字が出てきました。
実は前の記事で紹介した機械学習を使ったくじ購入は、(AWS MLではじき出した確率が完全に正しいものだという前提に立った上で、)ランダムでくじを買うのと比べると329倍くらい当選確率を上げてくれています。これによって期待値がマイナスからプラスに変わりました。

投資としてのtoto

期待値がプラスになったということは、MLの計算結果通りにtotoを延々と買い続けると長期的に見て資産がプラスになるということなので、夢を買う宝くじとしてのtotoではなく資産の投資先としてのtotoという考え方が可能になります。

もちろん0.02%で当たる可能性のあるくじを1枚買い続けたいならそれでもいいんですが、totoは年間35回程度しかありません。0.02%のくじを年に35回、100年間買い続けた時に全部外す確率は

0.9998^(35*100) = 0.4965505394

ほぼ50%あります。
元手は安く済みますが、人生全部捧げても半分の可能性で当たらないのでこれはちょっと投資としては賢くありません。

ですのでMLのはじき出した結果確率分布をもとに、当選確率が上がりやすいように複数枚のtotoを買う計算をしていきたいと思います。

データを当てにして購入枚数を増やす

今一度「なぜ当たらなかったか」の項にある確率分布のテーブルを眺めてください。
各試合の3択で、まあまあ期待できそうなものと、期待できなそうなものがあるということは先述のとおりです。
最小の投資額で最大限当選確率を上げるために、もっとも確率が低そうな試合(今回だと No.12が0となる確率 0.4010 ですね)について、次点の候補(No.12が1となる確率 0.3111 )も買うという操作を行います。
この結果、くじを2枚買って出費は増えましたが、No.12の試合の結果を当てる確率を 0.4010 + 0.3111 = 0.7121 まで上昇させることができました。

同様の操作を繰り返した結果でてくる表が下記になります。

購入枚数 当選確率 購入費用 期待当選額 ROI 35回外す確率 35回買う費用
1 0.0002063212219 100 20632.12219 20632.12219 0.9928040281 3500
2 0.0003932298994 200 39322.98994 19661.49497 0.9863285615 7000
4 0.000698301774 400 69830.1774 17457.54435 0.9758473588 14000
8 0.001269950775 800 126995.0775 15874.38469 0.956498054 28000
16 0.002217355477 1600 221735.5477 13858.47173 0.9252478691 56000
32 0.004188120672 3200 418812.0672 13087.8771 0.8633871841 112000
64 0.007073232418 6400 707323.2418 11051.92565 0.78001446 224000
128 0.01148234462 12800 1148234.462 8970.581734 0.6675058322 448000
256 0.01825242037 25600 1825242.037 7129.851706 0.5248006614 896000
512 0.02562224152 51200 2562224.152 5004.344046 0.403141652 1792000
1024 0.03583676836 102400 3583676.836 3499.68441 0.2787852534 3584000
2048 0.04890578517 204800 4890578.517 2387.977792 0.1729115089 7168000
3072 0.06957715916 307200 6957715.916 2264.881483 0.08013324233 10752000
4608 0.09769723556 460800 9769723.556 2120.165702 0.02737348411 16128000
6912 0.1316674334 691200 13166743.34 1904.910784 0.007145179291 24192000
10368 0.176687377 1036800 17668737.7 1704.160658 0.001108580133 36288000
20736 0.210741713 2073600 21074171.3 1016.308415 0.0002527378406 72576000
41472 0.2440624945 4147200 24406249.45 588.4994563 0.00005584782473 145152000
62208 0.3036358479 6220800 30363584.79 488.0977492 0.000003156997335 217728000
93312 0.3675088935 9331200 36750889.35 393.8495516 0.0000001088691451 326592000
139968 0.4384501235 13996800 43845012.35 313.2502597 0.000000001692745864 489888000
209952 0.516127279 20995200 51612727.9 245.8310847 0 734832000
314928 0.6036576363 31492800 60365763.63 191.6811577 0 1102248000
472392 0.7052780398 47239200 70527803.98 149.2993192 0 1653372000
708588 0.8140453792 70858800 81404537.92 114.8827498 0 2480058000
1062882 0.9065093309 106288200 90650933.09 85.28786177 0 3720087000
1594323 0.99989999 159432300 99989999 62.71627456 0 5580130500

いきなりめちゃくちゃいっぱい数字を並べましたが、各列はそれぞれ下記のような意味です。

  • 購入枚数

    • totoの購入枚数です。totoの組み合わせ全通りを購入すると 1594323枚 です。
  • 当選確率

    • 購入枚数時点での当選確率です。先述した、もっとも当選確率が上がりやくなる計算方法で買い足していった場合の数値になります。
  • 購入費用

    • 購入枚数 x ¥100
  • 期待当選額

    • 1億円 x 当選確率
  • ROI

    • 期待当選額 / 購入費用
  • 35回外す確率

    • 該当行の当選確率でくじを35回買った時、すべて外れる確率
  • 35回買う費用

    • 購入費用 x 35

上の表を眺めると下記のようなことが読み取れます

  • 1回のtotoに2000万円ほどつぎ込んでも、当選確率は半分程度。
  • 1回あたり3072枚くらい買うと、35回外す確率を10%以内に抑えられるため投資として現実的なラインかもしれない。この時かかる費用が1000万円程度。
  • そんなにお金はかけられないけど人生一発逆転を狙う人は、1回あたり256枚購入くらいが現実的かもしれない。35回買って当選率およそ50%、この時かかる費用が100万円程度。

ちなみに第800回の当選くじは、上記の表でいうと 314928枚 買ったところで含まれていました。コスト3000万円で確率60%なので超お金持ちの方ならチャレンジ可能だったかも・・・というところでした。

まとめ

  • 第800回は6試合もはずしてしまいました。次こそはがんばります。
  • MLではじき出した1枚のくじは、適当に買う1枚のくじに比べて300倍程度当選確率が高いと考えられますが、その程度の確率上昇では一生かかっても当たらないことがわかりました
  • (AWS MLではじき出した確率が完全に正しいものだという前提に立った上で、)totoを複数枚買う投資に現実味があることを示しました。
    • 数字の上ではめちゃくちゃおいしい投資対象に見えますが、実際に理論通りいくのかどうかは全くわかりません。
  • toto投資の実証実験がしたいので、通りすがりのお金持ちな方、1千万ほど僕にください!:pray: :pray: :pray: 計算上は90%の確率でtotoを当てて、数倍にして返せるはずです!:pray:(もちろんはずれたら返しません。)