爆弾はどこにありますか:行と列の合計を与えられた確率を推定する方法は?


14

この質問は、ポケモンソウルシルバーのミニゲームに触発されたものです。

この5x6領域に15個の爆弾が隠れていると想像してください(編集:最大1個の爆弾/セル):

合計

行/列の合計を考慮して、特定のフィールドで爆弾を見つける確率をどのように推定しますか?

列5(合計爆弾= 5)を見ると、次のように思うかもしれません。この列では、行2で爆弾を見つけるチャンスは行1で見つける可能性の2倍です。

この(間違った)直接比例の仮定は、基本的に標準の独立テスト操作(カイ二乗など)を間違ったコンテキストに描画すると説明できるため、次の推定につながります。

カイ二乗

ご覧のように、直接比例は100%を超える確率の推定につながり、それ以前でも間違っています。

そこで、考えられるすべての順列の計算シミュレーションを実行し、15個の爆弾を配置する276のユニークな可能性を導きました。(与えられた行と列の合計)

276のソリューションの平均は次のとおりです。 計算ソリューション

これは正しい解決策ですが、指数関数的な計算作業のため、推定方法を見つけたいと思います。

私の質問は今です:これを推定する確立された統計的方法はありますか?これが既知の問題であるかどうか、それがどのように呼ばれるか、お勧めできる論文/ウェブサイトがあるかどうか疑問に思っていました!


1
高速で簡単なアプローチ:行と列の数が多い場合は、モンテカルロシミュレーションを実行し、可能性のある総数よりも少ない可能性のある構成のランダムサブサンプルを確認できます。おおよその解決策が得られます。
ティム

1
私はあなたの計算ソリューションを理解していません。セル内の数字は何ですか?彼らは確かに100%までは加算されません、それはPMFではありません。彼らはまた、CDFを好まない外観は、右/下のセルは100%ではありません
Aksakal、ほぼ確実にバイナリ

2
@Aksakalこれらは、特定のセルに爆弾が含まれる限界確率です。数字は、ボード上の合計爆弾の数である15に追加されます。
ドゥーガル

2
2つのマージンが独立していると仮定している場合、(Patefieldのアルゴリズムを介して)マージンを条件とするテーブルの分布からサンプリングするのは比較的簡単です。これは、中のRの標準分布に実装されr2dtable(またによって使用されるchisq.testfisher.test、いくつかの状況で)。
Glen_b -Reinstateモニカ

2
@Glen_bしかし、Patefieldアルゴリズムでは、セルごとのイベントの数は1つに限定されません。
ジャールタフト

回答:


3

ソリューション空間(有効な爆弾構成)は、特定の次数シーケンスを持つ2部グラフのセットとして表示できます。(グリッドは双隣接行列です。)その空間で均一な分布を生成するには、マルコフ連鎖モンテカルロ法(MCMC)を使用してアプローチできます。のように見える:

(xx)(xx)

これには高速混合特性があることが証明されています。したがって、有効な構成で開始し、MCMCをしばらく実行するように設定すると、解の均一分布の近似値になります。これは、探している確率を点ごとに平均化できます。

私はこれらのアプローチとその計算面については漠然としか知らないが、少なくともこの方法では、非解決策の列挙を避けることができる。

トピックに関する文献の開始:https:
//faculty.math.illinois.edu/~mlavrov/seminar/2018-erdos.pdf
https://arxiv.org/pdf/1701.07101.pdf
https:// www。 tandfonline.com/doi/abs/10.1198/016214504000001303


それは素晴らしいアイデアです!わかった!既知のソリューションを定義された反復回数(論文で見つけることが期待される)で混合し、その後、それらのほとんどが見つかることを期待して、ユニークなソリューションを平均します。本当にありがとう!
KaPy3141

2
MCMCはまさにその道であり、私もこれを見つけました。arxiv.org
pdf

