我有一个数据集,我正在尝试查看哪个是最佳分布。
在第一次尝试中,我试图用.git
来填充它,所以
rayleigh
我正在尝试使用y, x = np.histogram(data, bins=45, normed=True)
param = rayleigh.fit(y) # distribution fitting
# fitted distribution
xx = linspace(0,45,1000)
pdf_fitted = rayleigh.pdf(xx,loc=param[0],scale=param[1])
pdf = rayleigh.pdf(xx,loc=0,scale=8.5)
fig,ax = plt.subplots(figsize=(7,5))
plot(xx,pdf,'r-', lw=5, alpha=0.6, label='rayleigh pdf')
plot(xx,pdf,'k-', label='Data')
plt.bar(x[1:], y)
ax.set_xlabel('Distance, '+r'$x [km]$',size = 15)
ax.set_ylabel('Frequency, '+r'$P(x)$',size=15)
ax.legend(loc='best', frameon=False)
分配而不成功
gamma
答案 0 :(得分:0)
我的猜测是你有大部分原始数据为0,所以拟合的alpha值最终低于1(0.34),你得到的变形形状的奇点为0.条形图不包括零(x [1:])所以你看不到左边那个巨大的酒吧。
我可以做对吗?
答案 1 :(得分:0)
不幸的是,scipy.stats.gamma的文档不完整。
假设您有一些“原始”数据,形式为data = array([a1,a2,a3,.....]),这些可以是您实验的结果。
您可以将这些原始值提供给fit方法:gamma.fit(data),它将为您返回三个参数a,b,c = gamma.fit(data)。这些是伽玛曲线的“形状”,“位置”和“比例”,更适合您的数据(而非实际数据)的“分布历史”。
我从网上问题中注意到很多人对此感到困惑。他们具有数据分布,并尝试使用gamma.fit进行拟合。这是错误的。
方法gamma.fit需要原始数据,而不是数据的分布。 大概可以解决我们几个人的问题。
GR