回心誌

日々是回心

【Apex Legends】ランクポイント期待値を計算してみる

はじめに

みなさん、Apex Legendsシーズン13楽しんでますかー?

自分はゴールド4で満足しちゃいました。

シーズン12と比べて急にランク上げ難しくなってますね。

実際、ランク人口分布を前シーズンと比較すると、上位ランクの割合がものすごく減っていることがわかります。

apexlegendsstatus.com

中には「上がれないから萎えたー」って人もいるみたいです。
(自分はもともとランクあんまやってないですが、、、)

ほんとかどうかわかりませんが、「下位プレイヤーはランクやらなくなってる」なんて話もあります。

ランクは相対的に決まるので、例えば下位プレイヤーがランクしなくなったら上位プレイヤーのランクは維持できないんじゃないかってことが気になりました。

一般的なレートシステムを採用しているゲームであれば、平均的なレートに落ち着くようになります。
テストで言うと偏差値50、IQでいうと100、イロレーティングというレーティング手法では1500が平均値らしいです。


全プレイヤーが全く同じ実力を持っていた場合、どのランクに落ち着くんだろう?
もちろん実際にはプレイヤーの強さは、上位勢の中でも巧拙には差がありますが、思考実験として考えてみたら面白そうだなーと。

低ランクはランクマッチの参加コストが低いので、ランクを上げることはできそうです。
マスターにまでなると最低でも75もの参加コストがかかります。
ランクポイント(RP)75を賄うためには、例えば最低でも以下のような戦績が必要になります。

  • 順位:3位、キル・アシスト数:0、参加数:1 → 78RP
  • 順位:5位、キル・アシスト数:2、参加数:0 → 77RP
  • 順位:7位、キル・アシスト数:5、参加数:0 → 75RP
  • 順位:10位、キル・アシスト数:10、参加数:4 → 75RP

(記事の後続の箇所でも同様ですが、端数処理が実際のゲームと異なり1~2RP分誤差があるかもしれません)
これは明らかに平均的な戦績ではありません。
マスターを維持するためには安定的に一定以上の成績を残し続ける必要があり、つまり、同じ実力同士のプレイヤーでマッチし続ける場合、マスターの維持は不可能です。


この記事では、純化したモデルケースを考えてみて、その場合のRPが順位ごとにどうなるのかを計算して、どの順位になるかの確率が一様だったと仮定した場合の期待値を算出してみました
複雑なバトルロワイアルのゲーム経過を緻密にシミュレーションするのはものすごく大変そうです。(頑張ればエージェントシミュレーションとかでできるかもしれませんが・・・)
そこで、トーナメント形式に単純化して仮定しています。

また、このモデルケースでランク上げが簡単だったといわれるシーズン12と比較してどうなのか、というのも見てみたいと思います。

さらに、このモデルケースが実際の戦績と比較してどの程度の差異があるのか、実際の戦績から分かったことも見てみようと思います。
実際の戦績は、Apex Legendsのランク配信者の配信画面から採取しています。
※明らかに戦績が良すぎる人は典型的なプレイヤーとは異なる傾向を持っていそうなので採取の対象にしないようにしています。
※有名な実況プレイヤーも、ゴースティングで結果がゆがむ可能性があるため、これも採取の対象にしないようにしています。

結論

計算の課程は後で説明するとして、結論だけ先に言っちゃいます。



今回の単純化したモデルケースで計算した結果……
シーズン13の獲得RPの期待値は59。プラチナI(参加コスト60)以上のランクで期待値がマイナスになる。
シーズン12の獲得RPの期待値は54。マスター(参加コスト60)以上のランクで期待値がマイナスになる。

また、シーズン13の実際の戦績データからRP期待値を計算したところ、およそ50~60の間になりました。
焦点となるプラチナ~ダイヤ帯ではおよそ57前後になりました。
(これも、計算の方法は後で説明しますね)
若干の差異はあるものの、ものすごく外しているわけでも無さそう…って結果になりました。

