所有已实现的接口:
Serializable, DoubleConsumer, AggregatableStatistic<Mean>, StorelessUnivariateStatistic, UnivariateStatistic, WeightedEvaluation, MathArrays.Function

计算一组值的算术平均值。使用定义公式:

平均值 = sum(x_i) / n

其中 n 是观测次数。

当使用 increment(double) 从流式值中逐步添加数据时,getResult() 返回的统计值是使用以下递归更新算法计算的:

  1. 初始化 m = 第一个值
  2. 对于每个额外的值,使用
    m = m + (新值 - m) / (观测次数)

如果使用 UnivariateStatistic.evaluate(double[]) 来计算存储值数组的平均值,则使用两遍、校正的算法,从存储值数组计算定义公式开始,然后通过添加数据值的平均偏差来校正。参见,例如“Comparison of Several Algorithms for Computing Sample Means and Variances,” Robert F. Ling, Journal of the American Statistical Association, Vol. 69, No. 348 (Dec., 1974), pp. 859-866。

如果数据集为空,则返回 Double.NaN。请注意,如果输入包含 NaN 和/或无穷大值,则也可能返回 Double.NaN。

请注意,此实现未同步。 如果多个线程同时访问此类的实例,并且至少有一个线程调用 increment()clear() 方法,则必须在外部进行同步。

