スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

QMAの全国大会の得点の分析

全国大会やってて、そういえば素点2000点以上ってどれぐらいの頻度ででるんだろうって思ったのがおもいつき。これをトナメの正解率から予測してみましょう。

全国大会の構造(一部予想あり)
  • 参加者6人がそれぞれ1つずつジャンル(*1)を選択
  • 選択した1つのジャンルにつき3問出題(これを1セットと呼ぶ)。1回の対戦では計6セット・18問の合計点数を競う。
  • 問題正解時の得点は、問題の星の数と、問題の形式、回答速度によって決まる。検定試験の得点導出と同じ(*2)。
  • お助けアイテム(叡智、増数、守護)が1人それぞれ2個ずつ配布。
  • 1つのセットのなかでは、トーナメントでいうところの自由形式のEASY,NORMAL,HARDがそれぞれ1問ずつ出題。【予想】
*1:理系学問、文系学問、社会、ライフスタイル、芸能、スポーツ、アニメ&ゲームの7つ
*2:http://www36.atwiki.jp/qma8/pages/98.html


そして状況を簡単に考えるためにいくつか簡略化の仮定をおきます。
  • 1セットの中での問題の難易度:EASY=★1~★3、NORMAL=★2~★4、HARD=★3~★5。難易度の★はすべて等確率で抽選(例えばEASYなら★1、★2、★3がそれぞれ1/3の確率ででる)。
  • 同じ難易度における問題の形式グループ(*3)の抽選も等確率。つまり、○×から四択・連想……タイピングまで等確率で引く。
  • 回答は問題形式ごとにある一定のタイミングで行うことができ、正解時の得点は必ず満点時の素点に定数kをかけたもの。
  • お助けアイテムの効果は無視。
*3:形式グループとは、満点で正解したときの得点を基準に問題形式を分類したもの。*2のwiki参照。

この簡略化によって正解時の得点を問題の★の数だけで考えることができます。得点にかかる要因として、本来は★の数、形式グループ、回答速度の3つがあるのですが(全国大会の場合はこれにお助けアイテムもあるから正確には4つ)、回答速度のパラメーターは一定、形式グループの抽選も等確率なので、期待される得点は、形式グループごとの得点の平均値に★のレベル加重をかけたものになります。例えば、★1の問題で満点の得点が、(wikiより)

  F形式(○×)=40、E形式(四択・連想)=45、D形式(並べ替え)=50、
  C形式(画像タッチ・文字パネル・エフェクト・キューブ)=55、
  B形式(スロット・線結び)=60、A形式(順番当て・一問多答)=65、
  S形式(タイピング)=70

であるので、形式グループの引きがすべて同じ確率であることから、★1の問題の得点の期待値は、
  (40 + 45 + 50 + 55 + 60 + 65 + 70) / 7 = 55
形式の差による低得点と高得点の問題がならされて、結局、問題はすべてC形式であると考えてもよいことになります。

次に、問題の正解率を予測してみましょう。この時に参考になるのがマイルームから見れるトーナメントのジャンル別正解率で、これをp[i]とおきます。このときジャンルはすべてで7個なので、i=7です。もしすべてのジャンルの正解率が50%であるプレーヤーがいるとしたら、

  (p[1], ……, p[7]) = (50%, ……, 50%)

とあらわせます。ここでロジット変換し(*4)、

  X[i] = logit(p[i]) + 組補正

とします。X[i]はジャンルごとの得意不得意を示すので、これをジャンルiのパワーと呼びましょう。
 ここでの組補正とは、データ上の正解率の所属する組のバイアスを取り除くための便宜的なものです。例えば、すべてのジャンルの正解率が50%で全く同じの2人がいるとして、ひとりはガーゴイル組ステイ、もうひとりはドラゴン組ステイとしましょう。この2人は正解率を評価するのに十分な回数のトーナメントを行なっているものとして、果たしてどちらが強いでしょうか。これは感覚的に考えれば後者のほうが明らかに強く、なぜなら出題される問題の難易度が組によって異なるからです。一般に高位の組ほど難易度の高い問題が出現しやすく、これらの組に長く滞在することはデータ上の正解率を潜在的に押し下げることになります。
 仮に、この組補正を次のように置いて、トーナメントで今まで所属した回数が最も多い組の値を適用するとしましょう。(2つの組の間を行き来する場合は、両者の中間の値を適用)

ドラゴン組 +1.0
フェニックス組 +0.5
ミノタウルス組 0
ガーゴイル組以下 -0.5

