在Mathematica中,我如何定义任意概率分布?

Sas*_*sha 5 wolfram-mathematica

我想要一个任意函数p [x],它集成到1和所有x,0 <= p [x] <= 1.某种转换规则?

Sjo*_*ies 12

您可以ProbabilityDistribution将此与未定义的函数一起使用x:

dist = ProbabilityDistribution[p[x], {x, -Infinity, Infinity}];
Run Code Online (Sandbox Code Playgroud)

它现在知道一些适用的规则:

你知道你的第二个要求,即0 <= p[x] <= 1概率密度函数通常不正确,对吗?


dre*_*ves 0

如果您只是要求提供符合您的标准的密度函数 (PDF) 示例,这里有两个(在无数个中):

p(x) = 1 if 0 < x < 1
       0 otherwise

p(x) = x/2 if 0 < x < 2
       0 otherwise
Run Code Online (Sandbox Code Playgroud)

我们甚至可以稍微概括一下:

p(x) = 1/k if 0 < x < k
       0 otherwise

p(x) = 2x/k^2 if 0 < x < k
       0 otherwise
Run Code Online (Sandbox Code Playgroud)

后者适用于 k >= 2。我们甚至可以使用另一个参数来推广它,以获得具有任意指数的此类函数的类

p(x) = (a+1)/k^(a+1)*x^a if 0 < x < k
       0 otherwise
Run Code Online (Sandbox Code Playgroud)

它适用于所有 a > 1 和 k > a+1。

对于更有趣的例子,我认为你需要给出更多标准。你提到了一个转换规则,所以也许你想在 R1 上取一个任意有界函数并对其进行平移/缩放,以便它始终在 0 和 1 之间并积分为 1。只要你能得到给定函数的最小值、最大值和积分。继续编辑问题以询问这是否确实是您正在寻找的内容。