スマメイトのレート変動数値シミュレーション

※この日記の文字数は表や見出しなどを含めて約4400文字です.

皆さん初めまして.
タイトルを書くときに「シュミレーションだっけ?それともシミュレーションだっけ?」と冒頭から語彙力の欠如を晒しているまつきよです.前のメイトでは,スマブラのプレイヤー年齢層の変化や,スマブラをじゃんけんに例えて最適な立ち回りは何か?みたいな,スマブラを絡めた個人的な風変わりなトピックを少し書いていました.(自称,自己満足w)
久しぶりに日記を書こうとしたら,文字数やら規制やら,凄くルールが変わっていますね.運営者様,本当にお疲れ様です.
今回は,「スマメイトで自分のレートって,どのくらいのポジションなんや?」とか,「スマメイトのレートの制度ってちゃんと実力に見合ってるんか?」とかの疑問から
参加者全員のレートが最終的にどのように変化していくかを計算してみました.
※非常に大雑把な計算なので,予めご了承ください.

ーーーーレートの仕組みーーーー
・スマメイトのレート制度ですが,各シーズン開始値は1500です.
・試合を行った際のレート変動値は試合前のプレイヤーのレート差から計算されます.自分の記憶が正しければ,同レートの場合は16で,そこからレート差が25つく度に15,14,13と下がって行きます.(レートが低い人が高い人に勝った場合は反対に17,18,19と増えていきます.)
・確か,1試合のレート変動上限値は30.下限値は1だった気がします.
・一時期はレートが1300を下回ったプレイヤーはそれ以上下がることはなく,1300で打ち止めとなる時期もありましたが,今回はどこまででも下がる条件で計算します.


ーーーー参加者&試合数ーーーー
前期(スマブラSP 3期)のデータを参考に,試合数と参加者を設定しました.
3期
総ルーム数:116363部屋 →10万試合
総参加者:5585人 →5000人
※対戦中止は考慮しないで,総ルーム数=総試合数としました.
※このデータは運営者である'のちょう'さんのサイトから引用させて頂きました.


ーーーーシミュレーションの流れーーーー
①勝敗の条件
・試合の勝敗を決定する為に必要な情報として,事前に全プレイヤーの強さを数値でランダムに振り分けておきます.今回は,「ポテンシャルパワー」(以後PPと略)とでも命名しておきます.(笑)
 プレイヤー1のPP:  10  power
 プレイヤー2のPP: 108  power
 プレイヤー3のPP:1057  power
 プレイヤー4のPP: 304  power
   ・
   ・
   ・
 プレイヤー5000のPP:52  power
みたいな感じですかね?
・試合の勝敗は,PPの高い方を必然的に勝者とします.試合でPPの下剋上が起きないので,PPが一番高いプレイヤーとかは絶対に負けない計算になりますね...
・全プレイヤーのPPの分布は,「正規分布」と仮定します.
※正規分布は簡単に言うと,平均的な実力の人が人数的に一番多くなって,'極端に強い人が多い'とか'弱い人が多い'などの,偏りがない分布になります.詳しくは,ネットで調べてみてください.ちなみに筆者も統計とかの勉強は全く分からないので,「なんかお山の形になるんだ~」ぐらいにしか理解してません(笑).

②対戦相手の組み合わせ
今回は,5000人の中から試合を行う二人をランダムに選別します.つまり,プレイヤー全員がレート制限を掛けていない状態なので,計算上はレート2000の人がレート1000の人と試合することが普通にあります.
この選別を,先ほど書いた部屋の数だけ繰り返します.なので,プレイヤーによっては沢山試合することになったり,あまり試合を行わなかったり,多少のばらつきが起きます.多少ばらつきはありますが,どのプレイヤーも大体平均して
(全部屋数)÷(全プレイヤーが1試合するのに必要な部屋数)
=10万÷(5000÷2)
=10万÷2500
=40
大体40試合することになります.(はじめは,全員同じ数だけ試合させようかなとも思ったんですが,それはそれで変かな~と思って,こうなりました.)
計算間違ってたらすみません.
あとは,全試合終了するまで永遠にプレイヤーを戦わせて,レートを変動させていきます.


③全試合終了後に計算するもの
・各レート帯の人数(50単位で分布を書く)
・ランカーのレート(順位が50位の人のレート)
・各レート値を偏差値に換算.(各レートの相対的なレベルがイメージしやすいかなと思って計算しました)

ーーーー計算結果ーーーー
①各レート帯の人数
                    人数      割合  上位何%か
