【问题标题】:Why does the Bartlett test from scipy.stats.bartlett gives nan as output?为什么 scipy.stats.bartlett 的 Bartlett 测试将 nan 作为输出?
【发布时间】:2014-09-08 15:08:20
【问题描述】:

我的数据是:

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

当我这样通过时:

bartlett(*data)

输出为(nan,nan) 为什么? 谢谢

【问题讨论】:

    标签: python statistics scipy statsmodels anova


    【解决方案1】:

    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)
    

    所以这不是错误。

    【讨论】:

    • 但它应该给出概率为 1 对吧?因为没有方差,因此原假设是正确的
    • 不,p 值 = 1 应该保留给像 A=[1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2]; B=[1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2] 这样方差确实相同(并且方差不为零)的情况。 nan 有点像错误消息,表明方差为 0。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 2016-07-01
    • 1970-01-01
    • 2020-07-20
    • 2018-05-30
    • 1970-01-01
    • 2019-07-14
    相关资源
    最近更新 更多