サンプリングできない単変量分布はありますか?


12

単変量分布(逆変換、アクセプトリジェクト、メトロポリスヘイスティングスなど)からランダムに生成するためのさまざまな方法があり、文字通り任意の有効な分布からサンプリングできるようです-それは本当ですか?

ランダムに生成することが不可能な単変量分布の例を提供できますか?私は「不可能」によって、我々はまた、ある場合を意味することだと言うてみましょう(?)それは不可能であるという例が存在していないと思い、非常にちょうどAを受け入れるために、サンプルの膨大な量を描くような必要性のブルートフォースシミュレーションこと例えば、計算コストをそれらのいくつか。

そのような例が存在しない場合は、我々は実際に描画し、我々はランダム生成できることを証明することができます任意の有効な分布?これに反例が存在するかどうか、私は単に興味があります。


6
本当に「できない/不可能」という意味になります。たとえば、cdfとpdfの評価が非常に高価な場合があります。これにより、ほとんどの方法が禁止され、pdfで適切なエンベロープバウンド(受け入れ拒否の場合)の分布形状を見つけるのは難しくありません。ほとんどの場合、関数評価を回避します)はすぐに利用できません。それはあなたがすでに除外するケースを失敗し、私たちが作ることができるので、使用するよりも計算するには(平均で、ずれるごとに)さらに高価(CDFの数値反転使用しようとして除外された)受け入れ、拒否F
Glen_b -Reinstateモニカ

3
コンピューターを使用して、間隔(0,1)にある無理数のセットから一様なランダムサンプルを描画することはできません。証拠は、読者への課題として残されています。
クリフAB

2
@Cliff ABこれは、区間演算によって処理できます。[0,1]全体がこれらの間隔でカバーされるように、各コンピューターの評価可能な(合理的な)ポイントの周りの(最小の)間隔を定義します。評価可能な「均一な」描画されたコンピュータごとに、この間隔引数の累積分布関数の逆の間隔(外向きに丸められた)を評価します。これにより、ランダム変数の区間サンプルが生成され、真のサンプルが含まれることが100%保証されます。
マークL.ストーン

2
私が得ているのは、すでに十分に非効率的な受け入れ拒否を「不可能」とみなしているためです。あなたが知っている他のアプローチが悪いほど(より多くの計算が必要になるほど)高価にすると、おそらくそれらも「不可能」とみなされます 評価に高価なFとfを構築することはそれほど難しくなく、ほとんどの時間を実際に計算することを回避する明白な方法も非効率的であるようにそれらを作成することは可能だと思われます、、、 ctd
Glen_b -Reinstate Monica

1
ctd ...(しかし、ひとまとめにすると、人々は非常に巧妙であるため、問題のほとんどを回避する素晴らしいアイデアを思い付くと、いつかは非常に難しいように思えます)。「このような精度の近似は問題ありません」と言うと、これらの困難の多くは多くの場合回避できます(たとえば、大きなルックアップテーブル/ヒストグラムからの生成などを作成できる場合がありますほとんどの場合、適切な速度で近似値を生成します)。
Glen_b-モニカの復活

回答:


15

累積分布関数がわかっている場合は、分析的または数値的に、それを反転し、逆変換サンプリング法を使用してランダムサンプルhttps://en.wikipedia.org/wiki/Inverse_transform_samplingを生成できますF(x)

定義。これは、連続的、離散的、または組み合わせを問わず、あらゆる分布を処理します。これは常に数値的に、そしておそらく分析的にも解決できます。UをUniform [0,1]として分布するランダム変数からのサンプル、つまり、uniform [0,1]乱数ジェネレーターからのサンプルとします。この 場合、上記のように定義されたF 1U は、分布F x を持つランダム変数からのランダムサンプルです。 F1(y)=inf(x:F(x)y)F1(U)F(x)

これはランダムサンプルを生成する最速の方法ではないかもしれませんが、F(x)が既知であると仮定して、方法です。

F(x)が不明な場合、それは別の話です。


