繁体   English   中英

在 python 中拟合交换泊松分布似乎不正确

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM