ギャン・バギャム・ソルドン

一打粉砕に怒喝の心力を込め、万物を叩き割る剛剣の刃を生み出さん

なかよしマッチの選曲は本当にランダムなのか?

1. 序論

皆さんこんにちは、きういです。そして、うみにこなかよし♡ッチのイベントを走った方々は本当にお疲れ様です。実に充実していた10日間でしたね...!

f:id:kiui_4:20180414111041j:plain

 さて、今回のイベントを走っていて『選曲が偏ってる気がするな…』と心做しか感じたので『じゃあ実際にデータ取って調べてみるか!』と思ったのがこの記事を書くに当たった動機になります。

・準備

今回は仮説を6つ立てて、その正誤を統計的な検定を用いて判定します。以下がその6つの仮説です。

①18種類の曲の出現率は等しい。
②スマイル・ピュア・クールの出現率は等しい。
③スコア・コンボの出現率は等しい。
④難易度9の曲の出現率は 1/3 難易度10の曲の出現率は 2/3 である。
⑤総コンボ数と出現度数の間には関係性がない。
⑥スコア・コンボの出現率と全ての曲の出現率はそれぞれ独立である。

 

・検定のメカニズム

上に記述した6つの仮説についてこれから検証していくのですが、その判断基準となる検定の基本的なメカニズムをここで書いておきます。(読み飛ばしても大丈夫ですが)数学的に厳密な理論はすっ飛ばして、感覚的に分かり易い話をするつもりなので、分析結果を何となく理解する手助けにはなるかもしれません。

 

・適合度検定(仮説①②を判定する為に使用)

予想される出現確率を仮定して、そこから期待値を計算します。ここで、以下のカイ2乗値と言われる関数を導入します。

f:id:kiui_4:20180414115548j:plain

要するに、カイ2乗値は実測値と期待値の間にあるズレを評価する関数だと思って下さい。そして、このカイ2乗値は観測したデータの実測値に依存して変化する値であり、実際に得られたデータと期待値の間に差がある程に大きくなるということが理解できればベストです。

 ここで、このカイ2乗値に"これ以上値が大きくなったらアカンで!"ってノリで閾値を設定してあげます。実際に得られたデータが期待値と近ければカイ2乗値は大きくならないので、この閾値を超えることは極めて稀な訳です。閾値の設定に関しては"分布"や"確率密度" の概念を導入しなければならないので詳しい説明は省きます)

この設定した閾値をカイ2乗値が超えた時に『そもそも、仮定した出現確率が間違ってたんじゃね?』となり、立てた仮説を否定出来ます。

 

・二項検定(仮説③④を判定する為に使用)

 難易度9・難易度10 や スコア・コンボ などデータが2種類の時によく使われる手法です。

例え話をします、コインを100回投げるとしましょう。表が出る回数の期待値は50回ですが、必ず表が50回出るとは限りません。そこで"コインを100回投げて表が出た回数を記録する"作業を100回繰り返したとしましょう。羅列された100個の数字は50の周りでバラつくのが想像出来ると思います。この時『表が出る回数にバラつきはあるけど、◯◯回~〇〇回の間に殆どのデータは収まるね』と言った事が分かるので、それを基準にして〇〇回付近に閾値に設定してあげます。後は先程と同様に、この閾値を実測値が超えた場合は『そもそもコインの表が出る確率が 1/2 ではないかも?』となる訳です。(因みに、39.72回~59.28回の間に95%のデータが収まると言うことが実際に計算出来ます)

 

・独立性の検定(仮説⑥を判定する為に使用)

 独立性とは2つのデータが相互的に干渉しない、影響を与えないと言うことです...と言ってもよく分かりませんね。ここでも例を挙げましょう。

コインA・コインBを2枚用意して同時に100回投げたとします。コインAの裏表はコインBの裏表に影響を与えないと仮定しているので、結果は(コインAの裏表,コインBの裏表)と書いた時に、(表,表),(表,裏),(裏,表),(裏,裏)の4種類に分類出来て、それぞれの期待値は下の表にある様に25回になることが予測できます。

  コインA  
