为什么scipy.stats.bartlett的Bartlett检验输出为nan?

1 投票
1 回答
5197 浏览
提问于 2025-04-18 13:44

我的数据是:

data=[[2,2,2,2,2],[1,1,1,1,1],[3,3,3,3]]

当我这样传递数据时:

bartlett(*data)

它的输出结果是 (nan,nan),这是为什么呢?谢谢!

1 个回答

6

Bartlett检验是用来检查不同组之间的方差是否一致的。在你的情况中,因为所有组的数值都是相等的,所以没有方差。

这里有一个简单的例子:

In [7]:

import scipy.stats as ss
In [8]:

data=[[2,2,2,2,2],[1,1,1,1,1],[3,3,3,3]]
ss.bartlett(*data)
Out[8]:
(nan, nan)
In [9]:

A=[10,7,20,14,14,12,10,23,17,20,14,13,11,17,21,11,16,14,17,17,19,21,7]
B=[1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,]
ss.bartlett(A, B)
Out[9]:
(47.7068477814218, 4.9495974630644599e-12)

所以这并不是一个错误。

撰写回答