Skip to content

Commit 53db9f7

Browse files
committed
Rework user-facing learning materials and quickstart flow
1 parent af7e97c commit 53db9f7

6 files changed

Lines changed: 1320 additions & 289 deletions

File tree

README.md

Lines changed: 43 additions & 284 deletions
Large diffs are not rendered by default.
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# Как интерпретировать результаты OPE в Policyscope (практический RU-гайд)
2+
3+
Этот документ про **практическую интерпретацию** output'ов `compare_policies(...)`:
4+
как читать `V_A`, `V_B`, `Delta`, CI, `p_value`, diagnostics и `trust_level` без переобещаний.
5+
6+
## 1) Базовые величины
7+
8+
- `V_A` — оценка policy value для logging/behavior policy **A**.
9+
- `V_B` — оценка policy value для target/candidate policy **B**.
10+
- `Delta = V_B - V_A` — оценка policy value difference (эффект замены A на B).
11+
12+
Практически:
13+
- `Delta > 0` означает ожидаемое улучшение метрики при переходе на B;
14+
- `Delta < 0` означает ожидаемое ухудшение;
15+
- величина `Delta` важнее «просто знака»: бизнес-значимость и статистическая неопределённость должны рассматриваться вместе.
16+
17+
## 2) Что означают CI и p-value (и что они НЕ означают)
18+
19+
- `Delta_CI` — доверительный интервал для `Delta` (bootstrap-based в текущей библиотеке).
20+
- `p_value` — сигнал против `H0: Delta = 0` в выбранной процедуре инференса.
21+
22+
Что важно:
23+
- Узкий CI обычно лучше, чем широкий (меньше неопределённости).
24+
- `p_value` **не** показывает размер эффекта.
25+
- CI/p-value **не** доказывают причинную истинность при нарушении предпосылок (особенно overlap/support).
26+
- «Статистически значимо» не равно «безопасно для прод-раскатки».
27+
28+
## 3) Почему diagnostics нужны вместе с инференсом
29+
30+
Даже если CI выглядит «хорошо», OPE может быть хрупким при плохом overlap.
31+
Поэтому смотреть нужно на diagnostics:
32+
33+
- replay overlap;
34+
- ESS / ESS ratio;
35+
- tail-метрики весов (heavy tails, extreme max weights);
36+
- clip/switch доли для методов с клиппингом/переключением.
37+
38+
CI и diagnostics отвечают на **разные** вопросы:
39+
- CI/p-value: статистическая неопределённость выбранного оценщика;
40+
- diagnostics: риск того, что сама постановка OPE нестабильна на этих логах.
41+
42+
## 4) Что означают плохие diagnostics
43+
44+
- **Низкий overlap / низкий replay support**: B часто выбирает действия вне области данных A.
45+
- **Низкий ESS**: фактически «мало эффективных наблюдений» после взвешивания.
46+
- **Тяжёлые хвосты весов**: оценка чувствительна к немногим объектам, рост variance/нестабильности.
47+
48+
Практический вывод: такие результаты чаще подходят как **directional evidence** / screening, а не как финальное основание для крупного продуктового решения.
49+
50+
## 5) `trust_level`: полезный сводный флаг, но не гарантия
51+
52+
`trust_level` агрегирует warnings/риски в компактный сигнал (`ok`, `caution`, `elevated_concern`).
53+
54+
Что это даёт:
55+
- быстрое ранжирование «насколько осторожно читать результат».
56+
57+
Что это **не** даёт:
58+
- не сертифицирует «можно пропустить A/B-тест»;
59+
- не заменяет экспертную проверку предпосылок и бизнес-контекста.
60+
61+
## 6) Когда OPE достаточно, а когда нужен A/B
62+
63+
OPE полезен для:
64+
- предварительного отбора кандидатов;
65+
- приоритизации гипотез;
66+
- отсева явно слабых политик до онлайн-теста.
67+
68+
OPE обычно **недостаточно** как единственный аргумент, если:
69+
- ожидается крупный бизнес-риск;
70+
- overlap слабый или diagnostics тревожные;
71+
- решение необратимо/дорого.
72+
73+
В таких случаях OPE + онлайн-эксперимент — более надёжная практика.
74+
75+
## 7) Практический rule-of-thumb по выбору оценщика
76+
77+
- **Replay**: baseline, сильно зависит от пересечения support.
78+
- **IPS / SNIPS**: взвешенные методы; чувствительны к overlap и хвостам весов.
79+
- **DM**: зависит от качества outcome-модели (model-dependent).
80+
- **DR**: частый practical default при приемлемом качестве nuisance-компонент.
81+
- **SNDR / Switch-DR**: полезные robustness-варианты при нестабильных весах.
82+
83+
Стартовая рекомендация в большинстве прикладных кейсов:
84+
1. начать с `dr`;
85+
2. проверить diagnostics + `trust_level`;
86+
3. сравнить с `sndr` / `switch_dr` при признаках весовой нестабильности;
87+
4. трактовать итог как directional evidence, если риски высоки или overlap слабый.
88+
89+
## 8) Мини-чеклист ответственной интерпретации
90+
91+
Перед выводом «B лучше A» проверьте:
92+
93+
1. `Delta` практически значим по масштабу?
94+
2. `Delta_CI` не слишком широкий?
95+
3. diagnostics без критичных warning?
96+
4. `trust_level` не сигналит elevated concern?
97+
5. есть план онлайн-верификации для high-stakes решений?
98+
99+
Если ответы 3–5 отрицательные — усиливайте осторожность и не заменяйте A/B-тест одним OPE.

0 commit comments

Comments
 (0)