モンテカルロ法では、無作為抽出の繰り返しを頼りに、他の数学的な手法では複雑過ぎて導くのが難しい数値的な結果を得ます。これは、数学的な知識をあまり必要としないので、昔ながらの統計的なテスト手法にあまり馴染みのないベッターにとって特に有益です。
この手法をスポーツ予測にどう応用するかについては、Dominic CortisがF1チャンピオンシップの予測という具体的な例を検討しながら、既に説明しているところです。今回はこの手法を使い、自分のベッティング成績に偶然の結果として幅が出ることをどうやって予期できるのか調べていきたいと思います。
ベッティング成績を分析する
この記事で使う集合知手法によるベッティング履歴は、ベット回数が1,521回で、常に同額を賭けた上での差益率は0.76%を示しています。しかし、この成績が標準的なものなのか、あるいは運が良いのか悪いのかを知るには、どうしたらよいでしょうか。
まず最初のステップは、これを期待値と比較することです。この手法では、各ベットについてのフェアオッズが、そしてそこから期待値の量が暗に示されています。たとえば、公正な値付けのフェアオッズが2.00で、公示されたベッティングオッズが2.10の場合、5%つまり1.05の期待値が示されています(2.10/2.00から計算)。
フェアオッズが2.00ということは、勝率が50%であることを意味しています。このようなベットを100回行って50回勝つ場合、毎回€1.10の利益を出す一方、50回の負けで€1ずつ損をしているので、正味の利益は€5(€100のターンオーバーの5%)です。同様に、フェアオッズ3.00に対する公示オッズ3.50では、16.67%の期待値があることになります。以下の表に、私が自分のベッティングシステムにより判断した選択を示します。
試合
|
ベット
|
市場オッズ(最高)
|
フェアオッズ*(推定)
|
期待値
|
Heerenveen対Ajax
|
Ajax
|
1.75
|
1.61
|
8.58%
|
Heracles対Feyenoord
|
Feyenoord
|
2.0%
|
1.95
|
2.52%
|
Juventus対Lazio
|
Lazio
|
7.5
|
7.29
|
2.86%
|
Sassuolo対Sampdoria
|
Sampdoria
|
4.3
|
4.16
|
3.32%
|
Utrecht対Graafschap
|
Graafschap
|
7.0
|
6.48
|
7.99%
|
West Ham対Watford
|
West Ham
|
1.65
|
1.58
|
4.77%
|
*マージンを除いたピナクルのオッズ
完全なベッティング履歴があれば、単純に平均を計算することで全体的な期待値と予想利益を十分容易に判断できます。私の1,521回の履歴では、これが4.04%でしたから、私のベッティングシステムが予想通りに正しく働いていた場合、€1,521の賭け金に対する利益は予測では€61.45となるはずでした。
しかし実際には、履歴から、リターンは€11.61だったとわかりました。もちろん私の予想モデルが適切に機能していることが前提ではありますが、結果は明らかに、不運によって期待を下回るものでした。問題は、それがどの程度かという点です。ここで、モンテカルロ法の出番です。
Excelでモンテカルロシミュレーションを実行する
モンテカルロシミュレーションは、Excelなどのソフトウェアパッケージで比較的簡単に実行できます。
- 各ベットに対する勝率の期待値を計算し、0から1までの間の小数で表します。これは単純にフェアオッズの逆数です。
- ExcelのRAND関数を使って、各ベットに対して0から1までの乱数を出力します。シミュレーションで各ベットの勝敗を判断するには、Excelで各ベットに関連付けられた乱数が期待勝率の数値より小さいかどうかを見るだけです。乱数の方が小さい場合、賭けの利益はオッズと同じ1を割り当てます。そうでなければ、賭けの損失-1を割り当てます。
- シミュレーションのすべてのベットに対する個々の利益と損失を合計して、収益を計算します。賭け金は均等にしていますから、利益合計をベット回数で割るだけです。
- Excelのデータテーブル機能を使い、任意のシミュレーション回数の乱数を読み直します。
私のベッティングの最初の2ステップを以下に示します。
試合
|
ベット
|
フェアオッズ(推定)
|
勝率
|
乱数
|
利益
|
Heerenveen対Ajax
|
Ajax
|
1.61
|
0.621
|
0.462
|
€0.61
|
Heracles対Feyenoord
|
Feyenoord
|
1.95
|
0.513
|
0.15
|
€0.95
|
Juventus対Lazio
|
Lazio
|
7.29
|
0.137
|
0.8
|
1
|
Sassuolo対Sampdoria
|
Sampdoria
|
4.16
|
0.24
|
0.702
|
1
|
Utrecht対Graafschap
|
Graafschap
|
6.48
|
0.154
|
0.525
|
1
|
West Ham対Watford
|
West Ham
|
1.58
|
0.633
|
0.533
|
€0.58
|
F9キーを押すと、すべての乱数が再計算されて完全に新しいシミュレーションが実行でき、新しい理論上の収益サンプルが得られます。新しくシミュレーションを実行するたびに自分で収益をメモしておくこともできますが、何百回も何千回も行う場合には、それでは手間と時間がかかるばかりです。
ありがたいことに、Excelには何回ものシミュレーションを一手間で簡単に素早く実行する方法があります。データテーブル機能を使えばよいのです。この機能は、[データ] > [What-if 分析] > [データテーブル]にあります。
- 上記のステップ3で説明したように、任意のExcelのセルで、サンプルの収益を計算します。
- 次に、収益に入れたい複数のセルとその左側の列を一緒に選択します。

