图片来源:https://zhuanlan.zhihu.com/p/68736699
单样本T检验(one-sample T-test)
用于检验总体方差未知、正态数据或近似正态的单样本的均值是否与已知的总体均值相等
- H0:样本均值与总体均值相等
- H1:样本均值与总体均值不等
from scipy import stats
data = stats.norm.rvs(loc=5, scale=10, size=(100, 1)) # 生成均值为5方差为10的正态分布
stats_value = stats.ttest_1samp(data, 5) # 检验均值为5
print(stats_value.pvalue) # 得出p值
p值 < 0.05
,拒绝原假设,即均值不为5p值 > 0.05
,接收原假设,均值为5
双样本T检验(T-T检验)
用于检验两对独立的正态数据或近似正态的样本的均值
是否相等
- H0:两样本均值相等
- H1:两样本均值不同
from scipy import stats
data1 = stats.norm.rvs(loc=5, scale=10, size=500)
data2 = stats.norm.rvs(loc=5, scale=10, size=500)
data3 = stats.norm.rvs(loc=5, scale=20, size=500)
stats.ttest_ind(data1, data2)
stats.ttest_ind(data1, data3, equal_var=False)
对于不同方差的两个样本,需要设置equal_var=False
p值 < 0.05
,拒绝原假设,两个均值不同p值 > 0.05
,接收原假设,均值相同
配对样本T检验(P-T检验)
- H0:两样本均值之差为0
- H1:两样本均值之差不等于0
一对配对样本的均值的差
是否等于某一个值,检验时要求两个样本的量是相同的
from scipy import stats
rvs1 = stats.norm.rvs(loc=5, scale=10, size=500)
rvs2 = (stats.norm.rvs(loc=5, scale=10, size=500) + stats.norm.rvs(scale=0.2, size=500))
stats.ttest_rel(rvs1, rvs2)
rvs3 = (stats.norm.rvs(loc=8, scale=10, size=500) + stats.norm.rvs(scale=0.2, size=500))
stats.ttest_rel(rvs1, rvs3)
p值 < 0.05
,拒绝原假设,即之差不等于0p值 > 0.05
,接收原假设,等同于两个样本均值相同
参考网站
三种T检验的详细区分:https://zhuanlan.zhihu.com/p/68736699