R中的qgeom和Python中的scipy.stats.geom.ppf有什么区别?

时间:2019-01-26 11:43:57

标签: python r scipy distribution quantile

我的理解是两种方式都应使分位数对应于较低的尾部概率。但是,我得到了不同的结果。 例如:-qgeom(0.99,0.5)在R中给出6,而geom.ppf(0.99,0.5)在Python中给出7。

1 个答案:

答案 0 :(得分:3)

tldr; 的几何分布的pmf在R和SciPy中是不同的。


  1. 首先,最好确认使用R和Python计算的分位数通常是一致的,例如在正态分布的情况下

    from scipy.stats import norm
    norm.ppf(0.99)
    #2.3263478740408408
    
    qnorm(0.99)
    #[1] 2.326348
    
  2. 对于几何分布,分位数函数有所不同,因为概率质量函数(pmf)不同。在R中,几何分布的pmf定义为p(1 - p)^k(请参见help("Geometric"));在Python的SciPy模块中,几何分布定义为p(1 - p)^(k-1)(请参见scipy.stats.geom)。

    您可以在Wikipedia article中找到两种定义的关键数量摘要。本质上,^k定义是“用于建模直到首次成功的失败数量”。,其中^(k-1)定义与“第k次试验(共k次试验)是第一个成功”。

    另请参阅:Which geometric distribution to use?