Я видел несколько вопросов в stackoverflow относительно того, как установить log-normal distribution
. Все еще есть два пояснения, которые мне нужны.Логарифмическое распределение в python
У меня есть образец данных, логарифм которого следует нормальному распределению. Поэтому я могу поместить данные, используя scipy.stats.lognorm.fit
(т.е. log-normal distribution
)
Подходит отлично, а также дает стандартное отклонение. Вот мой фрагмент кода с результатами.
sample = np.log10(data) #taking the log10 of the data
scatter,loc,mean = stats.lognorm.fit(sample) #Gives the paramters of the fit
x_fit = np.linspace(13.0,15.0,100)
pdf_fitted = stats.lognorm.pdf(x_fit,scatter,loc,mean) #Gives the PDF
print "scatter for data is %s" %scatter
print "mean of data is %s" %mean
РЕЗУЛЬТАТ
scatter for data is 0.186415047243
mean for data is 1.15731050926
From the image you can clearly see that the mean is around 14.2, but what I get is 1.15??!!
Почему это так? clearly the log(mean) is also not near 14.2!!
В THIS POST и THIS QUESTION упоминается, что log(mean)
фактическое среднее.
Но вы можете видеть из моего кода выше, подгонка, что я получил использую в sample = log(data)
, и это также, кажется, хорошо подходит. Однако, когда я пробовал
sample = data
pdf_fitted = stats.lognorm.pdf(x_fit,scatter,loc,np.log10(mean))
Подходит, похоже, не работает.
1) Почему среднее значение не равно 14,2?
2) Как нарисовать вертикальные линии для заполнения/рисования, показывающие область доверия 1 сигма?
Пожалуйста, пост подмножества данных или поддельных данных, распространяющиеся проблема, чтобы мы могли проверить свой образец код. – BKay
http://www.filehosting.org/file/details/460413/test.txt это текстовый файл с данными – ThePredator
Среднее вы показываете log (среднее), 10. ** 1.15731 = 14.36 –