scipy.stats.vonmises_line#

scipy.stats.vonmises_line = object>[источник]#

Непрерывная случайная величина фон Мизеса.

Как экземпляр rv_continuous класс, vonmises_line объект наследует от него коллекцию общих методов (см. ниже полный список), и дополняет их деталями, специфичными для этого конкретного распределения.

Методы

rvs(kappa, loc=0, scale=1, size=1, random_state=None)

Случайные величины.

pdf(x, kappa, loc=0, scale=1)

Функция плотности вероятности.

logpdf(x, kappa, loc=0, scale=1)

Логарифм функции плотности вероятности.

cdf(x, kappa, loc=0, scale=1)

Интегральная функция распределения.

logcdf(x, kappa, loc=0, scale=1)

Логарифм функции кумулятивного распределения.

sf(x, kappa, loc=0, scale=1)

Функция выживания (также определяется как 1 - cdf, но sf иногда более точный).

logsf(x, kappa, loc=0, scale=1)

Логарифм функции выживания.

ppf(q, kappa, loc=0, scale=1)

Процентная точка функции (обратная cdf — процентили).

isf(q, kappa, loc=0, scale=1)

Обратная функция выживания (обратная к sf).

moment(order, kappa, loc=0, scale=1)

Нецентральный момент указанного порядка.

stats(kappa, loc=0, scale=1, moments='mv')

Среднее ('m'), дисперсия ('v'), асимметрия ('s') и/или эксцесс ('k').

entropy(kappa, loc=0, scale=1)

(Дифференциальная) энтропия случайной величины.

fit(data)

Оценки параметров для общих данных. См. scipy.stats.rv_continuous.fit для подробной документации по ключевым аргументам.

expect(func, args=(kappa,), loc=0, scale=1, lb=None, ub=None, conditional=False, **kwds)

Ожидаемое значение функции (одного аргумента) относительно распределения.

median(kappa, loc=0, scale=1)

Медиана распределения.

mean(kappa, loc=0, scale=1)

Среднее распределения.

var(kappa, loc=0, scale=1)

Дисперсия распределения.

std(kappa, loc=0, scale=1)

Стандартное отклонение распределения.

interval(confidence, kappa, loc=0, scale=1)

Доверительный интервал с равными площадями вокруг медианы.

Смотрите также

scipy.stats.vonmises_fisher

Распределение фон Мизеса-Фишера на гиперсфере

Примечания

Функция плотности вероятности для vonmises и vonmises_line равен:

\[f(x, \kappa) = \frac{ \exp(\kappa \cos(x)) }{ 2 \pi I_0(\kappa) }\]

для \(-\pi \le x \le \pi\), \(\kappa \ge 0\). \(I_0\) является модифицированной функцией Бесселя нулевого порядка (scipy.special.i0).

vonmises является круговым распределением, которое не ограничивает распределение фиксированным интервалом. В настоящее время в SciPy нет фреймворка для круговых распределений. cdf реализован таким образом, что cdf(x + 2*np.pi) == cdf(x) + 1.

vonmises_line является тем же распределением, определённым на \([-\pi, \pi]\) на вещественной прямой. Это регулярное (т.е. нециклическое) распределение.

Примечание о параметрах распределения: vonmises и vonmises_line take kappa как параметр формы (концентрация) и loc как местоположение (круговое среднее). A scale параметр принимается, но не оказывает никакого эффекта.

Примеры

Импорт необходимых модулей.

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.stats import vonmises

Определите параметры распределения.

>>> loc = 0.5 * np.pi  # circular mean
>>> kappa = 1  # concentration

Вычисляет плотность вероятности в x=0 через pdf метод.

>>> vonmises.pdf(0, loc=loc, kappa=kappa)
0.12570826359722018

Проверить, что функция процентиля ppf инвертирует кумулятивную функцию распределения cdf с точностью до погрешности чисел с плавающей запятой.

>>> x = 1
>>> cdf_value = vonmises.cdf(x, loc=loc, kappa=kappa)
>>> ppf_value = vonmises.ppf(cdf_value, loc=loc, kappa=kappa)
>>> x, cdf_value, ppf_value
(1, 0.31489339900904967, 1.0000000000000004)

Нарисовать 1000 случайных величин, вызвав rvs метод.

>>> sample_size = 1000
>>> sample = vonmises(loc=loc, kappa=kappa).rvs(sample_size)

Постройте плотность фон Мизеса на декартовой и полярной сетке, чтобы подчеркнуть, что это круговое распределение.

>>> fig = plt.figure(figsize=(12, 6))
>>> left = plt.subplot(121)
>>> right = plt.subplot(122, projection='polar')
>>> x = np.linspace(-np.pi, np.pi, 500)
>>> vonmises_pdf = vonmises.pdf(x, loc=loc, kappa=kappa)
>>> ticks = [0, 0.15, 0.3]

Левое изображение содержит декартов график.

>>> left.plot(x, vonmises_pdf)
>>> left.set_yticks(ticks)
>>> number_of_bins = int(np.sqrt(sample_size))
>>> left.hist(sample, density=True, bins=number_of_bins)
>>> left.set_title("Cartesian plot")
>>> left.set_xlim(-np.pi, np.pi)
>>> left.grid(True)

Правое изображение содержит полярную диаграмму.

>>> right.plot(x, vonmises_pdf, label="PDF")
>>> right.set_yticks(ticks)
>>> right.hist(sample, density=True, bins=number_of_bins,
...            label="Histogram")
>>> right.set_title("Polar plot")
>>> right.legend(bbox_to_anchor=(0.15, 1.06))
../../_images/scipy-stats-vonmises_line-1.png