*4:x = ln(p/(1-p)) と変換


そして、ジャンルi(1~7)、★j(1~5)の予測正解率q[i,j]を次のように考えます。

  Q[i,j] = β * (X[i] - j)
  q[i,j] = invlogit(Q[i,j])


ここで、βは正の定数で、Q[i,j] → q[i,j]はロジット変換の逆を行なっています。本当は統計をとって、βの値がどの程度が最適なのかを調べなければいけませんが、★の数を判別しつつ、グラフの異なるプレーヤーの問題正解率を調べるのはまあ正直めんどくさいので、βに適当な値を入れてみてもっともらしくなるよう調整してみます。

β=1 問題の難易度
★1 ★2 ★3 ★4 ★5
パワー(X[i]) -2 50.0% 26.9% 11.9% 4.7% 1.8%
-1 73.1% 50.0% 26.9% 11.9% 4.7%
0 88.1% 73.1% 50.0% 26.9% 11.9%
1 95.3% 88.1% 73.1% 50.0% 26.9%
2 98.2% 95.3% 88.1% 73.1% 50.0%
β=0.9 問題の難易度
★1 ★2 ★3 ★4 ★5
パワー(X[i]) -2 50.0% 28.9% 14.2% 6.3% 2.7%
-1 71.1% 50.0% 28.9% 14.2% 6.3%
0 85.8% 71.1% 50.0% 28.9% 14.2%
1 93.7% 85.8% 71.1% 50.0% 28.9%
2 97.3% 93.7% 85.8% 71.1% 50.0%
β=0.8 問題の難易度
★1 ★2 ★3 ★4 ★5
パワー(X[i]) -2 50.0% 31.0% 16.8% 8.3% 3.9%
-1 69.0% 50.0% 31.0% 16.8% 8.3%
0 83.2% 69.0% 50.0% 31.0% 16.8%
1 91.7% 83.2% 69.0% 50.0% 31.0%
2 96.1% 91.7% 83.2% 69.0% 50.0%
β=0.7 問題の難易度
★1 ★2 ★3 ★4 ★5
パワー(X[i]) -2 50.0% 33.2% 19.8% 10.9% 5.7%
-1 66.8% 50.0% 33.2% 19.8% 10.9%
0 80.2% 66.8% 50.0% 33.2% 19.8%
1 89.1% 80.2% 66.8% 50.0% 33.2%
2 94.3% 89.1% 80.2% 66.8% 50.0%

この表は、縦に自分のパワー、横に問題の難易度をとって、パワーが異なるときにそれぞれの難易度の問題の正答率がどのように変わるかをあらわしたものです。例えば、β=1のとき、★5の問題の正答しようとすると、パワーX=2なら50%の確率で正しく答えられますが、X=-2となると1.8%程度でもうほとんど正解できません。これは予習モードの突破率と似ており、予習モードの合格は6問中4問正解(すべて満点回答なら3問正解でOK)が要求されるので、このパーセンテージが66%程度ないと突破できないでしょう。さらに、問題の全国正答率を、例えば平均的にX=0のプレーヤーが解いたものと同じと考えると、表3行目の数値が★別の全国正解率の平均値となります。これらを踏まえると、βは0.8程度が妥当ではないでしょうか。

最後に全国大会の得点を求めてみましょう。今ジャンルiの出現頻度をw[i]とすると、

  w[1] + … + w[i] + … +w[7] = 6

となるようにwを定めます。ある1セット(ジャンルi)における得点は、いますべての問題がC形式と同等(満点=55×レベル加重)と考えられるので、これをS[i]として、

  レベル加重:★1=1、★2=2、★3=3、★4=4.4、★5=5.6
   S[i] = 55 * k * (q[i,1]*1 + q[i,2]*2 + q[i,3]*3) / 3 +
           55 * k * (q[i,2]*2 + q[i,3]*3 + q[i,4]*4.4) / 3 +
           55 * k * (q[i,3]*3 + q[i,4]*4.4 + q[i,5]*5.6) / 3

         = 55 * k * (q[i,1]*1 + q[i,2]*4 + q[i,3]*9 + q[i,4]*8.8 + q[i,5]*5.6) / 3

となります。これは1セットの中で、EASY(★1~★3)、NORMAL(★2~★4)、HARD(★3~★5)から1問ずつ引いていることによります。ここでkは回答速度の係数、q[i,j]はジャンルi★jの問題に対するパワーX[i]を与えたときの正解率(の分布)となります。したがって、全国大会の本選の合計点は、

    Σ(w[i]*S[i]) = w[1]*S[1] + … + w[7]*S[7]

