类 StatUtils
-
方法概要
修饰符和类型方法说明static doublegeometricMean(double... values) 返回输入数组中条目的几何平均值,如果数组为空则返回Double.NaN。static doublegeometricMean(double[] values, int begin, int length) 返回指定部分输入数组中条目的几何平均值,如果指定的子数组为空则返回Double.NaN。static doublemax(double... values) 返回输入数组中的条目的最大值,如果数组为空则返回Double.NaN。static doublemax(double[] values, int begin, int length) 返回指定部分输入数组中的条目的最大值,如果指定的子数组为空则返回Double.NaN。static doublemean(double... values) 返回输入数组中的条目的算术平均值,如果数组为空则返回Double.NaN。static doublemean(double[] values, int begin, int length) 返回指定部分输入数组中的条目的算术平均值,如果指定的子数组为空则返回Double.NaN。static doublemeanDifference(double[] sample1, double[] sample2) 返回输入数组的(有符号)差异的均值,即sum(sample1[i] - sample2[i]) / sample1.length。static doublemin(double... values) 返回输入数组中的条目的最小值,如果数组为空则返回Double.NaN。static doublemin(double[] values, int begin, int length) 返回指定部分输入数组中的条目的最小值,如果指定的子数组为空则返回Double.NaN。static double[]mode(double... sample) 返回样本的众数。static double[]mode(double[] sample, int begin, int length) 返回样本的众数。static double[]normalize(double... sample) 将样本标准化,使其均值为0,标准差为1。static doublepercentile(double[] values, double p) 返回values数组中值的第p百分位数的估计值。static doublepercentile(double[] values, int begin, int length, double p) 返回values数组中值的第p百分位数的估计值,从数组中的第begin位置(基于0)开始,包括length个值。static doublepopulationVariance(double... values) 返回输入数组中的条目的总体方差,如果数组为空则返回Double.NaN。static doublepopulationVariance(double[] values, double mean) 返回输入数组中的条目的总体方差,使用预先计算的均值。static doublepopulationVariance(double[] values, double mean, int begin, int length) 返回指定部分输入数组中的条目的总体方差,使用预先计算的均值。static doublepopulationVariance(double[] values, int begin, int length) 返回指定部分输入数组中的条目的总体方差,如果指定的子数组为空则返回Double.NaN。static doubleproduct(double... values) 返回输入数组中的条目的乘积,如果数组为空则返回Double.NaN。static doubleproduct(double[] values, int begin, int length) 返回指定部分输入数组中的条目的乘积,如果指定的子数组为空则返回Double.NaN。static doublesum(double... values) 返回输入数组中值的总和,如果数组为空则返回Double.NaN。static doublesum(double[] values, int begin, int length) 返回指定部分输入数组中的条目的总和,如果指定的子数组为空则返回Double.NaN。static doublesumDifference(double[] sample1, double[] sample2) 返回输入数组中对应元素的(有符号)差异的总和,即sum(sample1[i] - sample2[i])。static doublesumLog(double... values) 返回输入数组中条目的自然对数的总和,如果数组为空则返回Double.NaN。static doublesumLog(double[] values, int begin, int length) 返回指定部分输入数组中条目的自然对数的总和,如果指定的子数组为空则返回Double.NaN。static doublesumSq(double... values) 返回输入数组中条目的平方和,如果数组为空则返回Double.NaN。static doublesumSq(double[] values, int begin, int length) 返回指定部分输入数组中的条目的平方和,如果指定的子数组为空则返回Double.NaN。static doublevariance(double... values) 返回输入数组中的条目的方差,如果数组为空则返回Double.NaN。static doublevariance(double[] values, double mean) 返回输入数组中的条目的方差,使用预先计算的均值。static doublevariance(double[] values, double mean, int begin, int length) 返回指定部分输入数组中的条目的方差,使用预先计算的均值。static doublevariance(double[] values, int begin, int length) 返回指定部分输入数组中的条目的方差,如果指定的子数组为空则返回Double.NaN。static doublevarianceDifference(double[] sample1, double[] sample2, double meanDifference) 返回输入数组中对应元素的(有符号)差异的方差,即var(sample1[i] - sample2[i])。
-
方法详细资料
-
sum
返回输入数组中的值的总和,如果数组为空则返回Double.NaN。如果输入数组为null,则抛出
IllegalArgumentException。- 参数:
-
values- 要求和的值数组 - 返回:
-
值的总和,如果数组为空则返回
Double.NaN - 抛出:
-
MathIllegalArgumentException- 如果数组为null
-
sum
public static double sum(double[] values, int begin, int length) throws MathIllegalArgumentException 返回指定部分输入数组中的条目的总和,如果指定的子数组为空则返回Double.NaN。如果输入数组为null,则抛出
IllegalArgumentException。- 参数:
-
values- 输入数组 -
begin- 要包括的第一个数组元素的索引 -
length- 要包括的元素数量 - 返回:
- 值的总和,如果length = 0则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
-
sumSq
返回输入数组中的条目的平方和,如果数组为空则返回Double.NaN。如果输入数组为null,则抛出
IllegalArgumentException。- 参数:
-
values- 输入数组 - 返回:
-
平方值的总和,如果数组为空则返回
Double.NaN - 抛出:
-
MathIllegalArgumentException- 如果数组为null
-
sumSq
public static double sumSq(double[] values, int begin, int length) throws MathIllegalArgumentException 返回指定部分输入数组中的条目的平方和,如果指定的子数组为空则返回Double.NaN。如果输入数组为null,则抛出
IllegalArgumentException。- 参数:
-
values- 输入数组 -
begin- 要包括的第一个数组元素的索引 -
length- 要包括的元素数量 - 返回:
- 值的平方和,如果length = 0则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
-
product
返回输入数组中的条目的乘积,如果数组为空则返回Double.NaN。如果输入数组为null,则抛出
IllegalArgumentException。- 参数:
-
values- 输入数组 - 返回:
-
值的乘积,如果数组为空则返回
Double.NaN - 抛出:
-
MathIllegalArgumentException- 如果数组为null
-
product
public static double product(double[] values, int begin, int length) throws MathIllegalArgumentException 返回指定部分输入数组中的条目的乘积,如果指定的子数组为空则返回Double.NaN。如果输入数组为null,则抛出
IllegalArgumentException。- 参数:
-
values- 输入数组 -
begin- 要包括的第一个数组元素的索引 -
length- 要包括的元素数量 - 返回:
- 值的乘积,如果length = 0则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
-
sumLog
- 参数:
-
values- 输入数组 - 返回:
- 输入值的自然对数之和,如果数组为空则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null
-
sumLog
public static double sumLog(double[] values, int begin, int length) throws MathIllegalArgumentException - 参数:
-
values- 输入数组 -
begin- 起始数组元素的索引 -
length- 要包括的元素数量 - 返回:
- 输入值的自然对数之和,如果长度为0则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
-
mean
- 参数:
-
values- 输入数组 - 返回:
- 输入值的平均值,如果数组为空则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null
-
mean
public static double mean(double[] values, int begin, int length) throws MathIllegalArgumentException - 参数:
-
values- 输入数组 -
begin- 起始数组元素的索引 -
length- 要包括的元素数量 - 返回:
- 输入值的平均值,如果长度为0则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
-
geometricMean
返回输入数组中各元素的几何平均值,如果数组为空则返回Double.NaN。如果数组为null,则抛出
IllegalArgumentException异常。详见
GeometricMean中的计算算法。- 参数:
-
values- 输入数组 - 返回:
- 输入值的几何平均值,如果数组为空则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null
-
geometricMean
public static double geometricMean(double[] values, int begin, int length) throws MathIllegalArgumentException 返回输入数组指定部分元素的几何平均值,如果指定的子数组为空则返回Double.NaN。如果数组为null,则抛出
IllegalArgumentException异常。详见
GeometricMean中的计算算法。- 参数:
-
values- 输入数组 -
begin- 起始数组元素的索引 -
length- 要包括的元素数量 - 返回:
- 输入值的几何平均值,如果长度为0则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
-
variance
返回输入数组中各元素的方差,如果数组为空则返回Double.NaN。此方法返回偏差校正的样本方差(分母使用
n - 1)。使用populationVariance(double[])获取非偏差校正的总体方差。详见
Variance中的计算算法。对于单个值(即长度为1)的样本,返回0。
如果数组为null,则抛出
MathIllegalArgumentException异常。- 参数:
-
values- 输入数组 - 返回:
- 输入值的方差,如果数组为空则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null
-
variance
public static double variance(double[] values, int begin, int length) throws MathIllegalArgumentException 返回输入数组指定部分元素的方差,如果指定的子数组为空则返回Double.NaN。此方法返回偏差校正的样本方差(分母使用
n - 1)。使用populationVariance(double[], int, int)获取非偏差校正的总体方差。详见
Variance中的计算算法。对于单个值(即长度为1)的样本,返回0。
如果数组为null或数组索引参数无效,则抛出
MathIllegalArgumentException异常。- 参数:
-
values- 输入数组 -
begin- 起始数组元素的索引 -
length- 要包括的元素数量 - 返回:
- 输入值的方差,如果长度为0则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
-
variance
public static double variance(double[] values, double mean, int begin, int length) throws MathIllegalArgumentException 返回输入数组指定部分元素的方差,使用预先计算的均值。如果指定的子数组为空则返回Double.NaN。此方法返回偏差校正的样本方差(分母使用
n - 1)。使用populationVariance(double[], double, int, int)获取非偏差校正的总体方差。详见
Variance中的计算算法。使用的公式假定提供的均值是样本数据的算术平均值,而不是已知的总体参数。此方法仅用于在已计算均值的情况下节省计算。
对于单个值(即长度为1)的样本,返回0。
如果数组为null或数组索引参数无效,则抛出
MathIllegalArgumentException异常。- 参数:
-
values- 输入数组 -
mean- 预先计算的均值 -
begin- 起始数组元素的索引 -
length- 要包括的元素数量 - 返回:
- 输入值的方差,如果长度为0则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
-
variance
返回输入数组中各元素的方差,使用预先计算的均值。如果数组为空则返回Double.NaN。此方法返回偏差校正的样本方差(分母使用
n - 1)。使用populationVariance(double[], double)获取非偏差校正的总体方差。详见
Variance中的计算算法。使用的公式假定提供的均值是样本数据的算术平均值,而不是已知的总体参数。此方法仅用于在已计算均值的情况下节省计算。
对于单个值(即长度为1)的样本,返回0。
如果数组为null,则抛出
MathIllegalArgumentException异常。- 参数:
-
values- 输入数组 -
mean- 预先计算的均值 - 返回:
- 输入值的方差,如果数组为空则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null
-
populationVariance
返回输入数组中各元素的总体方差,如果数组为空则返回Double.NaN。详见
Variance中的计算公式和算法。对于单个值(即长度为1)的样本,返回0。
如果数组为null,则抛出
MathIllegalArgumentException异常。- 参数:
-
values- 输入数组 - 返回:
- 输入值的总体方差,如果数组为空则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null
-
populationVariance
public static double populationVariance(double[] values, int begin, int length) throws MathIllegalArgumentException 返回指定输入数组部分的条目的总体方差,如果指定的子数组为空,则返回Double.NaN。有关计算算法的详细信息,请参见
Variance。对于单个值(即长度=1)的样本,返回0。
如果数组为null或数组索引参数无效,则抛出
MathIllegalArgumentException。- 参数:
-
values- 输入数组 -
begin- 要包含的第一个数组元素的索引 -
length- 要包含的元素数量 - 返回:
- 值的总体方差,如果长度=0,则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
-
populationVariance
public static double populationVariance(double[] values, double mean, int begin, int length) throws MathIllegalArgumentException 返回使用预先计算的均值的输入数组指定部分的总体方差,如果指定的子数组为空,则返回Double.NaN。有关计算算法的详细信息,请参见
Variance。使用的公式假定提供的均值是样本数据的算术平均值,而不是已知的总体参数。此方法仅用于在已经计算均值时节省计算。
对于单个值(即长度=1)的样本,返回0。
如果数组为null或数组索引参数无效,则抛出
MathIllegalArgumentException。- 参数:
-
values- 输入数组 -
mean- 预先计算的均值 -
begin- 要包含的第一个数组元素的索引 -
length- 要包含的元素数量 - 返回:
- 值的总体方差,如果长度=0,则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
-
populationVariance
public static double populationVariance(double[] values, double mean) throws MathIllegalArgumentException 返回使用预先计算的均值的输入数组的总体方差,如果数组为空,则返回Double.NaN。有关计算算法的详细信息,请参见
Variance。使用的公式假定提供的均值是样本数据的算术平均值,而不是已知的总体参数。此方法仅用于在已经计算均值时节省计算。
对于单个值(即长度=1)的样本,返回0。
如果数组为null,则抛出
MathIllegalArgumentException。- 参数:
-
values- 输入数组 -
mean- 预先计算的均值 - 返回:
- 值的总体方差,如果数组为空,则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null
-
max
返回输入数组中的条目的最大值,如果数组为空,则返回Double.NaN。如果数组为null,则抛出
MathIllegalArgumentException。- 如果所有值均为
NaN(即NaN值对统计量的值没有影响),则结果为NaN。 - 如果任何值等于
Double.POSITIVE_INFINITY,则结果为Double.POSITIVE_INFINITY。
- 参数:
-
values- 输入数组 - 返回:
- 值的最大值,如果数组为空,则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null
- 如果所有值均为
-
max
public static double max(double[] values, int begin, int length) throws MathIllegalArgumentException 返回输入数组指定部分的条目的最大值,如果指定的子数组为空,则返回Double.NaN。如果数组为null或数组索引参数无效,则抛出
MathIllegalArgumentException。- 如果所有值均为
NaN(即NaN值对统计量的值没有影响),则结果为NaN。 - 如果任何值等于
Double.POSITIVE_INFINITY,则结果为Double.POSITIVE_INFINITY。
- 参数:
-
values- 输入数组 -
begin- 要包含的第一个数组元素的索引 -
length- 要包含的元素数量 - 返回:
- 值的最大值,如果长度=0,则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
- 如果所有值均为
-
min
返回输入数组中的条目的最小值,如果数组为空,则返回Double.NaN。如果数组为null,则抛出
MathIllegalArgumentException。- 如果所有值均为
NaN(即NaN值对统计量的值没有影响),则结果为NaN。 - 如果任何值等于
Double.NEGATIVE_INFINITY,则结果为Double.NEGATIVE_INFINITY。
- 参数:
-
values- 输入数组 - 返回:
- 值的最小值,如果数组为空,则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null
- 如果所有值均为
-
min
public static double min(double[] values, int begin, int length) throws MathIllegalArgumentException 返回输入数组指定部分的条目的最小值,如果指定的子数组为空,则返回Double.NaN。如果数组为null或数组索引参数无效,则抛出
MathIllegalArgumentException。- 如果所有值均为
NaN(即NaN值对统计量的值没有影响),则结果为NaN。 - 如果任何值等于
Double.NEGATIVE_INFINITY,则结果为Double.NEGATIVE_INFINITY。
- 参数:
-
values- 输入数组 -
begin- 要包含的第一个数组元素的索引 -
length- 要包含的元素数量 - 返回:
- 值的最小值,如果长度=0,则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果数组为null或数组索引参数无效
- 如果所有值均为
-
percentile
返回values数组中值的p百分位数的估计。- 如果
values的长度为0,则返回Double.NaN。 - 如果
values的长度为1,则无论p的值如何,返回values[0]。 - 如果
values为null或p不是有效的分位数值(p必须大于0且小于或等于100),则抛出IllegalArgumentException。
有关使用的百分位数估算算法的描述,请参见
Percentile。- 参数:
-
values- 值的输入数组 -
p- 要计算的百分位数值 - 返回:
- 百分位数值,如果数组为空,则返回Double.NaN
- 抛出:
-
MathIllegalArgumentException- 如果values为null或p无效
- 如果
-
percentile
public static double percentile(double[] values, int begin, int length, double p) throws MathIllegalArgumentException 返回values数组中值的p百分位数的估计,从数组中(从0开始)位置begin的元素开始,包括length个值。- 如果
length = 0,则返回Double.NaN。 - 如果
length = 1,则无论p的值如何,返回values[begin]。 - 如果
values为null,begin或length无效,或p不是有效的分位数值(p必须大于0且小于或等于100),则抛出MathIllegalArgumentException。
有关使用的百分位数估算算法的描述,请参见
Percentile。- 参数:
-
values- 值的输入数组 -
begin- 要包含在计算中的第一个(从0开始)元素 -
length- 要包含的数组元素数量 -
p- 要计算的百分位数 - 返回:
- 百分位数值
- 抛出:
-
MathIllegalArgumentException- 如果参数无效或输入数组为null
- 如果
-
sumDifference
public static double sumDifference(double[] sample1, double[] sample2) throws MathIllegalArgumentException 返回输入数组的对应元素之间的(有符号)差值之和--即,sum(sample1[i] - sample2[i])。- 参数:
-
sample1- 第一个数组 -
sample2- 第二个数组 - 返回:
- 成对差值的总和
- 抛出:
-
MathIllegalArgumentException- 如果数组长度不同(均为正) -
MathIllegalArgumentException- 如果样本数组为空
-
meanDifference
public static double meanDifference(double[] sample1, double[] sample2) throws MathIllegalArgumentException 返回输入数组的对应元素之间的(有符号)差值的平均值--即,sum(sample1[i] - sample2[i]) / sample1.length。- 参数:
-
sample1- 第一个数组 -
sample2- 第二个数组 - 返回:
- 成对差异的均值
- 抛出:
-
MathIllegalArgumentException- 如果数组长度不相同(且为正)。 -
MathIllegalArgumentException- 如果样本数组为空。
-
varianceDifference
public static double varianceDifference(double[] sample1, double[] sample2, double meanDifference) throws MathIllegalArgumentException 返回输入数组对应元素之间(即var(sample1[i] - sample2[i]))的方差。- 参数:
-
sample1- 第一个数组 -
sample2- 第二个数组 -
meanDifference- 对应条目之间的均值差异 - 返回:
- 成对差异的方差
- 抛出:
-
MathIllegalArgumentException- 如果数组长度不相同。 -
MathIllegalArgumentException- 如果数组长度小于2。 - 另请参阅:
-
normalize
public static double[] normalize(double... sample) 将样本标准化,使其均值为0,标准差为1。- 参数:
-
sample- 要标准化的样本 - 返回:
- 标准化后的样本。
-
mode
返回样本的众数。众数是样本中出现频率最高的值。如果有一个唯一的具有最大频率的值,则将此值作为输出数组的唯一元素返回。否则,返回的数组按升序包含最大频率的元素。
例如,如果
sample是{0, 12, 5, 6, 0, 13, 5, 17},返回的数组将有长度为2,第一个元素为0,第二个元素为5。计算众数时会忽略NaN值 - 即,在输出数组中永远不会出现NaN。如果样本仅包含NaN或长度为0,则返回一个空数组。
- 参数:
-
sample- 输入数据 - 返回:
- 按升序排序的最常出现的元素的数组数组。
- 抛出:
-
MathIllegalArgumentException- 如果索引无效或数组为空
-
mode
public static double[] mode(double[] sample, int begin, int length) 返回样本的众数。众数是样本中出现频率最高的值。如果有一个唯一的具有最大频率的值,则将此值作为输出数组的唯一元素返回。否则,返回的数组按升序包含最大频率的元素。
例如,如果
sample是{0, 12, 5, 6, 0, 13, 5, 17},返回的数组将有长度为2,第一个元素为0,第二个元素为5。计算众数时会忽略NaN值 - 即,在输出数组中永远不会出现NaN。如果样本仅包含NaN或长度为0,则返回一个空数组。
- 参数:
-
sample- 输入数据 -
begin- 要包含的第一个数组元素的索引(从0开始) -
length- 要包含的元素数量 - 返回:
- 按升序排序的最常出现的元素的数组数组。
- 抛出:
-
MathIllegalArgumentException- 如果索引无效或数组为空
-