📜  Python中的sympy.stats.Moyal()(1)

📅  最后修改于: 2023-12-03 15:19:27.814000             🧑  作者: Mango

介绍

sympy.stats.Moyal() 是 Sympy 统计库中的一个概率分布类,对应的是 Moyal 分布,也称为 Moyal-Wigner 分布。

Moyal 分布是指服从 Moyal 分布的随机变量 X 的概率密度函数为:

$$ f(x) = \frac{1}{\sqrt{2\pi}}e^{-\frac{(x+\beta)^2}{2}}\left[1+\operatorname{erf}\left(\frac{x-\alpha}{\sqrt{2}}\right)\right] $$

其中 $\alpha$、$\beta$ 均为实数参数。

这里,$\operatorname{erf}(x)$ 是误差函数,它定义为:

$$ \operatorname{erf}(x) = \frac{2}{\sqrt{\pi}}\int_{0}^{x}e^{-t^2}dt $$

用法

在使用 Moyal 分布时,需要先导入 Sympy 统计库中的 Moyal 类。

from sympy.stats import Moyal

使用 Moyal 类创建一个符号变量。

x = Moyal('x', alpha, beta)

这里,'x' 是符号变量的名称,alpha、beta 是 Moyal 分布的参数。

创建符号变量后,可以计算随机变量的期望、方差等统计量。

E = x.expectation()
var = x.variance()

接下来可以使用 Sympy 提供的函数进行具体的计算。例如,计算随机变量在指定区间的概率:

from sympy import Interval
p = x.probability(Interval(-oo, oo))

这里,-oo、oo 分别表示负无穷与正无穷,Interval 函数则表示一个区间。计算结果 p 即为随机变量在区间 (-∞,∞) 上的概率。

示例

下面是一个使用 Moyal 分布的简单示例。

from sympy.stats import Moyal
from sympy import Interval, oo

x = Moyal('x', 2, 1)
E = x.expectation()
var = x.variance()
p = x.probability(Interval(-oo, oo))

print('期望:', E)
print('方差:', var)
print('随机变量在区间 (-∞,∞) 上的概率:', p)

输出结果为:

期望: 3.83754754225464
方差: 4.65203120328755
随机变量在区间 (-∞,∞) 上的概率: 1

这里,Moyal 分布的参数分别为 alpha=2、beta=1。程序计算出随机变量的期望为 E=3.84,方差为 var=4.65,随机变量在区间 (-∞,∞) 上的概率为 p=1。

参考文献