scipy.stats.

obrientransform#

scipy.stats.obrientransform(*samples)[源代码]#

计算输入数据(任意数量的数组)的 O’Brien 转换。

用于在运行单向统计之前测试方差的同质性。 *samples 中的每个数组都是一个因子的一个水平。如果在转换后的数据上运行 f_oneway 且结果显著,则方差不相等。来自 Maxwell 和 Delaney [1], p.112。

参数:
sample1, sample2, …array_like

任意数量的数组。

返回:
obrientransformndarray

用于 ANOVA 的转换数据。结果的第一维对应于转换后的数组的序列。如果给定的数组都是相同长度的 1-D 数组,则返回值是 2-D 数组;否则,它是类型为 object 的 1-D 数组,每个元素都是一个 ndarray。

引发:
ValueError

如果转换后的数据的平均值不等于原始方差,则表示 O’Brien 转换中缺乏收敛性。

参考文献

[1]

S. E. Maxwell 和 H. D. Delaney, “Designing Experiments and Analyzing Data: A Model Comparison Perspective”, Wadsworth, 1990。

示例

我们将测试以下数据集的方差差异。

>>> x = [10, 11, 13, 9, 7, 12, 12, 9, 10]
>>> y = [13, 21, 5, 10, 8, 14, 10, 12, 7, 15]

将 O’Brien 转换应用于数据。

>>> from scipy.stats import obrientransform
>>> tx, ty = obrientransform(x, y)

使用 scipy.stats.f_oneway 对转换后的数据应用单向 ANOVA 检验。

>>> from scipy.stats import f_oneway
>>> F, p = f_oneway(tx, ty)
>>> p
0.1314139477040335

如果我们要求显著性水平为 p < 0.05,则我们不能得出方差不同的结论。