类 ZipfDistribution
java.lang.Object
org.hipparchus.distribution.discrete.AbstractIntegerDistribution
org.hipparchus.distribution.discrete.ZipfDistribution
- 所有已实现的接口:
-
Serializable
,IntegerDistribution
Zipf分布的实现。
参数: 对于随机变量X
,其值根据此分布进行分布,概率质量函数如下
P(X = k) = H(N,s) * 1 / k^s 对于k = 1,2,...,N
。
H(N,s)
是归一化常数,对应于s的N阶广义调和数。
N
是元素的数量s
是指数
- 另请参阅:
-
构造器概要
-
方法概要
修饰符和类型方法说明protected double
protected double
double
cumulativeProbability
(int x) 对于随机变量X
,其值根据此分布进行分布,此方法返回P(X ≤ x)
。double
获取表征分布的指数。int
获取分布的元素数量(例如,语料库大小)。double
使用此方法获取此分布的均值的数值。double
使用此方法获取此分布的方差的数值。int
访问支持的下界。int
访问支持的上界。boolean
使用此方法获取有关支持是否连通的信息,即支持是否包括在支持的下界和上界之间的所有整数。double
logProbability
(int x) 对于随机变量X
,其值根据此分布进行分布,此方法返回log(P(X = x))
,其中log
是自然对数。double
probability
(int x) 对于随机变量X
,其值根据此分布进行分布,此方法返回P(X = x)
。从类继承的方法 org.hipparchus.distribution.discrete.AbstractIntegerDistribution
inverseCumulativeProbability, probability, solveInverseCumulativeProbability
-
构造器详细资料
-
ZipfDistribution
创建具有给定元素数量和指数的新Zipf分布。- 参数:
-
numberOfElements
- 元素数量。 -
exponent
- 指数。 - 抛出:
-
MathIllegalArgumentException
- 如果numberOfElements ≤ 0
或exponent ≤ 0
。
-
-
方法详细资料
-
getNumberOfElements
public int getNumberOfElements()获取分布的元素数量(例如,语料库大小)。- 返回:
- 元素数量
-
getExponent
public double getExponent()获取表征分布的指数。- 返回:
- 指数
-
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()使用此方法获取此分布的均值的数值。对于元素数量N
和指数s
,均值为Hs1 / Hs
,其中Hs1 = generalizedHarmonic(N, s - 1)
,Hs = generalizedHarmonic(N, s)
。
- 返回:
-
均值或
Double.NaN
(如果未定义)
-
calculateNumericalMean
protected double calculateNumericalMean()- 返回:
- 此分布的均值
-
getNumericalVariance
public double getNumericalVariance()使用此方法获取此分布的方差的数值。对于元素数量N
和指数s
,均值为(Hs2 / Hs) - (Hs1^2 / Hs^2)
,其中Hs2 = generalizedHarmonic(N, s - 2)
,Hs1 = generalizedHarmonic(N, s - 1)
,Hs = generalizedHarmonic(N, s)
。
- 返回:
-
方差(可能为
Double.POSITIVE_INFINITY
或Double.NaN
,如果未定义)
-
calculateNumericalVariance
protected double calculateNumericalVariance()- 返回:
- 此分布的方差
-
getSupportLowerBound
public int getSupportLowerBound()访问支持的下界。此方法必须返回与inverseCumulativeProbability(0)
相同的值。换句话说,此方法必须返回
支持的下界始终为1,无论参数如何。inf {x in Z | P(X ≤ x) > 0}
。- 返回:
- 支持的下界(始终为1)
-
getSupportUpperBound
public int getSupportUpperBound()访问支持的上界。此方法必须返回与inverseCumulativeProbability(1)
相同的值。换句话说,此方法必须返回
支持的上界为元素的数量。inf {x in R | P(X ≤ x) = 1}
。- 返回:
- 支持的上界
-
isSupportConnected
public boolean isSupportConnected()使用此方法获取有关支持是否连通的信息,即支持是否包括在支持的下界和上界之间的所有整数。此分布的支持是连通的。- 返回:
-
true
-