というわけで、結論としては、全プレイヤーの強さが同じだった場合、シーズン13ではダイヤ帯を維持するのはかなり困難で、プラチナ帯に落ち着きそう。
シーズン12であればダイヤ帯まではいける。けど、それ以上は難しそう。


こう見ると、シーズン12から13にかけて難化したことも明確になりますね。


期待値計算

計算方法

ここでは計算の方法を、できるだけ読者が再現できるように説明していきたいと思います。


ランクマッチの参加コストはランクによって一意に決まりますから、各ランクにおけるランク増減の期待値を計算するためには獲得ランクポイントの期待値を計算すればよいことになります。
(この記事では、順位で得られる順位RPと、キル・アシストおよびチームキルによって得られるRPの総和を、獲得ランクポイントまたは獲得RPと呼びます)


獲得ランクポイントは、以下の要素で決まります。

  • 順位
  • キル/アシスト数
  • 参加数(チーム内のキル数のうち自分のキル/アシスト数に加算されなかった数)

さらにキルした相手との間にティア差があった場合は増減しますが、今回は全て同ランク帯とのみマッチすると仮定して、ティア差は考慮しません。


さて、完全に同じ実力を持ったプレイヤー同士でマッチする場合、1位~20位のどの順位を獲得するかの確率は一様分布になるはずです(つまり、どの順位を獲得する確率も同じになるはずです)。
ということは、ある順位だった場合に何キル/アシストできるか(いくつキル参加できるか)を決めることができれば、獲得ランクポイントの期待値も計算できそうです。

では、順位に対するキル/アシスト数(および参加数)をどのように決めましょうか。

実際に行われるバトルロワイアルのゲームの過程は、(各チームの実力が拮抗していると仮定してもなお)とても複雑そうに見えます。
多くの要素が絡み合って、最終的な結果が決まります。

バトルロワイアルゲームは勝ち残って唯一の勝者を決めるゲームである、という点は勝ち残りトーナメント形式と似ています。

そこで、以下のように単純化してみました。

  • トーナメント形式で2チームが出会って戦い、必ず勝敗が決まる。
  • 勝ったチームは相手チームの全員をキルし、個人でのキル/アシスト数2、参加数1を加算する。
  • 負けたチームは相手チームの誰もキルすることができない(キル/アシスト数、参加数を得られない)。
  • 順位はトーナメントの上の階層まで残ったチームから順に1位~20位まで付けていく。なお、トーナメント上同じ階層で敗退したチームの順位はランダム(というか上から順に適当につける)とする。


トーナメント形式にした場合、20チームであることから、下から3階層目の対戦組み合わせで余りが生じます。
余ったチームは対戦数に偏りが出ないよう、次の階層では他のチームと勝負することにします。
また、(いわゆる漁夫の要素を加味して)その勝負では勝利するものとします。

というあたりまで仮定しておけば、順位が決まるとキル/アシスト数および参加数が一意に決まると思います(もしかしたらもう少し条件が必要だったかも)。
順位に対するキル/アシスト数および参加数が決まれば、順位ごとの獲得RPを計算できます。

計算結果

順位 順位RP キル・アシスト数 参加数 キル・アシスト・参加RP 獲得RP合計
1 125 8 4 154 279
2 95 6 3 131 226
3 70 6 3 119 189
4 55 4 2 77 132
5 45 4 2 68 113
6 30 2 1 33 63
7 20 2 1 28 48
8 20 2 1 28 48
9 10 2 1 24 34
10 10 2 1 24 34
11 5 0 0 0 5
12 5 0 0 0 5
13 5 0 0 0 5
14 0 0 0 0 0
15 0 0 0 0 0
16 0 0 0 0 0
17 0 0 0 0 0
18 0 0 0 0 0
19 0 0 0 0 0
20 0 0 0 0 0

1位~20位になる確率が同じであるとした場合の獲得RPの期待値は、単に上の表の獲得RPの平均値を計算すればよいことになります。
それが59.05になります。

同じようにシーズン12でも各順位の獲得RPを計算してみました。

