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

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

sympy.stats.Logistic()

sympy.stats.Logistic() 是一个 sympy 模块中的概率分布对象,它对应的是逻辑分布(Logistic Distribution),也称为 S 形函数(Sigmoid Function)分布。

逻辑分布的概率密度函数如下:

$$ f(x) = \frac{e^{-\frac{x-\mu}{s}}} {s,(1+e^{-\frac{x-\mu}{s}})^2} $$

其中 $\mu$ 为位置参数, $s$ 为形状参数,概率分布特征如下:

  • 期望:$\mu$
  • 方差:$\frac{\pi^2}{3}s^2$
  • 偏度:$0$
  • 峰度:$\frac{6}{5}$
使用方法

sympy.stats.Logistic() 可以用于生成逻辑分布的随机变量,语法如下:

from sympy.stats import Logistic
import sympy

mu, s = sympy.symbols('mu s', positive=True)
X = Logistic('X', mu, s)

# 生成逻辑分布的随机变量,rand_var 为 LogisticDistribution 类的一个实例
rand_var = X.as_random_variable()

# 获取符号表达式
expr = X.pdf(sympy.Symbol('x'))

# 求解期望
mean = X.mean()

# 求解方差
variance = X.variance()

# 求解标准差
std = X.std()

接下来,让我们通过一个小例子来使用逻辑分布的随机变量:

import matplotlib.pyplot as plt

samples = rand_var.rvs(size=1000)  # 获取1000个样本

# 绘制样本分布的直方图
plt.hist(samples, bins=30, density=True)

# 绘制理论概率密度曲线
sympy.plot(expr.subs({mu: 0, s: 1}), (sympy.Symbol('x'), -5, 5), line_color='r')

plt.show()

逻辑分布

总结

sympy.stats.Logistic() 是一个 sympy 模块中的概率分布对象,它可以帮助我们生成逻辑分布的随机变量,并进行各种统计量的求解和分布形状的可视化。逻辑分布是一种较为特殊的连续概率分布,它在统计学、经济学和生物学等方面都有着广泛的应用。