見出し画像

【学マス】コンテスト編成の比較を統計学的に行う方法

この記事の目的:何となくリハーサルや本番のスコアで編成を比較している状態から、統計学的に自信を持って編成を比較できるようになる。

今回は「順位和検定」と「ブートストラップ法」について紹介します。

実際に比較するステージと編成

ステージ

編成(Before)

編成(After)

Beforeのサブをメインに移動し、サブには消費体力減少が主軸のメモリーを採用。

今回はBeforeとAfterでリハーサルをそれぞれ30回(計60回)し、スコアを測定しました。

箱ひげ図による視覚的な比較

まず箱ひげ図というグラフで、スコアの分布を視覚的に確認します。(Excelでも作成可能。)

箱ひげ図:左がBefore、右がAfter。Afterがかなり強そう。

箱の中に、データの50%が含まれます。箱の黄色い線は中央値、箱の下端は下から25%の値、箱の上端は下から75%の値を示します。伸びた黒線(ひげ)が最小値と最大値を示します。

中央値は、Beforeが9,440でAfterが12,200でした。平均値ではなく中央値を比較するメリットは、外れ値(極端に低いスコアや高いスコア)に影響されない点です。

(ウィルコクソンの)順位和検定

「いや、Afterの方が強いのは一目瞭然だろ」と思ったかも知れません。しかしながら、どの程度自信を持って言えるのか数値で示したいところです。

まず結論から言います。順位和検定という手法を用いると「Beforeの方が中央値が高い確率は、約0.000002%」でした。よって極めて高い自信を持って、Afterの方が改善したと言えます。

より具体的には、帰無仮説を「BeforeとAfterで中央値は変わらない」、対立仮説を「Afterの方がBeforeより中央値が高い」とした順位和検定ではp値が約0.00000002という結果でした。

順位和検定を採用した理由は「母集団の分布を仮定しなくてもよい」「サンプル数(スコアの測定回数)がBeforeとAfterで異なってもよい」の2点が挙げられます。順位和検定の説明は省略します。

欠点はサンプル数が10以上程度であれば人力で計算するのが大変な点です。ただしExcel等では実装可能です。Pythonでは以下のように実装できます。

# python
from scipy import stats
_, p_value = stats.ranksums(before_scores, after_scores, alternative='less')

ブートストラップ法

順位和検定では「Afterの方がスコアの中央値が改善した」ことを示せましたが、どの程度改善したのかは算出できませんでした。しかしブートストラップ法を用いれば算出できます。

結論から言えば「中央値の差(After - Before)の95%信頼区間は1,398~4,545」という結果でした。95%信頼区間をどう解釈するかについては説明が難しいですが、簡単に言い換えれば「95%の自信を持って、中央値は1,398~4,545改善した」と言い換えられます。

順位和検定に比べたメリットは、中央値だけではなく「平均値」や「下から75%の値」も対象にして信頼区間を算出できる点です。欠点はPython等を用いコンピュータ上で解くことが推奨される点です。以下に実装例を示します。

# python

iterations = 10000
diffs = []
for _ in range(iterations):
  sample1 = before_data.sample(frac=1, replace=True)
  sample2 = after_data.sample(frac=1, replace=True)
  diff = sample2.median() - sample1.median()
  diffs.append(diff)

diffs = pd.Series(diffs)

# confidence interval
a = 0.05
ci = diffs.quantile([a / 2, 1 - a / 2])
print(f'{1 - a} confidence interval: {ci.values}')

まとめ

  • 順位和検定:中央値が本当に改善したのかを検証できる。

  • ブートストラップ法:中央値がどの程度改善できたのかを算出できる。

参考文献

  • 現代数理統計学の基礎, 久保川 達也 著, 共立出版, ISBN 9784320111660

  • 新装改訂版 現代数理統計学, 竹村 彰通 著, 学術図書出版社, ISBN 4780608600


この記事が気に入ったらサポートをしてみませんか?