scipy.stats.
obrientransform#
- scipy.stats.obrientransform(*samples)[source]#
计算输入数据的 O’Brien 变换(任意数量的数组)。
用于在运行单因素统计之前测试方差的同质性。
*samples
中的每个数组都是一个因子的一个水平。 如果在转换后的数据上运行f_oneway
并且发现显着,则方差不相等。 来自 Maxwell 和 Delaney [1],第 112 页。- 参数:
- sample1, sample2, …array_like
任意数量的数组。
- 返回:
- obrientransformndarray
转换后的数据,用于 ANOVA。 结果的第一维对应于转换后的数组的序列。 如果给定的数组都是相同长度的一维数组,则返回值是一个二维数组; 否则它是一个类型为 object 的一维数组,每个元素都是一个 ndarray。
- 引发:
- ValueError
如果转换后的数据的平均值不等于原始方差,则表明 O’Brien 变换缺乏收敛性。
参考文献
[1]S. E. Maxwell 和 H. D. Delaney,“设计实验和分析数据:模型比较视角”,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
具有显着性,我们不能得出方差不同的结论。