で求まられます。q[i,j]はロジスティック分布をもとの変数pに戻した形の分布になるので、すぐに計算で求められます。結局本選の合計点は、プレーヤーのジャンル別パワーX[i]のみで決まり、これをTとかけば、

  T = f(X[1], … , X[7])

と書くことができます。

*5:この値はかなり調べられていて、例えばhttp://toro.2ch.net/test/read.cgi/arc/1319352373/629
>629 :ゲームセンター名無し:2011/11/28(月) 22:10:30.09 ID:TBkCaLIvO
> サンプル数が少ないけど俺も投下してみる

> グラフ NO DATA
> 昼からGTにかけてプレイ。同じ人となるべくマッチングしないようにマイルームで時間調整
> サンプル数 330
> アニ 88回 26.6%
> スポ 59回 17.8%
> 芸能 39回 11.8%
> LS 25回 7.5%
> 社会 36回 10.9%
> 文系 36回 10.9%
> 理系 47回 14.2%

> NO DATAでも大して変わらない


具体的に計算してみましょう。まず計算の条件として、
  • ジャンルの選択回数は(*5)から計算
  • 回答速度による定数kは0.8で固定(残り時間およそ14秒で回答するものとする)
ソースはR言語で書いています。やってることは積分の近似計算(みたいなもの)
qp<-function(pd){
  idx<-floor(plogis(qlogis(seq(0,1,0.001)), location=pd,scale=1)*10000)
  cn<-unlist(mapply(rep,seq(0,1-0.001,0.001),diff(idx)))
  return(cn)
}

zenkoku<-function(p, class){
  # p:ジャンル別正解率
  # class:所属する組(1:ドラゴン、2:フェニックス、3:ミノタウロス、4:ガーゴイル以下)
  if(length(p)!=7 || class<1 || class>5){
    return(NA)
    warning(message="Argument error")
  }
  x<-qlogis(p)+c(1.0,0.5,0,-0.5)[class] #ジャンル別パワー
  score<-rep(0, 10000) #答えの格納用
  k<-0.8 #回答速度
  weight<-c(88,59,39,25,36,36,47)/330*6 #ジャンルの平均出現回数
  for(i in 1:7){
    jpd<-(x[i]-(-2:2))*0.8
    for(j in 1:5){
      score<-score + 55*k*weight[i]*qp(jpd[j])*c(1,4,9,8.8,5.6)[j]/3
    }
  }
  return(score)
}
zenkoku(p,class)のpはジャンル別正解率(%)をベクトルで入力、classには所属する組(1:ドラゴン、2:フェニックス、3:ミノタウロス、4:ガーゴイル以下)とします。例えば、すべてのジャンルの正解率が50%のミノタウルス組所属のプレーヤーの場合、
p1.png
あまり伸びてないですよね。これが全ジャンル65%のドラゴン組の場合は、
p2.png
かなり強いです。2000点オーバーぽんぽん出すと思います。ちなみに私のデータで計算したら、
p3.png
_graph.jpg
このようになりました。ちょっと甘めに出てると思いますが、だいたいこんなような感じします。ただし、この方法は得点が2500点で頭打ちになってしまうので(難易度の引きや形式の引きの偏りを考えていないため)、さらに高得点まで考えたい場合は、難易度と形式の抽選を含めてモンテカルロ法で計算したほうがいいような感じします(少し計算時間が増えちゃうかも)。

ここでこの得点計算の方式を前提を整理すると、
  1. 全国大会の本選の単独の得点である(組み分けテスト、合計点での全問正解・区間賞などのスコアボーナスは考えていない)
  2. お助けアイテムの存在はないものとする(叡智使用による正解率底上げ、増数による点増加、チーム全員不正解によるペナルティは考えてない)
  3. 問題のジャンルの選択は一定(相手や味方のグラフ次第でジャンル選択を変更するというような戦略的な要素は無視)
アイテムの使用に関してはまだ考えようがあると思いますが、プラチナゲットや区間賞は他のプレーヤーの正解率に関する情報が不十分なので扱うのが難しいのではないでしょうか。

スポンサーサイト
プロフィール

こしあん

Author:こしあん
(:3[____]
【TwitterID : koshian2】
【ほしい物リスト】http://goo.gl/bDtvG2

Twitter
カウンター
天気予報

-天気予報コム- -FC2-
カテゴリ
月別アーカイブ
最新記事
最新トラックバック
検索フォーム
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。