【发布时间】:2018-10-03 18:25:31
【问题描述】:
我正在尝试找到更适合我的数据的概率分布。我已经尝试过在不同线程中找到的代码,但结果不是我所期望的。
我的数据的描述性统计和直方图如下: Data Histogram
计数 865.000000
平均 43.476713
标准 12.486362
最小 4.075682
25% 34.934609
50% 41.917304
75% 51.271708
最大 88.843940
我尝试使用以下代码找到合适的分布函数,但结果不是我所期望的。
size = 865
kappa=99
x = scipy.arange(size)
y = scipy.int_(scipy.round_(st.vonmises.rvs(kappa,size=size)*100))
h = plt.hist(df['spreadMaizChicagoAtlantico'],bins=100,color='b')
dist_names = ['gamma', 'beta', 'rayleigh', 'norm', 'pareto']
for dist_name in dist_names:
dist = getattr(scipy.stats, dist_name)
param = dist.fit(y)
pdf_fitted = dist.pdf(x, *param[:-2], loc=param[-2], scale=param[-1]) * size
plt.plot(pdf_fitted, label=dist_name)
plt.xlim(0,100)
plt.legend(loc='upper right')
plt.show()
谁能告诉我我做错了什么,并指导我更好地理解这个解决方案。
【问题讨论】:
-
您正在将分布拟合到
y,但正在绘制df['spreadMaizChicagoAtlantico']的直方图 -
param = dist.fit(df['spreadMaizChicagoAtlantico'])
标签: python-3.x scipy statistics distribution