@ KaPy3141上記の行と列の合計について、長方形ループアルゴリズム(arxivプレプリント)の実装は、回の反復でアルゴリズムを実行した場合でも、276個の一意の状態のみを訪問します。106
ジャールタフト

これは、@ Aksakalが示唆する列挙がより効率的であることを示唆しています。
ジャールタフト

@JarleTuftoですが、OPは276の一意の(有効な)状態しかないと言います。あなたはそれらをすべて見つけました!
ベンライニガー

5

ユニークなソリューションはありません

いくつかの追加の仮定を行わない限り、真の離散確率分布を回復できるとは思いません。あなたの状況は基本的に周辺から共同分布を回復する問題です。金融リスク管理などの業界でコピュラを使用することで解決される場合がありますが、通常は継続的な配布に使用されます。

プレゼンス、独立、AS 205

プレゼンスの問題では、1つのセルに許可される爆弾は1つだけです。繰り返しますが、独立の特別な場合には、比較的効率的な計算ソリューションがあります。

FORTRANを知っている場合は、AS 205アルゴリズムを実装するこのコードを使用できます:Ian Saunders、アルゴリズムAS 205:繰り返し行の合計、Applied Statistics、Volume 33、Number 3、1984、340-352ページでのR x Cテーブルの列挙。@Glen_Bが参照したPanefieldのアルゴリズムに関連しています。

このアルゴリズムは、すべてのプレゼンステーブルを列挙します。つまり、フィールドに爆弾が1つしかないすべてのテーブルを調べます。また、多重度、つまり同じように見える複数のテーブルを計算し、いくつかの確率(関心のあるものではない)を計算します。このアルゴリズムを使用すると、以前よりも高速に完全な列挙を実行できる場合があります。

独立していない存在

AS 205アルゴリズムは、行と列が独立していない場合に適用できます。この場合、列挙ロジックによって生成された各テーブルに異なる重みを適用する必要があります。重量は爆弾の配置のプロセスに依存します。

カウント、独立

カウントの問題ができますつ以上の爆弾はもちろん、セルの中に入れました。カウント問題の独立した行と列の特殊なケースは簡単です:Pij=Pi×Pj ここで、PiPjは行と列の周辺です。例えば、行P6=3/15=0.2と列P3=3/15=0.2、したがって爆弾が行6である確率とカラム3P63=0.04。実際に最初のテーブルでこの分布を作成しました。

カウント、独立ではない、離散コピュラ

行と列が独立していないカウントの問題を解決するために、離散コピュラを適用できます。彼らには問題があります:彼らはユニークではありません。しかし、それらが役に立たないわけではありません。そこで、離散コピュラを適用してみます。Genest、C.およびJ.Nešlehová(2007)でそれらの概要を見つけることができます。カウントデータのコピュラの入門書。アスティンブル。37(2)、475–515。

コピュラは、通常、明示的に依存関係を誘発したり、データが利用可能なときにデータから依存関係を推定したりできるため、特に有用です。爆弾を配置するときの行と列の依存関係を意味します。たとえば、爆弾が最初の行にある場合、最初の列にもある可能性が高くなります。

KimeldorfとSampsonのコピュラをデータに適用して、もう一度仮定します。 して、セルに複数の爆弾を配置できると。依存パラメータのためのコピュラθ:のように定義される

C(u,v)=(uθ+uθ1)1/θ
あなたが考えることができθ相関係数のアナログとしては。

独立した

弱い依存関係の場合、θ=0.000001から始めましょう。次の確率(PMF)があり、右と下のパネルにも限界PDFが表示されています。

enter image description here

列5では、2番目の行の確率が最初の行よりも2倍高い確率を持っていることがわかります。これは、あなたがあなたの質問で暗示しているように見えるものとは反対に間違っていません。もちろん、パネルの周辺が周波数と一致するように、すべての確率は合計で100%になります。たとえば、下のパネルの列5には1/3が表示されており、合計15個のうち5個の爆弾に対応しています。

