• Автор записи:
  • Рубрика записи:Scipy
  • Время чтения:7 минут чтения
  • Комментарии к записи:0 комментариев

Одним из распределений, часто используемых в сферах бизнеса, науки и техники, является гамма-распределение, которое используется для описания непрерывных переменных, которые должны иметь положительное и асимметричное распределение.

Бета-распределение связано с гамма-распределением, разновидностью статистического распределения. Это распределение, в котором интервалы ожидания между событиями, распределенными по Пуассону, значимы друг для друга, развивается спонтанно.

Чаще всего словосочетание «гамма-распределение» относится к распределению с непрерывными распределениями вероятностей и двумя параметрами: параметром формы и параметром обратного масштаба. Оно связано с распределением Эрланга, распределением хи-квадрат, экспоненциальным распределением и нормальным распределением. «Γ» означает гамма-функцию.

Альфа(α) и бета(β) — два свободных параметра в гамма-распределениях, где:

  • Альфа(α): это параметр формы.
  • Бета(β): Это параметр скорости.
Содержание

Метод gamma()

В Python Scipy есть метод gamma() внутри модуля scipy.special, который вычисляет гамму данного массива. Обобщенная факториальная функция — это то, что известно как гамма-функция.

Синтаксис:

scipy.special.gamma(z)

Где параметр z — это аргумент с действительным или комплексным значением типа массив.

Метод gamma() возвращает значения гамма-функции типа ndarray или скаляр.

Давайте рассмотрим пример, выполнив следующие шаги:

  • Импортируйте библиотеки, используя приведенный ниже код Python.
from scipy import special
  • Создайте массив данных и передайте его методу gamma(), как показано ниже кода.
special.gamma([5,1,0.5,1])
  • Определите комплексное число и вычислите гамму этого числа, используя приведенный ниже код.
special.gamma(1.6 + 2j)

метод gamma()

scipy.stats.gamma

scipy.stats.gamma представляет собой непрерывную случайную величину гаммы. Он имеет различные виды функций для нормального распределения, такие как CDF, PDF, медиана и т. д.

Он имеет два важных параметра: loc для среднего значения и масштаб стандартного отклонения, поскольку мы знаем, что с помощью этих параметров мы контролируем форму и расположение распределения.

Синтаксис:

scipy.stats.gamma.method_name(data,loc,size,moments,scale)

Где параметры:

  • data: это набор точек или значений, которые представляют данные с равномерной выборкой в форме данных массива.
  • а: Это параметр формы гаммы.
  • loc: используется для указания среднего значения, по умолчанию оно равно 0.
  • моменты: используется для расчета таких статистических данных, как стандартное отклонение, эксцесс и среднее значение.
  • scale: используется для указания стандартного отклонения, по умолчанию оно равно 1.

Вышеуказанные параметры являются общим параметром всех методов объекта scipy.stats.gamma(). Методы приведены ниже.

  • scipy.stats.gamma.cdf(): используется для кумулятивной функции распределения.
  • scipy.stats.gamma.pdf(): используется для функции плотности вероятности.
  • scipy.stats.gamma.rvs(): чтобы получить случайные переменные.
  • scipy.stats.gamma.stats(): используется для получения стандартного отклонения, среднего значения, эксцесса и асимметрии.
  • scipy.stats.gamma.logpdf(): используется для получения журнала, связанного с функцией плотности вероятности.
  • scipy.stats.gamma.logcdf(): используется для поиска журнала, связанного с кумулятивной функцией распределения.
  • scipy.stats.gamma.sf(): используется для получения значений функции выживания.
  • scipy.stats.gamma.isf(): используется для получения значений обратной функции выживания.
  • scipy.stats.gamma.logsf(): используется для поиска журнала, связанного с функцией выживания.
  • scipy.stats.gamma.mean(): используется для нахождения среднего значения, связанного с нормальным распределением.
  • scipy.stats.gamma.median(): используется для нахождения медианы, связанной с нормальным распределением.
  • scipy.stats.gamma.var(): используется для поиска дисперсии, связанной с распределением.
  • scipy.stats.gamma.std(): используется для определения стандартного отклонения, связанного с распределением.

