Scipy:泊松拟合不适用于特定数据集
Scipy: poisson fit not working on particular data set
我写了一个脚本来拟合泊松分布,它似乎适用于使用 python 的 random.poisson 生成的数据集,但它不适用于我需要拟合的数据集.
脚本是:
In [6]: from scipy.misc import factorial
In [7]: from scipy.optimize import curve_fit
In [8]: import numpy as np
In [9]: import matplotlib.pyplot as plt
In [11]: def poisson(k, lambd):
....: print(lambd)
....: return(lambd**k/factorial(k))*np.exp(-lambd)
数据是:
In [12]: x = [ 0.0036533, 0.00972361, 0.01579392, 0.02186422, 0.02793453, 0.03400484, 0.04007515, 0.04614546, 0.05221577, 0.05828608, 0.06435639, 0.0704267, 0.07649701, 0.08256731, 0.08863762]
In [13]: y =[ 0.64005518, 0.10825634, 0.05954099, 0.04330254, 0.03383011, 0.02165127, 0.02435768, 0.01623845, 0.01082563, 0.00676602, 0.00947243, 0.00947243, 0.00270641, 0.00405961, 0.00947243]
In [18]: popt, pcov = curve_fit(poisson, x, y)
所以问题是这个 scipt(=2.82) 找到的 lambd 的最佳值比它应该的高得多。
有人可以帮忙吗?
提前致谢
泊松分布是 discrete probability distribution。因此,它不适用于 x
变量数组中的非离散(即非整数)数字。
它适用于通过 random.poisson
提供的随机数据的原因是该数据将是离散的,而不是连续的。
您应该选择一个替代发行版 continuous。
我写了一个脚本来拟合泊松分布,它似乎适用于使用 python 的 random.poisson 生成的数据集,但它不适用于我需要拟合的数据集. 脚本是:
In [6]: from scipy.misc import factorial
In [7]: from scipy.optimize import curve_fit
In [8]: import numpy as np
In [9]: import matplotlib.pyplot as plt
In [11]: def poisson(k, lambd):
....: print(lambd)
....: return(lambd**k/factorial(k))*np.exp(-lambd)
数据是:
In [12]: x = [ 0.0036533, 0.00972361, 0.01579392, 0.02186422, 0.02793453, 0.03400484, 0.04007515, 0.04614546, 0.05221577, 0.05828608, 0.06435639, 0.0704267, 0.07649701, 0.08256731, 0.08863762]
In [13]: y =[ 0.64005518, 0.10825634, 0.05954099, 0.04330254, 0.03383011, 0.02165127, 0.02435768, 0.01623845, 0.01082563, 0.00676602, 0.00947243, 0.00947243, 0.00270641, 0.00405961, 0.00947243]
In [18]: popt, pcov = curve_fit(poisson, x, y)
所以问题是这个 scipt(=2.82) 找到的 lambd 的最佳值比它应该的高得多。 有人可以帮忙吗? 提前致谢
泊松分布是 discrete probability distribution。因此,它不适用于 x
变量数组中的非离散(即非整数)数字。
它适用于通过 random.poisson
提供的随机数据的原因是该数据将是离散的,而不是连续的。
您应该选择一个替代发行版 continuous。