Есть ли способ предотвратить создание scipy.stats.gamma зубчатого PDF для этих параметров? - PullRequest
0 голосов
/ 16 ноября 2018

Я запускаю пример, аналогичный приведенному на странице документации scipy для гамма-дистрибутива. Я хочу построить pdf гамма-распределения, но когда мне даны a = shape = 70368744177664.0 и scale = 4.073382059442025e-05, я получаю зубчатый график, изображенный ниже:

PDF of gamma distribution

Проверяя массив x, он выглядит монотонным, так что все в порядке:

enter image description here

смотря прямо на значения вероятности (производимые кодом ниже), я вижу

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...