我一直在尝试找到一种方法来将我的一些列(包含用户点击数据)与python中的 poisson 分布相匹配。这些列(例如,click_website_1,click_website_2)可以包含1到数千的值。我试图这样做,因为有些人resources建议:
我们建议不要分析计数数据 对其进行对数转换,而是基于泊松和负的模型 应使用二项分布。
我在scipy
和numpy
中找到了一些方法,但这些方法似乎生成了一些具有泊松分布的随机数。但是,我感兴趣的是将自己的数据与泊松分布相匹配。任何库建议在Python中执行此操作?
答案 0 :(得分:4)
以下是检查数据是否遵循泊松分布的快速方法。您在假设下绘制了一个poisson分布,其中包含费率参数lambda = data.mean()
import numpy as np
from scipy.misc import factorial
def poisson(k, lamb):
"""poisson pdf, parameter lamb is the fit parameter"""
return (lamb**k/factorial(k)) * np.exp(-lamb)
# lets collect clicks since we are going to need it later
clicks = df["clicks_website_1"]
这里我们使用pmf作为possion distribution。
现在让我们从数据中做一些建模(click_website_one) 我们使用MLE估计泊松参数, 结果只是平均值
lamb = clicks.mean()
# plot the pmf using lamb as as an estimate for `lambda`.
# let sort the counts in the columns first.
clicks.sort().apply(poisson, lamb).plot()