2015年9月20日日曜日

確率を算出する為のデータ量の信頼性

※2016/03/27 成功確率n%、試行回数m回の場合に1回も発生しない確率について追記
※10/9 99.9%、99.99%信頼区間を追加
※9/21 動画を追記、データのばらつきを示す表を更新

確率を算出する為のデータ量の信頼性について、教えてもらったんでまとめです。
確率を算出する為なので、特定の動作の有り無しを判別する場合などはもっと少ないデータ量でも大丈夫な場合もあります。
また、確率が1%等の低確率の場合は1,000回程度では収束せず、最低でも10,000回以上は必要です。
※特定の結果(アインハザードの祝福の効果を調査する場合等)を得るためのデータを集める場合とはまた別です。

一覧表はブログ資料のシート「確率と信頼区間」「成功確率n%、試行回数m回の場合に1回も発生しない確率」を参照して下さい。

  • 必要なデータ量

    • 仮説の元としての参考程度になるデータ(95%~99%信頼区間±5%)は、400回~700回
    • 最低限の信頼性のあるデータ95%信頼区間±3%)は、1,000回
    • かなり信頼性の高いデータ(95%信頼区間±1%)は、10,000回
    • ほぼ確実なデータ(99%信頼区間±1%)といえるのは、17,000回
    • 逆に言えば100回程度のデータは、データとしては信頼性が低く参考程度にしかならない。
    • ±5%~±1%の誤差を許容できるかどうかでも大きく変わる。
      • 結果が50%の場合は、±1%は49%~51%、±5%は45%~55%。
      • 結果が10%の場合は、±1%は9%~11%、±5%は5%~15%。
      • 結果が1%の場合は、±1%は0%~2%。
      • 95%信頼区間:基準値からの±5%は384回、±3%は1,067回、±1.5%は4,268回、±1%は9,604回
        99%信頼区間:基準値からの±5%は665回、±3%は1,849回、±1.5%は7,396回、±1%は16,641回
    • ※作業量の問題があるので、収束した信頼性の高いデータが必要な場合と、仮説をある程度補強できる程度のデータがあればいい場合で、ケースバイケースで考える必要がある。
  • 成功確率n%、試行回数m回の場合に1回も発生しない確率

    • 一部抜粋
      0.5%1.0%1.5%2.0%
      1001 / 21 / 31 / 51 / 8
      1501 / 31 / 51 / 101 / 21
      2001 / 31 / 81 / 211 / 57
      2501 / 41 / 131 / 441 / 157
      3001 / 51 / 211 / 941 / 429
      3501 / 61 / 341 / 1991 / 1,178
      4001 / 81 / 561 / 4231 / 3,233
      4501 / 101 / 931 / 8991 / 8,877
      5001 / 131 / 1531 / 1,9141 / 24,376
      6001 / 211 / 4161 / 8,6751 / 183,804
      7001 / 341 / 1,1361 / 39,3231 / 100万以上
    • ざっとした数字
      1. 700回: 2%未満が確定、1%がありえなくはないが0%としていい
      2. 450(458)回: 2%未満がほぼ確定、1%未満としていい、0%採用するならこれぐらいが最低回数?
      3. 300回: 1%だと21回に一度は起き得る数字となるので、0%確定は微妙。2%未満は採用可能。0~1%としては採用可能ぐらい?
      4. 200回: 2%でも57回に一度は起き得る数字なので、0%は確定できない。2%未満としてぎりぎり採用可能ぐらい。

  1. リネージュにおける確率の求め方(全現象が偏りなく現れる状態が前提)が基本になっていて、かなり説明を端折ってるので詳細は各自で確認すること。
  2. 95%信頼区間:基準値からの±5%は384回、±3%は1,067回、±1.5%は4,268回、±1%は9,604回
    99%信頼区間:基準値からの±5%は665回、±3%は1,849回、±1.5%は7,396回、±1%は16,641回
    99.9%信頼区間:基準値からの±5%は1,083回、±3%は3,083回、±1.5%は12,034回、±1%は27,076回
    99.99%信頼区間:基準値からの±5%は1,513回、±3%は4,205回、±1.5%は16,822回、±1%は37,849回
    1. 標準化得点の2乗 * 0.25 / 収めたい誤差の2乗 = 収めたい誤差内の二項分布(≒正規分布)のデータ
    2. 試行回数からの信頼区間の逆算
      1. √(標準化得点 * 標準化得点 * 0.25 / 試行回数)
      2. =SQRT(標準化得点 * 標準化得点 * 0.25 / 試行回数)
    3. 平均から標準化得点が±1.96以上離れる値というのは分布全体のうちの5%である。±1.96未満に収まるのが95%。これが95%信頼区間。
    4. 平均から標準化得点が±2.58以上離れる値というのは分布全体のうちの1%である。±2.58未満に収まるのが99%。これが99%信頼区間。
    5. 平均から標準化得点が±3.291以上離れる値というのは分布全体のうちの0.1%である。±3.291未満に収まるのが99.9%。これが99.9%信頼区間。
    6. 平均から標準化得点が±3.891以上離れる値というのは分布全体のうちの0.01%である。±3.891未満に収まるのが99.99%。これが99.99%信頼区間。
    7. 標準化得点というのは、実際の値から平均値を引いて標準偏差で割ったもので、平均からどれだけ離れているかを表す。
  3. 基本的に「全現象が偏りなく現れる状態のデータの場合、二項分布(≒正規分布)になる」と仮定できる。
    1. まず前提として「二項分布が前提にあって、計算式として二項分布に近似する正規分布の式を使用する」という事がある。
    2. 二項分布(≒正規分布)する標本(データ)の背後にある母集団(本来の確率分布)は二項分布(≒正規分布)する。
    3. 正規分布では「分布の中で平均値の頻度が最も多く、平均値から離れるにしたがって頻度がさがっていく」。
    4. 特性がどういうものかってのをいろんな側面から表したのが平均値だったり標準偏差だったりで、標準化という手法。
    5. 自分が実測で測ったデータが正規分布かを調べる場合、正規分布の特性が95%が±1.96以内におさまるとか色々ある条件を満たせば「得られたデータは正規分布に近似する」と想定する事ができる。
  4. 出典元
    1. Wikipedia 二項分布
    2. Wikipedia 正規分布
    3. https://twitter.com/Mohhoooo/status/645366999997001728
    4. https://twitter.com/Mohhoooo/status/645346959771832322
  5. 感想
    1. 知らないことが多くて、非常にためになった。
    2. 100回のデータの信頼性が、相当低いということが認識できたことはかなり大きなこと。
    3. 試行回数を重ねて、信頼性を高める必要の重要性を改めて認識できた。
    4. 少ないデータ量での確率のばらつきがどの程度あるかを見るのは、以下のデータを見るとよくわかる。
      予測理論値は12%、データ全体で見ると12.29%。
      59回毎の区切りだと最低が5.1%、最高が20.3%。
      118回毎の区切りだと最低が7.6%、最高が17.8%。
      236回毎の区切りだと最低が9.8%、最高が15.3%。
      COCのクリティカル率の計測データ
      セット数試行回数クリティカル確率

      118014512.29%

      159610.17%
      8.47%

      11.44%
      25946.78%
      359915.25%
      14.41%
      459813.56%
      55935.08%
      7.63%

      9.75%
      659610.17%
      759711.86%
      11.86%
      859711.86%
      959915.25%
      17.80%

      15.25%
      10591220.34%
      1159610.17%
      12.71%
      1259915.25%
      13591118.64%
      12.71%

      12.71%
      145946.78%
      1559813.56%
      12.71%
      1659711.86%
      1759915.25%
      12.71%

      12.29%
      1859610.17%
      19591016.95%
      11.86%
      205946.78%
      動画
    5. 全現象が偏りなく現れる状態について
      1. 全現象が偏りなく現れる状態を厳密に再現するのは、現実には不可能ですが考察するときはこの状態を前提とします。
      2. 以下でその理由を記述しますが、短い文章で説明してるのでかなり端折ってます。詳しく知りたい人はGoogle先生に「乱数 生成」「乱数 偏り」等で聞いて下さい。
        1. プログラム上で、全現象が偏りなく現れる状態(一切の偏りのない完全なランダム値を得る)を作り出すことは不可能です。
          1. そもそも数学的な定義の状況を現実で表現するというのは、不可能な事が多いです。
          2. 数学的な定義については、ここでは省略します。詳しく知りたい人は(ry
        2. プログラムでランダム値を得る方法は幾つもあるのですが、かなり古い時代はライブラリ自体が生み出すランダム値に偏りがあった時代も有ります。あとはプログラムの書き方によっても、偏りが出たりもします。
        3. ですので、プログラム上では擬似的にこの状態を再現しています。擬似的と言っても、現在では正しい知識でプログラムを組めば人間が知覚出来るような偏りは出ませんし、数学的にも無視して良いレベルで近似値を得ることが出来ます。Wikipedia メルセンヌ・ツイスタ
        4. リネージュのプログラムがどのようにランダム値を生成しているのかは知りませんが、普通の商業ゲームは人間が知覚出来るような偏りは出ないので全現象が偏りなく現れる状態を前提として考察していいはずです。
        5. もちろん意図的に偏りが出る様にしてるケースはまた別です。

2 件のコメント:

  1. 「必要なデータ量」について、この提示の仕方ですと10000回試行して結果が1%のとき、
    95%信頼区間が0%~2%だと勘違いしてしまいかねないかと思います(実際には0.8%~1.2%)。
    信頼区間の逆算式での0.25は、結果不明の場合に安全側に振って結果を50%と仮定した値に
    なりますので(二項分布の分散のp(1-p)の部分)、そのことも併記されたほうが親切かと。

    返信削除
    返信
    1. すいません、今はこのブログをチェックしてなかったので返答遅れました。

      指摘ありがとうございます。
      ちょっとこの記事書いたときの知識が残ってないので、指摘内容を理解するのに時間かかりそうです。
      すいませんが、少しお待ち下さい。

      削除