如何在scipy.stats.anderson_ksamp中传递两个数据集?能否举例说明?

6 投票
1 回答
4445 浏览
提问于 2025-04-18 13:33

Anderson函数只需要一个参数,而且这个参数应该是一个一维数组。所以我在想,怎么才能把两个不同的数组传进去进行比较呢?谢谢!

1 个回答

9

把所有的组放到一个 list 里(在这个例子中可以是两个数组或者四个数组),然后把这个列表传给 scipy.stats.anderson_ksamp

In [12]:

import scipy.stats as ss
#data from From the example given by Scholz and Stephens (1987, p.922)
x1=[38.7,  41.5,  43.8,  44.5,  45.5,  46.0,  47.7,  58.0]
x2=[39.2,  39.3,  39.7,  41.4,  41.8,  42.9,  43.3,  45.8]
x3=[34.0,  35.0,  39.0,  40.0,  43.0,  43.0,  44.0,  45.0]
x4=[34.0,  34.8,  34.8,  35.4,  37.2,  37.8,  41.2,  42.8]
ss.anderson_ksamp([x1,x2,x3,x4])
Out[12]:
(4.4797806271353506,
 array([ 0.49854918,  1.3236709 ,  1.91577682,  2.49304213,  3.24593219]),
 0.0020491057074350956)

这个函数会返回三个值,1:标准化的 k 样本 Anderson-Darling 检验统计量;2:不同显著性水平(25%、10%、5%、2.5%、1%)的临界值;3:p 值。

在这个例子中,p 值是 0.002,这意味着我们可以得出结论,样本来自不同的总体。

撰写回答