【问题标题】:statsmodel poisson prediction return floats instead of whole numbersstatsmodel 泊松预测返回浮点数而不是整数
【发布时间】:2018-03-21 21:19:36
【问题描述】:

所以我使用 statsmodel 包对我的数据集进行泊松回归,我确保我的训练 y 确实是计数和整数。但是,当我打印预测值(下面的 testmodely)时,它们是浮点数。

我非常困惑,我希望它们是整数,因为输入数据和模型拟合的数据是整数,而泊松输出计数数据。你知道我在哪里犯了错误吗?事先非常感谢。

import statsmodels.api as sm
poi_model = sm.GLM(trainingy,trainingx, family=sm.families.Poisson())
poi_results = poi_model.fit()
paramet = poi_results.params
testmodely = poi_model.predict(paramet, testx, linear=False)

【问题讨论】:

    标签: machine-learning regression poisson


    【解决方案1】:

    泊松模型预测均值,即泊松随机变量的期望值或强度。这通常不是整数。假设分布假设正确,我们可以使用泊松强度得到新观测值的完整分布。

    这类似于逻辑回归或 logit,其中预测是观察事件或类别的概率。这也是相应随机变量的平均值或期望值。 在分类问题中,概率被分配给最有可能的类别所取代,即二进制 0、1 而不是实数。

    【讨论】:

    • 感谢您的回复。问题是当我打印 poi_result.mu 时,我得到了你刚才描述的每个样本的速率(通常是浮点数)。然而,当我打印预测时,我得到另一组浮点数(意味着它们不能是同一件事,即每个样本的泊松分布的平均值)。我假设第二组是样本的实现,因此应该是整数。如果两者都是费率(可能不同!),我应该如何创建它们的实现?非常感谢。
    • poi_result.mu 仅用于训练样本,与fittedvalues 相同。 predict 可用于新 exog 的样本外预测。您可以使用 scipy.stats.poisson 的预测平均值来访问所有分布方法,例如 pmf、cdf 和 rvs。
    • 感谢您的帮助,完全正确。太糟糕了,我看到你的答案太晚了。对于将来的参考,您必须在拟合模型而不是原始模型上应用预测(在 poi_results 上而不是在 poi_model 上,正如我在上面所做的那样。)。此外,正如您所指出的,statsmodel 只能产生 mu(均值),并且对于实现,您需要转到辣味.stats。
    • 我想知道你们中是否有人可以详细说明如何使用 scipy.stats.poisson 将 mu(手段)转化为实现的真实值。我对如何将 statsmodels 中的 Poisson 模型的强度与 scipy 结合起来感到困惑。
    猜你喜欢
    • 2017-04-20
    • 2020-11-04
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 2022-11-29
    相关资源
    最近更新 更多