如何将数据框的一列拟合到 Python 中的泊松分布

How to fit a column of a dataframe into poisson distribution in Python

我一直在努力寻找一种方法使我的某些列(包含用户 click 数据)符合 poisson 分布python。这些列(例如,click_website_1、click_website_2)可能包含从 1 到数千的值。我正在尝试按照一些人的建议这样做 resources:

We recommend that count data should not be analysed by log-transforming it, but instead models based on Poisson and negative binomial distributions should be used.

我在scipynumpy中找到了一些方法,但这些方法似乎生成了一些具有泊松分布的随机数。但是,我感兴趣的是使我自己的数据适合泊松分布。在 Python?

中有任何图书馆建议可以做到这一点

这是检查您的数据是否遵循泊松分布的快速方法。您在 假设 下绘制它遵循 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 for 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()