2000~          0人       0.0%     0.0%
1950-1999    0人       0.0%     0.0%
1900-1949   13人      0.3%     0.3%
1850-1899   92人      1.8%     2.1%
1800-1849  233人     4.7%     6.8%
1750-1799  330人     6.6%    13.4%
1700-1749  363人     7.3%    20.6%
1650-1699  362人     7.2%    27.9%
1600-1649  363人     7.3%    35.1%
1550-1599  353人     7.1%    42.2%
1500-1549  399人     8.0%    50.2%
1450-1499  384人     7.7%    57.8%
1400-1449  363人     7.3%    65.1%
1350-1399  360人     7.2%    72.3%
1300-1349  356人     7.1%    79.4%
1250-1299  332人     6.6%    86.1%
1200-1249  366人     7.3%    93.4%
1150-1199  234人     4.7%    98.1%
1100-1149   81人     1.6%    99.7%
1050-1099   16人     0.3%   100.0%
1000-1049    0人      0.0%   100.0%
~1000          0人      0.0%   100.0%

平均値:1500.00(まぁ当たり前)
中央値:1501.00
標準偏差:202.17
※中央値は平均値ではなく,順位で真ん中の人のレートがそのまま中央値になります.例えば人数が5人だったら中央値は3位の人の値となります.

レート1800(1200)までは,各レート帯同じような人数となり,それ以降は急激に人数が減少するような分布となりました.なんででしょうね?(笑)
このような分野の勉強はからっきしなので申し訳ありません...

②各順位の人のおおよそのレートと試合数
      1位 power= 1.634 レート=1938 偏差値=71.66 試合数=63
    50位 power= 2.863 レート=1874 偏差値=68.50 試合数=40
ーーーーーーーーーーーランカーの壁ーーーーーーーーー
  500位 power= 1.133 レート=1775 偏差値=63.60 試合数=57
1000位 power= 1.136 レート=1704 偏差値=60.09 試合数=28
1500位 power= 0.179 レート=1636 偏差値=56.73 試合数=35
2000位 power=-0.034 レート=1566 偏差値=53.26 試合数=44
2500位 power= 0.046 レート=1501 偏差値=50.05 試合数=32
3000位 power= 0.091 レート=1435 偏差値=46.78 試合数=41
3500位 power=-0.334 レート=1366 偏差値=43.37 試合数=53
4000位 power=-1.266 レート=1294 偏差値=39.81 試合数=32
4500位 power=-1.288 レート=1222 偏差値=36.25 試合数=34
5000位 power=-3.838 レート=1058 偏差値=28.14 試合数=56

※powerは各プレイヤーが持っている強さの指標で,数値が大きいほど強いって感じです.マイナスの場合は,数値(絶対値)が小さいほど強いです.powerの平均値は0です.

割と,現実のスマメイトに近い値になって助かりました.(笑)(やりはじめは上位のレートが10万とかになってりして,めっちゃ計算ミスって焦りました)
今回は,50位の人のほうが圧倒的にPPが高いにも関わらず,1位の人のほうがレートが高いですね(笑).これは単に50位の人の試合数が足りなかった結果かと思われます.
そして,レートを偏差値換算すると,ランカーは偏差値69みたいです.スマメイトのデータだけでこの偏差値なのは驚き.これがスマブラ全プレイヤーになったらどうなるんだ...
あとは,偏差値60に相当するのは,今回の計算上ではレート1700になりました.今回は,各レート帯見事に均等に分散しているので,レートのわりに偏差値がシビアだなと個人的に印象を受けました.あくまで個人の見解です.(反対にレート1500の人が凄く集中していると,偏差値は大きく変動します.)

③ランカーの結果だけピックアップ
  1位 power= 1.634 レート=1938 偏差値=71.66 試合数=63
  2位 power= 2.495 レート=1920 偏差値=70.77 試合数=57
  3位 power= 2.963 レート=1917 偏差値=70.63 試合数=51
  4位 power= 2.345 レート=1915 偏差値=70.53 試合数=50
  5位 power= 2.637 レート=1912 偏差値=70.38 試合数=48
  6位 power= 2.117 レート=1906 偏差値=70.08 試合数=46
  7位 power= 1.787 レート=1906 偏差値=70.08 試合数=48
  8位 power= 1.593 レート=1904 偏差値=69.98 試合数=50
  9位 power= 2.737 レート=1904 偏差値=69.98 試合数=54