順位 順位RP キル数 参加数 キル・アシストRP 獲得RP合計
1 125 8 4 125 250
2 95 6 3 125 220
3 70 6 3 108 178
4 55 4 2 60 115
5 45 4 2 60 105
6 30 2 1 22 52
7 20 2 1 22 42
8 20 2 1 22 42
9 10 2 1 22 32
10 10 2 1 22 32
11 5 0 0 0 5
12 5 0 0 0 5
13 5 0 0 0 5
14 0 0 0 0 0
15 0 0 0 0 0
16 0 0 0 0 0
17 0 0 0 0 0
18 0 0 0 0 0
19 0 0 0 0 0
20 0 0 0 0 0

※参加数は表にはのっけてますが、計算に使っていません。

同様に期待値(平均値)を計算すると54.15となります。

あとは、この獲得ランクポイントの期待値と各ランクでの参加コストを比較し、どこでマイナスになるかを見るだけです。

もっとリアルにするなら

上のモデルケースでは考えられていないけど、実際のApex Legendsでリアルに考えると、もっとこういうことも考えたほうがいいかもしれない、ということについて触れておきたいと思います。

  • デスした後リスポーンするから、全体でのキル数はこれより多い可能性がある
  • ファイトで負ける側がキルを拾うこともあるため、中~低順位でのキル数はこの仮定より多い可能性がある。
  • そもそも2チーム同士が出会うトーナメント形式にどれだけリアリティがあるのか…? 漁夫が有利なゲームなので、例えば3チームごとのトーナメント形式にするとかも考えられる。
  • マッチングの結果、20チーム集まらず19チームで始まる場合もあるし、チームメンバーが2人、1人欠けた状態で始まって、敗北免除になるケースもある。
  • リング死とか落下死とかで、誰のキルにもならないケースがある?(ここは仕様がよく分からない……)
  • 味方が順位伸ばしてくれてるとき、途中抜けするケース。

この辺まで考えるなら、実際のデータと比較しながら細かくパラメータ調整していく必要があると思いますが、ここではやりません。。。

実際の戦績データ

データ採取の方法

「Apex ランク 配信」とかでググって、配信画面をひたすらシークして、マッチ終了後のRPの増減画面を探して、順位やキル数などをリスト化していきました。
採取した項目は以下になります。

  • 本人ランク
  • 部隊内最高ランク
  • パーティ人数
  • 順位
  • キル・アシスト数
  • 参加数
  • PR増減
  • 備考(人数が欠けてて敗北免除 とか)

250件ちょっと集めて疲れてやめました。
ダイヤ4とプラチナ1の間を行き来しているプレイヤーや、ゴールド3辺りでウロウロしているようなプレイヤーを中心に集めていて、安定して勝っていてすぐにランクが上がりそうなプレイヤーは入れないようにしました。

集めたデータの分析

項目の平均値
項目 補足
マッチ件数 252
順位の平均 9.25 各マッチで中程度の実力なら順位の期待値は10.5となることから、うまいプレイヤーが多かった
キル・アシスト数の平均 2.25
参加数の平均 1.11
チームキル数(キル・アシスト数+参加数)の平均 3.37 (リスポーン抜き・1位チームはデスなしと仮定すると)57キルを20チームで分け合うことになるので、単純な期待値は2.85。それと比較すると、やはりうまいプレイヤーが多かった


個人のキル・アシスト数と参加数の比率はほぼ2:1となっていて、適当に決めた仮定と一致していますね。

