类 OneWayAnova
java.lang.Object
org.hipparchus.stat.inference.OneWayAnova
实现单向ANOVA(方差分析)统计。
用于测试单变量数据的两个或多个类别之间的差异(例如,会计师、律师、医生和计算机程序员的体重指数)。当给定两个类别时,这等同于 TTest
。
使用 Hipparchus F分布实现
估计精确的p值。
此实现基于 http://faculty.vassar.edu/lowry/ch13pt1.html 上的描述
缩写:bg = 组间, wg = 组内, ss = 求和平方偏差
-
构造器概要
-
方法概要
修饰符和类型方法说明double
anovaFValue
(Collection<double[]> categoryData) 计算一组double[]
数组的ANOVA F值。double
anovaPValue
(Collection<double[]> categoryData) 计算一组double[]
数组的ANOVA P值。double
anovaPValue
(Collection<StreamingStatistics> categoryData, boolean allowOneElementData) 计算一组StreamingStatistics
的ANOVA P值。boolean
anovaTest
(Collection<double[]> categoryData, double alpha) 执行ANOVA测试,评估数据类别的均值之间是否没有差异的零假设。
-
构造器详细资料
-
OneWayAnova
public OneWayAnova()空构造函数。此构造函数并非严格必需,但它可以防止在JDK 18及更高版本中出现虚假的javadoc警告。
- 从以下版本开始:
- 3.0
-
-
方法详细资料
-
anovaFValue
public double anovaFValue(Collection<double[]> categoryData) throws MathIllegalArgumentException, NullArgumentException 计算一组double[]
数组的ANOVA F值。前提条件:
- categoryData
Collection
必须包含double[]
数组。 - categoryData
Collection
中必须至少有两个double[]
数组,且每个数组必须包含至少两个值。
此实现使用定义公式计算F统计量
F = msbg/mswg
其中
msbg = 组间均方 mswg = 组内均方
如此处所定义 这里
- 参数:
-
categoryData
- 包含每个类别数据的double[]
数组的Collection
- 返回:
- F值
- 抛出:
-
NullArgumentException
- 如果categoryData
为null
-
MathIllegalArgumentException
- 如果categoryData
数组的长度小于2或包含的double[]
数组没有至少两个值
- categoryData
-
anovaPValue
public double anovaPValue(Collection<double[]> categoryData) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 计算一组double[]
数组的ANOVA P值。前提条件:
- categoryData
Collection
必须包含double[]
数组。 - categoryData
Collection
中必须至少有两个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
- 如果超过最大迭代次数
- categoryData
-
anovaPValue
public double anovaPValue(Collection<StreamingStatistics> categoryData, boolean allowOneElementData) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 计算一组StreamingStatistics
的ANOVA P值。前提条件:
- categoryData
Collection
必须包含StreamingStatistics
。 - categoryData
Collection
中必须至少有两个StreamingStatistics
,且每个统计数据必须包含至少两个值。
此实现使用
Hipparchus F分布实现
估计精确的p值,使用公式p = 1 - cumulativeProbability(F)
其中
F
是F值,cumulativeProbability
是F分布的Hipparchus实现。- 参数:
-
categoryData
- 包含每个类别数据的StreamingStatistics
的Collection
-
allowOneElementData
- 如果为true,则允许仅为一个类别或每个类别一个数据元素进行计算 - 返回:
- P值
- 抛出:
-
NullArgumentException
- 如果categoryData
为null
-
MathIllegalArgumentException
- 如果categoryData
数组的长度小于2或包含的StreamingStatistics
没有至少两个值 -
MathIllegalStateException
- 如果由于收敛错误无法计算p值 -
MathIllegalStateException
- 如果超过最大迭代次数
- categoryData
-
anovaTest
public boolean anovaTest(Collection<double[]> categoryData, double alpha) throws MathIllegalArgumentException, NullArgumentException, MathIllegalStateException 执行ANOVA测试,评估数据类别的均值之间是否没有差异的零假设。前提条件:
- categoryData
Collection
必须包含double[]
数组。 - categoryData
Collection
中必须至少有两个double[]
数组,且每个数组必须包含至少两个值。 - alpha 必须严格大于0且小于或等于0.5。
此实现使用
Hipparchus F分布实现
估计精确的p值,使用公式p = 1 - cumulativeProbability(F)
其中
F
是F值,cumulativeProbability
是F分布的Hipparchus实现。如果估计的p值小于alpha,则返回True。
- 参数:
-
categoryData
-Collection
,其中包含每个类别数据的double[]
数组 -
alpha
- 检验的显著性水平 - 返回:
- 如果可以以置信度1 - alpha拒绝零假设,则返回true
- 抛出:
-
NullArgumentException
- 如果categoryData
为null
-
MathIllegalArgumentException
- 如果categoryData
数组的长度小于2或包含的double[]
数组没有至少两个值 -
MathIllegalArgumentException
- 如果alpha
不在范围(0, 0.5]内 -
MathIllegalStateException
- 如果由于收敛错误而无法计算p值 -
MathIllegalStateException
- 如果超过最大迭代次数
- categoryData
-