Подгонка логнормальной функции к 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) Из этого вопроса о переполнении стека я вижу, что вы можете "восстановить" данные из гистограммы. Я хотел бы отработать накопительный, хотя. Это правильный подход?

Как вы можете догадаться, я не привык работать с этими дистрибутивами.

Спасибо!

0 ответов

Другие вопросы по тегам