• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D收藏吧

假设检验之A/B测试

数据分析 Terry 5年前 (2018-05-22) 1712次浏览 已收录 0个评论

一、描述统计分析

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()
假设检验之A/B测试
data.dtypes

A object
B object
dtype: object

data.describe()
假设检验之A/B测试
#转换数据类型
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()
假设检验之A/B测试
假设检验之A/B测试

通过观察,两个样本数据集都近似正态分布,则抽样分布是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,效果显著


相关文章:


作者Terry , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:假设检验之A/B测试
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址