Я запускаю пример, аналогичный приведенному на странице документации scipy для гамма-дистрибутива. Я хочу построить pdf гамма-распределения, но когда мне даны a = shape = 70368744177664.0
и scale = 4.073382059442025e-05
, я получаю зубчатый график, изображенный ниже:
Проверяя массив x, он выглядит монотонным, так что все в порядке:
смотря прямо на значения вероятности (производимые кодом ниже), я вижу
array([6.49723890e-05, 8.34261989e-05, 8.34261989e-05, 8.34261989e-05,
1.07121360e-04, 1.07121360e-04, 1.37546549e-04, 1.37546549e-04,
1.37546549e-04, 1.76613264e-04, 1.76613264e-04, 2.26775921e-04,
2.26775921e-04, 2.26775921e-04, 2.26775921e-04, 2.91186046e-04,
2.91186046e-04, 3.73890284e-04, 2.91186046e-04, 3.73890284e-04,
3.73890284e-04, 3.73890284e-04, 4.80084628e-04, 3.73890284e-04,
4.80084628e-04, 4.80084628e-04, 6.16440864e-04, 6.16440864e-04,
6.16440864e-04, 6.16440864e-04, 6.16440864e-04, 6.16440864e-04,
7.91525737e-04, 7.91525737e-04, 6.16440864e-04, 7.91525737e-04,
7.91525737e-04, 7.91525737e-04, 1.01633916e-03, 1.01633916e-03,
7.91525737e-04, 7.91525737e-04, 1.01633916e-03, 1.01633916e-03,
1.01633916e-03, 7.91525737e-04, 1.01633916e-03, 1.01633916e-03,
1.01633916e-03, 1.01633916e-03, 1.01633916e-03, 7.91525737e-04,
1.01633916e-03, 1.01633916e-03, 1.01633916e-03, 1.01633916e-03,
7.91525737e-04, 7.91525737e-04, 7.91525737e-04, 1.01633916e-03,
1.01633916e-03, 1.01633916e-03, 7.91525737e-04, 7.91525737e-04,
7.91525737e-04, 7.91525737e-04, 7.91525737e-04, 6.16440864e-04,
6.16440864e-04, 6.16440864e-04, 6.16440864e-04, 6.16440864e-04,
6.16440864e-04, 4.80084628e-04, 4.80084628e-04, 4.80084628e-04,
4.80084628e-04, 4.80084628e-04, 3.73890284e-04, 3.73890284e-04,
3.73890284e-04, 3.73890284e-04, 3.73890284e-04, 2.26775921e-04,
2.26775921e-04, 2.26775921e-04, 2.26775921e-04, 2.26775921e-04,
2.26775921e-04, 1.76613264e-04, 1.37546549e-04, 1.37546549e-04,
1.37546549e-04, 1.37546549e-04, 1.37546549e-04, 8.34261989e-05,
8.34261989e-05, 8.34261989e-05, 8.34261989e-05, 6.49723890e-05])
Если вы посмотрите внимательно, вы можете увидеть такие последовательности, как 2.91186046e-04, 3.73890284e-04, 2.91186046e-04
, где pdf будет отражать колебательные значения, как мы видим на графике. Это говорит мне, что это не ошибка в matplotlib.
Вы можете легко скопировать это, запустив:
import numpy as np
from scipy.stats import gamma
import matplotlib.pyplot as plt
shape = 70368744177664.0
scale = 4.073382059442025e-05
x = np.linspace(gamma.ppf(0.01, shape, scale = scale), gamma.ppf(0.99, shape, scale = scale), 100)
plt.plot(x, gamma.pdf(x, shape, scale = scale))
plt.show()