見出し画像

スプラトゥーン2で勝てない君へ、データで見る凡人の秘策【統計データ分析】

コンニチハ!

昨日の続きです。昨日の記事はこちら!

昨日は簡単にキルレート(一回やられるまでに相手をどれだけ倒せるかの指標)が高ければ勝てる!と言いましたが、それができたらだれも苦労してないですよね(笑)

僕もキルレート上げようとしたら、消極的なプレーになって楽しめませんでした。なのでキルレートを上げようとするのはやめにします。

スプラトゥーン2で最も特徴的なことは「地面を塗ること」です。今回は塗るのがどれくらい大切なのか分析してみましょう。

データは前回と同じものを使います。今回もRコードを書いていきます(使いたいだけ)

d = read.csv(file="data/splatoon.csv", header=TRUE)

RにはRstudioという開発環境があるのですが、Rstudioでデータをdataって書くと、タブ押してもデータの中身取り出せないんですよね。なので今回はdにしました。

とりあえず、どのくらい地面を塗っているかを表す塗りポイントがどのくらい勝敗に関わっているのか見てみましょう。

plot(x=d$勝敗, y=d$塗りポイント
    ,main="塗りポイントと勝敗")

今回は散布図の代わりに箱ひげ図を使ってみました。左が負けで、右が勝ちの場合です。ちなみにこの箱の中に、50%のデータが入っていており、あまりにもデータから外れる値は、外れ値として丸く表されます。

この図を見る限り、勝敗に塗りポイントは関係なさそうに見えます。ナワバリバトルという塗りポイントがそのまま勝敗に直結するルール以外(ガチエリアとか)も含んでいるデータだからでしょうか。。。

と思ったのですが、大事なことを忘れていました。スプラトゥーン2では、ルールによって試合時間が異なります。つまり、すぐに勝った試合や凄く長引いて負けた試合などが含まれてしまいます。

そこで塗りポイントを試合時間で割って、1分当たりの塗りポイントで考えてみましょう。

val = d$塗りポイント/(d$時間.s. / 60)
d = cbind(d, val)
plot(x=d$勝敗, y=d$val
    ,main="1分当たりの塗りポイントと勝敗")

あれ、、、図がほとんど同じです。。塗りポイントと勝敗は関係ないのでしょうか。強いて言えば、箱の中の直線の位置が違うくらいです。これは中央値を表しているので、勝った試合の方が多く塗りポイントを稼いでいるのはわかります。でも1分当たり350ポイントもどうやって稼いだんだろう?この試合のリプレイほしい(笑)

このままでは塗りポイントを稼いでも勝ちに直結しないことになってしまいます。そうなると結局他のTPSやFPS同様、相手を倒すのがうまい人が勝つゲームになってしまいます。それだけは避けたい、、、

何かないものかと考えてみると、スプラトゥーンにはスペシャルがありました。これは武器毎に異なる必殺技のようなもので、塗りポイントを一定以上貯めると使えるようになります。スペシャルは非常に強力で、使えば一気に劣勢を挽回したり、有利な状況をさらに有利にできます。スペシャルの使用回数は勝敗にかなり影響するのではないでしょうか?

plot(x=d$勝敗, y=d$スペシャル回数,main="スペシャル回数と勝敗")

これを見ると、今度は明らかですね。勝っている試合の方が明らかにスペシャルを使っています。凡人でも生きる道が見つかりました。

ここからは蛇足ですが、ちょっと統計解析っぽくやってみましょう。

スペシャルは塗りポイントをためることで使えるようになるわけですが、実際どのくらい違っているのでしょうか?まずは散布図を見てみましょう。

plot(x=d$スペシャル回数, y=d$val
    ,main="スペシャル回数と一分当たりの塗りポイント")

これを見ると、「あれ?意外と塗りポイント多くてもスペシャル使ってないじゃん!」となるかもしれませんが、t検定を使ってみると明らかになります。まずは、1試合でスペシャル3回以上と3回未満の塗りポイントの平均を見てみましょう。

d1 = d[d$スペシャル回数 >= 3, ]
special1 = mean(d1$val)
# special1 = 225.0448
d2 = d[d$スペシャル回数 < 3, ]
special2 = mean(d2$val)
# special2 = 205.7865

スペシャル3回以上の場合は225ポイント、3回未満の場合は205ポイントと、1分当たり約20ポイントの差があります。20ポイントくらいだったら少し意識するだけで稼げるポイントだと思います。

次にt値を求めます。今回はデータを2つに分けて、その差を取ったときのt値を考えるので、次のようになります。

var.special = var(d$val) 
n1 = length(d1$val)
n2 = length(d2$val)
t = (special1 - special2) / sqrt((1/n1+1/n2)*var.special)

# t = 1.781494

結果、t値は約1.78となりました。ここからp値を求めるには今回のt値の自由度が必要です。今回の場合、2つの群からt値を導出したので、

自由度=総試合数ー2

となります。実際にp値を求めてみると、

pval = 1 - pt(t,df=n1+n2-2)
# pval = 0.03931351

p値は約0.04となったので、統計的にも5%有意となりました。

最後はちょっと統計っぽく書いてみましたが、何が言いたいかっていうと、スプラトゥーンで勝ちたいなら、塗りポイント貯めてスペシャルを使えってことです。

今回はここまでです!最後までありがとうございました(*^^)v

Twitterもやっています。noteの更新などもツイートしていきます!フォローしてね!


ではまた!

最後まで読んでいただきありがとうございました!サポートしてくれると非常に嬉しく、noteを書くモチベーションになります。