合計
コインB 25 25 50
25 25 50
  合計 50 50 100

 

では実際に実験をして得られた表が次のようだったとしましょう。

  コインA  
合計
コインB 40 10 50
10 40 50
  合計 50 50 100

 

ここで登場するのが、またしてもカイ2乗値です。下の表の実測値と上の表の期待値の間にあるズレを関数を用いて評価してあげます。

この時の閾値が3.84に対して、カイ2乗値 = 36 となり仮定を否定出来るので「コインAとコインBは独立であるとは言えない」と言えます。

この例の場合に限れば、「どちらか一方のコインが表の時、もう一方のコインも表が出やすくなる」または「どちらかのコインが裏の時、もう一方のコインも裏が出やすくなる」ことがしっかりとした根拠を持って言えるようになる訳です。

 

 2. 本論

・得られたデータ

今回のサンプルサイズは n = 300 です。

属性 難易度 コンボ 曲名 スコア出現度数 コンボ出現度数 合計
スマイル 9 577 Angelic Angel 8 10 18
スマイル 9 494 僕たちはひとつの光 4 10 14
スマイル 10 434 僕らは今のなかで 8 7 15
スマイル 10 584 MOMENT RING 9 7 16
スマイル 10 584 PSYCHIC FIRE 10 13 23
スマイル 10 555 Happy maker! 13 4 17
ピュア 9 445 どんなときもずっと 8 13 21
ピュア 9 492 after school NAVIGATORS 14 9 23
ピュア 10 569 るてしキスキしてる 7 7 14
ピュア 10 566 SUNNY DAY SONG 9 4 13
ピュア 10 596 好きですが好きですか? 11 12 23
ピュア 10 458 秋のあなたの空遠く 10 8 18
クール 9 500 錯覚CROSSROADS 6 9 15
クール 9 431 あ・の・ね・が・ん・ば・れ! 5 7 12
クール 10 530 微熱からMystery 5 13 18
クール 10 509 Paradise Live 3 6 9
クール 10 453 Dancing stars on me! 9 7 16
クール 10 473 勇気のReason 7 8 15
      合計 146 154 300

 

 ・仮説の検証

ここからは仮説を一つずつ検証していきます。(全ての検定に於いて有意水準は5%、二項検定は片側二項検定とします)

①18種類の曲の出現率は等しい。

よく分からないので出現度数が多い順に整理してグラフ化してみましょう。

 

f:id:kiui_4:20180414143732p:plain

期待値 = 16.67 標準偏差 = 3.82 なので、期待値 ± 2*標準偏差区間にデータが全て集まっている為、外れ値は存在しておらずバラつきの度合いが小さいことが伺えます。

ここで適合度検定を使います。この時の閾値 = 27.6 に対して、カイ2乗値 = 15.72 なので仮説は否定出来ません。

よって『18種類の曲の出現率は等しい』 ことが分かりました。


②スマイル・ピュア・クールの出現率は等しい。

 表に属性ごと出現度数をまとめました。

  スマイル ピュア クール 合計
出現度数 103 112 85 300

 

期待値 = 100 標準偏差 = 11.22 です。期待値 ± 2*標準偏差区間にデータが全て集まっている為、外れ値はありませんがピュアとクールは期待値から大きくズレてるようにも見えます。

こう言った場合に便利なのが適合度検定です。この時の閾値 = 5.99に対して、カイ2乗値 = 3.78 なので仮説は否定出来ません。

よって『スマイル・ピュア・クールの出現率は等しい』ことが分かりました。


③スコア・コンボの出現率は等しい。

 表にスコア・コンボの出現度数をまとめました。

  スコア コンボ 合計
出現度数 146 154 300


 期待値 = 150 標準偏差 = 4 です。全然バラついていません。この時、二項検定の閾値 = 163.74 に対して コンボ出現度数 = 154 なので、仮説を否定出来ません。
 よって『スコア・コンボの出現率は等しい』ことが分かりました。

 

④難易度9の曲の出現率は 1/3 難易度10の曲の出現率は 2/3 である。