順位の分布(ヒストグラム
順位の分布
チームキル数/キル・アシスト数/参加数の分布(ヒストグラム
チームキル数の分布
キル・アシスト数の分布
参加数の分布


まあ圧倒的に0が多いですね。バトロワだから当然ですけど。
概ねべき乗分布のように見えます。
チームキル数は3の倍数(3, 9, 12)が周りより少し高くなっているのは、1部隊3人であることが影響してそう。

トーナメント形式を仮定して計算した期待値との比較

全体としては配信している方はうまい人が多い(またはコンディションが良い状態、勝てる状態で挑む場合が多い)ように見えます。
そのため、単純に獲得RPの平均を算出すると68という高い数値になってしまいます。

そこで、小細工をして調整します。


まず、各戦績データを順位によって分類します。分類の区切りは、順位RPおよびキル・アシストの基本RPが同じものは同じ分類になるように分けます。
つまり、1位~6位まではそのまま各順位を分けて、以降は7~8位をまとめて同じ分類とし、9~10位、11~13位、14~20位でそれぞれまとめます。
そして、これらの順位帯ごとに獲得RPの平均を算出します。

順位帯 各順位帯での平均獲得RP
1 270.67
2 200.63
3 146.71
4 109.69
5 100.57
6 65.89
7~8 51.65
9~10 23.03
11~13 12.29
14~20 1.23

次に、1~20位までの各順位になる確率が同じであるとした場合の期待値を算出します。
これは、上の表の平均獲得RPに順位帯の階級幅(例えば7~8位であれば階級幅2)を重みづけして平均値をとればよいことになります。
計算すると54.45となり、今回トーナメント形式で仮定した獲得RPの期待値59.05は、やや高めに出てしまっていることがわかります。


また、ランク帯によって傾向に差異があることも考えられますので、ランク帯ごとに計算してみました。

ランク帯 獲得RP期待値
採取データ全件 54.45
ゴールド帯 50.59
プラチナ帯 57.78
ダイヤ帯 56.83


意外にもプラチナ帯のほうがダイヤ帯より獲得RPが高いという結果になりましたが、採取先のプラチナの配信者がたまたまうまい人だったのかもしれません。


また、ゴールド帯は獲得RPが低く、うまく「盛れて」いないことがわかります。
考えられる原因としては、ビーコン回収やリスポーンのチャンスを活かせていないとか、リスクを犯してキルを拾うも低順位で終わるチームが多く、逆に高順位でキルを拾うことができていない、ということが考えられそうです。

まとめ

つうわけで、記事が無駄にだらだら長くなってしまいましたが、Google Spreadsheetで平均値出してグラフ出して~ってやるのめっちゃおもろいので、みんなもやってみよう。


統計できる人だったらたぶん信頼区間が~ってとこまでやるんだろうけど、自分はそういうの勉強しないとわからないです…。


あと、実際のデータは200件は少なすぎて、この10倍くらいほしい。


なんかそういうの集まってるサイトとかあったら誰か教えて。


僕からは以上です。

おまけ

しょうもない小ネタなんだけど、あるマッチの全員の合計RP(平均RP)が最大になるようにするためには、どんな感じでキルすればいいだろうか?というのを考えてみた。


ありえないことではあるんだけど、20チーム60人全員が談合して、誰がどのタイミングでだれを殺すかを完全にコントロールできたとして、役割を回していけば、効率よくRP稼ぎができる。
(別ゲーだけど、経験値稼ぎのために、並んで殺す、殺した人は殺される役に回る、みたいなのは見たことがある)

低順位の人がキルしてもポイントにはならない。
逆に1位の人が全員キルすればいいか、というとそんなこともなく、シーズン13の仕様ではキル数が多すぎると減衰するため、かえって効率は落ちる。


ちなみに、リスポーンしたほうがキル数は増えるんだけど、ここではめんどくさいので考えない。
なので、全体で57キルを20チームで分け合う、ということになる。
また、すべてのキルについて、キル・アシスト数に参入し、参加数は0とする。


結論としては、1位~7位のチームが6キルずつ拾って、さらに8位~10位のチームが5キルずつ拾う、それ以下のチームは0キル、という状態になれば、全体の獲得RPは最大化され、合計1297、20チームで割ると平均64.85となった。


やり方は単純で、キル数の減衰を加味した倍率と、順位ごとの基本RPを積算したものが最大になるチームにキル数を分配する、という作業を57回繰り返した。


談合して最も効率よく配分しても、今シーズンはダイヤIVまでしか行けないんか……。