Давайте рассмотрим пример, используя один из упомянутых выше методов, чтобы узнать, как использовать методы с параметрами.

  • Импортируйте необходимые библиотеки, используя приведенный ниже код.
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
  • Создайте значения данных наблюдения и вычислите функцию плотности вероятности на основе этих значений данных со средним значением = 0 и стандартным отклонением = 1.
a=1.5
observatin_x = np.linspace(-4,4,200)
pdf_gamma = stats.gamma.pdf(observatin_x,a,loc=0,scale=1)
  • Постройте созданное распределение, используя приведенный ниже код.
plt.plot(observatin_x,pdf_gamma)
plt.xlabel('x-values')
plt.ylabel('PDF_gamma_values')
plt.title("Probability density funciton of gamma distribution")
plt.show()

объекта scipy.stats.gamma()

Метод Ppf()

Объект gamma() имеет метод ppf(), который рассчитывает функцию процентной точки гаммы. Другими словами, методnormal.ppf() принимает процентное значение и возвращает множитель стандартного отклонения для значения, при котором встречается процентное значение.

Синтаксис:

scipy.stats.gamma.ppf(q,loc,size,scale)

Где параметры:

  • q: это процент.
  • а: параметр формы
  • loc: используется для указания среднего значения, по умолчанию оно равно 0.
  • q: используется для указания стандартного отклонения, по умолчанию оно равно 1.

Давайте разберемся на примере, следуя приведенному ниже коду.

from scipy.stats import gamma
gamma.ppf(0.99, 1.5, loc=0, scale=1)

Метод Ppf()

Параметр Loc

Метод Python Scipy gamma() принимает параметр loc, который является средним значением распределения. Используя loc метода gamma(), мы можем сдвинуть распределение.

Давайте посмотрим на примере, как переместить распределение в другое место, выполнив следующие шаги:

  • Импортируйте необходимые библиотеки или методы, используя приведенный ниже код Python.
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
  • Создайте значения данных наблюдения и вычислите функцию плотности вероятности из этих значений данных с loc или средним значением = 0 и стандартным отклонением = 1.
a=1.5
observatin_x = np.linspace(-1,1,300)
pdf_gamma = stats.gamma.pdf(observatin_x,a,loc=0,scale=1)
  • Постройте созданное распределение, используя приведенный ниже код.
plt.plot(observatin_x,pdf_gamma)
plt.xlabel('x-values')
plt.ylabel('PDF_gamma_values')
plt.title("Probability density funciton of gamma distribution")
plt.show()
  • Теперь измените среднее или локальное значение на другое значение или равное 0,5, используя код удара.
a=1.5
observatin_x = np.linspace(-1,1,300)
pdf_gamma = stats.gamma.pdf(observatin_x,a,loc=1,scale=1)
  • Снова постройте распределение со средним значением или loc, равным 0,5 в приведенном выше коде, используя приведенный ниже код, чтобы увидеть изменение местоположения распределения.
plt.plot(observatin_x,pdf_gamma)
plt.xlabel('x-values')
plt.ylabel('PDF_gamma_values')
plt.title("Probability density funciton of gamma distribution")
plt.show()

Параметр Loc

Метод numpy.quantile()

Набор значений или точек, называемый квантилями, используется для разделения набора данных на группы одинакового размера.

Здесь, в этом разделе, мы сгенерируем выборку из гамма-дистанта и передадим эту выборку методу numpy.quantile() для вычисления квантиля выборки.

  • Импортируйте необходимый метод или библиотеки, используя приведенный ниже код Python.
from scipy import stats
import numpy as np
  • Сгенерируйте данные из гамма-дистанта, используя приведенный ниже код.
a=0.5
gamma_dist = stats.gamma(a)
data = gamma_dist.rvs(1000)
  • Теперь вычислите квантиль приведенных выше данных, используя приведенный ниже код.