全18曲中、難易度9 は6曲・難易度10 は12曲である為、このような仮説になっています。これも同じ様に表にまとめました。

  難易度9 難易度10 合計
出現度数 103 197 300

 

 期待値 = 150 標準偏差 = 3 です。これまたバラついてないです。この時、二項検定の閾値 = 113.02 に対して  難易度9の曲の出現度数 = 103 なので、仮説を否定出来ません。

よって『難易度9の曲の出現率は 1/3 難易度10の曲の出現率は 2/3 である』ことが分かり、裏を返せばこれは『選ばれる曲は難易度に左右されない』と言い換えられます。

 

分かった事を一旦整理しましょう。

1. 18種類の曲の出現率は等しい。

2. スマイル・ピュア・クールの出現率は等しい。

3. スコア・コンボの出現率は等しい。

4. 選ばれる曲は難易度に左右されない。

 

この4つの事実から、選曲はランダムであることが分かりそうです。


⑤総コンボ数と出現度数の間には関係性がない。

 この仮説については散布図を書いてみましょう。4つの図は横軸に曲の総コンボ数を、縦軸にはコンボ出現度数(左上)、スコア出現度数(右上)、その和(左下)、その差(右下)を取ってプロットしてます。

f:id:kiui_4:20180414161119p:plain

左上の相関係数 = 0.073  右上の相関係数 = 0.26

左下の相関係数 = 0.24    右下の相関係数 = -0.13

となっています。左上と右下に関しては相関は無いと言い切ってよさそうです。右上の散布図は2次の多項式で近似曲線が引けそうでしたが、当てはまりの度合いである決定係数が R^2 = 0.11 と低い値となったので曲線近似は諦めました。 

右上と左下の2つに関しては相関係数が0.2を超えているため、弱い正の相関があると思われます。が、ここでは有意に相関があるか無いかを判定したい為、相関係数の有意性の検定を用います。(厳密には2つのデータの母集団の分布が正規分布に従っていないといけないので、この検定はもしかすると適切では無いかもしれません)(教えてエロい人)

f:id:kiui_4:20180414164407j:plain

赤い線で示した部分にある p-value < 0.05 の時に2つのデータは有意に相関があると言えるので、「曲の総コンボ数とスコア出現度数」と「曲の総コンボ数と出現度数の和」の間には相関が無いとしました。

よって『総コンボ数と出現度数の間には関係性がない』ことが分かりました。

 

⑥スコア・コンボの出現率と全ての曲の出現率はそれぞれ独立である。

独立性の検定を行います。この時、閾値 = 27.6 に対して カイ2乗値 = 34.29 になります...!?

独立性が無い...だと!?

この検定によって「スコア・コンボの出現率と全ての曲の出現率は独立でないことが分かりました。ここからは、この事実についてもっと深く調べていきましょう。新たな仮説を立てます。

 

⑦スコア・コンボの出現率と選曲される曲の難易度は独立である。

⑧スコア・コンボの出現率と選曲される曲の属性は独立である。

⑨選曲される曲の難易度とその属性は独立である。

 

この3つを新たに立て、その真偽を検定を用いて調べましょう。

 

⑦スコア・コンボの出現率と選曲のされる曲の難易度は独立である。

 2つの度数について表にまとめました。

  スコアの出現度数 コンボの出現度数 合計
難易度9 の出現度数 45 58 103
難易度10 の出現度数 101 96 197
合計 146 154 300

 

この時、閾値 = 3.84 に対して カイ2乗値 =  1.95 となり仮説を否定出来ません。よって「スコア・コンボの出現率と選曲のされる曲の難易度は独立である」ことが分かりました。

 

⑧スコア・コンボの出現率と選曲される曲の属性は独立である。

同じ様に表にまとめます。

  スマイルの出現度数 ピュアの出現度数 クールの出現度数 合計
スコアの出現度数 52 59 35 146
コンボの出現度数 51 53 50 154
合計 103 112 85 300

 

この時、閾値 = 5.99に対して カイ2乗値 =  6.40 となるので仮説を否定出来ます。よって「スコア・コンボの出現率と選曲される曲の属性は独立でない」ことが分かりました。

 

