Я хочу сравнить случайно сгенерированные значения, выбранные из определенных распределений, с фактическими функциями этих распределений.
В настоящее время я использую matplotlib
для построения графиков и numpy
для выборки.
Я нашел рабочий пример того, чего я пытаюсь достичь
# read mu, sigma, n
x = np.random.normal(mu, sigma, n)
count, bins, ignored = plt.hist(x, bins="auto", density=True)
plt.plot(bins, 1 / (sigma * np.sqrt(2 * np.pi)) * np.exp(-(bins - mu) ** 2 / (2 * sigma ** 2)), linewidth=2, color='r')
plt.show()
Итак, x
- это образец массива, и они строят его с помощью гистограмм, и они используют фактический pdf для функции.
Как это работает, например, для биномиального распределения? Я следовал аналогичной схеме:
x = np.random.binomial(N, P, n)
count, bins, ignored = plt.hist(x, bins="auto", density=True)
plt.plot(bins, scipy.special.comb(N, bins) * (P ** bins) * ((1 - P) ** (N - bins)), linewidth=2, color='r')
plt.show()
Однако график, который я получаю, на самом деле выглядит не так:
![graph](https://i.stack.imgur.com/DgwZX.png)
Что ж, высота PDF не соответствует гистограмме. Что я делаю неправильно? Это биноминальная функция?