np.quantile(data,0.25)

Приведенный выше код возвращает первый квартиль выборки или данных.

как вычислить квантиль данных из гамма-расстояния

Метод rvs()

Метод rvs() Python Scipy объекта гаммы представляет собой случайные переменные, которые генерируют случайные числа или выборки из гамма-распределения.

Синтаксис приведен ниже

scipy.stats.gamma.rvs(loc=0, scale=1, size=1, random_state=None)

Где параметры:

  • loc: это среднее значение.
  • scale: ковариационная матрица распределения.
  • size (int): это размер выборки.
  • random_state (int): если начальное значение равно None, используется метод NumPy.random(или np.random). Он использует единственный экземпляр RandomState. Если начальное число является целым числом, с использованием начального числа создается новый объект RandomState. Если начальное число уже имеет экземпляр Generator или RandomState, используется этот экземпляр.

Давайте возьмем случайную выборку из многомерного нормального распределения, выполнив следующие шаги:

  • Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
from scipy import stats
  • Создайте гамма-распределение, используя приведенный ниже код.
a=0.5
gamma_dist = stats.gamma(a)
  • Сгенерируйте случайные числа, используя нормальное распределение, используя приведенный ниже код.
samp_size = 100000
gamma_dist.rvs(samp_size)

метод gamma.rvs()

Метод cdf()

Метод cdf() Python Scipy объекта гаммы вычисляет кумулятивное распределение гаммы.

Синтаксис:

scipy.stats.gamma(x, a, loc, scale)

Где параметры:

  • x: это набор точек или значений, которые представляют данные с равномерной выборкой в форме данных массива.
  • a: Это параметр формы распределения.
  • loc: используется для указания среднего значения, по умолчанию оно равно 0.
  • scale: используется для указания стандартного отклонения, по умолчанию оно равно 1.

Импортируйте необходимые библиотеки, используя приведенный ниже код Python.

import numpy as np
from scipy.stats import gamma
import matplotlib.pyplot as plt
%matplotlib inline
  • Создайте массив, содержащий значения от -2 до 2 с разницей 0,3 с параметрами формы = 1,5, используя приведенный ниже код.
a = 1.0
x_array = np.arange(-2, 2, 0.3)
  • Вычислите PDF-файл, предоставив созданный массив данных методу gamma.cdf() со значением параметров loc = 0 и масштабом = 1, используя приведенный ниже код.
y_cdf = gamma.cdf(x_array,a,0,1)
  • Теперь постройте распределение, используя приведенный ниже код.
plt.plot(x_array, y_cdf) 
plt.show()

метод gamma.cdf()

Метод fit()

Метод fit() Python Scipy гаммы объекта, который обеспечивает приближение масштаба и местоположения.

Синтаксис^

scipy.stats.gamma.fit(data)

Где данные параметра — это данные, для которых нам нужно местоположение и масштаб.

Давайте разберемся на примере, выполнив следующие шаги:

  • Импортируйте необходимые библиотеки или методы, используя приведенный ниже код.
from scipy.stats import gamma
  • Генерируйте случайные числа, используя метод gamma.rvs().
x_data = gamma.rvs(1., 2., size=500, random_state=123)
  • Теперь подгоните приведенные выше данные, используя приведенный ниже код.
loc_, scale_ = gamma.fit(x_data)
  • Проверьте предполагаемые значения параметров, используя приведенный ниже код.
print("loc is ",res[1])
print("Scale is ",res[2])

Метод Fit

Метод GammaPDF

Здесь мы будем использовать один из методов scipy.stats.gamma.pdf() для вычисления функции плотности вероятности для данного распределения.

Синтаксис:

scipy.stats.gamma.pdf(x,a,loc,scale)

Где параметры:

  • x: это набор точек или значений, которые представляют выборочные данные в форме данных массива.
  • а: Это параметр формы гамма-распределения.
  • loc: используется для указания среднего значения, по умолчанию оно равно 0.
  • scale: используется для указания стандартного отклонения, по умолчанию оно равно 1.