10位 power= 1.368 レート=1903 偏差値=69.93 試合数=51
11位 power= 2.397 レート=1902 偏差値=69.88 試合数=56
12位 power= 1.752 レート=1901 偏差値=69.83 試合数=51
13位 power= 2.622 レート=1901 偏差値=69.83 試合数=47
14位 power= 1.404 レート=1898 偏差値=69.69 試合数=47
15位 power= 2.183 レート=1897 偏差値=69.64 試合数=44
16位 power= 1.814 レート=1893 偏差値=69.44 試合数=49
17位 power= 2.210 レート=1890 偏差値=69.29 試合数=51
18位 power= 2.305 レート=1890 偏差値=69.29 試合数=48
19位 power= 1.948 レート=1890 偏差値=69.29 試合数=52
20位 power= 1.599 レート=1889 偏差値=69.24 試合数=48
21位 power= 2.087 レート=1888 偏差値=69.19 試合数=49
22位 power= 1.937 レート=1888 偏差値=69.19 試合数=42
23位 power= 2.639 レート=1887 偏差値=69.14 試合数=45
24位 power= 2.163 レート=1886 偏差値=69.09 試合数=40
25位 power= 1.720 レート=1884 偏差値=68.99 試合数=57
26位 power= 2.018 レート=1884 偏差値=68.99 試合数=39
27位 power= 1.775 レート=1883 偏差値=68.94 試合数=52
28位 power= 2.259 レート=1883 偏差値=68.94 試合数=49
29位 power= 3.426 レート=1883 偏差値=68.94 試合数=48
30位 power= 4.808 レート=1883 偏差値=68.94 試合数=47
31位 power= 1.660 レート=1882 偏差値=68.89 試合数=48
32位 power= 2.465 レート=1882 偏差値=68.89 試合数=40
33位 power= 2.690 レート=1880 偏差値=68.80 試合数=38
34位 power= 2.095 レート=1879 偏差値=68.75 試合数=44
35位 power= 1.992 レート=1879 偏差値=68.75 試合数=49
36位 power= 1.706 レート=1879 偏差値=68.75 試合数=41
37位 power= 2.041 レート=1879 偏差値=68.75 試合数=48
38位 power= 1.945 レート=1879 偏差値=68.75 試合数=39
39位 power= 1.650 レート=1878 偏差値=68.70 試合数=49
40位 power= 1.952 レート=1878 偏差値=68.70 試合数=39
41位 power= 1.775 レート=1878 偏差値=68.70 試合数=43
42位 power= 1.819 レート=1877 偏差値=68.65 試合数=52
43位 power= 1.894 レート=1876 偏差値=68.60 試合数=50
44位 power= 1.769 レート=1875 偏差値=68.55 試合数=52
45位 power= 2.235 レート=1875 偏差値=68.55 試合数=47
46位 power= 1.393 レート=1875 偏差値=68.55 試合数=53
47位 power= 1.435 レート=1875 偏差値=68.55 試合数=49
48位 power= 1.821 レート=1875 偏差値=68.55 試合数=46
49位 power= 1.752 レート=1874 偏差値=68.50 試合数=46
50位 power= 2.863 レート=1874 偏差値=68.50 試合数=40

こうしてみると,必ずしもpowerの高い人ほど順位が高いわけでもありませんね.レートが高くなると1試合の負けが大きく影響するので,40程度の試合数だと,偶然powerが高くてまだレートが高くなってない人と当たって,沢山レートを持ってかれたパターンかもしれませんね.
もう一つ気になった点は,レートが高い人は総じて試合数が多いですね.計算上の平均試合数は40ですが,ランカーの人で40試合未満の人は,3人しかいないですね.この結果は,レート制限をかけてないゆえに生じる圧倒的レート差の試合が大きく影響している可能性があります.ランカーのレートを見ると同レートの順位の人が多数いるので,大レート差の試合で得られるレート1が響いているのでしょう.多分...


ーーーおわりにーーー
今回は,前回のスマメイトの記録とレート制度を使って,全プレイヤーのレート変動を数値シミュレーションしてみました.思ったよりは,現実に近い値になって安心しました.(各レート帯の分布が一致しているかは知りません(笑))
如何だったでしょうか?「自分のレートってこれぐらいの立ち位置なんや」など,読者様の参考にしていただければと思います.

もしこの日記が良いものだなと思ったら,是非コメントやいいねボタンなどをよろしくお願い致します!
(需要があるんだ!って感じで,自分が日記を書くモチベーションの励みになるので笑)
「ここが読みにくかった」などアドバイスも全然大丈夫です.時間がある時に適宜修正していきたいと考えています.
暴言や誹謗中傷だけはご遠慮願います.(豆腐メンタル...)
長文の中,最後まで読んで頂き,改めてありがとうございました.


ーー今後ーー
・全員の試合数をもっと増やしたらどうなるのか?もっと分散していくのか?
・PPが高いほうを必然的に勝者としていたが,確率で下剋上が起きるみたいな設定は組み込めないか?
・PPの分布を正規分布にしたが,実際スマメイトを行っている層はvipかそれ以上の層だと思うので,スマブラ全プレイヤーを正規分布で考えたら,メイトの実力分布は正規分布の端っこだと思うので,その分布で計算したらどうなるのか?
・レート制限込みだとどうなるのか?そもそもどのレート帯がどれくらいの割合でレート制限をかける傾向があるのか?
・今回は各プレイヤーの試合数はランダムだが,各レート帯の試合数はどうなのか?

ーーーー

4463文字(見出し,表,全部込み)
2019年5月26日 記載

まつきよ

2019年5月26日 00時09分に投稿

お気に入りしたユーザー

コメント

コメントはありません。