Подгонка логнормальной функции к CDF в Python
У меня есть очень большой набор данных, который мне нужен для статистического анализа. Данные слишком велики, чтобы их можно было прочитать сразу, поэтому у меня есть только гистограмма в двоичном виде, чтобы отработать. В частности, я хотел бы подогнать совокупные значения (т. Е. Количество отсчетов справа от каждой точки x на гистограмме).
Вот скрипт, который у меня есть, который делает некоторые фиктивные данные:
mu, sigma = 0.3, 1.3
x1 = np.random.lognormal(mu, sigma, size = 100000) # random dist
bins = 10**arange(0, 4, 0.01) # actual bins my real data uses
a, b = np.histogram(x1, bins = bins)
# calculating the cumulatives
cum = []
for i, v in enumerate(a):
cum.append(sum(a[i:]))
Таким образом, совокупность, которую я хочу подогнать, выглядит следующим образом:
clf()
loglog(b[:-1], cum)
xlabel("Amps")
ylabel("# Occurences/Year")
show()
Мои вопросы следующие:
1) Как мне вписать логнормальную кумулятивную? Я вижу, что scipy.stats.lognorm.fit принимает исходный набор данных в качестве аргумента.
2) Из этого вопроса о переполнении стека я вижу, что вы можете "восстановить" данные из гистограммы. Я хотел бы отработать накопительный, хотя. Это правильный подход?
Как вы можете догадаться, я не привык работать с этими дистрибутивами.
Спасибо!