python中abbab什么意思_在Python中对收益进行AB测试

我正在尝试进行AB测试-比较网站上变体之间的收入。

我们的标准方法(使用t检验)似乎不可行,因为无法对收入进行二项建模。但是,我阅读了有关引导的内容,并提出了以下代码:

import numpy as np

import scipy.stats as stats

import random

def resampler(original_array, number_of_samples):

sample_array = np.zeros(number_of_samples)

choice = random.choice

for i in range(number_of_samples):

sample_array[i] = sum([choice(original_array) for _ in range(len(original_array))])

y = stats.normaltest(sample_array)

if y[1] > 0.001:

print y

new_y = resampler(original_array, number_of_samples * 2)

y = new_y

return sample_array

基本上,从“收入向量”(人口稀少的向量-所有非转化访问者为零)中随机抽样,并对所得向量求和,直到得到正态分布为止。

我可以在两个测试组中都执行此操作,此时我有两个正态分布的量用于t检验。使用scipy.stats.ttest_ind我能够获得某种程度上合理的结果。

但是,我不知道运行此过程对Cookie拆分有何影响(预计每个组将看到50%的Cookie)。在这里,我看到了一些非常意外的事情-给出以下代码:

x = [272898,389076,61091,65251,10060,1468815,216014,25863,42421,476379,73761]

y = [274253,387941,61333,65020,10056,1466908,214679,25682,42873,474692,73837]

print stats.ttest_ind(x,y)

我得到的输出是:(0.0021911476165975929,0.99827342714956546)

根本不重要(我认为我的解释正确吗?)

但是,当我运行此代码时:

for i in range(1000, 100000, 5000):

one_array = resampler(x,i)

two_array = resampler(y,i)

t_value, p_value = stats.ttest_ind(one_array, two_array)

t_value_array.append(t_value)

p_value_array.append(p_value)

print np.mean(t_value_array)

print np.mean(p_value_array)

我得到:0.642213492773 0.490587258892

我不太确定如何解释这些数字-据我所知,我已经从实际的Cookie拆分中重复生成了正态分布(数组中的每个数字代表一个不同的站点)。在每种情况下,我都对两个分布进行了t检验,并获得了t统计量和p值。

这是合法的事情吗?我只运行了这些测试多次,因为当我不这样做时,我看到p值和t统计量的变化很大。

我是否错过了运行这种测试的明显方法?

干杯,

马特

ps

我们拥有的数据:网站1:测试组1:唯一Cookie:收入网站1:测试组2:唯一Cookie:收入网站2:测试组1:唯一Cookie:收入网站2:测试组2:唯一Cookie:收入等

我们想要的是:

测试组x以z%的把握击败了测试组y

(测试组1的零假设=测试组2)

奖金:

与上面相同,但在每个站点以及整个站点上

解决方案

首先,使用t检验来检验二项式响应变量是不正确的。您需要使用逻辑回归模型。

关于您的问题。很难阅读该代码并了解您认为要测试的内容-H_0(无效假设)是什么?如果我说实话(我希望你不要冒犯),那看起来很困惑。

我将不得不猜测数据是什么样的---您有一堆这样的示例:

Website Method Revenue

------- ------ -------

w1 A 12

w2 B 0

w3 A 6

w4 B 0

等等等等。这看起来正确吗?您是否有重复的措施(即,您对每种方法的每个网站都有收入度量?还是您将网站随机分配给方法?)?我猜您传递给方法的是一个方法的所有收入的数组,但是它们是否以任何方式在方法之间配对?

我可以想象用这些数据测试各种假设。例如,方法A是否比方法B更可能产生非零收益(使用逻辑回归,响应为二进制)?在方法完全产生收益的情况下,方法A产生的收益是否大于方法B(对非零收益的t检验)?在所有实例中,方法A是否比方法B产生更多的收入(可能是符号测试,原因是当您包含零时假设存在正态性问题)。我认为这个令人不安的假设是为什么要运行重复抽样的过程,直到数据看起来正常为止,但是您不能这样做并测试有意义的任何事情:仅仅因为数据的某些子集是正态分布的,并不意味着您可以查看只有这部分!实际上,我不会

如果您详细说明一些实际数据,以及要回答的问题,我们很乐意提出更具体的建议。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值