Как получить уравнения для функции распределения вероятностей и кумулятивной функции плотности гамма-распределения в scipy (Python) - PullRequest
0 голосов
/ 16 июня 2020

Так же, как мы можем записать CDF и PDF случайной величины X, следуя нормальному распределению, с ее параметрами - 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 гамма-распределения таким же образом, как описано выше?

Ответы [ 2 ]

1 голос
/ 16 июня 2020

Вы можете закодировать PDF и CDF в соответствии с определением гамма-распределения:

enter image description here

enter image description here

enter image description here

enter image description here

Источник: https://en.wikipedia.org/wiki/Gamma_distribution

Вы можете выбрать параметры альфа и бета. В качестве альтернативы вы можете использовать пакет scipy.stats.gamma.

0 голосов
/ 16 июня 2020

Узнал, как это сделать:

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) 
...