你如何从scipy.stats.distributions对象获得下限和上限?

时间:2017-07-10 20:33:47

标签: python scipy statistics distribution

我有一个scipy.stats.distributions对象,我试图弄清楚它的下限和上限。简化代码来说明我正在尝试做的事情:

int main(void){
   char a[]="abcdefghijk";
   for (int i=0; i<11; i++){
       for (int j=0; j<11 && a[j]!='\n'; j++){
           char r[2] = {a[i], a[j]};
           printf("I-th element: %c     ", a[i]);
           printf("J-th element: %c     ", a[j]);
           printf("Together: %s", r);
           printf("\n");
       }
   }
  return 0;
}

我无法在任何地方找到有关如何执行此操作的文档。

2 个答案:

答案 0 :(得分:1)

就我而言,概率密度函数没有上下界x方向或y方向。根据定义,您的均匀分布将其pdf评估为范围(1,5)的1/4和其他地方的0。如果你要求cdf为0或1(或渐近接近0或1)的点,那么scipy.stats中的每个分布函数都有一个ppf方法,您可以用它来获取通过输入所需的百分位数(在您的情况下,0和1)来确定上限/下限。

但是,请注意,当您将0或1放入ppf时,连续随机变量通常会将+ -infinity作为其一个或两个边界。这就是分布的构建方式。如果你坚持找到一个值,那么试试一些接近但实际上不是0或1的数字。

答案 1 :(得分:1)

我不确定所有的scipy发行版都是为了最大数量的我们的最大便利参数化。但是,文档说,&#39;这种分布在loc和loc + scale之间是不变的。&#39;你想在区间[1,5]上有一个统一,这意味着loc = 1和loc + scale = 5。然后,我们可以使用以下代码直接获得您最常要求的内容。

SELECT game_players.game_id, 
COUNT(game_players.user_id) AS team_size, game_players.team_id 
FROM game_players WHERE game_players.game_id=8 GROUP BY game_players.team_id

生命变得更加不确定涉及无限支持的分布,例如正常分布。你可以要求ppf(0)和/或ppf(1),但结果(减去和加上无穷大并不是很有趣)。我怀疑大多数人会对下限和上限更感兴趣。抓住了有趣的&#39;密度函数的一部分。在正常的情况下,这可能是从ppf(0.05)到ppf(0.95)。在这种情况下,文档说,&#39; location(loc)关键字指定平均值。 scale(scale)关键字指定标准偏差。&#39;这是一种解脱。

>>> from scipy.stats.distributions import uniform
>>> u = uniform(1,4)
>>> u.ppf(0)
1.0
>>> u.ppf(1)
5.0

毫不奇怪。