1 t检验由来
t检验是威廉·戈斯特为了观测酿酒品质在1908年提出的,student是他的笔名,戈斯特受雇于都柏林的健力士酿酒厂担任统计学家。戈斯特提出t检验以降低啤酒质量监控的成本。戈斯特在1908年《Biometrika》期刊上公布,老板认为其为商业机密被迫使用笔名。
2 常用的t检验
2.1 单样本检验
单样本检验也称样本均数和总体均数的比较的t检验。用于正态分布的总体中获取n个样本,判断总体均数μ是否和已知的总体均数μ()相同。
2.2 成对t检验
将子差数d看作变量,先假设两种处理的效应相同,μ1-μ2 = 0,在检验样本差数的均数d与0之间的差别的显著性。。
2.3 独立样本t检验
用于完全随机化设计两个独立样本的比较,目的是判断两个样本均数所对应的总体均数是否有差别。
2.4 配对样本t检验
检查同一统计量两次测量值之间的差异是否为零。
3 独立样本t检验的python代码
#encoding:utf-8
from scipy import ttest_ind
import pandas as pd
#读取目录下的数据excel文件
df = pd.read_excel (u'data/ttest.xls','data')
print df.head()
#用DataFrame的一个筛选数据的功能,
print df[df['group'] == 1]
#两组在scoreA上的差异,
X = df[df['group'] == 1]['scoreA']
Y = df[df['group'] == 2]['scoreA']
print ttest_ind(X,Y)
#同时比较scoreA和scoreB上的差异
X = df[df['group'] == 1]['scoreA','scoreB']
Y = df[df['group'] == 2]['scoreA','scoreB']
#ttest_ind 默认为方差齐性的,equal_var = false 可以设置为方差不齐性。
print ttest_ind(X,Y,equal_var = false)
#用levene test检验两组数据的方差齐性,若p>0.05则认为方差是相等的。
from scipy.stats import levene
X = df[df['group'] == 1]['scoreA']
Y = df[df['group'] == 2]['scoreB']
print levene(X,Y)
#encoding:utf-8
from scipy import ttest_ind
import pandas as pd
#读取目录下的数据excel文件
df = pd.read_excel (u'data/ttest.xls','data')
print df.head()
#用DataFrame的一个筛选数据的功能,
print df[df['group'] == 1]
#两组在scoreA上的差异,
X = df[df['group'] == 1]['scoreA']
Y = df[df['group'] == 2]['scoreA']
print ttest_ind(X,Y)
#同时比较scoreA和scoreB上的差异
X = df[df['group'] == 1]['scoreA','scoreB']
Y = df[df['group'] == 2]['scoreA','scoreB']
#ttest_ind 默认为方差齐性的,equal_var = false 可以设置为方差不齐性。
print ttest_ind(X,Y,equal_var = false)
#用levene test检验两组数据的方差齐性,若p>0.05则认为方差是相等的。
from scipy.stats import levene
X = df[df['group'] == 1]['scoreA']
Y = df[df['group'] == 2]['scoreB']
print levene(X,Y)
参考资料:
《python与数据科学》