首先我们要知道方差齐性是什么东西?我们为什么要进行方差齐性考察?
专业的讲方差齐性指在统计学中用来检验不同组或样本的方差是否相等的概念。 那么方差齐性检验就是通过某种方法验证各组数据的方差是否在统计上是相等的。是不是感觉非常抽象?
那我举个生活中的例子:
比如我现在有两个班级,班级A和班级B。那么我想分析一下这两个班级期末考试的平均成绩,在进行t检验或方差分析之前,我们需要进行方差齐性检验。
假设班级A的成绩方差明显大于班级B,如果我们忽略方差齐性检验直接进行t检验或方差分析,结果可能会受到班级A成绩方差较大的影响,导致错误地得出班级A和班级B平均成绩有显著差异的结论。
通过进行方差齐性检验,我们能够使得统计结果更加可靠和准确。
下面是Python实现方差齐性考察的两种方法:
方法一:用图形方法考察方差齐性
import pandas as pd
df=pd.read_csv(r"C:\Users\ljl20\Desktop\文档\stu_data.csv", encoding='GBK')
df.groupby('性别').体重.plot.hist()
这个图看起来不是很明显,我们把它搞得直观一点。
df.体重.hist(by=df.性别)
df.boxplot(column='体重',by='性别')
方法二:用假设检验考察方差齐性
from scipy import stats as ss
ss.bartlett(df.体重[df.性别=='男'],df.体重[df.性别=='女'])
ss.bartlett(df.体重[df.性别=='男'],df.体重[df.性别=='女'])这行代码是进行了Bartlett检验。statistic是检验统计量的数值,而pvalue是对应的p值。
通常情况下,我们会将p值与显著性水平(通常为0.05)进行比较来判断是否拒绝原假设。在这种情况下,p值(0.0063)小于通常的显著性水平0.05,所以就表明方差是不相等的。
ss.levene(df.体重[df.性别=='男'],df.体重[df.性别=='女'])
这行代码是进行了Levene检验,Levene检验也是用来检验多个组的方差是否相等的一种方法,结果与Bartlett检验相似。
- 检验统计量为7.73012077916007
- p值为0.007635005492255673
同理也能够推出方差是不相等的。
Python实现方差齐性考察的两种方法,你学会了吗?