2021年3月アーカイブ

toto予想結果(第1231回)

第1231回 mini toto A組

予想結果は組み合わせをたくさん買うことになっていたので、購入を見送りました。

第1231回 mini toto B組

うーん、何とか当選したけど、やっぱり順当路線なので当選金額が低い...。
1231-b.png

まとめ

1800円購入して2730円の当選金額獲得でした。
累計は-1750円となりました。

toto予想結果(第1230回)

第1230回 mini toto B組

うーん、当選確率はシミュレーションで分かっていて、あまり当たるわけではない。
それにしても、1等の当選金額が毎回5,000円程度と想定より低いなぁ。
1230-a.png

第1230回 mini toto B組

こちらもダメでした。
1230-b.png

まとめ

今回は1100円購入して当選なしでした。
これで累計-2680円となりました。

toto予想結果(第1229回)

第1229回 mini toto A組

全然ダメだ!!
1229-a.png

第1229回 mini toto B組

こちらはもっとダメ。1等でも910円ということは...。
1229-b.png

まとめ

今回は1800円購入して当選なしでした。
累計では-1580円になりました。
数回の感じからすると、想定より当選金額が低いので、分の悪い賭けかも。

toto予想結果(第1228回)

第1228回 mini toto A組

予測手法で計算した結果、2試合は互角のため、トリプル推奨。
外したらダメージ大きいなと思いつつ、これも実験だからと購入したら、当選でした。
当選金額は5370円。もう少し組み合わせを絞り込めればいいのですが、単純なレーティングだけでは難しいですね。
1228-a.png

第1228回 mini toto B組

こちらはあと1つでした。残念。
1228-b.png

まとめ

今回は3000円分購入して5370円の当選金額獲得でした。
累計では+220円という状態で振り出しに戻すことができました。
順当な予想をする手法なので、当選金額は小さくなるし、既に限界が見えている気がしてきました...。

toto予想結果(第1225回~第1227回)

第1225回 mini toto A組

レーティング計算とパラメータは暫定状態で購入。
1225-a.png

第1225回 mini toto B組

レーティング計算とパラメータは暫定状態で購入。
1225-b.png

第1226回 mini toto A組

レーティング計算とパラメータは暫定状態で購入。
実はパラメータチューニング後は清水-福岡戦の引き分け(0)も候補に入っていました。
うーん、ちゃんとやっておけば当選だったなぁ...。
1226-a.png

第1226回 mini toto B組

予想結果はほぼ全てが均衡ということで、購入を回避。

第1227回 mini toto A組

この回からパラメータチューニング状態で購入を開始。
1227-a.png

第1227回 mini toto B組

1試合が中止扱いとなり、他が全て実力差のあって順当な結果。
当選したものの、当選金額は僅かに350円...。
1227-b.png

まとめ

今回は2500円分購入して350円の当選金額獲得でした。
残念ながら、-2150円からのスタートです。
パラメータをしっかり調整していれば第1226回が当選だったので、プラススタートにできたのですが。詰めが甘いなぁ。

閾値設定について

前回までの記事でレーティング計算のパラメータKは16もしくは32がよさそうだということでした。
そして、初期値は1490(K=16の場合)、1480(K=32の場合)がよさそうでした。
実際の対戦データを用いて、レーティング計算の条件としてどれが適しているのか、検討してみます。

得られたレーティング値から勝率に換算し、以下のルールに従って、購入パターンを決定します。
  • ホームチームから見て勝率が0.5+閾値(W)を上回った場合には「1(ホームチームの90分勝ち)」を購入する。
  • ホームチームから見て勝率が0.5-閾値(W)を下回った場合には「2(ホームチームの90分負け)」を購入する。
  • ホームチームから見て勝率が0.5+閾値(D)を下回った場合かつ0.5-閾値(D)を上回った場合には「0(その他)」を購入する。

合わせて、レーティング計算の条件ごとに最適な閾値の探索を実施します。
mini-totoを購入することを考え、平均正答率(P)とその時の購入組み合わせ数(C)を求めます。
mini-totoの当選金額の理論値は約10,000円とのことなので、次の式で期待収益金額(R)を求めます。



