📜  Python – 统计中的对数伽马分布(1)

📅  最后修改于: 2023-12-03 14:46:11.214000             🧑  作者: Mango

Python – 统计中的对数伽马分布

在概率论和统计学中,对数伽马分布是伽马分布的一种推广,它是概率密度函数为:

$$f(x|a,b) = \frac{(\frac{1}{b})^{a}}{\Gamma(a)} x^{a-1} e^{-\frac{-ln(x)}{b}}$$

其中,$x>0, a>0, b>0$。

在Python中,我们可以使用scipy.stats模块来计算对数伽马分布的相关指标和图表。

导入模块
from scipy.stats import loggamma
import matplotlib.pyplot as plt
import numpy as np
概率密度函数

我们可以使用loggamma.pdf(x, a, scale=b)函数来计算给定$x$的概率密度值。其中,$a$和$b$分别对应伽马分布的参数$k$和$\theta$。

x = np.linspace(0, 10, 100)
a = 2
b = 1
pdf = loggamma.pdf(x, a, scale=b)
plt.plot(x, pdf)
plt.title('Log Gamma PDF')
plt.xlabel('x')
plt.ylabel('pdf')
plt.show()

loggamma-pdf.png

累积分布函数

我们可以使用loggamma.cdf(x, a, scale=b)函数来计算给定$x$的累积分布值。

x = np.linspace(0, 5, 100)
a = 2
b = 1
cdf = loggamma.cdf(x, a, scale=b)
plt.plot(x, cdf)
plt.title('Log Gamma CDF')
plt.xlabel('x')
plt.ylabel('cdf')
plt.show()

loggamma-cdf.png

生成随机变量

我们可以使用loggamma.rvs(a, scale=b, size=n)函数来生成$n$个满足对数伽马分布的随机变量。其中,scale参数对应伽马分布的参数$\theta$。

a = 2
b = 1
rvs = loggamma.rvs(a, scale=b, size=10000)
plt.hist(rvs, bins=50, density=True)
plt.title('Log Gamma Random Variables')
plt.xlabel('x')
plt.ylabel('frequency')
plt.show()

loggamma-rvs.png

总结

对数伽马分布是一种重要的概率分布,在概率论和统计学中有着广泛的应用。在Python中,我们可以使用scipy.stats模块来计算对数伽马分布的相关指标和图表。