我有一个非常大的数据集,我需要对其进行一些统计分析。数据太大而无法一次全部读取,所以我只有分箱直方图可以处理。特别是,我很想拟合累积值(即直方图中每个点 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)我从这个堆栈溢出问题中看到,您可以从直方图中“恢复”数据。不过,我想解决累积问题。这是正确的方法吗?
正如您可能猜到的那样,我不习惯使用这些发行版。
谢谢!