如何获得 scipy (Python) 中伽马分布的概率分布函数和累积密度函数的方程
How to get the equations for Probability distribution function and Cumulative density function of a gamma distribution in scipy (Python)
正如我们可以写出服从正态分布的随机变量 X 的 CDF 和 PDF,其参数 - std 和 mean 使用 scipy以下方式:
from numpy import sqrt, pi, exp
mean, std = 295, 250
# defining Cumulative density function
def cdf(x):
cdf_eqn = lambda t: (1 / (std * sqrt(2 * pi))) * exp(-(((t - mean) ** 2) / (2 * std ** 2)))
cdf = quad(cdf_eqn, -np.inf, x)[0]
return cdf
# defining Probability distribution function
def pdf(x):
return (1 / (std * sqrt(2 * pi))) * exp(-(((x - mean) ** 2) / (2 * std ** 2)))
如何用上面相同的方式定义 伽马分布 的 CDF 和 PDF?
您可以根据伽马分布的定义对PDF和CDF进行编码:
来源:https://en.wikipedia.org/wiki/Gamma_distribution
您可以选择 alpha 和 beta 参数。
或者,您可以使用 scipy.stats.gamma 包。
了解如何操作:
from scipy.stats import gamma
mean = 259
std = 250
x = 100
alpha = ( mean / std)**2
beta = std**2 / mean
def pdf(x,aplha,beta):
return gamma.pdf(x, a = alpha, scale = beta)
def cdf(x,alpha,beta):
return gamma.cdf(x, a = alpha, scale = beta)
正如我们可以写出服从正态分布的随机变量 X 的 CDF 和 PDF,其参数 - std 和 mean 使用 scipy以下方式:
from numpy import sqrt, pi, exp
mean, std = 295, 250
# defining Cumulative density function
def cdf(x):
cdf_eqn = lambda t: (1 / (std * sqrt(2 * pi))) * exp(-(((t - mean) ** 2) / (2 * std ** 2)))
cdf = quad(cdf_eqn, -np.inf, x)[0]
return cdf
# defining Probability distribution function
def pdf(x):
return (1 / (std * sqrt(2 * pi))) * exp(-(((x - mean) ** 2) / (2 * std ** 2)))
如何用上面相同的方式定义 伽马分布 的 CDF 和 PDF?
您可以根据伽马分布的定义对PDF和CDF进行编码:
来源:https://en.wikipedia.org/wiki/Gamma_distribution
您可以选择 alpha 和 beta 参数。 或者,您可以使用 scipy.stats.gamma 包。
了解如何操作:
from scipy.stats import gamma
mean = 259
std = 250
x = 100
alpha = ( mean / std)**2
beta = std**2 / mean
def pdf(x,aplha,beta):
return gamma.pdf(x, a = alpha, scale = beta)
def cdf(x,alpha,beta):
return gamma.cdf(x, a = alpha, scale = beta)