类 StatUtils
-
方法概要
修饰符和类型方法说明static double
geometricMean
(double... values) 返回输入数组中条目的几何平均值,如果数组为空则返回Double.NaN
。static double
geometricMean
(double[] values, int begin, int length) 返回指定部分输入数组中条目的几何平均值,如果指定的子数组为空则返回Double.NaN
。static double
max
(double... values) 返回输入数组中的条目的最大值,如果数组为空则返回Double.NaN
。static double
max
(double[] values, int begin, int length) 返回指定部分输入数组中的条目的最大值,如果指定的子数组为空则返回Double.NaN
。static double
mean
(double... values) 返回输入数组中的条目的算术平均值,如果数组为空则返回Double.NaN
。static double
mean
(double[] values, int begin, int length) 返回指定部分输入数组中的条目的算术平均值,如果指定的子数组为空则返回Double.NaN
。static double
meanDifference
(double[] sample1, double[] sample2) 返回输入数组的(有符号)差异的均值,即sum(sample1[i] - sample2[i]) / sample1.length。static double
min
(double... values) 返回输入数组中的条目的最小值,如果数组为空则返回Double.NaN
。static double
min
(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 double
percentile
(double[] values, double p) 返回values
数组中值的第p
百分位数的估计值。static double
percentile
(double[] values, int begin, int length, double p) 返回values
数组中值的第p
百分位数的估计值,从数组中的第begin
位置(基于0)开始,包括length
个值。static double
populationVariance
(double... values) 返回输入数组中的条目的总体方差,如果数组为空则返回Double.NaN
。static double
populationVariance
(double[] values, double mean) 返回输入数组中的条目的总体方差,使用预先计算的均值。static double
populationVariance
(double[] values, double mean, int begin, int length) 返回指定部分输入数组中的条目的总体方差,使用预先计算的均值。static double
populationVariance
(double[] values, int begin, int length) 返回指定部分输入数组中的条目的总体方差,如果指定的子数组为空则返回Double.NaN
。static double
product
(double... values) 返回输入数组中的条目的乘积,如果数组为空则返回Double.NaN
。static double
product
(double[] values, int begin, int length) 返回指定部分输入数组中的条目的乘积,如果指定的子数组为空则返回Double.NaN
。static double
sum
(double... values) 返回输入数组中值的总和,如果数组为空则返回Double.NaN
。static double
sum
(double[] values, int begin, int length) 返回指定部分输入数组中的条目的总和,如果指定的子数组为空则返回Double.NaN
。static double
sumDifference
(double[] sample1, double[] sample2) 返回输入数组中对应元素的(有符号)差异的总和,即sum(sample1[i] - sample2[i])。static double
sumLog
(double... values) 返回输入数组中条目的自然对数的总和,如果数组为空则返回Double.NaN
。static double
sumLog
(double[] values, int begin, int length) 返回指定部分输入数组中条目的自然对数的总和,如果指定的子数组为空则返回Double.NaN
。static double
sumSq
(double... values) 返回输入数组中条目的平方和,如果数组为空则返回Double.NaN
。static double
sumSq
(double[] values, int begin, int length) 返回指定部分输入数组中的条目的平方和,如果指定的子数组为空则返回Double.NaN
。static double
variance
(double... values) 返回输入数组中的条目的方差,如果数组为空则返回Double.NaN
。static double
variance
(double[] values, double mean) 返回输入数组中的条目的方差,使用预先计算的均值。static double
variance
(double[] values, double mean, int begin, int length) 返回指定部分输入数组中的条目的方差,使用预先计算的均值。static double
variance
(double[] values, int begin, int length) 返回指定部分输入数组中的条目的方差,如果指定的子数组为空则返回Double.NaN
。static double
varianceDifference
(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
- 如果索引无效或数组为空
-