类 SemiVariance

java.lang.Object
org.hipparchus.stat.descriptive.AbstractUnivariateStatistic
org.hipparchus.stat.descriptive.moment.SemiVariance
所有已实现的接口:
Serializable, UnivariateStatistic, MathArrays.Function

public class SemiVariance extends AbstractUnivariateStatistic implements Serializable
计算一组值相对于给定截断值的半方差。

我们定义一组值x相对于截断值cutoff下行半方差
Σ (x[i] - target)2 / df
其中总和取自所有i,使得x[i] < cutoffdfx的长度(未校正偏差)或比这个数字少一个(校正偏差)。类似地,定义上行半方差,总和取自值x超过截断值的情况。

截断值默认为均值,偏差校正默认为true,"方差方向"(上行或下行)默认为下行。方差方向和偏差校正可以通过属性设置器设置,或者它们的值可以作为参数提供给evaluate(double[], double, Direction, boolean, int, int)

如果输入数组为null,evaluate方法会抛出IllegalArgumentException。如果数组长度为1,则返回0,无论cutoff的值如何。

请注意,此类不是线程安全的。如果多个线程同时访问此类的实例,并且其中一个或多个线程调用属性设置器,则必须提供外部同步以确保正确的结果。

另请参阅:
  • 字段详细资料

    • UPSIDE_VARIANCE

      public static final SemiVariance.Direction UPSIDE_VARIANCE
      上行方向用于指定将在截断点以上的观测用于计算半方差。
    • DOWNSIDE_VARIANCE

      public static final SemiVariance.Direction DOWNSIDE_VARIANCE
      下行方向用于指定将在截断点以下的观测用于计算半方差。
  • 构造器详细资料

    • SemiVariance

      public SemiVariance()
      使用默认(true)biasCorrected属性和默认(下行)varianceDirection属性构造一个半方差。
    • SemiVariance

      public SemiVariance(boolean biasCorrected)
      使用指定的biasCorrected属性和默认(下行)varianceDirection属性构造一个半方差。
      参数:
      biasCorrected - 偏差校正设置 - true表示将校正偏差,等同于使用无参数构造函数
    • SemiVariance

      public SemiVariance(SemiVariance.Direction direction)
      使用指定的Direction属性和默认(true)biasCorrected属性构造一个半方差。
      参数:
      direction - 用于计算半方差的方向设置
    • SemiVariance

      public SemiVariance(boolean corrected, SemiVariance.Direction direction)
      使用指定的isBiasCorrected属性和指定的Direction属性构造一个半方差。
      参数:
      corrected - 偏差校正设置 - true表示将校正偏差,等同于使用无参数构造函数
      direction - 用于计算半方差的方向设置
    • SemiVariance

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

    • copy

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

      public double evaluate(double[] values, int start, int length) throws MathIllegalArgumentException
      返回指定值相对于均值的SemiVariance,使用实例属性varianceDirection和biasCorrection。

      如果数组为空,则返回NaN,如果数组为null,则抛出IllegalArgumentException

      指定者:
      evaluate 在接口中 MathArrays.Function
      指定者:
      evaluate 在接口中 UnivariateStatistic
      指定者:
      evaluate 在类中 AbstractUnivariateStatistic
      参数:
      values - 输入数组
      start - 要包括的第一个数组元素的索引
      length - 要包括的元素数量
      返回:
      半方差
      抛出:
      MathIllegalArgumentException - 如果参数无效
    • evaluate

      public double evaluate(double[] values, SemiVariance.Direction direction) throws MathIllegalArgumentException
      该方法使用biasCorrection实例属性的当前值,针对整个数组相对于均值计算SemiVariance
      参数:
      values - 输入数组
      direction - 半方差的SemiVariance.Direction
      返回:
      半方差
      抛出:
      MathIllegalArgumentException - 如果values为null
    • evaluate

      public double evaluate(double[] values, double cutoff) throws MathIllegalArgumentException
      返回使用variancDirection和biasCorrection实例属性,针对指定值相对于截断值的SemiVariance

      如果数组为空,则返回NaN

      参数:
      values - 输入数组
      cutoff - 参考点
      返回:
      半方差
      抛出:
      MathIllegalArgumentException - 如果values为null
    • evaluate

      public double evaluate(double[] values, double cutoff, SemiVariance.Direction direction) throws MathIllegalArgumentException
      返回使用biasCorrection实例属性,针对指定值相对于截断值在给定方向的SemiVariance

      如果数组为空,则返回NaN

      参数:
      values - 输入数组
      cutoff - 参考点
      direction - 半方差的SemiVariance.Direction
      返回:
      半方差
      抛出:
      MathIllegalArgumentException - 如果values为null
    • evaluate

      public double evaluate(double[] values, double cutoff, SemiVariance.Direction direction, boolean corrected, int start, int length) throws MathIllegalArgumentException
      返回使用提供的偏差校正,针对指定值相对于截断值在给定方向的SemiVariance

      如果数组为空,则返回NaN

      参数:
      values - 输入数组
      cutoff - 参考点
      direction - 半方差的SemiVariance.Direction
      corrected - 偏差校正标志
      start - 要包括的第一个数组元素的索引
      length - 要包括的元素数量
      返回:
      半方差
      抛出:
      MathIllegalArgumentException - 如果参数无效
    • isBiasCorrected

      public boolean isBiasCorrected()
      返回biasCorrected属性是否设置为true。
      返回:
      biasCorrected的值。
    • withBiasCorrected

      public SemiVariance withBiasCorrected(boolean isBiasCorrected)
      返回具有给定biasCorrected设置的此实例的副本。
      参数:
      isBiasCorrected - 新的biasCorrected属性值
      返回:
      具有给定偏差校正设置的此实例的副本
    • getVarianceDirection

      public SemiVariance.Direction getVarianceDirection()
      返回varianceDirection属性。
      返回:
      varianceDirection
    • withVarianceDirection

      public SemiVariance withVarianceDirection(SemiVariance.Direction direction)
      返回具有给定方向设置的此实例的副本。
      参数:
      direction - 半方差的方向
      返回:
      具有给定方向设置的此实例的副本