• ベストアンサー

データ集団から抽出した値の総和が条件にあてはまるか

こんにちは 数学超初心者です。 ある数値のデータ集団Aがあり その集団Aから任意の数(N個)抽出した際に、 その総和が数値Bを超える確率を表す場合、どのような計算をすれば良いのでしょうか? 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.1

[1] まず、お求めの確率を正確に計算する方法を説明します。 [1-1]データ集団AがM個のデータで出来ているとします。その中からN個を選ぶ全ての組み合わせを調べます。  「M個の中からN個を選ぶ」というのは、まずAのデータを(どんな順番でもいいけれど)決まった列に並べておきます。そして、この列の中から一つ選びます。次に列中でそれより後にあるものを一つ選ぶ、さらにそれより後にあるものを一つ選ぶ、…、という風にしてN個を選ぶんです。組み合わせの数は C = M×(M-1)×…×(M-N+1) / ( N×(N-1)×…×1 ) 通り。  たとえば(5, 1, 2, 1, 3)という列からN=2個を選ぶと、M=5, N=2だからC=(5×4)/(2×1)=10通りあって、 (5,1), (5,2), (5,1), (5,3), (1,2), (1,1), (1,3), (2,1), (2,3), (1,3) です。 [1-2] 次に、それぞれについて総和を計算し、そのコタエを小さい順に並べた表を作ります。Aの中に同じ数値を持つデータが複数ある場合には、幾つかの場合においてコタエが同じになることもありますが、それらも重複して並べます。なので、C個のコタエが並んだ表になります。  上記の例なら総和のコタエはそれぞれ 6, 7, 6, 8, 3, 2, 4, 3, 5, 4 なので、コタエを小さい順に並べると 2, 3, 3, 4, 4, 5, 6, 6, 7, 8 という表ができます。 [1-3] 数値Bを決めたとき、表を順に見て、数値Bより大きくなるのは表の何番目のコタエであるかを調べます。それがm番目であるとしましょう。すると、(C-m+1)/Cが求める確率です。上記の例で、たとえばB=5であれば、m=7。なので求める確率は (10-7+1)/10 = 4/10。  以上が、正確な確率を計算する方法です。 [2]  たとえばAに100個のデータがあってN=3であれば、 C=100×99×98/(3×2×1) = 161700通り。これでも既になかなか大変ですが、Nがもうちょっと大きくなると、Cはとんでもなく大きくなり、コンピュータでも手に負えなくなります。そういう場合、正確な確率の計算は諦めて、近似値で我慢するのが現実的です。  そのやり方はというと、まず(上記[1-1]と同じく)あらかめデータを決まった列に並べておく。そして、この列の中から([1-1]のようにN個を選ぶ全ての組み合わせを作る代わりに)乱数を使ってランダムにN個を選ぶ、ということをうんと沢山繰り返すんです。(「うんと沢山」とは言っても、Cに比べればずっと少なくて済ませる訳です。)[1-2]以降は上記と全く同じです。  ここで、「ランダムにN個を選ぶ」というのは、列の中からランダムに1個選ぶということをN回繰り返すだけ。既に選んだやつより列の後ろにあるのを選ぶ、ということをやる必要はありません。ただし、同じもの(データが同じ数値であるかどうかは関係なくて、列の何番目かという事が同じであるもの)をN個中に2度以上選んでしまった場合は「取り出し失敗」として、捨てます。こうして、N個のデータを選び出す。これが「ランダムにN個を選ぶ」ってことです。 [3] 一方、もしAのデータが何か単純な規則に従っているなら、お求めの確率の近似値を比較的簡単に計算できる場合があります。そのやりかたは、Aが従っている規則に応じてそれぞれ工夫しなくてはなりません。

okwave67232
質問者

お礼

回答ありがとうございます。 何度も読み直してよく理解したいと思います。

関連するQ&A