【发布时间】:2020-06-03 01:53:01
【问题描述】:
我发现了对 A/B 测试进行卡方检验的不同方法,查看用户与对照组和测试组的转化率。
第一种方法使用statsmodels,使用proportions_chisquare
第二种方法使用scipy和chi2_contingency
似乎chi2_contingency 总是具有比比例更高的值。任何关于差异的想法以及哪种测试更适用于简单的 A/B 测试?
我很抱歉没有在下面提供一个示例:
示例 1(p 值 = 0.037):
import statsmodels.stats.proportion as proportion
import numpy as np
conv_a = 20
conv_b = 35
clicks_a = 500
clicks_b = 500
converted = np.array([conv_a, conv_b])
clicks = np.array([clicks_a,clicks_b])
chisq, pvalue, table = proportion.proportions_chisquare(converted, clicks)
print('Results are ','chisq =%.3f, pvalue = %.3f'%(chisq, pvalue))
示例 2(p 值 = 0.0521):
import numpy
import scipy.stats
control_size = 500
A_CONVERSIONS = 20
A_NO_CONVERSIONS= control_size - A_CONVERSIONS
test_size = 500
B_CONVERSIONS = 35
B_NO_CONVERSIONS = test_size - B_CONVERSIONS
data = numpy.array([[A_NO_CONVERSIONS, A_CONVERSIONS],
[B_NO_CONVERSIONS, B_CONVERSIONS]])
chi_square, p_value = scipy.stats.chi2_contingency(data)[:2]
print('χ²: %.4f' % chi_square)
print('p-value: %.4f' % p_value)
【问题讨论】:
-
请包含示例数据和代码,以便我们重现差异。如果我们对您一直在使用的数据和代码一无所知,就很难解决这类问题(为什么会出现 XYZ?)。
-
您的列联表在两种情况下都不同,因此显然卡方统计和 p 值会有所不同。请参阅下面的示例,该示例显示了结果的一致性。
标签: python scipy statistics statsmodels