一、简单介绍A/B测试
A/B测试为同一个目标制定两个版本,一部分用户使用A版本,另一部分用户使用B版本,记录用户使用数据,比较各个版本对于改进目标的转化效果,选择更好的版本。
二、数据集介绍
有两种键盘的布局A版和B版,给随机抽取的用户A组和B组使用,这是独立的双样本。两组人数均为25人,记录各组实验者在规定时间内记录打错字的数量。

三、描述统计分析
#A/B测试
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
data=pd.read_excel('key.xlsx',sheetname='Sheet1')
data.describe()

数据统计信息
#样本平均值
a_mean =data['A'].mean()
b_mean =data['B'].mean()
#样本标准差
a_std =data['A'].std()
b_std =data['B'].std()
print('A组平均值=',a_mean,' B组平均值=',b_mean)
print('A组标准差=',a_std,' B组平均值=',b_std)

从平均值及标准差来看,A组的错误数量小于B组。
四、统计推论分析
1.问题

1)提出假设
零假设:A组和B组本没有差别,即A组平均值=B组平均值
备选假设:A组平均值≠B组平均值
2)样本检验类型
为独立双样本检验
3)抽样分布类型
ax=plt.subplot(1,2,1)
sns.distplot(data['A'],ax=ax)
plt.title('A组用户错字分布')
ax1=plt.subplot(1,2,2)
sns.distplot(data['B'],ax=ax1)
plt.title('B组用户错字分布')
plt.show()#近似正态分布,选择使用t分布

两组用户的错字分布均呈现出近似正态分布,在小样本的前提下,符合t分布。
4)检验方向
根据备选假设,选择双尾检验。
2.证据
#Scipy的双独立样本t检验不能返回自由度,在此利用statsmodels包
import statsmodels.stats.weightstats as st
t,p_two,df=st.ttest_ind(data['A'],data['B'],
usevar='unequal')
print('t=',t,'p_two=',p_two,',df=',df)

独立双样本t(45)=-4.06(45为自由度df取整) , p=.00019,双尾检验。
3.判断标准
这里设置显著水平alpha=0.05。
4.做出结论
if(p_two< alpha):
print('拒绝零假设,有统计显著,接受备选假设')
print('A版本和B版本有差异')
else:
print('接受零假设,没有统计显著')
print('零假设:A版本和B版本没有差异')
结论:拒绝零假设,有统计显著,接受备选假设
A版本和B版本有差异。
5.置信区间
t_ci=2.0141
#样本大小n
a_n = 25
b_n = 25
#计算标准误差
se=np.sqrt( np.square(a_std)/a_n + np.square(b_std)/b_n )
'''
对于双独立样本检验
置信区间的样本平均值=A版本平均值 - B版本平均值
'''
sample_mean=a_mean - b_mean
#置信区间上限
a=sample_mean - t_ci * se
#置信区间下限
b=sample_mean + t_ci * se
print('两个平均值差值的置信区间,95置信水平 CI=(%f,%f)' % (a,b))
两个平均值差值的置信区间,95%置信水平 CI=(-4.070699,-1.369301)。
6.效应量
差异指标Cohen's d
Cohen's d = (样本平均值1-样本平均值2) / 标准差
因为是两个独立样本,所以要用合并标准差。
#合并标准差
sp=np.sqrt(((a_n-1)*np.square(a_std) + (b_n-1)* np.square(a_std) ) / (a_n+b_n-2))
#效应量Cohen's d
d=(a_mean - b_mean) / sp
最终得到d为-1.32,效果差异显著。
五、数据分析报告
1.描述统计分析
A组平均打错字数为5.08,标准差为2.06;
B组平均打错字数为7.8,标准差为2.65.
2.推论统计分析
1)假设检验
独立双样本t(45)=-4.06 , p=.00019(α=5%),双尾检验。
拒绝零假设,统计显著。
2)置信区间
两个平均值差值95%置信区间水平,CI=(-4.070699,-1.369301)
3)效应量
d=-1.32,效果显著。
















