Проведите анализ результатов A/B теста.
Даны два параметра: (n_control, conversions_control) и (n_treatment, conversions_treatment).
Рассчитайте:
1. Конверсию каждой группы
2. Z-статистику
3. P-value (двусторонний тест)
4. 95% доверительный интервал для разницы конверсий
5. Значимость (p < 0.05)
Задача основана на вопросах с собеседований в Сбер и Ozon.
def ab_test_analysis(n1: int, x1: int, n2: int, x2: int) -> dict:
Верните dict:
- control_rate: float (4 знака)
- treatment_rate: float (4 знака)
- z_stat: float (4 знака)
- p_value: float (4 знака)
- ci_lower: float (4 знака)
- ci_upper: float (4 знака)
- significant: bool
ab_test_analysis(1000, 100, 1000, 130)
→ {"control_rate": 0.1, "treatment_rate": 0.13, "z_stat": -2.1027,
"p_value": 0.0355, "ci_lower": -0.0579, "ci_upper": -0.0021, "significant": True}n1 = 1000x1 = 100n2 = 1000x2 = 130{"control_rate":0.1,"treatment_rate":0.13,"z_stat":-2.1027,"p_value":0.0355,"ci_lower":-0.0579,"ci_upper":-0.0021,"significant":true}n1 = 500x1 = 50n2 = 500x2 = 55{"control_rate":0.1,"treatment_rate":0.11,"z_stat":-0.5158,"p_value":0.606,"ci_lower":-0.048,"ci_upper":0.028,"significant":false}n1 = 10000x1 = 500n2 = 10000x2 = 600{"control_rate":0.05,"treatment_rate":0.06,"z_stat":-3.1016,"p_value":0.0019,"ci_lower":-0.0163,"ci_upper":-0.0037,"significant":true}