Rが最大値をとるようなWとDを実験的に求めてみます。
ちなみにmini-totoは5試合に対して「勝ち」、「負け」、「その他」を選ぶので、組み合わせは243通りです。

(1)初期値1500、K=16の場合

Wを-0.3~0.15まで0.05刻みで、Dを0.075~0.3まで0.025刻みで求めた結果です。

5試合当たりの平均正解数
correct_1500_16.png

購入組み合わせ数
combination_1500_16.png

期待収益金額
return_1500_16.png

グラフでは読み取りづらいですが、W=-0.05、D=0.075の時に102.5円が最大値でした。

(2)初期値を前年最終節時点のレート(昇格チームは1500)、K=16の場合

Wを-0.3~0.15まで0.05刻みで、Dを0.075~0.3まで0.025刻みで求めた結果です。

5試合当たりの平均正解数
correct_prev_16.png

購入組み合わせ数
combination_prev_16.png

期待収益金額
return_prev_16.png

グラフでは読み取りづらいですが、W=0、D=0.075の時に475.4円が最大値でした。

(3)初期値を前年最終節時点のレート(昇格チームは1500)、K=32の場合

Wを-0.4~0.5まで0.1刻みで、Dを-0.05~0.4まで0.05刻みで求めた結果です。
変動幅を変えているのはKが大きい方がレーティング差が大きくなりやすくなるためです。
いずれにしても荒く調べたあとで、最大値付近の刻み幅を小さくして探索するのがよいでしょう。

5試合当たりの平均正解数
correct_prev_32.png

購入組み合わせ数
combination_prev_32.png

期待収益金額
return_prev_32.png

グラフでは読み取りづらいですが、W=0、D=0.1の時に512.8円が最大値でした。
前年のデータを使った方が結果が良好のようです。

さらに調べてみる

まずはK=16とした場合にWを-0.05~0.05まで0.01刻みで、Dを0.05から0.1まで0.005刻みで動かした結果です。
return_prev_16_detail.png

次にK=32とした場合にWを-0.1~0.1まで0.02刻みで、Dを0.05から0.15まで0.01刻みで動かした結果です。
return_prev_32_detail.png

スケール合わせた方がよかったなと思いつつ、見比べるとK=16の方が結果は良好そうです。
ということで、ここで求めたレーティング計算条件と閾値でmini-totoを購入して1年かけて実験してみたいと思います。

レーティング計算について

レーティング値の算出に当たっては、色々と検討事項があります。
まずは以下の点について検討したいと思います。

  • レーティングの計算範囲をどうするのか?J1/J2をまとめるべきか?
  • EloレーティングのパラメータKは何が適切か?
  • J1/J2を別で計算する場合に、昇格/降格時のレーティング初期値は何にすべきか?

1点目の計算範囲についてですが、色々とデータを整理しましたが、J1/J2は個別で計算するのがよさそうです。
その理由としては、J1/J2の対戦数が少なく、レーティング値を正しく計算できない可能性があります。
結果としてJ1、J2とそれぞれが独立して計算される状態となり、J2上位チームが過大評価される可能性があると考えます。

2点目のレーティングのパラメータKを評価するために、2020年の試合結果を読ませ、最終リーグ順位との関連をみました。
計算した結果は以下の通りでした。
左端を除く左側3つが開幕時のレーティング初期値を1500とした場合の結果です。
右側3つが前年の試合結果を読ませたうえで、昇格チームのレーティング初期値を1500とした場合の結果です。
league_rating.png

緑色に塗られている箇所がリーグ順位と一致するものです。
初期値1500の場合はK=8、K=16が良好そうです。
一方、前年の試合結果を読ませた状態ではK=16が最も良好で、K=8の一致度は低いです。
これはK=8だと前年の結果の影響を強く受け、最新の状態を正しく反映できていない可能性があります。

ただ、ここで一つ疑問が残ります。
リーグ最終順位というのは本当にその時点での強さを表しているかということです。
そもそもリーグ順位との一致をみるということが誤りかもしれません。
目的を振り返ると、試合結果をうまく予想することなので、実際に予想を行って評価してみた方がよさそうです。

