В одной из статей мы уже сообщали как сделать графики распределения вероятностей с помощью языка программирования R. В этой статье мы постараемся осветить как сделать то же самое с помощью такого популярного языка программирования как Python.
Для начала необходимо установить модули matplotlib и scipy (numpy установится вместе с matplotlib). Сделать это можно открыв командную строку через кнопку "Пуск" и введя соответственно сначала команду
pip install matplotlib
а потом
pip install scipy
или скачать с официального сайта.
1. Пример кода для визуализации нормального распределения
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
# Значения между -10 и 10 с шагом 0.001
x_axis = np.arange(-10, 10, 0.001)
# Среднее значение = 0, стандартное отклонение = 2.
plt.plot(x_axis, norm.pdf(x_axis,0,2))
plt.show()
Должно получиться вот такое
Понятно, что заменив среднее значение, стандартное отклонение, размах значений и шаг можно получить какое-угодно вам нормальное распределение.
Код взят отсюда.
2. Пример кода для визуализации биномиального распределения
import matplotlib.pyplot as plt
import scipy.stats as stats
# Вероятность исхода = 0.3
binom_sim = data = stats.binom.rvs(n = 10, p =0.3, size = 1000)
plt.hist(binom_sim, bins = 10, density = False)
plt.show()
3. Пример кода для визуализации отрицательного биномиального распределения
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import nbinom
# Параметры распределения: размер выборки и вероятность исхода
n = 20
p = 0.3
# Генерируем 100 выборок
samples = np.random.negative_binomial(n,p,100)
# график
plt.hist(samples, bins=20, normed=True)
plt.ylabel('Probability p(x)')
plt.xlabel('x')
plt.show()
4. Пример кода для визуализации распределения Пуассона
import matplotlib.pyplot as plt
import scipy.stats as stats
# лямбда = 0.9
data = stats.poisson.rvs(mu = 0.9, loc = 0, size = 1000)
plt.figure()
plt.hist(data, bins = 9, density = True)
plt.show()