- 单样本t检验, 与某数字对比差异
from scipy import stats
#输入:a, a是一组数据,这里表示为一个vector
# alternative参数:
# 若是双边检验,设置为:'two-sided'
# 若是单边检验,设置为:‘less’, ‘greater’
if a服从正态分布:
# 假设这里要跟 3 对比,代码如下:
调用stats.ttest_1samp(a,3, alternative='two-sided')
else:
#a不服从正态分布
#通过alternative参数,也可以选择单边或者双边检验
调用单样本wilcoxon检验
- 配对样本t检验 (within-subjects), 配对数据的差异,比如说5个人,吃药前,吃药后的身体素质对比。注意“是同一批次的人”。
from scipy import stats
#输入:a, b
#该模型对方差齐性没有要求
# alternative 参数如上设置
if 差值服从正态分布:
调用stats.ttest_rel(a, b, alternative='two-sided')
else:
#差值不服从正态分布
调用wilcoxon函数进行检验
- 独立样本t检验(between-subjects),两组数据的差异,比如男女的体重差异。注意“不同批次的人”。
from scipy import stats
#输入:a, b
# alternative 参数如上设置
if 两组数据各自服从正态分布:
if 方差齐性:
调用stats.ttest_ind(a,b,equal_var=True,alternative='two-sided')
else:
#此时将会采用Welch’s t-test
调用stats.ttest_ind(a,b,equal_var=False,alternative='two-sided')
else:
#通过alternative参数,也可以选择单边或者双边检验
调用MannWhitney函数进行检验,
- python正态性检验函数, 参考链接:
from scipy import stats
stats.shapiro # p>.05, 表示满足正态性
stats.normaltest
scipy.stats.kstest
- python方差齐性检验函数,参考链接
from scipy import stats
stats.levene # p>.05 表示方差齐性;p太小表示方差不齐性
stats.bartlett # p>.05 表示方差齐性;p太小表示方差不齐性
图片来源此处