2
がわからない場合、何がわかるか?明らかにそれは関連性があります。もしあなたが何も知らないなら、あなたは何もすることができません。F(x
マークL.ストーン

@Tim実際、F(X)がわからないことはよくありますが、そこからサンプルを生成できます。これは、モンテカルロ(確率的)シミュレーションの典型的なシナリオです。
マークL.ストーン

@Tim:このストーリーに興味がない場合は、どのストーリーに興味があるのか​​明確ではありません。Glen_bのコメントに応えて、あなたは非効率的なサンプリングに関心がないと言いました。この方法は非効率ですが、任意のpdfからサンプリングできます(数値積分が失敗するほど悪い動作ではないと仮定しますが、そのような分布の使用を気にかけているとは思いません)。したがって、たとえば、無限の数の場所で不連続な分布に興味がない限り、これがあなたの質問に対する答えになるはずです。はい、できます。
クリフAB

実際、が既知であるがF 1ではない場合、これは問題です。FF1
西安

1
問題の意味によって異なります。場合知られており、その後、私の答えあたり、F - 1yが= I N F X F X yは必ずしも十分に定義され、数値的に解くことができます。それはあなたが望むほど速くないかもしれないので、それがあなたが問題によって意味するものであるなら、OKそれがあなたが意味するものではないなら、問題は何ですか?FF1(y)=inf(x:F(x)y)
マークL.ストーン

7

分布のみ、そのモーメント生成関数によって定義されている場合、又はその特性関数によりΦ T = E [ EXP { I T X } ]稀である方法を見つけることそれらの分布から生成する。ϕ(t)=E[exp{tX}]Φ(t)=E[exp{itX}]

関連する例は、密度またはcdfの既知の形式、モーメント生成関数はありませんが、閉形式の特性関数を持つ安定分布αで構成されています。

ベイジアン統計では、難治性の尤度に関連付けられた事後分布、または1台のコンピューターに収まるには大きすぎるデータセットは、(正確に)シミュレートすることが不可能と見なされます。


モーメント生成関数のみがわかっている場合は、サドルポイント近似を使用して、そこからシミュレートできます。
kjetil bハルヴォルセン

1
@ Xi'an「効率的に」という言葉を省略しました。最悪の場合、変換の数値反転を数値的に反転できます。それは仕事をするかもしれません、「効率的」ではないかもしれませんが、それはします。
マークL.ストーン

3
@kjetilbhalvorsen:サドルポイント近似は、私が置いたリンクで提案された解決策です。しかし、これは近似値です!
西安

2

連続分布を参照すると仮定します。使用することにより、確率積分変換、あなたは、任意の単変量分布からシミュレートすることができますシミュレートすることにより、uと0 1 、その後は服用F - 1U 。したがって、ユニフォームをシミュレートすれば、その部分は完了です。Fからのシミュレーションを妨げる可能性があるのは、その逆F 1を計算できないことだけですが、これは理論的なものではなく、計算の困難さに関連する必要があります。Fu(0,1)F1(u)FF1


1

θ=(θ1,...,θd)θj

場合によっては、この事後から近似的にサンプリングする方法がありますが、現時点では正確な一般的な方法はありません。


...しかし、問題は単変量分布に関するものです。膨大な数の反復を繰り返してもMCMCが収束しない複雑なモデルの例は多数あります。
ティム

@Tim And that's exactly why I said marginal posterior, which means univariate ... It seems to me you do not have clear what you are asking. The first two answers are clear in that theoretically, it is possible to sample from any distribution provided you know it.
Noah

1
I vote to put this question [ON HOLD] until the OP clarifies what he is asking and stop changing the question every time a new answer appears in order to make the answers inapplicable.
Noah

I am not changing my question "every time a new answer appears" ... Obviously statistical model with likelihood and prior is not univariate since it is declared in terms of conditional distribution. It is univariate if you sample from the posterior, but then I guess that you assume that we already have the marginal distribution so there is no problem with intracable posterior.
Tim

1
You confuse marginal with univariate, when those two notions have no connection. Univariate means the random variable is in R, while marginal means the distribution can be represented as an integral against another density. Actually, using this integral representation means a univariate rv can be simulated by first simulating a multivariate rv.
Xi'an

1

Not sure if this is really an answer ... I am guessing (but do not know) that one cannot sample from an only finitely additive distribution. An example would be the uniform distribution on the rational numbers, which only can exist as a finitely additive distribution. To see this, let (qi)i=1 be an enumeration of the rationals. Since the distribution is uniform, P(X=qi)=0 for any individual i, so i=1P(X=qi)=0 but P(XQ)=1.

If this answer looks strange and even irrelevant, look at more practical examples which are sometimes used in Bayesian inference: A uniform prior distribution on a real parameter, such as the mean of a normal distribution, say μ. That can be modeled by a "density" (not a real probability density) which is identically one: π(μ)=1. Such a prior can be used in Bayesian analysis (and is sometimes used, see the classic book by Box & Tiao), but we cannot sample from it. And, the probability distribution defined that way is only finitely additive, which you can see by an argument similar to the rational number example above.


0

Could you provide any example of univariate distribution that is impossible to random generate from?

Let c be Chaitin's Constant, and sample the (distribution of the) random variable which is constantly c.

If you're only interested in sampling random variables whose values can be reasonably approximated by 64-bit floating-point numbers, or you have some similar tolerance for finite error in the value, and you weren't representing your samples a Turing machines anyways, consider this:

Let XBer(p) with p=1c and try to sample it. The values 0 and 1 are perfectly representable (in e.g. 64 bit floats with no error), but I think you'll generate them at incorrect frequencies unless you solve the halting problem.

The two CDFs are piecewise constant: one is 0 on (,c) and 1 on [c,). The other is 0 on (,0), then c on [0,1) and 1 on [1,). That is, one makes c relevant on the x-axis, the other on the y-axis. I'm not sure which makes sampling most difficult, so pick the one you (dis)like the most ;-)

let's say that by "impossible" we mean also cases that are very computationally expensive, e.g. that need brute-force simulations like drawing huge amounts of samples to accept just a few of them.

In this case, obvious answer seems obvious:

  • Sample uniformly the prime factors of n where n is large (i.e. break RSA).
  • Sample the preimages of a cryptographic hash function (i.e. generate bitcoin and break git and mercurial).
  • Sample the set of optimal Go strategies (with Chinese superko rules, which make all games finite—as far as I understand).

A bit more formally: I give you a large instance of an NP-complete problem (or EXP-complete, etc.) and ask you to uniformly sample the set of solutions for me.

Probably I should accept as a solution to no-instances (and no-instances only, and it would be the only solution). I should also come up with a bijection between e.g. integers (assuming you want to sample members of R) and solutions—which is often fairly trivial, just treat base 2 representations as truth assignments for my SAT instance, for example, and maybe use 1 to represent .

You can easily check whether any given truth assignment satisfies my SAT instance, and having checked them all you know whether any one does, so I have fully specified a CDF by giving you a boolean formula (or circuit), yet to sample the corresponding distribution you have to essentially become something at least as powerful as a SAT-solvability oracle.


So I gave you an uncomputable number which should throw sand in your gears, and I gave you a CDF that's slow to calculate. Maybe the next obvious question to ask is something like this: is there a CDF represented in some efficient form (e.g. can be evaluated in polynomial time) such that it's hard to generate samples with that distribution? I don't know the answer to that one. I don't know the answer to that one.

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.