类 LogNormalDistribution

java.lang.Object
org.hipparchus.distribution.continuous.AbstractRealDistribution
org.hipparchus.distribution.continuous.LogNormalDistribution
所有已实现的接口:
Serializable, RealDistribution

public class LogNormalDistribution extends AbstractRealDistribution
对数正态(高斯)分布的实现。

参数: 如果其自然对数 log(X) 是正态分布的,则 X 是对数正态分布的。对于 x > 0X 的概率分布函数为

exp(-0.5 * ((ln(x) - m) / s)^2) / (s * sqrt(2 * pi) * x)

  • m位置参数:这是该分布的自然对数的正态分布的平均值,
  • s形状参数:这是该分布的自然对数的正态分布的标准差。
另请参阅:
  • 构造器详细资料

    • LogNormalDistribution

      public LogNormalDistribution()
      创建一个对数正态分布,其中对数正态分布的正态分布自然对数的平均值和标准差分别为零和一。换句话说,返回分布的位置为0,而其形状为1
    • LogNormalDistribution

      public LogNormalDistribution(double location, double shape) throws MathIllegalArgumentException
      使用指定的位置和形状创建对数正态分布。
      参数:
      location - 此分布的位置参数
      shape - 此分布的形状参数
      抛出:
      MathIllegalArgumentException - 如果 shape <= 0
    • LogNormalDistribution

      public LogNormalDistribution(double location, double shape, double inverseCumAccuracy) throws MathIllegalArgumentException
      创建一个对数正态分布。
      参数:
      location - 此分布的位置参数。
      shape - 此分布的形状参数。
      inverseCumAccuracy - 逆累积概率精度。
      抛出:
      MathIllegalArgumentException - 如果 shape <= 0
  • 方法详细资料

    • getLocation

      public double getLocation()
      返回此分布的位置参数。
      返回:
      位置参数
      从以下版本开始:
      1.4
    • getShape

      public double getShape()
      返回此分布的形状参数。
      返回:
      形状参数
    • density

      public double density(double x)
      返回在指定点 x 处评估的此分布的概率密度函数(PDF)。一般来说,PDF 是 CDF 的导数。如果在 x 处导数不存在,则应返回适当的替代值,例如 Double.POSITIVE_INFINITYDouble.NaN,或者差商的下限或上限。对于此分布的位置 m 和形状 s,PDF 如下所示
      • 如果 x <= 0,则为 0
      • 否则为 exp(-0.5 * ((ln(x) - m) / s)^2) / (s * sqrt(2 * pi) * x)
      参数:
      x - 评估 PDF 的点
      返回:
      在点 x 处概率密度函数的值
    • logDensity

      public double logDensity(double x)
      返回在指定点 x 处评估的此分布的概率密度函数(PDF)的自然对数。一般来说,PDF 是 CDF 的导数。如果在 x 处导数不存在,则应返回适当的替代值,例如 Double.POSITIVE_INFINITYDouble.NaN,或者差商的下限或上限。请注意,由于浮点精度和下溢/上溢问题,对于某些分布,此方法比计算 RealDistribution.density(double) 的对数更精确和更快。

      默认实现简单地计算 density(x) 的对数。有关计算细节,请参阅 density(double) 的文档。

      指定者:
      logDensity 在接口中 RealDistribution
      覆盖:
      logDensity 在类中 AbstractRealDistribution
      参数:
      x - 评估 PDF 的点
      返回:
      在点 x 处概率密度函数的对数值
    • cumulativeProbability

      public double cumulativeProbability(double x)
      对于随机变量 X,其值根据此分布进行分布,此方法返回 P(X <= x)。换句话说,此方法表示此分布的(累积)分布函数(CDF)。对于此分布的位置 m 和形状 s,CDF 如下所示
      • 如果 x <= 0,则为 0
      • 如果 ln(x) - m < 0 并且 m - ln(x) > 40 * s,则为 0,因为在这些情况下,实际值在 Double.MIN_VALUE 附近,
      • 如果 ln(x) - m >= 0 并且 ln(x) - m > 40 * s,则为 1,因为在这些情况下,实际值在 Double.MIN_VALUE 附近,
      • 否则为 0.5 + 0.5 * erf((ln(x) - m) / (s * sqrt(2))
      参数:
      x - 评估 CDF 的点
      返回:
      随机变量具有此分布且取值小于或等于 x 的概率
    • probability

      public double probability(double x0, double x1) throws MathIllegalArgumentException
      对于随机变量 X,其值根据此分布进行分布,此方法返回 P(x0 < X <= x1)
      指定者:
      probability 在接口中 RealDistribution
      覆盖:
      probability 在类中 AbstractRealDistribution
      参数:
      x0 - 下限(不包括)。
      x1 - 上限(包括)。
      返回:
      随机变量服从此分布取值在x0x1之间的概率,不包括下限但包括上限。
      抛出:
      MathIllegalArgumentException - 如果x0 > x1。默认实现使用恒等式P(x0 < X <= x1) = P(X <= x1) - P(X <= x0)
    • getNumericalMean

      public double getNumericalMean()
      使用此方法获取此分布的均值的数值。对于位置m和形状s,均值为exp(m + s^2 / 2)
      返回:
      均值或Double.NaN(如果未定义)
    • getNumericalVariance

      public double getNumericalVariance()
      使用此方法获取此分布的方差的数值。对于位置m和形状s,方差为(exp(s^2) - 1) * exp(2 * m + s^2)
      返回:
      方差(可能为Double.POSITIVE_INFINITY,如TDistribution中的某些情况)或Double.NaN(如果未定义)
    • getSupportLowerBound

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

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

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

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

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

      支持的上限始终为正无穷,无论参数如何。
      返回:
      支持的上限(始终为Double.POSITIVE_INFINITY
    • isSupportConnected

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