编程语言
首页 > 编程语言> > 方差齐性检验python实现

方差齐性检验python实现

作者:互联网

方差齐性

在方差分析有一个重要的前提叫方差齐性

先讲讲什么是方差齐性,方差齐性是指不同组间的总体方差是一样的。那为什么方差分析的前提是要组间的总体方差保持一致呢?先想想方差分析是做什么呢?方差分析是用来比较多组之间均值是否存在显著差异。那如果方差不一致,也就意味着值的波动程度是不一样的,如果此时均值之间存在显著差异,不能够说明一定是不同组间处理带来的,有可能是大方差带来大的波动;如果方差一样,也就意味着值的波动程度是一样的,在相同波动程度下,直接去比较均值,如果均值之间存在显著差异,那么可以认为是不同组间处理带来的。

方差齐性检验是对两组样本的方差是否相同进行检验。检验思想与均值之间差异性检验是一样的。常用的方法有:方差比、Hartley检验、Levene检验、BF法、Bartlett检验。

方差比

方差比就是两组方差的比,用比较大的一组方差除以较小一组的方差,最后得到一个F值,然后根据F值大小判断两组之间的方差是否相等。F值越大,则认为两组方差越不相等

Levene检验

Levene检验是将每个值先转换为为该值与其组内均值的偏离程度,然后再用转换后的偏离程度去做方差分析,即组间方差/组内方差。

在这里关于组内均值有多种计算方式:平均数、中位数、截取平均数(去掉最大和最小值后求平均)。

在Python中有现成的函数可以使用:

from scipy.stats import levene
stat, p = levene(x, y, z)
print(stat, p)

#这里的x, y, z是不同组的样本

Barlett检验

Bartlett检验的核心思想是通过求取不同组之间的卡方统计量,然后根据卡方统计量的值来判断组间方差是否相等。该方法极度依赖于数据是正态分布,如果数据非正态分布,则的出来的结果偏差很大。

在Python中有现成的函数可以使用:

from scipy.stats import bartlett
stat, p = bartlett(x, y, z)
print(stat, p)

#这里的x, y, z是不同组的样本

总结

方差比、Barlett检验都需要原始数据是正态分布,Levene检验和BF法对正态分布不是很依赖,比较常用的是Levene检验,适用于多组方差的比较,而且对正态性没有要求

标签:方差,python,均值,检验,方差分析,组间,方差齐性
来源: https://blog.csdn.net/Kobe123brant/article/details/111768269