正の相関

θ=10より強い依存性(正の相関)を得るには、次のものがあります。

enter image description here

負の相関

強いが負の相関(依存関係)θ=0.2同じ:

enter image description here

もちろん、すべての確率が合計で100%になることがわかります。また、依存関係がPMFの形状にどのように影響するかを確認できます。正の依存関係(相関)の場合、対角線に集中した最高のPMFが得られますが、負の依存関係の場合、非対角線です。


あなたの答えとコピュラへの興味深いリンクをありがとう!残念ながら、私はコピュラを使用したことがないので、セルごとに1つの爆弾のみを強制するソリューションを見つけるのは難しいでしょうが、理解が深まったら間違いなく試してみます!
KaPy3141

@ KaPy3141、問題の解決に使用できるコードへの参照を追加しました。F90にありますが、numpyでPythonに変換するのは比較的簡単です
Aksakalはほぼ確実にバイナリで

θθ

パラメータをプロセスに合わせる必要があります。生成プロセスがそれと一致する場合、問題は純粋な組み合わせです。
Aksakalはほぼ確実に

4

あなたの質問はこれを明確にしませんが、爆弾は最初は単純なランダムサンプリングを介して配布され、セルを置き換えることはないと仮定します(セルに複数の爆弾を含めることはできません)。あなたが提起した問題は、(理論的には)正確に計算できるが、大きなパラメーター値を計算するには計算上実行不可能になる確率分布の推定方法の開発を本質的に求めていることです。


正確なソリューションは存在しますが、計算量が集中します

n×mb

x=(x1,...,xnm)s=(r1,...,rn,c1,...,cm)S:xs、割り当てベクトルから行と列の合計にマッピングします。

P(x)1

P(x|s)=P(x,s)P(s)=P(x)I(S(x)=s)xP(x)I(S(x)=s)=I(S(x)=s)xI(S(x)=s)=1|Xs|I(S(x)=s)=U(x|Xs),

Xs{x{0,1}nm|S(x)=s}sx|sU(Xs)。つまり、爆弾の割り当てベクトルの条件付き分布は、観測された行と列の合計と互換性のあるすべての割り当てベクトルのセットにわたって均一です。与えられたセル内の爆弾の限界確率は、この共同分布を無視することで取得できます。

P(xij=1|s)=x:xij=1U(x|Xs)=|XijXs||Xs|.

Xij{x{0,1}nm|xij=1}ijXs|Xs|=276Xs そのため、このソリューションの計算は次の場合に実行不可能になる可能性があります。 nmb


適切な推定方法の検索

Xs

素朴な経験的推定量:緑の表で提案し使用した推定量は次のとおりです。

P^(xij=1|s)=ribcjbb=ricjb.

この推定方法は、行と列を独立したものとして扱い、行と列の合計の相対頻度により特定の行/列の爆弾の確率を推定します。この推定量が合計することを確立するのは簡単ですb


詳細な回答をありがとうございます!実際、私の緑のチャートでは、すでに133%までの値があります。この問題に対する一般的な方法はなく、自分で実験することは許容できることを知っておくとよいでしょう!私の最も正確な推定量は「グリーン」アプローチに似ていますが、P(row)/ sum(P(rows))* P(c)/ sum(P(cols))に比例して爆弾を割り当てる代わりに、虚数P(r)/(1-P(r))/ sum(rows)その後、製品を戻します:P(real)= P(imag)/(1 + P(imag)。これによりP <1が強制されます。今、私は、(わずかに違反した)行/列の合計を計算的に強制する必要があると推測します
KaPy3141

@ KaPy3141では、特定の爆弾がセルにある値(1を超える問題はありません)を使用して、問題をその分布から15個の爆弾を引くこととして説明し、各セルには値0または1(置換なしの描画)。これは、1を超えない確率を提供します
セクストス・エンペイリコス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.