Давайте рассмотрим пример того, как вычислить PDF-файл данного дистрибутива, выполнив следующие шаги:

  • Импортируйте необходимые библиотеки, используя приведенный ниже код Python.
import numpy as np
from scipy.stats import gamma
import matplotlib.pyplot as plt
%matplotlib inline
  • Создайте массив, содержащий значения от -5 до 5 с разницей 0,3 с параметрами формы = 1,5, используя приведенный ниже код.
a = 1.5
x_array = np.arange(-5, 5, 0.3)
  • Вычислите PDF-файл, предоставив созданный массив данных методу gamma.pdf() со значением параметров loc = 0 и масштабом = 1, используя приведенный ниже код.
y_pdf = gamma.pdf(x_array,a,0,1)
  • Теперь постройте распределение, используя приведенный ниже код.
plt.plot(x_array, y_pdf) 
plt.show()

Метод GammaPDF

Метод logpdf()

Объект gamm() имеет метод logpdf(), который вычисляет логарифмическую плотность вероятности гаммы.

Синтаксис:

scipy.stats.gamma.logpdf(x,a,loc,scale)

Где параметры:

  • x: это набор точек или значений, которые представляют данные с равномерной выборкой в форме данных массива.
  • а: Это параметр формы гаммы.
  • loc: используется для указания среднего значения, по умолчанию оно равно 0.
  • scale: используется для определения стандартного отклонения, по умолчанию оно равно 1.

Вышеуказанные параметры являются стандартными параметрами всех методов объекта scipy.stats.gamma(). Методы приведены ниже.

Давайте рассмотрим пример, используя один из упомянутых выше методов, чтобы узнать, как использовать методы с параметрами.

  • Импортируйте необходимые библиотеки, используя приведенный ниже код.
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
  • Создайте значения данных наблюдения и вычислите логарифмическую вероятность на основе этих значений данных со средним значением = 0 и стандартным отклонением = 1.
a=1.5
observatin_x = np.linspace(-2,2,200)
logpdf_norm = stats.gamma.logpdf(observatin_x,a,loc=0,scale=1)
  • Постройте созданное распределение, используя приведенный ниже код.
plt.plot(observatin_x,logpdf_norm)
plt.xlabel('x-values')
plt.ylabel('logpdf_gamma_values')
plt.title("Log probability of gamma distribution")
plt.show()

метод gamma.logpdf()

Метод Logcdf

Объект gamm() имеет метод logcdf(), который вычисляет совокупное распределение гаммы.

Синтаксис приведен ниже.

scipy.stats.gamma.logcdf(x,a,loc,scale)

Где параметры:

  • x: это набор точек или значений, которые представляют данные с равномерной выборкой в форме данных массива.
  • а: Это параметр формы гаммы.
  • loc: используется для указания среднего значения, по умолчанию оно равно 0.
  • scale: используется для определения стандартного отклонения, по умолчанию оно равно 1.

Вышеуказанные параметры являются стандартными параметрами всех методов объекта scipy.stats.gamma(). Методы приведены ниже.

Давайте рассмотрим пример, используя один из упомянутых выше методов, чтобы узнать, как использовать методы с параметрами.

  • Импортируйте необходимые библиотеки, используя приведенный ниже код.
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
  • Создайте значения данных наблюдения и вычислите совокупный журнал на основе этих значений данных со средним значением = 0 и стандартным отклонением = 1.
a=1.5
observatin_x = np.linspace(-10,10,200)
logcdf_norm = stats.gamma.logcdf(observatin_x,a,loc=0,scale=1)
  • Постройте созданное распределение, используя приведенный ниже код.
plt.plot(observatin_x,logcdf_norm)
plt.xlabel('x-values')
plt.ylabel('logcdf_gamm_values')
plt.title("Log cumulative of gamma distribution")
plt.show()

метод gamma.logcdf()

Добавить комментарий