【问题标题】:How to get probability of observation using fitted statsmodel?如何使用拟合的 statsmodel 获得观察概率?
【发布时间】:2020-10-01 02:22:39
【问题描述】:

我在statsmodels 中有一个拟合的泊松模型。对于我的每一次观察,我都想计算观察到至少这么高的值的概率。换句话说我要计算:

P(y >= y_i | x_i)

(这应该是可能的,因为拟合模型预测某个值 lambda 作为我的自变量 x 的函数。这个 lambda_i 值定义了一个泊松分布,我应该能够从中得出一个概率。)

我的问题实际上是关于statsmodels 中的实现,而不是关于统计数据。虽然如果您认为它是相关的,请详细说明。

【问题讨论】:

  • 不知道我理解的对不对,不过你不就是只需要调用cdf方法:1 - model.cdf(y_i)吗?我不太了解x_i
  • 我在 Poisson 模型对象上看不到任何 cdf 方法。也就是说,x_i 上的条件很重要,但它可能会自动包含在模型方法中。它之所以重要,是因为该模型基本上适合每个 x 值的泊松分布。 (泊松分布由 lambda 参数化,其中 lambda 将是 x 的函数。如果我们不使用 x,则所有数据的分布都是相同的,这是不正确的。)

标签: python statsmodels


【解决方案1】:

对于泊松,我们可以只使用来自 scipy.stats 的分布来计算给定预测均值的结果。

例如

mu = my_results.predict(...)
stats.poisson.sf(counts, mu)

pmf 类似的用法在 https://github.com/statsmodels/statsmodels/blob/master/statsmodels/discrete/discrete_model.py#L3922

【讨论】:

  • 我也希望为拟合的伽马分布做类似的事情。正如其他问题中提到的那样,这并不容易,因为模型摘要中提到的形状参数不是实际形状:stackoverflow.com/questions/60215085/…。我在这个问题上看到了你的答案:stackoverflow.com/questions/41749167/…。但我不明白由此产生的分布和文档非常有限。任何帮助/示例将不胜感激!提前致谢!
  • 我的statsmodels问题评论似乎有正确的参数转换,响应stackoverflow问题602....github.com/statsmodels/statsmodels/issues/…
  • 在那个 github 问题中,您更改参数化以使用 numpy 生成数据。但这只会引发一个问题:numpy 中的参数化是否奇怪,statsmodels 中的参数化是否正确?还是statsmodels中的参数化很奇怪,需要适配numpy的数据生成?无论如何,我已经发布了一个可以更好地解释它的新问题:stackoverflow.com/questions/64174603/…。无论如何,感谢您迄今为止的帮助!
猜你喜欢
  • 2014-05-27
  • 2019-08-31
  • 2015-10-30
  • 2015-12-01
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多