项目背景和目的
现有两款键盘布局不一样的手机(A版本,B版本),要哪版用户体验更好
1、设置目标
如果一个键盘布局对用户打字时拼错产生的影响较小,那么这个布局是符合用户体验习惯的。所以将目标定为用户打字时拼错字产生的影响。
2、采集数据
用户随机分配到不同版本中,通过他们的交互行为会被直接检测,并收集起来作为以后分析的重要数据。
随机抽取实验者,将实验者分成A、B 2组,每组25人,A组使用键盘布局A,B组使用键盘布局B。让他们在30秒内打出标准的20个单词文字消息,然后记录打错字的数量。
将数据记录在Excel中,A列是使用键盘布局A打错字的数量,B列是使用键盘布局B打错字的数量。
用得到的数据进行A/B Test
一、描述统计分析
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import math
import seaborn as sns
import statsmodels.stats.weightstats as st
# 样本数据集
data=pd.read_excel(r'C:\Users\EDY\Desktop\吧哩吧啦\学习\Untitled Folder\键盘AB测试.xlsx')
data.head()
A | B | |
---|---|---|
0 | 6 | 6 |
1 | 6 | 11 |
2 | 2 | 8 |
3 | 7 | 5 |
4 | 8 | 11 |
# 查看每列数据类型
data.dtypes
A int64
B int64
dtype: object
# 样本平均值
A_mean=data['A'].mean()
B_mean=data['B'].mean()
# 样本标准差
A_std=data['A'].std()
B_std=data['B'].std()
# 样本量
a=data['A'].count()
b=data['B'].count()
print('A版本样本量大小%d,样本平均值%.2f,样本标准差%.2f,单位:打错字数量'%(a,A_mean,A_std))
print('B版本样本量大小%d,样本平均值%.2f,样本标准差%.2f,单位:打错字数量'%(b,B_mean,B_std))
A版本样本量大小25,样本平均值5.08,样本标准差2.06,单位:打错字数量
B版本样本量大小25,样本平均值7.80,样本标准差2.65,单位:打错字数量
二、推论统计分析
(一)假设检验
1、提出假设
零假设H0:键盘A版本和B版本用户体验没有区别,A、B版本打错字平均值基本相同
备择假设H1:键盘A版本和B版用户体验有区别,A、B版本打错字平均值不相同
2、检验类型
A、B是两个独立样本,所以是双独立样本。
样本量25均小于30,是否符合t检验,要看其分布是否近似于正态分布。
3、抽样分布类型
sns.displot(data['A'],kde=True)
plt.title('A版本样本数据分布情况')
sns.displot(data['B'],kde=True)
plt.title('B版本样本数据分布情况')
plt.show()
观察A、B版本样本数据集的分布,近似于正态分布,符合t分布,故该检验类型为独立样本t检验。
4、检验方向
该项目目的是验证A、B版本的平均值是否相同,故为双尾检验
5、置信水平
# 采用95%作为其置信水平
α=0.05
6、计算P值
t,p_two,df=st.ttest_ind(data['A'],data['B'],usevar='unequal')
print('t(%d)=%.2f,p=%.5f(α=0.05),独立样本t检验(双尾)'%(df,t,p_two))
t(45)=-4.06,p=0.00019(α=0.05),独立样本t检验(双尾)
7、结论
P值远远小于α,拒接零假设,A版本和B版本存在显著差异
(二)置信区间
标准误差公式:
# 根据df=45,α=0.05,two-tailed查找t值
t_ci=2.0141
# 样本量
a_n=25
b_n=25
# 标准误差
se=np.sqrt(np.square(A_std)/a_n+np.square(B_std)/b_n)
# 置信区间下限
a=(A_mean-B_mean)-t_ci*se
# 置信区间上限
b=(A_mean-B_mean)+t_ci*se
print('两个平均值差值的置信区间,95置信水平 CI=[%.2f,%.2f]' % (a,b))
两个平均值差值的置信区间,95置信水平 CI=[-4.07,-1.37]
用户使用A版本打错字的数量比使用B版本打错字的数量平均要少1~4个字,说明A版本的效果更好。
(三)效应量
# 联合标准差
Sp=np.sqrt(((a_n-1)*A_std+(b_n-1)*B_std)/(a_n+b_n-2))
# 效应量
d=(A_mean-B_mean)/Sp
print('d=%.2f'%d)
d=-1.77
三、总结
1、描述统计分析
A版本样本量大小25,样本平均值5.08,样本标准差2.06,单位:打错字数量
B版本样本量大小25,样本平均值7.80,样本标准差2.65,单位:打错字数量
2、推论统计分析
1)假设检验
t(45)=-4.06,p=0.00019(α=0.05),独立样本t检验(双尾)
P值远远小于α,说明统计结果显著,拒绝零假设。用户使用A版本和B版本的体验有区别
2)置信区间
两个平均值差值的置信区间,95置信水平 CI=[-4.07,-1.37]
说明A版本要优于B版本,用户使用A版本打错字的数量比使用B版本打错字的数量平均要少1~4个字。
3)效应量
d=-1.77,效果显著