概念
双样本T检验在于检验两个样本均值差异是否显著。比如男女消费是否显著。
Python代码
逻辑:
①构造2个样本;
②先进行方差齐性检查,我们规定一个阈值,这2个样本方差齐性的p-value大于0.05说明满足方差相等,可以进行双样本T检验;
③进行双样本T检验,p值越大说明消费水平越相同,一般认为p大于0.05说明没啥差异(两样本比较相似),当p小于0.05说明有差异(两样本差距比较大);
代码如下:
- from scipy import stats
-
- list1 = [1217.03, 1251.5, 856.57, 1321.83, 816.03, 1151.15, 1233.77, 802.52, 2167.77, 2430.03]
- list2 = [1102.2, 701.07, 806.13, 610.25, 993.87, 1403.72, 847.78, 695.85, 491.04, 468.61]
-
- if __name__ == '__main__':
- levene = stats.levene(list1, list2, center='median')
- print('w-value=%6.4f,p-value=%6.4f' % levene)
- print(stats.stats.ttest_ind(list1, list2, equal_var=True))
- pass
运行截图如下:
①第一个打印的pvalue是方差齐性,这个值大于0.05说明满足,可以进行双样本T检验;
②第二个打印pvalue为0.018大于0.05说明两个样本相似度很高。
把数据替换成这样的:
- list1 = [1217.03, 1251.5, 856.57, 1321.83, 816.03, 1151.15, 1233.77, 802.52, 2167.77, 2430.03]
- list2 = [602.2, 701.07, 806.13, 610.25, 593.87, 603.72, 547.78, 695.85, 491.04, 468.61]
运行截图如下:
这时pvalue为0.0008说明两样本相似不够,差异大。