一、描述统计分析
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
path='键盘AB测试.xlsx'
xls=pd.ExcelFile(path,dtype='object')
data=xls.parse('Sheet1',dtype='object')
data.head()

data.dtypes
A object
B object
dtype: object
data.describe()

#转换数据类型
data['A']=data['A'].astype('int')
data['B']=data['B'].astype('int')
print('转换后的数据类型:')
data.dtypes
转换后的数据类型:
A int32
B int32
dtype: object
A=data['A']
B=data['B']
#样本平均值
a_mean=A.mean()
b_mean=B.mean()
print('A版本平均值=',a_mean,'单位:打错字数量')
print('B版本平均值=',b_mean,'单位:打错字数量')
#样本标准差
a_std=A.std()
b_std=B.std()
print('A版本样本大小25,样本标准差=',a_std,'单位:打错字数量')
print('B版本样本大小25,样本标准差=',b_std,'单位:打错字数量')
A版本平均值= 5.08 单位:打错字数量
B版本平均值= 7.8 单位:打错字数量
A版本样本大小25,样本标准差= 2.05993527406 单位:打错字数量
B版本样本大小25,样本标准差= 2.64575131106 单位:打错字数量
二、推论统计分析
1. 问题是什么
零假设和备选假设
要研究的问题是:哪个键盘布局对用户体验更好呢?
根据这个问题我提出来下面两个互为相反的假设。
零假设:A版本和B版本没有差别,也就是A版本平均值=B版本平均值。
零假设总是表述为研究没有改变,没有效果,不起作用等,这里就是不满足标准。
备选假设:A版本和B版本有差别,也就是A版本平均值 不等于 B版本平均值。
检验类型
因为这里有2组样本,是不同的人,所以选择双独立样本检验。
抽样分布类型
import seaborn as sns
sns.distplot(A)
plt.title('A版本数据集分布')
plt.show()
sns.distplot(B)
plt.title('B版本数据集分布')
plt.show()


通过观察,两个样本数据集都近似正态分布,则抽样分布是t分布。
检验方向
因为备选假设是A版本和B版本有差别,也就是A版本平均值 不等于 B版本平均值,所以我们使用双尾检验。
综合以上分析,本次假设检验是双独立样本t检验,双尾检验。
2.证据是什么?
import statsmodels.stats.weightstats as st
t,p_twoTail,df=st.ttest_ind(A,B,usevar='unequal')
print('t=',t,'p_two=',p_twoTail,'df=',df)
t= -4.05593853686 p_two= 0.000194574553072 df= 45.2781333114
3.判断标准是什么
alpha=0.05
4.做出结论
if(p_two< alpha/2):
print('拒绝零假设,有统计显著,也就是接受备选假设')
print('备选假设:A版本和B版本有差异')
else:
print('接受零假设,没有统计显著')
print('零假设:A版本和B版本没有差异')
拒绝零假设,有统计显著,也就是接受备选假设
备选假设:A版本和B版本有差异
独立双样本t(45)=-4.05 , p=.00019 (α=5%),双尾检验
统计上存在显著差异,拒绝零假设,从而验证A版本和B版本存在显著差异。
5.置信区间
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)
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.效应量
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
print('d=',d)
d= -1.32042983789
三、数据分析报告
1、描述统计分析
A版本打错字数量 平均是5.08个,标准差是2.06个
B版本打错字数量 平均是7.8个,标准差是2.65个
2、推论统计分析
1)假设检验 独立双样本t(45)=-4.05 , p=.00019 (α=5%) , 双尾检验拒绝零假设,统计显著。
2)置信区间 两个平均值差值的置信区间, 95%置信水平 CI=[-2.76,-2.68]
3)效应量 d= – 1.32,效果显著
相关文章: