【问题标题】:QQ Plot for Poisson Distribution in PythonPython中泊松分布的QQ图
【发布时间】:2015-10-07 04:09:27
【问题描述】:

我一直在尝试在 python 中为泊松分布制作 QQ 图。这是我目前所拥有的:

import numpy as np
import statsmodels.api as sm
import scipy.stats as stats
pois = np.random.poisson(2.5, 100)  #creates random Poisson distribution with mean = 2.5
fig =sm.qqplot(pois, stats.poisson, line = 's')
plt.show()

每当我这样做时,我都会收到“AttributeError: 'poisson_gen' object has no attribute 'fit'”

在谷歌搜索该错误时,我发现很多人说没有可用的 Poisson.fit。我很确定 qqplot 函数正在调用 Poisson.fit。这是否意味着 qqplot 函数不适用于泊松分布?如果 qqplot 函数不适用于泊松分布,您建议如何生成此图?任何建议将不胜感激。

【问题讨论】:

  • 当你查看np.ranodm.poisson的文档时,第一句话说Draw samples from a Poisson distribution.你想要的可能是scipy.stats.poisson
  • 我把它改成了你建议的:pois =poisson.rvs(2.5, size=1000),但我得到了同样的错误。
  • 对不起,我被评论弄糊涂了。实际问题是 scipy 中的离散函数没有 .fit() 方法,因此不能在 statsmodels 的 qqplot 函数中使用。不过,我必须检查一下为什么会这样。
  • 如果没有.fit()方法进行分发,QQ功能会起作用吗? (这就是我认为的问题所在。)如果是这样,我还有其他方法可以制作 QQ 图吗?

标签: python numpy scipy


【解决方案1】:

我有同样的错误。以下似乎对我有用:

import matplotlib.pyplot as plt
import numpy as np
import scipy.stats as stats
data=np.random.poisson(2.5, 100)
stats.probplot(data, dist='poisson', sparams=(2.5,), plot=plt)
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多