Как рассчитать effect_size для statsmodels Функция TTestIndPower solve_power - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь автоматизировать результаты A / B-теста с использованием GCP datalab.Я использую https://abtestguide.com/calc/ и https://www.surveymonkey.com/mp/ab-testing-significance-calculator/ в качестве примеров.Я могу легко рассчитать уровни значимости, Z-оценки, подъем и т. Д. Однако, я не могу понять статистическую мощность правильно.Я использую TTestIndPower из statsmodels.stats.power следующим образом:

effect_size = (mu_B - mu_A) / ((n_A * np.sqrt(var_A) + n_B * np.sqrt(var_B)) / (n_A + n_B))
nobs1 = n_A
ratio = n_B / n_A
alpha = 0.05

power = TTestIndPower().solve_power(effect_size = effect_size, 
                                    nobs1 = nobs1, 
                                    ratio = ratio,
                                    power = None,
                                    alpha = alpha,
                                    alternative='two-sided')

Кажется, что проблема заключается в размере эффекта, так как, используя силу примеров, я могу получить все остальные входные данные правильно, кроме effect_size.Statsmodels заявляет, что величина эффекта - это «разница между двумя средними, разделенными на стандартное отклонение»

# Sample sizes
n_A = 80000
n_B = 80000

# Means 
mu_A = 1600 / n_A
mu_B = 1696 / n_B

# Variances
var_A = mu_A * (1-mu_A)
var_B = mu_B * (1-mu_B)

# effect size as two means devided by pooled sd
(mu_B - mu_A) / ((n_A * np.sqrt(var_A) + n_B * np.sqrt(var_B)) / (n_A + n_B))

# or ..
(mu_B - mu_A) / np.sqrt((var_A + var_B) /2)

Если получится мощность 67,41%, я получу 39,4%

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...