另请参阅:
  • 字段概要

    字段
    修饰符和类型
    字段
    说明
    protected final boolean
    确定此统计量是否可以递增或清除。
    protected final org.hipparchus.stat.descriptive.moment.FirstMoment
    此统计量基于的第一时刻。
  • 构造器概要

    构造器
    构造器
    说明
    Mean()
    构造一个 Mean。
    Mean(org.hipparchus.stat.descriptive.moment.FirstMoment m1)
    使用外部时刻构造 Mean。
    Mean(Mean original)
    复制构造函数,创建与原始 Mean 相同的新 Mean。
  • 方法概要

    修饰符和类型
    方法
    说明
    void
    aggregate(Mean other)
    将提供的实例聚合到此实例中。
    void
    clear()
    清除统计量的内部状态。
    copy()
    返回具有相同内部状态的统计量副本。
    double
    evaluate(double[] values, double[] weights, int begin, int length)
    返回输入数组指定部分中条目的加权算术平均值,如果指定的子数组为空,则返回 Double.NaN
    double
    evaluate(double[] values, int begin, int length)
    返回输入数组指定部分中条目的算术平均值,如果指定的子数组为空,则返回 Double.NaN
    long
    getN()
    返回已添加的值的数量。
    double
    返回统计量的当前值。
    void
    increment(double d)
    更新统计量的内部状态,以反映新值的添加。

    从类继承的方法 org.hipparchus.stat.descriptive.AbstractStorelessUnivariateStatistic

    equals, hashCode, toString

    从类继承的方法 java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait

    从接口继承的方法 org.hipparchus.stat.descriptive.AggregatableStatistic

    aggregate, aggregate

    从接口继承的方法 java.util.function.DoubleConsumer

    andThen

    从接口继承的方法 org.hipparchus.stat.descriptive.StorelessUnivariateStatistic

    accept, incrementAll, incrementAll

    从接口继承的方法 org.hipparchus.stat.descriptive.UnivariateStatistic

    evaluate

    从接口继承的方法 org.hipparchus.stat.descriptive.WeightedEvaluation

    evaluate
  • 字段详细资料

    • moment

      protected final org.hipparchus.stat.descriptive.moment.FirstMoment moment
      此统计量基于的第一时刻。
    • incMoment

      protected final boolean incMoment
      确定此统计量是否可以递增或清除。

      基于(构建自)外部时刻的统计量无法递增或清除。

  • 构造器详细资料

    • Mean

      public Mean()
      构造一个 Mean。
    • Mean

      public Mean(org.hipparchus.stat.descriptive.moment.FirstMoment m1)
      使用外部时刻构造 Mean。
      参数:
      m1 - 时刻
    • Mean

      public Mean(Mean original) throws NullArgumentException
      复制构造函数,创建与原始 Mean 相同的新 Mean。
      参数:
      original - 要复制的 Mean 实例
      抛出:
      NullArgumentException - 如果 original 为 null
  • 方法详细资料

    • increment

      public void increment(double d)
      更新统计量的内部状态,以反映新值的添加。

      请注意,当使用 Mean(FirstMoment) 创建 Mean 时,此方法不执行任何操作。在这种情况下,应直接递增 FirstMoment。

      指定者:
      increment 在接口中 StorelessUnivariateStatistic
      指定者:
      increment 在类中 AbstractStorelessUnivariateStatistic
      参数:
      d - 新值。
    • clear

      public void clear()
      清除统计量的内部状态。
      指定者:
      clear 在接口中 StorelessUnivariateStatistic
      指定者:
      clear 在类中 AbstractStorelessUnivariateStatistic
    • getResult

      public double getResult()
      返回统计量的当前值。
      指定者:
      getResult 在接口中 StorelessUnivariateStatistic
      指定者:
      getResult 在类中 AbstractStorelessUnivariateStatistic
      返回:
      统计量的值,如果已清除或刚实例化,则为 Double.NaN
    • getN

      public long getN()
      返回已添加的值的数量。
      指定者:
      getN 在接口中 StorelessUnivariateStatistic
      返回:
      值的数量。
    • aggregate

      public void aggregate(Mean other)
      将提供的实例聚合到此实例中。

      此方法可用于合并在分区或子样本上计算的统计量 - 即,此操作后此实例的值应与在合并数据集上应用单个统计量时的值相同。

      指定者:
      aggregate 在接口中 AggregatableStatistic<Mean>
      参数:
      other - 要聚合到此实例中的实例
    • evaluate

      public double evaluate(double[] values, int begin, int length) throws MathIllegalArgumentException
      返回输入数组指定部分中条目的算术平均值,如果指定的子数组为空,则返回 Double.NaN
      指定者:
      evaluate 在接口中 MathArrays.Function
      指定者:
      evaluate 在接口中 StorelessUnivariateStatistic
      指定者:
      evaluate 在接口中 UnivariateStatistic
      参数:
      values - 输入数组
      begin - 要包括的第一个数组元素的索引
      length - 要包括的元素数量
      返回:
      指定部分输入数组中的加权算术平均值,如果指定的子数组为空,则返回Double.NaN
      抛出:
      MathIllegalArgumentException - 如果数组为null或数组索引参数无效
      另请参阅:
    • evaluate

      public double evaluate(double[] values, double[] weights, int begin, int length) throws MathIllegalArgumentException
      返回指定部分输入数组中条目的加权算术平均值,如果指定的子数组为空,则返回Double.NaN

      如果任一数组为null,则抛出IllegalArgumentException

      有关计算算法的详细信息,请参阅Mean。此处使用上述的两遍算法,权重应用于计算原始估计值和校正因子。

      如果以下任一情况为真,则抛出IllegalArgumentException

      • 值数组为null
      • 权重数组为null
      • 权重数组的长度与值数组的长度不同
      • 权重数组包含一个或多个无穷大值
      • 权重数组包含一个或多个NaN值
      • 权重数组包含负值
      • 开始和长度参数未确定有效数组
      指定者:
      evaluate 在接口中 WeightedEvaluation
      参数:
      values - 输入数组
      weights - 权重数组
      begin - 要包括的第一个数组元素的索引
      length - 要包括的元素数量
      返回:
      指定部分输入数组中的加权算术平均值,如果指定的子数组为空,则返回Double.NaN
      抛出:
      MathIllegalArgumentException - 如果参数无效
    • copy

      public Mean copy()
      返回具有相同内部状态的统计量的副本。
      指定者:
      copy 在接口中 StorelessUnivariateStatistic
      指定者:
      copy 在接口中 UnivariateStatistic
      指定者:
      copy 在类中 AbstractStorelessUnivariateStatistic
      返回:
      统计量的副本