Я читал много прошлых вопросов по этой теме, однако мне не удалось найти решение этой проблемы. При использовании python scipy.stats.lognormal.fit
для набора данных (Y) выходными параметрами являются shape
, loc
и scale
соответственно. shape
предполагается, что оно равно стандартному отклонению нормально распределенной случайной величины X, так что exp (X) = Y, а scale
равно exp (mu
), где mu
равно среднее значение той же нормально распределенной случайной величины X. У меня есть три набора данных, для которых я выполняю подгонку, однако, в частности, один из них доставляет мне неприятности, и я не смог найти причину. Я не могу поделиться кодом, так как пример очень специфичен и имеет размер 270, поэтому я читаю его непосредственно из файла, но проблема в том, что я получаю разные значения стандартного отклонения = scale и mu
= ln ( scale
), выполнив подгонку двумя различными способами: один подгоняет непосредственно данные Y с помощью lognorm.fit
, а другой - подгонку к нормально распределенному образцу X. Я проверил с помощью другого программного обеспечения (Matlab и Excel), и второй вариант дает правильные результаты, так что я предполагаю, что это связано с конвергенцией или конкретной характеристикой lognorm.fit
, однако я безуспешно пытался сделать несколько вещей, например, с использованием оптимизатора:
#def opti_wrap(fun, x0, args, disp=0, **kwargs):
# return minimize(fun, x0, args=args, method='SLSQP',
# tol=1e-12, options={'maxiter': 1000}).x
или игра со значением loc
при выполнении lognorm.fit
.
Есть идеи, в чем может быть проблема?