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

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

Python 中的 sympy.stats.Frechet()

sympy.stats.Frechet() 是 Sympy 中的一个函数,用于建立自由希特分布。自由希特分布是极值分布族的一个重要分布。

建立自由希特分布

要建立自由希特分布,可以使用 sympy.stats.Frechet() 函数,以以下格式进行调用:

sympy.stats.Frechet(name, alpha)

其中,name 是分布的名称,alpha 是分布的可调参数。

例如,要建立一个名称为 X,参数为 alpha = 2 的自由希特分布,可以使用以下代码:

import sympy.stats as sps
from sympy import Symbol

X = sps.Frechet(Symbol('X'), 2)
自由希特分布的性质

自由希特分布具有以下性质:

  • 概率密度函数(PDF):

    $$ f(x) = \frac{\alpha}{x}\left(\frac{x}{\beta}\right)^{-\alpha-1}\mathrm{e}^{-\left(\frac{x}{\beta}\right)^{-\alpha}} $$

    其中,$\alpha$ 是分布的形状参数,$\beta$ 是分布的尺度参数。

  • 累积分布函数(CDF):

    $$ F(x) = \mathrm{e}^{-\left(\frac{x}{\beta}\right)^{-\alpha}} $$

  • 均值:

    $$ \mathrm{E}(X) = \begin{cases} \infty, & \mathrm{if}\ \alpha\leq1\ \beta\Gamma\left(1-\frac{1}{\alpha}\right), & \mathrm{if}\ \alpha>1 \end{cases} $$

    其中,$\Gamma$ 是伽玛函数。

  • 方差:

    $$ \mathrm{Var}(X) = \begin{cases} \infty, & \mathrm{if}\ \alpha\leq2\ \beta^2\left[\Gamma\left(1-\frac{2}{\alpha}\right)-\left(\Gamma\left(1-\frac{1}{\alpha}\right)\right)^2\right], & \mathrm{if}\ \alpha> 2 \end{cases} $$

  • 矩生成函数:

    $$ M(t) = \sum_{n=0}^{\infty}\frac{\mathrm{E}(X^n)}{n!}t^n = \sum_{n=0}^{\infty}\frac{\alpha^{(-n)}\beta^n}{n!}t^n\Gamma\left(n+\frac{1}{\alpha}\right) $$

    其中,$\alpha^{(-n)}$ 表示将 $\alpha$ 开 $n$ 次方后取倒数。

示例

以下是一个自由希特分布的示例,其中使用了 Python 中的 scipy.stats.frechet_r() 函数生成随机变量,并绘制了 PDF:

import scipy.stats as stats
import matplotlib.pyplot as plt

# 建立自由希特分布
alpha = 2.3
beta = 0.5
X = stats.frechet_r(alpha)

# 绘制 PDF
x = np.linspace(0, 5, 100)
plt.plot(x, X.pdf(x), label='PDF')
plt.legend()
plt.show()

frechet-pdf.png

总结

以上是对 Python 中 sympy.stats.Frechet() 函数的介绍。使用该函数可以方便地建立自由希特分布,并计算分布的各种性质,例如概率密度函数和累积分布函数。