3点目の昇格/降格時のレーティング初期値についてです。
昇格チームのレーティング推移をグラフにしました。
グラフを見た感じからすると10試合程度である程度の実力が評価できる状態になっているようです。
チームによってまちまちなので、結局試合データを読み込ませて補正されますが、1470~1510の間ぐらいということでしょうか。
目安として、K=16の場合、1490あたりをJ1昇格チームの初期値にするのがよさそうです。
rating_graph16.png

K=32の場合には1480ぐらいに設定するのがよさそうです。
rating_graph32.png

今週はこんなところで終えたいと思います。

方向性について

2020年の最終節のレーティング値が2021年の勝敗予想に使えるかという点では様々な課題があります。
チーム体制の入れ替わりもあるのでイコールではないでしょう。
J1、J2で個別にレーティング値を計算する場合には昇格/降格チームの初期値をいくつとするかも検討課題です。
単純にJ1/J2を合わせて計算する手もありそうですが、試合数が少なく、数字が安定しない可能性もあります。

また、レーティング値から勝ち/負け/引き分けを決めなければなりません。
前回の記事のとおり、レーティング1位とレーティング18位では勝率83%程度です。
中位のチームでは50%となることも多く、ある閾値を持って勝ち/負け/引き分けを決めなくてはなりません。
不確実性の部分はダブル/トリプルで予想という手もありますが、組み合わせが増えるため投資金額が増えます。
すなわち、購入する組み合わせを最小化しつつ、当選する組み合わせが選択されるようにしなければなりません。

ということで、まずはEloレーティングについて色々と検討していく必要がありそうです。

  • 前年のレーティング値は当年度の勝敗をどれくらい予測できるのか?
  • レーティングの計算範囲をどうするのか?J1/J2をまとめるべきか?
  • EloレーティングのパラメータKは何が適切か?
  • J1/J2を別で計算する場合に、昇格/降格時のレーティング初期値は何にすべきか?
  • レーティング値からどのように勝ち/負け/引き分けを決めるべきか?

勝率80%ということは20%で負けてしまうこともあります。
得られた数字通りだと所謂順当な結果でしか賭けることができません。
これについてはレーティングを真面目に考えてもしょうがない部分なので、将来的に考えます。

とりあえずの予想手法で購入

色々なことを解析していても面白くないので、ひとまずの予想方法を考え、本日開催のmini totoを購入しました。
やっぱりお金がかかってないと本気になれないからね!!

  • 初期値1500とし、前年分第1節から最終節までのデータと、今年分の最新の試合結果までをレーティングに反映。
  • Eloレーティングの計算においてはK=32とする。
  • J1昇格チームのレーティング初期値は1500とする。
  • レーティング値から勝率(予測値)を求め、設定した条件を満たすものを購入する。

設定した条件というのが購入する組み合わせ数にかかわる重要なものです。
直感的に、勝率が50%に近ければ、引き分けになりやすく、ここから離れると勝ち/負けが決まりそうです。
ということで、閾値を設けて、次の条件を設定しました。
  • ホームチームから見て勝率が0.5+閾値(W)を上回った場合には「1(ホームチームの90分勝ち)」を購入する。
  • ホームチームから見て勝率が0.5-閾値(W)を下回った場合には「2(ホームチームの90分負け)」を購入する。
  • ホームチームから見て勝率が0.5+閾値(D)を下回った場合かつ0.5-閾値(D)を上回った場合には「0(その他)」を購入する。

今後は購入する組み合わせを最小化し、リターンを大きくする閾値を実験的に求めることになるでしょう。
閾値は何となくデータを眺めて仮置きしました。(値は秘密)

購入した組み合わせは以下の通りです。
第1225回 minitoto-A
タイプ 開催日 ホーム アウェイ (1) (0) (2)
J1 3/3 川崎 C大阪 1
J1 3/3 名古屋 G大阪 1 0
N 3/2 湘南 浦和 0 2
N 3/3 福岡 札幌 0 2
N 3/3 横浜C 1

第1225回 minitoto-B
タイプ 開催日 ホーム アウェイ (1) (0) (2)
N 3/2 大分 神戸 1
N 3/3 F東京 徳島 1 0
N 3/3 横浜M 仙台 1 0
N 3/3 鹿島 鳥栖 1
N 3/3 広島 清水 1 0

結果はあとで更新します。 ⇒ 更新しましたが、1個ずつ外しました。簡単にはいきませんね。