类 PascalDistribution

java.lang.Object
org.hipparchus.distribution.discrete.AbstractIntegerDistribution
org.hipparchus.distribution.discrete.PascalDistribution
所有已实现的接口:
Serializable, IntegerDistribution

public class PascalDistribution extends AbstractIntegerDistribution
Pascal分布的实现。

Pascal分布是负二项分布的特例,其中成功次数参数为整数。

有多种方式可以表示Pascal分布的概率质量和分布函数。当前实现代表了在发生 次成功之前失败次数的分布。这是例如在 MathWorld中采用的约定,但不是在 Wikipedia中。

对于随机变量X,其值根据此分布进行分布,概率质量函数如下:
P(X = k) = C(k + r - 1, r - 1) * p^r * (1 - p)^k,
其中 是成功次数,

是成功的概率,X是失败的总次数。C(n, k)是二项式系数(n选择k)。X的均值和方差为
E(X) = (1 - p) * r / p, var(X) = (1 - p) * r / p^2.
最后,累积分布函数如下:
P(X <= k) = I(p, r, k + 1),其中I是正则不完全Beta函数。

另请参阅:
  • 构造器详细资料

  • 方法详细资料

    • getNumberOfSuccesses

      public int getNumberOfSuccesses()
      访问此分布的成功次数。
      返回:
      成功次数。
    • getProbabilityOfSuccess

      public double getProbabilityOfSuccess()
      访问此分布的成功概率。
      返回:
      成功概率。
    • probability

      public double probability(int x)
      对于随机变量X,其值根据此分布进行分布,此方法返回P(X = x)。换句话说,此方法表示分布的概率质量函数(PMF)。
      参数:
      x - 评估PMF的点
      返回:
      x处概率质量函数的值
    • logProbability

      public double logProbability(int x)
      对于随机变量X,其值根据此分布进行分布,此方法返回log(P(X = x)),其中log是自然对数。换句话说,此方法表示分布的概率质量函数(PMF)的对数。请注意,由于浮点精度和下溢/上溢问题,对于某些分布,此方法可能比计算IntegerDistribution.probability(int)的对数更精确和更快。

      默认实现只是计算probability(x)的对数。

      指定者:
      logProbability 在接口中 IntegerDistribution
      覆盖:
      logProbability 在类中 AbstractIntegerDistribution
      参数:
      x - 评估PMF的点
      返回:
      x处概率质量函数的对数值
    • cumulativeProbability

      public double cumulativeProbability(int x)
      对于随机变量X,其值根据此分布进行分布,此方法返回P(X <= x)。换句话说,此方法表示此分布的(累积)分布函数(CDF)。
      参数:
      x - 评估CDF的点
      返回:
      随机变量具有此分布的概率小于或等于x的概率
    • getNumericalMean

      public double getNumericalMean()
      使用此方法获取此分布均值的数值。对于成功次数r和成功概率p,均值为r * (1 - p) / p
      返回:
      均值或Double.NaN(如果未定义)
    • getNumericalVariance

      public double getNumericalVariance()
      使用此方法获取此分布方差的数值。对于成功次数r和成功概率p,方差为r * (1 - p) / p^2
      返回:
      方差(可能为Double.POSITIVE_INFINITYDouble.NaN,如果未定义)
    • getSupportLowerBound

      public int getSupportLowerBound()
      访问支持的下限。此方法必须返回与inverseCumulativeProbability(0)相同的值。换句话说,此方法必须返回

      inf {x in Z | P(X <= x) > 0}

      支持的下限始终为0,无论参数如何。
      返回:
      支持的下限(始终为0)
    • getSupportUpperBound

      public int getSupportUpperBound()
      访问支持的上限。此方法必须返回与inverseCumulativeProbability(1)相同的值。换句话说,此方法必须返回

      inf {x in R | P(X <= x) = 1}

      支持的上限始终为正无穷,无论参数如何。正无穷由Integer.MAX_VALUE表示。
      返回:
      支持的上限(对于正无穷始终为Integer.MAX_VALUE
    • isSupportConnected

      public boolean isSupportConnected()
      使用此方法获取有关支持是否连通的信息,即支持是否包括在支持的下限和上限之间的所有整数。此分布的支持是连通的。
      返回:
      true