- 次にExcelの[データテーブル]を呼び出します。下記のようなボックスが現れます。[列の代入セル]に1つのセル参照をただ入力します。前のステップで選択したセル以外であれば、どのセルでも構いません。

- OKをクリックして、Excelで魔法の計算が実行されるのを確認します。最初のセル以下の選択されたセルが、それぞれ1回のシミュレーション実行を表すものとして、新しく計算される収益に算入されます。この例では、下記のように6回分のシミュレーションを作成しました。

ベッティングの利益に対する運の影響を測定する
Gerard Verschuuren博士が作成したYouTubeのチュートリアルでは、このプロセスがより詳しく説明されており、非常に参考になります。シミュレーションは好きな回数だけ実行することができます。ただし、回数を多くするほど、Excelでの計算にかかる時間も長くなります。この記事においては、100,000回のシミュレーションを実行しました(約5分かかりました)。
この試行では、長いベッティング履歴の間に不運の影響がプラスの期待をもつ可能性があるという点を除くことも重要です。
平均の収益は4.05%で、ほとんど正確に私のベッティング履歴の期待値と一致しました。ただし、一番悪い時の-12.23%から一番良い時の23.26%まで、成績には大きな幅がありました。
それどころか、私のベッティング履歴では理論上の期待値が4%を超えているにもかかわらず、シミュレーションの約17%では結果がマイナスとなった一方、78%では実際の0.76%という収益を超える予想となりました。
実際に、このデータを使って、統計的なテストに頼ることなく、特定の収益要件を得られる可能性をExcelで計算することができました。すべてモンテカルロ法のおかげでできたことです。100,000回のシミュレーションによる収益の完全な分布を以下のチャートに示します(x軸は0.1%刻み)。正規分布に詳しい方なら、ほぼ完ぺきに一致していることがわかるでしょう。

もちろん、実際の収益が-5%以下(この発生確率はほんの1%)であったなら、自分のベッティングシステムに本当は何らかの欠陥があるのではないかと考え始めたかもしれません。つまり、モンテカルロ法は、このような主観的な評価に役立つ明らかに有益なツールなのです。
欠陥のあるベッティングシステム対不運
この試行では、長いベッティング履歴の間に不運の影響がプラスの期待をもつ可能性があるという点を除くことも重要です。私の履歴には1,500回を超えるベットがあり、4%を超える予想値がありました。これだけのアドバンテージにもかかわらず、私のモンテカルロシミュレーションでは、5回に1回は負けて終わる可能性があることが明らかになりました。
自分のベッティング戦略に同様のアドバンテージがある場合、1,500回ベットして何もなかったらどう感じるでしょうか。手法に自信を持ち、悪い成績は不運のせいだと片づけますか。それとも全体的なアプローチを信じられなくなりますか。
その手のジレンマの解消に役立つ方法の1つが、サンプル数を増やすことです。あらためて、モンテカルロ法により、もっと回数の多いベッティング履歴ではどう変わるかを調べることができます。思考実験として、もともとの1,521回のベットを10倍に増やしました(単純に元のベッティングオッズのサンプルを追加で9回繰り返しました)。さらに100,000回のシミュレーションを行って得た収益が、以下の数値です。
- 平均収益 = 4.04%
- 最低収益 = -1.21%
- 最高収益 = 10.17%
- 収益がマイナスになる可能性 = 0.1%
- 収益が0.76%を超える可能性 = 99.3%
新しい100,000回シミュレーションの分布は以下の通りです。元の1,521回ベットの例の分布に重ね合わせました。

2つのサンプルで明らかに違う点は、発生しうる収益の広がりや幅の大きさです。ベッティング履歴が長いほど狭まっています。このような結果は完全に予測可能で、単純に大数の法則によるものです。
モンテカルロシミュレーションの結果を評価する
ベッティング履歴が長くなるほど、実際の成績が期待値に近付く可能性が高まります。もちろん、私の予想手法が適切に機能していることが前提ではあります。結論として、私が15,000回のベットを終えてなお収益が0.76%以下である場合、真剣に手法を疑い始めることになるでしょう。
結局、モンテカルロ法では、そのベッティングシステムに運の影響を上回る何かがあるのかどうかを完全に知ることはできません。それでも、モンテカルロ法は運の影響について情報に裏付けられた判断をもたらす有益なツールとなりますし、同時に、幸運と不運の制限の中で皆さんが合理的に目にすることになるかもしれない、起こり得る結果の範囲も示してくれるのです。