为什么来自 scipy.stats.bartlett 的 Bartlett 测试给出 nan 作为输出?

icm*_*icm 1 python statistics scipy anova statsmodels

我的数据是:

data=[[2,2,2,2,2],[1,1,1,1,1],[3,3,3,3]]
Run Code Online (Sandbox Code Playgroud)

当我像这样通过时:

bartlett(*data)
Run Code Online (Sandbox Code Playgroud)

它给出的输出为(nan,nan) Why?谢谢

CT *_*Zhu 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)
Run Code Online (Sandbox Code Playgroud)

所以这不是一个错误。