⑨選曲される曲の難易度とその属性は独立である。

これまた同じ様に表にまとめます。

  スマイルの出現度数 ピュアの出現度数 クールの出現度数 合計
難易度9 の出現度数 32 44 27 103
難易度10 の出現度数 71 68 58 197
合計 103 112 85 300

 

この時、閾値 = 5.99に対して カイ2乗値 =  6.12 となるので仮説を否定出来ます。よって「選曲される曲の難易度とその属性は独立でない」ことが分かりました。

 

・考察

分かった事をまとめましょう。仮説⑥は仮説⑦⑧⑨で言い換えられるので。

1. 18種類の曲の出現率は等しい。

2. スマイル・ピュア・クールの出現率は等しい。

3. スコア・コンボの出現率は等しい。

4. 選ばれる曲は難易度に左右されない。

5. 総コンボ数と出現度数の間には関係性がない。

6. スコア・コンボの出現率と選曲のされる曲の難易度は独立である。

7. スコア・コンボの出現率と選曲される曲の属性は独立でない。

8. 選曲される曲の難易度とその属性は独立でない。 

 の8個が分かった事です。選曲はランダムだがそれぞれの要素は独立ではないと言ってもよく分からないので、6,7,8についてもう少し踏み込みましょう。

 スコア・コンボと難易度が互いに影響を与えていないのに対して、属性と難易度、属性とスコア・コンボはどちらかがどちらかに、または相互的に影響を受けていることになります。

ここから『曲の属性だけが他の2つの要素に影響を与えている』と私は予想します。

 更に具体的な話をするためにもう一度表を載せます。

  スマイルの出現度数 ピュアの出現度数 クールの出現度数 合計
スコアの出現度数 52 59 35 146
コンボの出現度数 51 53 50 154
合計 103 112 85 300
         
  スマイルの出現度数 ピュアの出現度数 クールの出現度数 合計
難易度9 の出現度数 32 44 27 103
難易度10 の出現度数 71 68 58 197
合計 103 112 85 300

 この表で示された実測値に、なかよし♡ッチの選曲メカニズムが色濃く反映されているとすれば。

1. スマイルは難易度10が出やすい。

2. ピュアは難易度9が出やすい。

3. ピュアはスコアが出やすい。

4. クールはコンボが出やすい。

 の4つの法則が浮かび上がってきます。つまり、この4つの法則がお互いにバランスを取り合うことで、選曲は難易度に依存していなく、スコア・コンボの出現率は同じだと表面上は見えていたことになります。

 

3. 結論

導き出された4つの法則。

1. スマイルは難易度10が出やすい。

2. ピュアは難易度9が出やすい。

3. ピュアはスコアが出やすい。

4. クールはコンボが出やすい。

 によって、曲の属性ごとに選曲確率に偏りが生じている。しかし、この4つの法則が互いにバランスを取り合うことで、属性という要素を無視した際には表面上、選曲はランダムになっていると言える!

 

 4. 備考と感想

 この記事は私の知的好奇心が表面に現れただけの記事であって、決して「曲の出現率を全部一定に統一せぇや!」って論旨では無いことをご了承願いたく存じます。

また、サンプル数は1なので、飽くまでも私のアカウント上の話であると受け取ってもらえると嬉しいです。ライブ履歴から過去の選曲データを無限に掘り返せるので、色んな人が選曲データの分析をしたら私はめっちゃ喜びますし、私のスクフェスアカウントで見られた傾向が他の端末・アカウントで同様に見られたら、更に信憑性のある法則になるので、皆もやってくれよな...!と思ってます。データの分析、めっちゃ楽しいんすよね...!

まぁ~~~ただ、300回もなかよし♡ッチをするのは流石に疲れましたね。報酬が無くなってからはモチベが続かなくて、結局サンプルサイズは300止まりでした。暫くはもうスクフェスやんなくていいかな~くらいには思ってますw

質問やここ間違ってね?みたいなコメントは大歓迎です。それでは、ここまで目を通してくれた物好きな方々はお疲れ様でした!       written by きうい.