例如,在AB测试中,A群体可以有1000个数据点,其中100个是成功的。 B可以拥有2000个数据点和220个成功点。这使得A成功比例为0.1和B 0.11,其delta为0.01。如何在python中计算这个delta附近的置信区间?
Stats模型可以针对一个样本执行此操作,但似乎没有一个包来处理两个样本之间的差异,这是AB测试所必需的。 (http://www.statsmodels.org/dev/generated/statsmodels.stats.proportion.proportion_confint.html)
答案 0 :(得分:2)
statsmodels 包现在有 confint_proportions_2indep,它得到比较两个比例的置信区间 您可以查看文档中的详细信息 https://www.statsmodels.org/stable/generated/statsmodels.stats.proportion.confint_proportions_2indep.html
答案 1 :(得分:0)
答案 2 :(得分:0)
我找不到具有此功能的软件包,令人惊讶的是statsmodels没有它!
但是,这种出色的资源具有功能和支持的数学功能:http://ethen8181.github.io/machine-learning/ab_tests/frequentist_ab_test.html#Comparing-Two-Proportions
下面复制并粘贴的链接中的代码:
def two_proprotions_confint(success_a, size_a, success_b, size_b, significance = 0.05):
"""
Parameters
----------
success_a, success_b : int
Number of successes in each group
size_a, size_b : int
Size, or number of observations in each group
significance : float, default 0.05
Returns
-------
prop_diff : float
Difference between the two proportion
confint : 1d ndarray
Confidence interval of the two proportion test
"""
prop_a = success_a / size_a
prop_b = success_b / size_b
var = prop_a * (1 - prop_a) / size_a + prop_b * (1 - prop_b) / size_b
se = np.sqrt(var)
# z critical value
confidence = 1 - significance
z = stats.norm(loc = 0, scale = 1).ppf(confidence + significance / 2)
# standard formula for the confidence interval
# point-estimtate +- z * standard-error
prop_diff = prop_b - prop_a
confint = prop_diff + np.array([-1, 1]) * z * se
return prop_diff, confint