[英]Fitting commutative Poisson distribution in python doesn't seem correct
我正在尝试用 CDF 泊松分布拟合我的数据。 我用 scipy.stats.poisson
from scipy.optimize import curve_fit
from scipy.stats import poisson
import numpy as np
import matplotlib.pyplot as plt
data_to_fit = np.array([[ 3.839 , 0.01818182],
[ 3.9158 , 0.05454545],
[ 3.9542 , 0.07272727],
[ 4.0309 , 0.09090909],
[ 4.1845 , 0.12727273],
[ 4.2613 , 0.14545455],
[ 4.2997 , 0.16363636],
[ 4.6836 , 0.18181818],
[ 4.7604 , 0.2 ],
[ 4.8755 , 0.23636364],
[ 5.1826 , 0.25454545],
[ 5.3746 , 0.27272727],
[ 5.4514 , 0.29090909],
[ 5.7201 , 0.30909091],
[ 5.7585 , 0.32727273],
[ 5.8737 , 0.36363636],
[ 5.9888 , 0.38181818],
[ 6.0272 , 0.4 ],
[ 6.7183 , 0.41818182],
[ 6.8334 , 0.43636364],
[ 6.9486 , 0.47272727],
[ 7.2557 , 0.49090909],
[ 7.9083 , 0.52727273],
[ 7.9467 , 0.54545455],
[ 8.0619 , 0.56363636],
[ 8.1771 , 0.58181818],
[ 8.2538 , 0.6 ],
[ 8.5226 , 0.61818182],
[ 8.6761 , 0.63636364],
[ 9.2904 , 0.65454545],
[ 9.4439 , 0.67272727],
[ 9.4823 , 0.69090909],
[ 9.5975 , 0.70909091],
[ 9.6743 , 0.72727273],
[ 9.8662 , 0.74545455],
[ 9.9814 , 0.76363636],
[10.4037 , 0.78181818],
[10.826 , 0.8 ],
[10.9412 , 0.81818182],
[11.1715 , 0.83636364],
[11.7089 , 0.85454545],
[11.9777 , 0.87272727],
[12.0545 , 0.89090909],
[12.5535 , 0.90909091],
[12.5919 , 0.92727273],
[13.6285 , 0.94545455],
[14.1275 , 0.96363636],
[14.9337 , 0.98181818],
[15.164 , 1. ]])
# fit here
ppot, _= curve_fit(poisson.cdf, data_to_fit[:,0], data_to_fit[:,1], p0 = 0.1)
fig, ax = plt.subplots()
ax.plot(data_to_fit[:, 0], data_to_fit[:, 1], 'bo', label = "data", alpha = 0.5)
ax.plot(data_to_fit[:, 0], poisson.cdf(data_to_fit[:, 0], ppot), 'b--', label = 'CDF Poisson fit')
plt.show()
我不确定哪一步出错了,因为直观上拟合似乎不正确。 我认为适合应该是“平滑的”,而我的结果并非如此。 ……
我尝试了另一个 function:
上述数值结果是通过线性回归(非迭代方法)获得的,如: https://fr.scribd.com/doc/14674814/Regressions-et-equations-integrales
为了更准确,请使用非线性回归(从上述参数值开始迭代)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.