类 InferenceTestUtils
-
方法概要
修饰符和类型方法说明static double
approximateP
(double d, int n, int m) 使用Kolmogorov-Smirnov分布来近似\(P(D_{n,m} > d)\),其中\(D_{n,m}\)是2样本Kolmogorov-Smirnov统计量。static double
chiSquare
(double[] expected, long[] observed) static double
chiSquare
(long[][] counts) 根据输入的counts
数组(视为二维表)计算与卡方独立性检验相关的卡方统计量。static double
chiSquareDataSetsComparison
(long[] observed1, long[] observed2) static double
chiSquareTest
(double[] expected, long[] observed) static boolean
chiSquareTest
(double[] expected, long[] observed, double alpha) 执行评估观察计数是否符合由期望计数描述的频率分布的卡方拟合优度检验,显著水平为alpha
的空假设。static double
chiSquareTest
(long[][] counts) 返回基于输入的counts
数组(视为二维表)进行的卡方独立性检验相关的观察到的显著水平或p值。static boolean
chiSquareTest
(long[][] counts, double alpha) 执行评估输入的二维表中列中表示的分类是否独立于行的空假设的卡方独立性检验,显著水平为alpha
。static double
chiSquareTestDataSetsComparison
(long[] observed1, long[] observed2) static boolean
chiSquareTestDataSetsComparison
(long[] observed1, long[] observed2, double alpha) 执行比较两个分箱数据集的卡方双样本检验。static double
exactP
(double d, int m, int n, boolean strict) 如果strict
为true
,则计算\(P(D_{n,m} > d)\);否则计算\(P(D_{n,m} \ge d)\),其中\(D_{n,m}\)是2样本Kolmogorov-Smirnov统计量。static double
g
(double[] expected, long[] observed) static double
gDataSetsComparison
(long[] observed1, long[] observed2) 计算比较observed1
和observed2
中频率计数的独立性的G(对数似然比)双样本检验统计量。static double
gTest
(double[] expected, long[] observed) 返回与比较observed
频率计数与expected
数组中的频率计数的G-拟合优度检验相关的观察到的显著水平或p值。static boolean
gTest
(double[] expected, long[] observed, double alpha) 执行评估观察计数是否符合由期望计数描述的频率分布的G-拟合优度检验,显著水平为alpha
的空假设。static double
gTestDataSetsComparison
(long[] observed1, long[] observed2) 返回与比较observed1
和observed2
中分箱频率计数的G-值(对数似然比)双样本检验相关的观察到的显著水平或p值。static boolean
gTestDataSetsComparison
(long[] observed1, long[] observed2, double alpha) 执行比较两个分箱数据集的G-值(对数似然比)双样本检验。static double
gTestIntrinsic
(double[] expected, long[] observed) 返回固有的(Hardy-Weinberg比例)p值,如McDonald, J.H. 2009中的p64-69所述。static double
homoscedasticT
(double[] sample1, double[] sample2) 在等子群方差相等的假设下计算2样本t统计量。static double
homoscedasticT
(StatisticalSummary sampleStats1, StatisticalSummary sampleStats2) 在假设子群方差相等的情况下,比较由两个StatisticalSummary
实例描述的数据集的均值的2样本t统计量。static double
homoscedasticTTest
(double[] sample1, double[] sample2) 返回与假设两个样本来自具有相等方差的子群的总体的两样本、双尾t检验相关的观察到的显著水平或p值,假设两个样本是从具有相等方差的子群中抽取的。static boolean
homoscedasticTTest
(double[] sample1, double[] sample2, double alpha) static double
homoscedasticTTest
(StatisticalSummary sampleStats1, StatisticalSummary sampleStats2) 返回与假设两个样本是从具有相等子群方差的总体中抽取的,基于由两个StatisticalSummary实例描述的数据集的均值的两样本、双尾t检验相关的观察到的显著水平或p值。static double
kolmogorovSmirnovStatistic
(double[] x, double[] y) 计算两样本Kolmogorov-Smirnov检验统计量,\(D_{n,m}=\sup_x |F_n(x)-F_m(x)|\),其中\(n\)是x
的长度,\(m\)是y
的长度,\(F_n\)是将质量\(1/n\)放在x
值中的经验分布,\(F_m\)是y
值的经验分布。static double
kolmogorovSmirnovStatistic
(RealDistribution dist, double[] data) 计算一样本Kolmogorov-Smirnov检验统计量,\(D_n=\sup_x |F_n(x)-F(x)|\),其中\(F\)是与distribution
相关的分布(cdf)函数,\(n\)是data
的长度,\(F_n\)是将质量\(1/n\)放在data
值中的经验分布。static double
kolmogorovSmirnovTest
(double[] x, double[] y) static double
kolmogorovSmirnovTest
(double[] x, double[] y, boolean strict) static double
kolmogorovSmirnovTest
(RealDistribution dist, double[] data) static double
kolmogorovSmirnovTest
(RealDistribution dist, double[] data, boolean strict) static boolean
kolmogorovSmirnovTest
(RealDistribution dist, double[] data, double alpha) static double
oneWayAnovaFValue
(Collection<double[]> categoryData) 计算一组double[]
数组的ANOVA F值。static double
oneWayAnovaPValue
(Collection<double[]> categoryData) 计算一组double[]
数组的ANOVA P值。static boolean
oneWayAnovaTest
(Collection<double[]> categoryData, double alpha) 执行ANOVA检验,评估数据类别的均值之间是否存在差异的空假设。static double
pairedT
(double[] sample1, double[] sample2) 基于输入数组中的数据计算配对的2样本t统计量。static double
pairedTTest
(double[] sample1, double[] sample2) 返回基于输入数组中的数据进行的配对、两样本、双尾t检验的观察到的显著水平或p值。static boolean
pairedTTest
(double[] sample1, double[] sample2, double alpha) 执行配对t检验,评估sample1
和sample2
之间的配对差异均值是否为0,以支持均值配对差异不等于0的双侧备择假设,显著水平为alpha
。static double
rootLogLikelihoodRatio
(long k11, long k12, long k21, long k22) 计算两个状态数据集的根对数似然比。static double
t
(double[] sample1, double[] sample2) 计算不假设子群方差相等的情况下的2样本t统计量。static double
t
(double mu, double[] observed) 根据观察值和比较常数计算t统计量。static double
t
(double mu, StatisticalSummary sampleStats) static double
t
(StatisticalSummary sampleStats1, StatisticalSummary sampleStats2) 计算两个StatisticalSummary
实例描述的数据集的均值的2样本t统计量,不假设子总体方差相等。static double
tTest
(double[] sample1, double[] sample2) 返回与比较输入数组均值的两样本、双尾t检验相关的观察显著水平或p值。static boolean
tTest
(double[] sample1, double[] sample2, double alpha) static double
tTest
(double mu, double[] sample) 返回与将输入数组均值与常数mu
进行双样本、双尾t检验相关的观察显著水平或p值。static boolean
tTest
(double mu, double[] sample, double alpha) static double
tTest
(double mu, StatisticalSummary sampleStats) 返回与将由sampleStats
描述的数据集的均值与常数mu
进行单样本、双尾t检验相关的观察显著水平或p值。static boolean
tTest
(double mu, StatisticalSummary sampleStats, double alpha) static double
tTest
(StatisticalSummary sampleStats1, StatisticalSummary sampleStats2) 返回与比较由两个StatisticalSummary实例描述的数据集的均值的两样本、双尾t检验相关的观察显著水平或p值。static boolean
tTest
(StatisticalSummary sampleStats1, StatisticalSummary sampleStats2, double alpha)
-
方法详细资料
-
homoscedasticT
public static double homoscedasticT(double[] sample1, double[] sample2) throws MathIllegalArgumentException, NullArgumentException 在等子总体方差的假设下计算2样本t统计量。要计算不考虑相等方差假设的t统计量,请使用t(double[], double[])
。此统计量可用于执行(同方差)双样本t检验以比较样本均值。
t统计量为
t = (m1 - m2) / (sqrt(1/n1 +1/n2) sqrt(var))
其中
n1
是第一个样本的大小;n2
是第二个样本的大小;m1
是第一个样本的均值;m2
是第二个样本的均值,var
是合并方差估计:var = sqrt(((n1 - 1)var1 + (n2 - 1)var2) / ((n1-1) + (n2-1)))
其中
var1
是第一个样本的方差,var2
是第二个样本的方差。前提条件:
- 观察到的数组长度必须至少为2。
- 参数:
-
sample1
- 样本数据值数组 -
sample2
- 样本数据值数组 - 返回:
- t统计量
- 抛出:
-
NullArgumentException
- 如果数组为null
-
MathIllegalArgumentException
- 如果数组长度< 2
-
homoscedasticT
public static double homoscedasticT(StatisticalSummary sampleStats1, StatisticalSummary sampleStats2) throws MathIllegalArgumentException, NullArgumentException 在等子总体方差的假设下,计算由两个StatisticalSummary
实例描述的数据集的均值的2样本t统计量。要计算不考虑相等方差假设的t统计量,请使用t(StatisticalSummary, StatisticalSummary)
。此统计量可用于执行(同方差)双样本t检验以比较样本均值。
返回的t统计量为
t = (m1 - m2) / (sqrt(1/n1 +1/n2) sqrt(var))
其中
n1
是第一个样本的大小;n2
是第二个样本的大小;m1
是第一个样本的均值;m2
是第二个样本的均值,var
是合并方差估计:var = sqrt(((n1 - 1)var1 + (n2 - 1)var2) / ((n1-1) + (n2-1)))
其中
var1
是第一个样本的方差,var2
是第二个样本的方差。前提条件:
- 由两个Univariates描述的数据集必须至少包含2个观测值。
- 参数:
-
sampleStats1
- 描述第一个样本数据的StatisticalSummary -
sampleStats2
- 描述第二个样本数据的StatisticalSummary - 返回:
- t统计量
- 抛出:
-
NullArgumentException
- 如果样本统计数据为null
-
MathIllegalArgumentException
- 如果样本数量< 2
-
homoscedasticTTest
public static boolean homoscedasticTTest(double[] sample1, double[] sample2, double alpha) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 执行双侧t检验,评估sample1
和sample2
来自具有相同均值的子总体的零假设,显著水平为alpha
,假设子总体方差相等。使用tTest(double[], double[], double)
来执行不考虑方差相等假设的检验。如果可以以置信度
1 - alpha
拒绝均值相等的零假设,则返回true
。要执行单侧检验,请使用alpha * 2.
要执行不考虑相等子总体方差假设的检验,请使用tTest(double[], double[], double)
。使用合并方差估计来计算t统计量。有关公式,请参见
t(double[], double[])
。样本大小之和减2用作自由度。示例:
- 要在95%水平上测试(双侧)假设
mean 1 = mean 2
,请使用tTest(sample1, sample2, 0.05).
- 要在99%水平上测试(单侧)假设
mean 1 < mean 2,
,首先验证sample 1
的测量均值是否小于sample 2
的均值,然后使用tTest(sample1, sample2, 0.02)
使用说明:
测试的有效性取决于参数t检验过程的假设,如此处讨论的这里前提条件:
- 观察到的数组长度必须至少为2。
0 < alpha < 0.5
- 参数:
-
sample1
- 样本数据值数组 -
sample2
- 样本数据值数组 -
alpha
- 检验的显著水平 - 返回:
- 如果可以以置信度1 - alpha拒绝均值相等的零假设,则为true
- 抛出:
-
NullArgumentException
- 如果数组为null
-
MathIllegalArgumentException
- 如果数组长度< 2 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5] -
MathIllegalStateException
- 如果计算p值时发生错误
- 要在95%水平上测试(双侧)假设
-
homoscedasticTTest
public static double homoscedasticTTest(double[] sample1, double[] sample2) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回与假设两个样本来自具有相等方差的子总体的情况下,比较输入数组均值的两样本、双尾t检验相关的观察显著水平或p值。要执行不考虑相等方差假设的检验,请使用tTest(double[], double[])
。返回的数字是可以拒绝两个均值相等的零假设,支持它们不同的双侧备择假设的最小显著水平。对于单侧检验,将返回值除以2。
使用合并方差估计来计算t统计量。有关公式,请参见
homoscedasticT(double[], double[])
。样本大小之和减2用作自由度。使用说明:
p值的有效性取决于参数t检验过程的假设,如此处讨论的这里前提条件:
- 观察到的数组长度必须至少为2。
- 参数:
-
sample1
- 样本数据值数组 -
sample2
- 样本数据值数组 - 返回:
- t检验的p值
- 抛出:
-
NullArgumentException
- 如果数组为null
-
MathIllegalArgumentException
- 如果数组长度< 2 -
MathIllegalStateException
- 如果计算p值时发生错误
-
homoscedasticTTest
public static double homoscedasticTTest(StatisticalSummary sampleStats1, StatisticalSummary sampleStats2) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回两个StatisticalSummary实例描述的数据集的均值进行双样本、双尾t检验的观察显著性水平或p值,在等子总体方差假设下。要执行不等方差假设的检验,请使用tTest(StatisticalSummary, StatisticalSummary)
。返回的数字是可以拒绝零假设(两个均值相等)的最小显著性水平,支持双侧备择假设(两者不同)。对于单侧检验,将返回值除以2。
查看
homoscedasticT(double[], double[])
以计算t统计量的公式。样本大小之和减2用作自由度。使用注意:
p值的有效性取决于参数t检验程序的假设,如此处讨论的链接前提条件:
- 两个Univariates描述的数据集必须至少包含2个观测值。
- 参数:
-
sampleStats1
- 描述第一个样本数据的StatisticalSummary -
sampleStats2
- 描述第二个样本数据的StatisticalSummary - 返回:
- t检验的p值
- 抛出:
-
NullArgumentException
- 如果样本统计数据为null
-
MathIllegalArgumentException
- 如果样本数量小于2 -
MathIllegalStateException
- 如果计算p值时出现错误
-
pairedT
public static double pairedT(double[] sample1, double[] sample2) throws MathIllegalArgumentException, NullArgumentException 根据输入数组中的数据,计算成对的双样本t统计量。返回的t统计量等同于计算单样本t统计量t(double, double[])
,其中mu = 0
,样本数组由sample1
和sample2
中对应条目的(有符号的)差异组成。前提条件:
- 输入数组必须具有相同长度,且它们的共同长度必须至少为2。
- 参数:
-
sample1
- 样本数据值数组 -
sample2
- 样本数据值数组 - 返回:
- t统计量
- 抛出:
-
NullArgumentException
- 如果数组为null
-
MathIllegalArgumentException
- 如果数组为空 -
MathIllegalArgumentException
- 如果数组长度不相等 -
MathIllegalArgumentException
- 如果数组长度小于2
-
pairedTTest
public static boolean pairedTTest(double[] sample1, double[] sample2, double alpha) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 执行成对t检验,评估假设成对差异的均值为0,支持成对差异均值不等于0的双侧备择假设,显著性水平为alpha
。如果可以以置信度
1 - alpha
拒绝零假设,则返回true
。要执行单侧检验,使用alpha * 2
使用注意:
测试的有效性取决于参数t检验程序的假设,如此处讨论的链接前提条件:
- 输入数组长度必须相同,且它们的共同长度必须至少为2。
0 < alpha < 0.5
- 参数:
-
sample1
- 样本数据值数组 -
sample2
- 样本数据值数组 -
alpha
- 测试的显著性水平 - 返回:
- 如果可以以置信度1 - alpha拒绝零假设,则为true
- 抛出:
-
NullArgumentException
- 如果数组为null
-
MathIllegalArgumentException
- 如果数组为空 -
MathIllegalArgumentException
- 如果数组长度不相等 -
MathIllegalArgumentException
- 如果数组长度小于2 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5]内 -
MathIllegalStateException
- 如果计算p值时出现错误
-
pairedTTest
public static double pairedTTest(double[] sample1, double[] sample2) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回基于输入数组中的数据进行成对的双样本双尾t检验的观察显著性水平或p值。返回的数字是可以拒绝成对差异均值为0的零假设的最小显著性水平,支持成对差异均值不等于0的双侧备择假设。对于单侧检验,将返回值除以2。
此检验等同于使用
tTest(double, double[])
计算的单样本t检验,其中mu = 0
,样本数组由sample1
和sample2
中对应元素的有符号差异组成。使用注意:
p值的有效性取决于参数t检验程序的假设,如此处讨论的链接前提条件:
- 输入数组长度必须相同,且它们的共同长度必须至少为2。
- 参数:
-
sample1
- 样本数据值数组 -
sample2
- 样本数据值数组 - 返回:
- t检验的p值
- 抛出:
-
NullArgumentException
- 如果数组为null
-
MathIllegalArgumentException
- 如果数组为空 -
MathIllegalArgumentException
- 如果数组长度不相等 -
MathIllegalArgumentException
- 如果数组长度小于2 -
MathIllegalStateException
- 如果计算p值时出现错误
-
t
public static double t(double mu, double[] observed) throws MathIllegalArgumentException, NullArgumentException - 参数:
-
mu
- 比较常数 -
observed
- 值数组 - 返回:
- t统计量
- 抛出:
-
NullArgumentException
- 如果observed
为null
-
MathIllegalArgumentException
- 如果observed
的长度小于2
-
t
public static double t(double mu, StatisticalSummary sampleStats) throws MathIllegalArgumentException, NullArgumentException - 参数:
-
mu
- 比较常数 -
sampleStats
- 包含样本摘要统计信息的DescriptiveStatistics - 返回:
- t统计量
- 抛出:
-
NullArgumentException
- 如果sampleStats
为null
-
MathIllegalArgumentException
- 如果样本数量小于2
-
t
public static double t(double[] sample1, double[] sample2) throws MathIllegalArgumentException, NullArgumentException 计算双样本t统计量,不假设等子总体方差。要假设等方差计算t统计量,请使用homoscedasticT(double[], double[])
。此统计量可用于执行双样本t检验以比较样本均值。
t统计量为
t = (m1 - m2) / sqrt(var1/n1 + var2/n2)
其中
n1
是第一个样本的大小,n2
是第二个样本的大小;m1
是第一个样本的均值;m2
是第二个样本的均值;var1
是第一个样本的方差;var2
是第二个样本的方差;前提条件:
- 观察数组长度必须都至少为2。
- 参数:
-
sample1
- 样本数据值数组 -
sample2
- 样本数据值数组 - 返回:
- t统计量
- 抛出:
-
NullArgumentException
- 如果数组为null
-
MathIllegalArgumentException
- 如果数组长度< 2
-
t
public static double t(StatisticalSummary sampleStats1, StatisticalSummary sampleStats2) throws MathIllegalArgumentException, NullArgumentException 计算2样本t统计量,比较由两个StatisticalSummary
实例描述的数据集的均值,不假设子总体方差相等。使用homoscedasticT(StatisticalSummary, StatisticalSummary)
来在等方差假设下计算t统计量。此统计量可用于执行双样本t检验以比较样本均值。
返回的t统计量为
t = (m1 - m2) / sqrt(var1/n1 + var2/n2)
其中
n1
是第一个样本的大小;n2
是第二个样本的大小;m1
是第一个样本的均值;m2
是第二个样本的均值;var1
是第一个样本的方差;var2
是第二个样本的方差前提条件:
- 由两个Univariates描述的数据集必须至少包含2个观测值。
- 参数:
-
sampleStats1
- 描述第一个样本数据的StatisticalSummary -
sampleStats2
- 描述第二个样本数据的StatisticalSummary - 返回:
- t统计量
- 抛出:
-
NullArgumentException
- 如果样本统计数据为null
-
MathIllegalArgumentException
- 如果样本数量< 2
-
tTest
public static boolean tTest(double mu, double[] sample, double alpha) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 执行双侧t检验,评估从sample
抽取的总体均值等于mu
的零假设。返回
true
,当且仅当可以以置信度1 - alpha
拒绝零假设。要执行单侧检验,请使用alpha * 2
示例:
- 要在95%水平下测试(双侧)假设
样本均值 = mu
,使用tTest(mu, sample, 0.05)
- 要在99%水平下测试(单侧)假设
样本均值 < mu
,首先验证测得的样本均值是否小于mu
,然后使用tTest(mu, sample, 0.02)
使用说明:
测试的有效性取决于单样本参数t检验程序的假设,如此处讨论的这里前提条件:
- 观察数组长度必须至少为2。
- 参数:
-
mu
- 与样本均值比较的常数值 -
sample
- 样本数据值数组 -
alpha
- 测试的显著性水平 - 返回:
- p值
- 抛出:
-
NullArgumentException
- 如果样本数组为null
-
MathIllegalArgumentException
- 如果数组长度< 2 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5]内 -
MathIllegalStateException
- 如果计算p值时出现错误
- 要在95%水平下测试(双侧)假设
-
tTest
public static double tTest(double mu, double[] sample) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回与一样本双侧t检验相关的观察到的显著性水平或p值,比较输入数组的均值与常数mu
。返回的数字是可以拒绝均值等于
mu
的零假设的最小显著性水平,以支持均值与mu
不同的双侧备择假设。对于单侧检验,将返回值除以2。使用说明:
测试的有效性取决于参数t检验程序的假设,如此处讨论的这里前提条件:
- 观察数组长度必须至少为2。
- 参数:
-
mu
- 与样本均值比较的常数值 -
sample
- 样本数据值数组 - 返回:
- p值
- 抛出:
-
NullArgumentException
- 如果样本数组为null
-
MathIllegalArgumentException
- 如果数组长度< 2 -
MathIllegalStateException
- 如果计算p值时出现错误
-
tTest
public static boolean tTest(double mu, StatisticalSummary sampleStats, double alpha) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 执行双侧t检验,评估由stats
描述的数据集抽取的总体均值等于mu
的零假设。返回
true
,当且仅当可以以置信度1 - alpha
拒绝零假设。要执行单侧检验,请使用alpha * 2.
示例:
- 要在95%水平下测试(双侧)假设
样本均值 = mu
,使用tTest(mu, sampleStats, 0.05)
- 要在99%水平下测试(单侧)假设
样本均值 < mu
,首先验证测得的样本均值是否小于mu
,然后使用tTest(mu, sampleStats, 0.02)
使用说明:
测试的有效性取决于参数t检验程序的假设,如此处讨论的这里前提条件:
- 样本必须包含至少2个观测值。
- 参数:
-
mu
- 与样本均值比较的常数值 -
sampleStats
- 描述样本数据值的StatisticalSummary -
alpha
- 测试的显著性水平 - 返回:
- p值
- 抛出:
-
NullArgumentException
- 如果sampleStats
为null
-
MathIllegalArgumentException
- 如果样本数量< 2 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5]内 -
MathIllegalStateException
- 如果计算p值时出现错误
- 要在95%水平下测试(双侧)假设
-
tTest
public static double tTest(double mu, StatisticalSummary sampleStats) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回与由sampleStats
描述的数据集的均值与常数mu
进行一样本双侧t检验相关的观察到的显著性水平或p值。返回的数字是可以拒绝均值等于
mu
的零假设的最小显著性水平,以支持均值与mu
不同的双侧备择假设。对于单侧检验,将返回值除以2。使用说明:
测试的有效性取决于参数t检验程序的假设,如此处讨论的这里前提条件:
- 样本必须包含至少2个观测值。
- 参数:
-
mu
- 与样本均值比较的常数值 -
sampleStats
- 描述样本数据的StatisticalSummary - 返回:
- p值
- 抛出:
-
NullArgumentException
- 如果sampleStats
为null
-
MathIllegalArgumentException
- 如果样本数量< 2 -
MathIllegalStateException
- 如果计算p值时出现错误
-
tTest
public static boolean tTest(double[] sample1, double[] sample2, double alpha) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 执行双侧t检验,评估sample1
和sample2
来自具有相同均值的总体的零假设,显著性水平为alpha
。此检验不假设子总体方差相等。要执行假设方差相等的检验,请使用homoscedasticTTest(double[], double[], double)
。返回
true
,当可以有信心拒绝均值相等的零假设时,置信度为1 - alpha
。要执行单侧检验,请使用alpha * 2
查看
t(double[], double[])
以计算t统计量所使用的公式。自由度使用韦尔奇-萨特斯韦特近似进行估算。示例:
- 要在95%水平上测试(双侧)假设
均值1 = 均值2
,使用tTest(sample1, sample2, 0.05)
- 要在99%水平上测试(单侧)假设
均值1 < 均值2
,首先验证sample 1
的测量均值是否小于sample 2
的均值,然后使用tTest(sample1, sample2, 0.02)
使用注意:
测试的有效性取决于参数t检验过程的假设,如此处所述这里前提条件:
- 观察到的数组长度必须至少为2。
0 < alpha < 0.5
- 参数:
-
sample1
- 样本数据值数组 -
sample2
- 样本数据值数组 -
alpha
- 测试的显著性水平 - 返回:
- 如果可以有信心拒绝均值相等的零假设,则为true
- 抛出:
-
NullArgumentException
- 如果数组为null
-
MathIllegalArgumentException
- 如果数组长度<2 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5] -
MathIllegalStateException
- 如果计算p值时发生错误
- 要在95%水平上测试(双侧)假设
-
tTest
public static double tTest(double[] sample1, double[] sample2) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回与两个输入数组的均值进行比较的双样本、双侧t检验相关的观察到的显著性水平或p值。返回的数字是可以拒绝两个均值相等的零假设的最小显著性水平,支持它们不同的双侧备择假设。对于单侧检验,将返回值除以2。
该检验不假设基础总体方差相等,并使用从样本数据计算的近似自由度来计算p值。使用的t统计量如
t(double[], double[])
中定义的,并使用韦尔奇-萨特斯韦特近似来计算自由度,如此处描述这里。要在假设方差相等的情况下执行检验,请使用homoscedasticTTest(double[], double[])
。使用注意:
p值的有效性取决于参数t检验过程的假设,如此处所述这里前提条件:
- 观察到的数组长度必须至少为2。
- 参数:
-
sample1
- 样本数据值数组 -
sample2
- 样本数据值数组 - 返回:
- t检验的p值
- 抛出:
-
NullArgumentException
- 如果数组为null
-
MathIllegalArgumentException
- 如果数组长度<2 -
MathIllegalStateException
- 如果计算p值时发生错误
-
tTest
public static boolean tTest(StatisticalSummary sampleStats1, StatisticalSummary sampleStats2, double alpha) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 执行双侧t检验,评估sampleStats1
和sampleStats2
描述的数据集来自具有相同均值的总体的零假设,显著性水平为alpha
。此检验不假设子总体方差相等。要在假设方差相等的情况下执行检验,请使用homoscedasticTTest(StatisticalSummary, StatisticalSummary)
。返回
true
,当可以有信心拒绝均值相等的零假设时,置信度为1 - alpha
。要执行单侧检验,请使用alpha * 2
查看
t(double[], double[])
以计算t统计量所使用的公式。自由度使用韦尔奇-萨特斯韦特近似进行估算。示例:
- 要在95%水平上测试(双侧)假设
均值1 = 均值2
,使用tTest(sampleStats1, sampleStats2, 0.05)
- 要在99%水平上测试(单侧)假设
均值1 < 均值2
,首先验证sample 1
的测量均值是否小于sample 2
的均值,然后使用tTest(sampleStats1, sampleStats2, 0.02)
使用注意:
测试的有效性取决于参数t检验过程的假设,如此处所述这里前提条件:
- 由两个Univariates描述的数据集必须至少包含2个观测值。
0 < alpha < 0.5
- 参数:
-
sampleStats1
- 描述样本数据值的StatisticalSummary -
sampleStats2
- 描述样本数据值的StatisticalSummary -
alpha
- 测试的显著性水平 - 返回:
- 如果可以有信心拒绝均值相等的零假设,则为true
- 抛出:
-
NullArgumentException
- 如果样本统计数据为null
-
MathIllegalArgumentException
- 如果样本数<2 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5] -
MathIllegalStateException
- 如果计算p值时发生错误
- 要在95%水平上测试(双侧)假设
-
tTest
public static double tTest(StatisticalSummary sampleStats1, StatisticalSummary sampleStats2) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回与两个StatisticalSummary实例描述的数据集的均值进行比较的双样本、双侧t检验相关的观察到的显著性水平或p值。返回的数字是可以拒绝两个均值相等的零假设的最小显著性水平,支持它们不同的双侧备择假设。对于单侧检验,将返回值除以2。
该检验不假设基础总体方差相等,并使用从样本数据计算的近似自由度来计算p值。要执行假设方差相等的检验,请使用
homoscedasticTTest(StatisticalSummary, StatisticalSummary)
。使用注意:
p值的有效性取决于参数t检验过程的假设,如此处所述这里前提条件:
- 由两个Univariates描述的数据集必须至少包含2个观测值。
- 参数:
-
sampleStats1
- 描述第一个样本数据的StatisticalSummary -
sampleStats2
- 描述第二个样本数据的StatisticalSummary - 返回:
- t检验的p值
- 抛出:
-
NullArgumentException
- 如果样本统计数据为null
-
MathIllegalArgumentException
- 如果样本数<2 -
MathIllegalStateException
- 如果计算p值时发生错误
-
chiSquare
public static double chiSquare(double[] expected, long[] observed) throws MathIllegalArgumentException 计算比较observed
和expected
频率计数的卡方统计量。此统计量可用于执行卡方检验,评估观察计数是否遵循预期分布的零假设。
前提条件:
- 预期计数必须全部为正数。
- 观察计数必须全部≥ 0。
- 观察和预期数组必须具有相同长度,它们的共同长度必须至少为2。
如果不满足任何前提条件,则会抛出
IllegalArgumentException
。注意:此实现会根据需要重新调整
expected
数组,以确保预期计数和观察计数的总和相等。- 参数:
-
expected
- 预期频率计数的数组 -
observed
- 观察到的频率计数的数组 - 返回:
- 卡方检验统计量
- 抛出:
-
MathIllegalArgumentException
- 如果observed
具有负条目 -
MathIllegalArgumentException
- 如果expected
具有不严格正条目 -
MathIllegalArgumentException
- 如果数组长度小于2
-
chiSquare
public static double chiSquare(long[][] counts) throws MathIllegalArgumentException, NullArgumentException 计算与输入counts
数组相关的卡方统计量,将其视为二维表的卡方独立性检验。2维表的行是
count[0], ... , count[count.length - 1]
前提条件:
- 所有计数必须≥ 0。
- 计数数组必须是矩形的(即所有count[i]子数组的长度必须相同)。
- 由
counts
表示的2维表必须至少有2列和至少2行。
如果不满足任何前提条件,则会抛出
IllegalArgumentException
。- 参数:
-
counts
- 2维表的数组表示 - 返回:
- 卡方检验统计量
- 抛出:
-
NullArgumentException
- 如果数组为null -
MathIllegalArgumentException
- 如果数组不是矩形的 -
MathIllegalArgumentException
- 如果counts
具有负条目
-
chiSquareTest
public static boolean chiSquareTest(double[] expected, long[] observed, double alpha) throws MathIllegalArgumentException, MathIllegalStateException 执行卡方拟合优度检验,评估观察计数是否符合由预期计数描述的频率分布的零假设,显著性水平为alpha
。如果可以以100 *(1 - alpha)百分比的置信度拒绝零假设,则返回true。示例:
要测试观察值observed
是否在99%水平上遵循expected
的假设,请使用chiSquareTest(expected, observed, 0.01)
前提条件:
- 预期计数必须全部为正数。
- 观察计数必须全部≥ 0。
- 观察和预期数组必须具有相同的长度,它们的共同长度必须至少为2。
0 < alpha < 0.5
如果不满足任何前提条件,则会抛出
IllegalArgumentException
。注意: 如果需要,此实现将重新调整
expected
数组,以确保预期计数和观察计数的总和相等。- 参数:
-
expected
- 预期频率计数的数组 -
observed
- 观察到的频率计数的数组 -
alpha
- 测试的显著性水平 - 返回:
- 如果可以以置信度1 - alpha拒绝零假设,则为true
- 抛出:
-
MathIllegalArgumentException
- 如果observed
具有负条目 -
MathIllegalArgumentException
- 如果expected
具有不严格正条目 -
MathIllegalArgumentException
- 如果数组长度小于2 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5]内 -
MathIllegalStateException
- 如果计算p值时发生错误
-
chiSquareTest
public static double chiSquareTest(double[] expected, long[] observed) throws MathIllegalArgumentException, MathIllegalStateException 返回与observed
频率计数与expected
数组中描述的频率分布相符的观察到的显著性水平,或p值。返回的数字是可以拒绝观察计数符合由预期计数描述的频率分布的零假设的最小显著性水平。
前提条件:
- 预期计数必须全部为正数。
- 观察计数必须全部≥ 0。
- 观察和预期数组必须具有相同的长度,它们的共同长度必须至少为2。
如果不满足任何前提条件,则会抛出
IllegalArgumentException
。注意: 如果需要,此实现将重新调整
expected
数组,以确保预期计数和观察计数的总和相等。- 参数:
-
expected
- 预期频率计数的数组 -
observed
- 观察到的频率计数的数组 - 返回:
- p值
- 抛出:
-
MathIllegalArgumentException
- 如果observed
具有负条目 -
MathIllegalArgumentException
- 如果expected
具有不严格正条目 -
MathIllegalArgumentException
- 如果数组长度小于2 -
MathIllegalStateException
- 如果计算p值时发生错误
-
chiSquareTest
public static boolean chiSquareTest(long[][] counts, double alpha) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 执行卡方独立性检验,评估输入2维表的列中计数所代表的分类是否独立于行的零假设,显著性水平为alpha
。如果可以以100 *(1 - alpha)百分比的置信度拒绝零假设,则返回true。2维表的行是
count[0], ... , count[count.length - 1]
示例:
要在99%水平上测试count[0], ... , count[count.length - 1]
中的计数是否都对应于相同的潜在概率分布,请使用chiSquareTest(counts, 0.01)
。前提条件:
- 所有计数必须≥ 0。
- 计数数组必须是矩形的(即所有count[i]子数组的长度必须相同)。
- 由
counts
表示的2维表必须至少有2列和至少2行。
如果不满足任何前提条件,则会抛出
IllegalArgumentException
。- 参数:
-
counts
- 2维表的数组表示 -
alpha
- 测试的显著性水平 - 返回:
- 如果可以以置信度1 - alpha拒绝零假设,则为true
- 抛出:
-
NullArgumentException
- 如果数组为null -
MathIllegalArgumentException
- 如果数组不是矩形的 -
MathIllegalArgumentException
- 如果counts
具有任何负条目 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5]内 -
MathIllegalStateException
- 如果计算p值时发生错误
-
chiSquareTest
public static double chiSquareTest(long[][] counts) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 返回与counts
数组作为二维表视图的卡方独立性检验相关的观察到的显著性水平,或p值。2维表的行是
count[0], ... , count[count.length - 1]
前提条件:
- 所有计数必须≥ 0。
- 计数数组必须是矩形的(即所有count[i]子数组的长度必须相同)。
- 由
counts
表示的2维表必须至少有2列和至少2行。
如果不满足任何前提条件,则会抛出
IllegalArgumentException
。- 参数:
-
counts
- 2维表的数组表示 - 返回:
- p值
- 抛出:
-
NullArgumentException
- 如果数组为null -
MathIllegalArgumentException
- 如果数组不是矩形的 -
MathIllegalArgumentException
- 如果counts
具有负条目 -
MathIllegalStateException
- 如果计算p值时发生错误
-
chiSquareDataSetsComparison
public static double chiSquareDataSetsComparison(long[] observed1, long[] observed2) throws MathIllegalArgumentException 计算一个卡方双样本检验统计量,比较observed1
和observed2
中的频率计数。两个样本的频率计数之和不需要相同。用于计算检验统计量的公式为
∑[(K * observed1[i] - observed2[i]/K)2 / (observed1[i] + observed2[i])]
其中
K = √[∑(observed2 / ∑(observed1)]
此统计量可用于执行卡方检验,评估观察计数是否遵循相同的分布的零假设。
前提条件:
- 观察计数必须是非负的。
- 特定箱子的观察计数不能都为零。
- 特定样本的观察计数不能全部为0。
- 数组
observed1
和observed2
必须具有相同的长度,它们的共同长度必须至少为2。
如果不满足任何前提条件,则会抛出一个
IllegalArgumentException
。- 参数:
-
observed1
- 第一个数据集的观察频率计数数组 -
observed2
- 第二个数据集的观察频率计数数组 - 返回:
- 卡方检验统计量
- 抛出:
-
MathIllegalArgumentException
- 数组的长度不匹配 -
MathIllegalArgumentException
- 如果observed1
或observed2
中的任何条目为负数 -
MathIllegalArgumentException
- 如果observed1
或observed2
的所有计数都为零,或者如果两个数组在相同索引处的计数都为零
-
chiSquareTestDataSetsComparison
public static double chiSquareTestDataSetsComparison(long[] observed1, long[] observed2) throws MathIllegalArgumentException, MathIllegalStateException 返回与比较observed1
和observed2
中的频率计数的卡方双样本检验相关联的观察显著水平,或p值。返回的数字是可以拒绝观察计数符合相同分布的零假设的最小显著水平。
有关用于计算检验统计量的公式的详细信息,请参见
chiSquareDataSetsComparison(long[], long[])
。用于执行测试的自由度比输入观察计数数组的公共长度少一个。前提条件:
- 观察计数必须是非负的。
- 特定箱子的观察计数不能都为零。
- 特定样本的观察计数不能全部为0。
- 数组
observed1
和observed2
必须具有相同的长度,它们的共同长度必须至少为2。
如果不满足任何前提条件,则会抛出一个
IllegalArgumentException
。- 参数:
-
observed1
- 第一个数据集的观察频率计数数组 -
observed2
- 第二个数据集的观察频率计数数组 - 返回:
- p值
- 抛出:
-
MathIllegalArgumentException
- 数组的长度不匹配 -
MathIllegalArgumentException
- 如果observed1
或observed2
中的任何条目为负数 -
MathIllegalArgumentException
- 如果observed1
或observed2
的所有计数都为零,或者如果两个数组在相同索引处的计数都为零 -
MathIllegalStateException
- 如果计算p值时发生错误
-
chiSquareTestDataSetsComparison
public static boolean chiSquareTestDataSetsComparison(long[] observed1, long[] observed2, double alpha) throws MathIllegalArgumentException, MathIllegalStateException 执行卡方双样本检验,比较两个分组数据集。该检验评估了两个观察计数列表符合相同频率分布的零假设,显著水平为alpha
。如果可以以100 * (1 - alpha)百分比的置信度拒绝零假设,则返回true。有关用于计算测试中使用的卡方统计量的公式的详细信息,请参见
chiSquareDataSetsComparison(long[], long[])
。用于执行测试的自由度比输入观察计数数组的公共长度少一个。前提条件:
- 观察计数必须是非负的。
- 特定箱子的观察计数不能都为零。
- 特定样本的观察计数不能全部为0。
- 数组
observed1
和observed2
必须具有相同的长度,它们的共同长度必须至少为2。 0 < alpha < 0.5
如果不满足任何前提条件,则会抛出一个
IllegalArgumentException
。- 参数:
-
observed1
- 第一个数据集的观察频率计数数组 -
observed2
- 第二个数据集的观察频率计数数组 -
alpha
- 测试的显著水平 - 返回:
- 如果可以以置信度1 - alpha拒绝零假设,则为true
- 抛出:
-
MathIllegalArgumentException
- 数组的长度不匹配 -
MathIllegalArgumentException
- 如果observed1
或observed2
中的任何条目为负数 -
MathIllegalArgumentException
- 如果observed1
或observed2
的所有计数都为零,或者如果两个数组在相同索引处的计数都为零 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5]内 -
MathIllegalStateException
- 执行测试时发生错误
-
oneWayAnovaFValue
public static double oneWayAnovaFValue(Collection<double[]> categoryData) throws MathIllegalArgumentException, NullArgumentException 计算一组double[]
数组的ANOVA F值。前提条件:
categoryData
Collection
必须包含double[]
数组。categoryData
集合中必须至少有两个double[]
数组,每个数组必须包含至少两个值。
此实现使用定义公式计算F统计量
F = msbg/mswg
其中
msbg = 组间均方 mswg = 组内均方
如此处所定义 这里
- 参数:
-
categoryData
- 包含每个类别数据的double[]
数组的Collection
- 返回:
- F值
- 抛出:
-
NullArgumentException
- 如果categoryData
为null
-
MathIllegalArgumentException
- 如果categoryData
数组的长度小于2或包含的double[]
数组没有至少两个值
-
oneWayAnovaPValue
public static double oneWayAnovaPValue(Collection<double[]> categoryData) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 计算一组double[]
数组的ANOVA P值。前提条件:
categoryData
Collection
必须包含double[]
数组。categoryData
集合中必须至少有两个double[]
数组,每个数组必须包含至少两个值。
此实现使用
Hipparchus F分布实现
来估计精确的p值,使用公式p = 1 - cumulativeProbability(F)
其中
F
是F值,cumulativeProbability
是F分布的Hipparchus实现。- 参数:
-
categoryData
- 包含每个类别数据的double[]
数组的Collection
- 返回:
- P值
- 抛出:
-
NullArgumentException
- 如果categoryData
为null
-
MathIllegalArgumentException
- 如果categoryData
数组的长度小于2或包含的double[]
数组没有至少两个值 -
MathIllegalStateException
- 如果由于收敛错误而无法计算p值 -
MathIllegalStateException
- 如果超过最大迭代次数
-
oneWayAnovaTest
public static boolean oneWayAnovaTest(Collection<double[]> categoryData, double alpha) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException Performs an ANOVA test, evaluating the null hypothesis that there is no difference among the means of the data categories.Preconditions:
- The categoryData
Collection
must containdouble[]
arrays. - There must be at least two
double[]
arrays in thecategoryData
collection and each of these arrays must contain at least two values. - alpha must be strictly greater than 0 and less than or equal to 0.5.
This implementation uses the
Hipparchus F Distribution implementation
to estimate the exact p-value, using the formulap = 1 - cumulativeProbability(F)
where
F
is the F value andcumulativeProbability
is the Hipparchus implementation of the F distribution.True is returned iff the estimated p-value is less than alpha.
- 参数:
-
categoryData
-Collection
ofdouble[]
arrays each containing data for one category -
alpha
- significance level of the test - 返回:
- true if the null hypothesis can be rejected with confidence 1 - alpha
- 抛出:
-
NullArgumentException
- ifcategoryData
isnull
-
MathIllegalArgumentException
- if the length of thecategoryData
array is less than 2 or a containeddouble[]
array does not have at least two values -
MathIllegalArgumentException
- ifalpha
is not in the range (0, 0.5] -
MathIllegalStateException
- if the p-value can not be computed due to a convergence error -
MathIllegalStateException
- if the maximum number of iterations is exceeded
- The categoryData
-
g
Computes the G statistic for Goodness of Fit comparingobserved
andexpected
frequency counts.This statistic can be used to perform a G test (Log-Likelihood Ratio Test) evaluating the null hypothesis that the observed counts follow the expected distribution.
Preconditions:
- Expected counts must all be positive.
- Observed counts must all be ≥ 0.
- The observed and expected arrays must have the same length and their common length must be at least 2.
If any of the preconditions are not met, a
MathIllegalArgumentException
is thrown.Note:This implementation rescales the
expected
array if necessary to ensure that the sum of the expected and observed counts are equal.- 参数:
-
expected
- array of expected frequency counts -
observed
- array of observed frequency counts - 返回:
- G-Test statistic
- 抛出:
-
MathIllegalArgumentException
- ifobserved
has negative entries -
MathIllegalArgumentException
- ifexpected
has entries that are not strictly positive -
MathIllegalArgumentException
- if the array lengths do not match or are less than 2.
-
gTest
public static double gTest(double[] expected, long[] observed) throws MathIllegalArgumentException, MathIllegalStateException Returns the observed significance level, or p-value, associated with a G-Test for goodness of fit comparing theobserved
frequency counts to those in theexpected
array.The number returned is the smallest significance level at which one can reject the null hypothesis that the observed counts conform to the frequency distribution described by the expected counts.
The probability returned is the tail probability beyond
g(expected, observed)
in the ChiSquare distribution with degrees of freedom one less than the common length ofexpected
andobserved
.Preconditions:
- Expected counts must all be positive.
- Observed counts must all be ≥ 0.
- The observed and expected arrays must have the same length and their common length must be at least 2.
If any of the preconditions are not met, a
MathIllegalArgumentException
is thrown.Note:This implementation rescales the
expected
array if necessary to ensure that the sum of the expected and observed counts are equal.- 参数:
-
expected
- array of expected frequency counts -
observed
- array of observed frequency counts - 返回:
- p-value
- 抛出:
-
MathIllegalArgumentException
- ifobserved
has negative entries -
MathIllegalArgumentException
- ifexpected
has entries that are not strictly positive -
MathIllegalArgumentException
- if the array lengths do not match or are less than 2. -
MathIllegalStateException
- if an error occurs computing the p-value.
-
gTestIntrinsic
public static double gTestIntrinsic(double[] expected, long[] observed) throws MathIllegalArgumentException, MathIllegalStateException Returns the intrinsic (Hardy-Weinberg proportions) p-Value, as described in p64-69 of McDonald, J.H. 2009. Handbook of Biological Statistics (2nd ed.). Sparky House Publishing, Baltimore, Maryland.The probability returned is the tail probability beyond
g(expected, observed)
in the ChiSquare distribution with degrees of freedom two less than the common length ofexpected
andobserved
.- 参数:
-
expected
- array of expected frequency counts -
observed
- array of observed frequency counts - 返回:
- p-value
- 抛出:
-
MathIllegalArgumentException
- ifobserved
has negative entries -
MathIllegalArgumentException
-expected
has entries that are not strictly positive -
MathIllegalArgumentException
- if the array lengths do not match or are less than 2. -
MathIllegalStateException
- if an error occurs computing the p-value.
-
gTest
public static boolean gTest(double[] expected, long[] observed, double alpha) throws MathIllegalArgumentException, MathIllegalStateException Performs a G-Test (Log-Likelihood Ratio Test) for goodness of fit evaluating the null hypothesis that the observed counts conform to the frequency distribution described by the expected counts, with significance levelalpha
. Returns true iff the null hypothesis can be rejected with100 * (1 - alpha)
percent confidence.Example:
To test the hypothesis thatobserved
followsexpected
at the 99% level, usegTest(expected, observed, 0.01)
Returns true iff
gTestGoodnessOfFitPValue(expected, observed)
> alphaPreconditions:
- Expected counts must all be positive.
- Observed counts must all be ≥ 0.
- The observed and expected arrays must have the same length and their common length must be at least 2.
0 < alpha < 0.5
If any of the preconditions are not met, a
MathIllegalArgumentException
is thrown.Note:This implementation rescales the
expected
array if necessary to ensure that the sum of the expected and observed counts are equal.- 参数:
-
expected
- array of expected frequency counts -
observed
- array of observed frequency counts -
alpha
- significance level of the test - 返回:
- true iff null hypothesis can be rejected with confidence 1 - alpha
- 抛出:
-
MathIllegalArgumentException
- ifobserved
has negative entries -
MathIllegalArgumentException
- ifexpected
has entries that are not strictly positive -
MathIllegalArgumentException
- if the array lengths do not match or are less than 2. -
MathIllegalStateException
- if an error occurs computing the p-value. -
MathIllegalArgumentException
- if alpha is not strictly greater than zero and less than or equal to 0.5
-
gDataSetsComparison
public static double gDataSetsComparison(long[] observed1, long[] observed2) throws MathIllegalArgumentException 计算独立性的G(对数似然比)双样本检验统计量,比较
observed1
和observed2
中的频率计数。两个样本的频率计数之和不需要相同。用于计算检验统计量的公式为2 * totalSum * [H(rowSums) + H(colSums) - H(k)]
其中
H
是将参数数组的元素视为发生计数形成的随机变量的香农熵;k
是一个具有行[observed1, observed2]
的矩阵;rowSums, colSums
是k
的行/列和;
而totalSum
是k
中所有条目的总和。此统计量可用于执行G检验,评估观察计数是否独立
前提条件:
- 观察计数必须为非负数。
- 特定箱的观察计数不能都为零。
- 特定样本的观察计数不能都为0。
- 数组
observed1
和observed2
必须具有相同的长度,它们的公共长度必须至少为2。
如果不满足任何前提条件,则会抛出
MathIllegalArgumentException
。- 参数:
-
observed1
- 第一个数据集的观察频率计数数组 -
observed2
- 第二个数据集的观察频率计数数组 - 返回:
- G-检验统计量
- 抛出:
-
MathIllegalArgumentException
- 数组的长度不匹配或它们的公共长度小于2 -
MathIllegalArgumentException
- 如果observed1
或observed2
中的任何条目为负数 -
MathIllegalArgumentException
- 如果observed1
或observed2
的所有计数都为零,或者如果相同索引处的计数对于两个数组都为零。
-
rootLogLikelihoodRatio
public static double rootLogLikelihoodRatio(long k11, long k12, long k21, long k22) throws MathIllegalArgumentException 计算两个状态数据集的根对数似然比。参见gDataSetsComparison(long[], long[])
。给定两个事件A和B,设k11为两个事件同时发生的次数,k12为B发生而A不发生的次数,k21为A发生而B不发生的次数,k22为既不发生A也不发生B的次数。此方法返回的是
(sgn) sqrt(gValueDataSetsComparison({k11, k12}, {k21, k22})
其中
sgn
为-1,如果k11 / (k11 + k12) < k21 / (k21 + k22))
;
否则为1。有符号的根LLR相对于基本LLR有两个优点:a)当k11大于预期时为正,小于预期时为负 b)如果没有差异,它在渐近情况下服从正态分布。这使得可以谈论“标准偏差的数量”,这是比卡方分布更常见的参考框架。
- 参数:
-
k11
- 两个事件同时发生的次数(AB) -
k12
- 第二个事件发生而第一个事件未发生的次数(非A,B) -
k21
- 第一个事件发生而第二个事件未发生的次数(A,非B) -
k22
- 其他事件发生的次数(即既不是这两个事件的事件(非A,非B)) - 返回:
- 根对数似然比
- 抛出:
-
MathIllegalArgumentException
-
gTestDataSetsComparison
public static double gTestDataSetsComparison(long[] observed1, long[] observed2) throws MathIllegalArgumentException, MathIllegalStateException 返回与G值(对数似然比)相关的两个样本检验中比较
observed1
和observed2
中的箱频率计数的观察显著水平或p值。返回的数字是可以拒绝观察计数符合相同分布的零假设的最小显著水平。
有关如何计算p值的详细信息,请参见
gTest(double[], long[])
。用于执行测试的自由度比输入观察计数数组的公共长度少一个。前提条件:
- 观察计数必须为非负数。
- 特定箱的观察计数不能都为零。
- 特定样本的观察计数不能都为0。
- 数组
observed1
和observed2
必须具有相同的长度,它们的公共长度必须至少为2。
如果不满足任何前提条件,则会抛出
MathIllegalArgumentException
。- 参数:
-
observed1
- 第一个数据集的观察频率计数数组 -
observed2
- 第二个数据集的观察频率计数数组 - 返回:
- p值
- 抛出:
-
MathIllegalArgumentException
- 数组的长度不匹配或它们的公共长度小于2 -
MathIllegalArgumentException
- 如果observed1
或observed2
中的任何条目为负数 -
MathIllegalArgumentException
- 如果observed1
或observed2
的所有计数都为零,或者如果某个索引处的计数对于两个数组都为零 -
MathIllegalStateException
- 如果计算p值时发生错误。
-
gTestDataSetsComparison
public static boolean gTestDataSetsComparison(long[] observed1, long[] observed2, double alpha) throws MathIllegalArgumentException, MathIllegalStateException 执行G-检验(对数似然比检验),比较两个分组数据集。该检验评估了两个观察计数列表符合相同频率分布的零假设,显著水平为
alpha
。如果可以以100 *(1- alpha)百分比的置信度拒绝零假设,则返回true。有关用于计算测试中使用的G(LLR)统计量的公式的详细信息,请参见
gDataSetsComparison(long[], long[])
,有关如何计算观察显著水平的信息,请参见gTest(double[], long[])
。用于执行测试的自由度比输入观察计数数组的公共长度少一个。前提条件:
- 观察计数必须为非负数。
- 特定箱的观察计数不能都为零。
- 特定样本的观察计数不能都为0。
- 数组
observed1
和observed2
必须具有相同的长度,它们的公共长度必须至少为2。 0 < alpha < 0.5
如果不满足任何前提条件,则会抛出
MathIllegalArgumentException
。- 参数:
-
observed1
- 第一个数据集的观察频率计数数组 -
observed2
- 第二个数据集的观察频率计数数组 -
alpha
- 测试的显著水平 - 返回:
- 如果可以以置信度1 - alpha拒绝零假设,则为true
- 抛出:
-
MathIllegalArgumentException
- 数组的长度不匹配 -
MathIllegalArgumentException
- 如果observed1
或observed2
中的任何条目为负数 -
MathIllegalArgumentException
- 如果observed1
或observed2
的所有计数都为零,或者如果某个索引处的计数对于两个数组都为零 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5]内 -
MathIllegalStateException
- 如果执行测试时发生错误
-
kolmogorovSmirnovStatistic
public static double kolmogorovSmirnovStatistic(RealDistribution dist, double[] data) throws MathIllegalArgumentException, NullArgumentException 计算一样本Kolmogorov-Smirnov检验统计量,\(D_n=\sup_x |F_n(x)-F(x)|\),其中\(F\)是与distribution
相关的分布(cdf)函数,\(n\)是data
的长度,\(F_n\)是将质量\(1/n\)放在data
中的每个值上的经验分布。- 参数:
-
dist
- 参考分布 -
data
- 正在评估的样本 - 返回:
- Kolmogorov-Smirnov统计量\(D_n\)
- 抛出:
-
MathIllegalArgumentException
- 如果data
的长度不至少为2 -
NullArgumentException
- 如果data
为null
-
kolmogorovSmirnovTest
public static double kolmogorovSmirnovTest(RealDistribution dist, double[] data) throws MathIllegalArgumentException, NullArgumentException - 参数:
-
dist
- 参考分布 -
data
- 正在评估的样本 - 返回:
-
与零假设相关的
data
是来自distribution
的样本的p值 - 抛出:
-
MathIllegalArgumentException
- 如果data
的长度不至少为2 -
NullArgumentException
- 如果data
为null
-
kolmogorovSmirnovTest
public static double kolmogorovSmirnovTest(RealDistribution dist, double[] data, boolean strict) throws MathIllegalArgumentException, NullArgumentException 计算一个样本的Kolmogorov-Smirnov检验的p值,或观察到的显著水平,评估data
符合distribution
的零假设。如果exact
为true,则用扩展精度计算用于计算p值的分布。参见KolmogorovSmirnovTest.cdfExact(double, int)
。- 参数:
-
dist
- 参考分布 -
data
- 正在评估的样本 -
strict
- 是否强制精确计算p值 - 返回:
-
与零假设相关的p值,即
data
是来自distribution
的样本的概率 - 抛出:
-
MathIllegalArgumentException
- 如果data
的长度小于2 -
NullArgumentException
- 如果data
为null
-
kolmogorovSmirnovTest
public static boolean kolmogorovSmirnovTest(RealDistribution dist, double[] data, double alpha) throws MathIllegalArgumentException, NullArgumentException 执行一个Kolmogorov-Smirnov检验,评估data
符合distribution
的零假设。- 参数:
-
dist
- 参考分布 -
data
- 正在评估的样本 -
alpha
- 检验的显著水平 - 返回:
-
如果且仅如果可以以置信度1 -
alpha
拒绝data
是来自distribution
的样本的零假设 - 抛出:
-
MathIllegalArgumentException
- 如果data
的长度小于2 -
NullArgumentException
- 如果data
为null
-
kolmogorovSmirnovStatistic
public static double kolmogorovSmirnovStatistic(double[] x, double[] y) throws MathIllegalArgumentException, NullArgumentException 计算两样本Kolmogorov-Smirnov检验统计量,\(D_{n,m}=\sup_x |F_n(x)-F_m(x)|\),其中\(n\)是x
的长度,\(m\)是y
的长度,\(F_n\)是将质量\(1/n\)放在x
中的每个值上的经验分布,\(F_m\)是y
值的经验分布。- 参数:
-
x
- 第一个样本 -
y
- 第二个样本 - 返回:
-
用于评估
x
和y
代表来自相同基础分布的样本的检验统计量\(D_{n,m}\) - 抛出:
-
MathIllegalArgumentException
- 如果x
或y
的长度小于2 -
NullArgumentException
- 如果x
或y
为null
-
kolmogorovSmirnovTest
public static double kolmogorovSmirnovTest(double[] x, double[] y) throws MathIllegalArgumentException, NullArgumentException 计算一个两样本Kolmogorov-Smirnov检验的p值,或观察到的显著水平,评估x
和y
是否是从相同概率分布中抽取的样本的零假设。假定用于计算p值的不等式的严格形式。参见KolmogorovSmirnovTest.kolmogorovSmirnovTest(RealDistribution, double[], boolean)
。- 参数:
-
x
- 第一个样本数据集 -
y
- 第二个样本数据集 - 返回:
-
与零假设相关的p值,即
x
和y
代表来自相同分布的样本的概率 - 抛出:
-
MathIllegalArgumentException
- 如果x
或y
的长度小于2 -
NullArgumentException
- 如果x
或y
为null
-
kolmogorovSmirnovTest
public static double kolmogorovSmirnovTest(double[] x, double[] y, boolean strict) throws MathIllegalArgumentException, NullArgumentException 计算一个两样本Kolmogorov-Smirnov检验的p值,或观察到的显著水平,评估x
和y
是否是从相同概率分布中抽取的样本的零假设。具体来说,返回的是一个估计概率,即从将组合样本随机分成大小为x.length
和y.length
的子样本的过程中,kolmogorovSmirnovStatistic(x, y)
将严格超过(如果strict
为true
)或至少与strict = false
一样大的概率。- 对于小样本(其中样本大小的乘积小于
KolmogorovSmirnovTest.LARGE_SAMPLE_PRODUCT
),使用[4]中提出的方法计算精确p值,在exactP(double, int, int, boolean)
中实现。 - 当样本大小的乘积超过
KolmogorovSmirnovTest.LARGE_SAMPLE_PRODUCT
时,使用\(D_{n,m}\)的渐近分布。有关近似的详细信息,请参见approximateP(double, int, int)
。
如果
x.length * y.length
<KolmogorovSmirnovTest.LARGE_SAMPLE_PRODUCT
,并且x
和y
中包含相同值,则在计算\(D_{n,m}\)和p值之前,向x
和y
添加随机抖动以打破平局。抖动在(-minDelta / 2, minDelta / 2)上均匀分布,其中minDelta是组合样本中值之间的最小两两差异。如果数据中已知存在平局,则可以使用
KolmogorovSmirnovTest.bootstrap(double[], double[], int, boolean)
作为估计p值的替代方法。- 参数:
-
x
- 第一个样本数据集 -
y
- 第二个样本数据集 -
strict
- 是否将要计算的概率表示为严格不等式(对于大样本不起作用) - 返回:
-
与零假设相关的p值,即
x
和y
代表来自相同分布的样本的概率 - 抛出:
-
MathIllegalArgumentException
- 如果x
或y
的长度小于2 -
NullArgumentException
- 如果x
或y
为null - 另请参阅:
- 对于小样本(其中样本大小的乘积小于
-
exactP
public static double exactP(double d, int m, int n, boolean strict) 如果strict
为true
,则计算\(P(D_{n,m} > d)\);否则计算\(P(D_{n,m} \ge d)\),其中\(D_{n,m}\)是2样本Kolmogorov-Smirnov统计量。有关\(D_{n,m}\)的定义,请参见KolmogorovSmirnovTest.kolmogorovSmirnovStatistic(double[], double[])
。返回的概率是精确的,通过展开[4]中类文档中给出的递归函数定义来实现。
- 参数:
-
d
- D统计值 -
m
- 第二个样本大小 -
n
- 第一个样本大小 -
strict
- 是否将要计算的概率表示为严格不等式 - 返回:
-
随机选择的m-n分区生成\(D_{n,m}\)大于(或大于等于)
d
的概率
-
approximateP
public static double approximateP(double d, int n, int m) 使用Kolmogorov-Smirnov分布来近似\(P(D_{n,m} > d)\),其中\(D_{n,m}\)是2样本Kolmogorov-Smirnov统计量。有关\(D_{n,m}\)的定义,请参见KolmogorovSmirnovTest.kolmogorovSmirnovStatistic(double[], double[])
。具体来说,返回的是\(1 - k(d \sqrt{mn / (m + n)})\),其中\(k(t) = 1 + 2 \sum_{i=1}^\infty (-1)^i e^{-2 i^2 t^2}\)。有关如何确定和的收敛性的详细信息,请参见
KolmogorovSmirnovTest.ksSum(double, double, int)
。此实现将ksSum
作为tolerance
传递KolmogorovSmirnovTest.KS_SUM_CAUCHY_CRITERION
,将KolmogorovSmirnovTest.MAXIMUM_PARTIAL_SUM_COUNT
作为maxIterations
传递。- 参数:
-
d
- D统计值 -
n
- 第一个样本大小 -
m
- 第二个样本大小 - 返回:
-
大于
d
的随机选择的m-n分区生成\(D_{n,m}\)的近似概率
-