N ∈ N 1、2、。。。、a m nは要素のセットであり、は以下の固定された正の整数です。
の要素が等しい可能性がある場合、サンプルは置換せずにから個別に独立して描画され、そのサイズはそれぞれです。m個のL 1、L 2、。。。、LのMが S 1、2、。。。、M
サンプルの交差のカーディナリティ一般に、と同等のサポートがありますが、どの分布に従うのですか?
N ∈ N 1、2、。。。、a m nは要素のセットであり、は以下の固定された正の整数です。
の要素が等しい可能性がある場合、サンプルは置換せずにから個別に独立して描画され、そのサイズはそれぞれです。m個のL 1、L 2、。。。、LのMが S 1、2、。。。、M
サンプルの交差のカーディナリティ一般に、と同等のサポートがありますが、どの分布に従うのですか?
回答:
これは、再帰を含まない別のアプローチです。ただし、長さはパラメーターに依存しますが、合計と積を使用します。最初に表現をして、それから説明します。
我々は
編集:これらすべての記述の終わりに、2項係数を超幾何確率と3項係数に結合することにより、上記の式を少し統合できることに気付きました。価値のあるものとして、改訂された式は ここで、は超幾何確率変数であり、は成功状態を持つサイズ母集団から取得されます。Hyp(n、j+k、al)alnj+k
(うまくいけば)組み合わせの引数を追跡するのを少し簡単にするために、いくつかの表記を取得しましょう。全体を通して、および修正されたと見なします。我々が使用します順序付きのコレクションを表すためにタプル各満たすには、1、... 、M個の C(I )M (L 1、... 、LがM)L I ⊆ S
同等の代わりに必要なことを除いて、同一のコレクションにはも使用します。 L 1 ∩⋯∩ LのM ⊇I
重要な観察は、は比較的簡単に数えることができるということです。これは、条件がすべてのと同等であるため、ある意味で、これは異なる値間の相互作用を削除します。各について、要件を満たす数は、サイズのサブセットを選択することでそのような構築できるため、そしてとの結合。その結果、 L 1 ∩⋯∩ LのM ⊇I L I ⊇IIII L I ( | S | - | I |LiS∖Iai−| 私| 私| C′(I)| =n∏i=1(|S|−|I|
これで、元の確率はを介して次のように表すことができます: P ( | L 1 ∩ L 2 ∩ ⋯ ∩ LのM | = K ) = Σ I :| 私| = k | C(I )|
ここですぐに2つの簡略化を行うことができます。まず、分母はと同じです 第二に、順列引数ショーカーディナリティーによってのみ依存する。あるのでの部分集合基数を有する、それはそれが次 ここで、はカーディナリティを持つ任意の固定サブセットです
一歩後ろに戻って、問題を減らし、
LETの別個のサブセットであるに正確に1つの要素を追加することによって形成され。次に、 (これは、場合、にが、追加の要素も含まれていません。)カウント問題をカウント問題に変換しました。より具体的には、
上記の共用体式のサイズを処理するために包含/除外を適用できます。ここでの重要な関係は、空ではない、 これは、に数が含まれている場合、それらの和も含まれているためです。また、セットサイズは。したがって
最後に、最後の式をの方程式に代入することにより 上記と合計を統合すると、 と主張されています。
これを解決する分析的な方法は知りませんが、結果を計算する再帰的な方法があります。
場合、中から要素を選択します。そのうちのは以前に選択されています。2番目の描画でと交差する要素を選択する確率は、超幾何分布によって与えられます。
結果をと呼ぶことができます同じロジックを使用してを見つけることができますここで、は3つのサンプルの共通部分のカーディナリティです。そして、
これをごとに見つけます。は前の計算の結果であり、は次の呼び出しなので、後者の計算は数値的に難しくありません超幾何分布。
一般に、を見つけるには、次の再帰式を適用できます: のための及び これは、と言うだけ
これはRにあります:
hypergeom <- function(k, n, K, N) choose(K, k) * choose(N-K, n-k) / choose(N, n)
#recursive function for getting P(b_i) given P(b_{i-1})
PNext <- function(n, PPrev, ai, upperBound) {
l <- seq(0, upperBound, by=1)
newUpperBound <- min(ai, upperBound)
kVals <- seq(0, newUpperBound, by=1)
PConditional <- lapply(kVals, function(k) {
hypergeom(k, ai, l, n)
})
PMarginal <- unlist(lapply(PConditional, function(p) sum(p * PPrev) ))
PMarginal
}
#loop for solving P(b_m)
P <- function(n, A, m) {
P1 <- c(rep(0, A[1]), 1)
if (m==1) {
return(P1)
} else {
upperBound <- A[1]
P <- P1
for (i in 2:m) {
P <- PNext(n, P, A[i], upperBound)
upperBound <- min(A[i], upperBound)
}
return(P)
}
}
#Example
n <- 10
m <- 5
A <- sample(4:8, m, replace=TRUE)
#[1] 6 8 8 8 5
round(P(n, A, m), 4)
#[1] 0.1106 0.3865 0.3716 0.1191 0.0119 0.0003
#These are the probabilities ordered from 0 to 5, which is the minimum of A