Код, который максимизирует логарифмическую правдоподобие, запускает недостаточное значение, потому что его начальное предположение по умолчанию для параметра масштаба равно 1, что довольно далеко от фактического оптимума. Вы можете передать более точное предположение fit
с аргументом scale
. Хорошее предположение дает метод моментов, который в данном случае означает использование выборочного среднего для оценки параметра масштаба. На странице Википедии о распределении Максвелла-Больцмана приведена формула для среднего значения μ в виде шкалы a
. Решение для a
дает:
In [19]: a = np.mean(values)/(2*np.sqrt(2/np.pi))
In [20]: a
Out[20]: 10587.275841415043
Теперь передайте это значение fit
в качестве аргумента scale
, который переопределяет начальное значение по умолчанию, используемое кодом оптимизации:
In [21]: p = maxwell.fit(values, floc=0, scale=a)
In [22]: p
Out[22]: (0, 10455.558876443883)
Это максимальная оценка вероятности для местоположения (которое вы установили на 0) и шкалы a
.