🟦Ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ#

CΡ‚Π°Ρ‚ΡŒΡ ΠΎΡ‚ CΠ±Π΅Ρ€Π° ΠΈ ΡΡ‚Π°Ρ‚ΡŒΡ ΠΎΡ‚ X5.


Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ#

Π’Π²Π΅Π΄Π΅ΠΌ Π΄Π²Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π•Π΄ΠΈΠ½ΠΈΡ†Π° Π°Π½Π°Π»ΠΈΠ·Π° β€” это ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ. Π•ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, сСссия, Π·Π°ΠΊΠ°Π·, ΠΊΠ½ΠΎΠΏΠΊΠ°, Π±Π°Π½Π½Π΅Ρ€, Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ ΠΈ Ρ‚ΠΏ.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ объСм Π΄Π΅Π½Π΅Π³, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ Π·Π° ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄. Если ΠΌΡ‹ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ (Π½ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ) Π½Π° всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ARPU, Π° Ссли Π½Π° Π·Π°ΠΊΠ°Π·Ρ‹ β€” срСдний Ρ‡Π΅ΠΊ.

Π’Π°ΠΊΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚Ρ€Π°Ρ‚Ρ‹, ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΡ… распрСдСлСниС, Π° срСдним Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ этого распрСдСлСния ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ARPU. ΠŸΡ€ΠΎΠ΄Π΅Π»Π°Π² Ρ‚ΠΎ ΠΆΠ΅ самоС с Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ, Π² распрСдСлСнии ΠΈΡ… Ρ†Π΅Π½ срСдним Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ срСдний Ρ‡Π΅ΠΊ. ΠœΡ‹ просто пСрСраспрСдСляСм ΠΎΠ±Ρ‰ΠΈΠΉ массив Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π°.

Π•Π΄ΠΈΠ½ΠΈΡ†Π° Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ β€” это ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ случайным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°Π·Π½Π°Ρ‡Π°Π΅ΠΌ Π² Ρ‚Π΅ΡΡ‚ΠΎΠ²ΡƒΡŽ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡ‹ Π² А/B-тСстах, Π΅ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, сСссия, Π·Π°ΠΊΠ°Π· ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ. Но Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ‡Π°Ρ‰Π΅ всСго Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½Π° ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ дальшС.

Рандомизация ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½ΠΈΠ²Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ влияниС Π½Π΅Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΊΠ°Π·ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ экспСримСнта. К этим Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ отнСсти любой Π½ΠΎΠΌΠΈΠ½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, возраст, ΠΏΠΎΠ», Π³Π΅ΠΎΠ»ΠΎΠΊΠ°Ρ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ с ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ β€” «излишнС Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉΒ», Β«ΠΏΡ€ΠΎΠΊΠ»ΠΈΠΊΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹Π³ΠΎΠ΄Π½Ρ‹Π΅ Π°ΠΊΡ†ΠΈΠΈΒ», Β«Π½Π΅ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΉ/Π½Π΅ Π·Π½Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒΒ» ΠΈ Ρ‚ΠΏ.

Благодаря Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ наблюдаСмая Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ значСниями ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π² Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ²:

  • Π›ΠΈΠ±ΠΎ ΠΈΠ·-Π·Π° нашСй ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΈ;

  • По чистой случайности, Ρ‚.Π΅. Ρ€Π°Π½Π΄ΠΎΠΌΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π³Ρ€ΡƒΠΏΠΏΡ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ оказались Π² ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, рандомизация обСспСчиваСт Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ сигналов. Π’Π°ΠΊ, Ρ‚Ρ€Π°Ρ‚Ρ‹ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½Π΅ зависят ΠΎΡ‚ дСйствий Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ наблюдСний β€” ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… свойств для примСнСния статистичСского критСрия ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ.

Когда Π² экспСримСнтС совпадаСт Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ смСло ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ статкритСрий для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π³ΠΈΠΏΠΎΡ‚Π΅Π·Ρ‹. Π­Ρ‚ΠΎ относится ΠΊ любой ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ конвСрсии ΠΈ срСднСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Π²Ρ‹Π±ΠΎΡ€ΠΊΡƒ нСзависимых ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сигналов.

Из-Π·Π° трСбования статкритСриСв ΠΊ нСзависимости наблюдСний всС сигналы Π² A/B-тСстах справСдливо ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚.Π΅. ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Когда Π² экспСримСнтС хочСтся ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΉ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ появляСтся ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°, которая ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π°Ρ Π² экспСримСнтС Π΅Π΄ΠΈΠ½ΠΈΡ†Π° Π°Π½Π°Π»ΠΈΠ·Π° всСгда находится Π² зависимости ΠΎΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΡ€ΠΈ этом сами зависимыС сущности ΠΈ ΠΈΡ… сигналы ΠΌΠΎΠΆΠ½ΠΎ Β«ΡΠ²Π΅Ρ€Π½ΡƒΡ‚ΡŒΒ» Π΄ΠΎ Π΄Π²ΡƒΡ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сигналов. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Ссли Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΅ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π·Π°ΠΊΠ°Π·Π° с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ†Π΅Π½Π°ΠΌΠΈ, Ρ‚ΠΎ для этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π½ΡƒΠΆΠ½ΠΎ просто ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ число Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ суммарныС Ρ‚Ρ€Π°Ρ‚Ρ‹ ΠΏΠΎ Π½ΠΈΠΌ. ΠŸΡ€ΠΎΠ΄Π΅Π»Π°Π² Ρ‚Π°ΠΊ для всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, дальшС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ сигналы ΠΏΠΎ Π΄Π²ΡƒΠΌ Π½ΠΎΠ²Ρ‹ΠΌ полям ΠΈ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… суммы Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°, Ρ‚Π°ΠΊ получится срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰Π΅ΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π°, Π² нашСм случаС β€” срСдний Ρ‡Π΅ΠΊ.

Ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° β€” это ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ Π½Π΅ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ уровня (non-user level metric) с зависимыми наблюдСниями, Π½ΠΎ которая явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ выраТаСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сумм ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… сигналов.


ΠŸΠΎΡ‡Π΅ΠΌΡƒ нСльзя ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ t-тСстом?#

Π€ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ β€” ΠΈΠ·-Π·Π° Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ прСдпосылок ΠΎ нСзависимости наблюдСний, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ†Π΅Π½Ρ‹ Π·Π°ΠΊΠ°Π·ΠΎΠ², Π΄Π»ΠΈΠ½Ρ‹ сСссий, конвСрсии ΠΏΠΎΠΊΠ°Π·ΠΎΠ² Π² ΠΊΠ»ΠΈΠΊ ΠΈ Ρ‚ΠΏ. Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ скоррСлированными. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ значСния ΠΈΡ… сигналов зависят ΠΎΡ‚ ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… характСристик этого самого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

ΠΠ΅Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ это тСзис ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π° синтСтичСских A/A-тСстах, распрСдСляя ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π° ΡΡ‚Π°Ρ‚Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ оцСнивая, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎ ΠΈΡ… Π·Π°ΠΊΠ°Π·Π°ΠΌ. ΠŸΡ€ΠΈ этом распрСдСлСниС p-value для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ. Π’ свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, распрСдСлСниС p-value для срСднСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ сигналам Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ΅ распрСдСлСниС.

import math
import numpy as np
import pandas as pd
from scipy import stats
from tqdm import tqdm
import matplotlib.pyplot as plt
import seaborn as sns

np.random.seed(42)

def gen_aa_data(n_users=5000, sessions_per_user=3):
    group = np.random.choice(["A", "B"], size=n_users)
    sessions_per_user = np.random.poisson(sessions_per_user, size=n_users) + 1
    rows = []
    for i in range(n_users):
        user_group = group[i]

        user_mean = np.random.lognormal(mean=2.0, sigma=1)

        n_sess = sessions_per_user[i]
        revenue = np.random.normal(loc=user_mean, scale=1.0, size=n_sess)

        for r in revenue:
            rows.append((i, user_group, r))
    df = pd.DataFrame(rows, columns=["user_id", "group", "revenue"])
    return df[df.group == 'A'], df[df.group == 'B']

def plot_pvalue_ecdf(pvalues, alpha=0.05, title=None):
    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 6))

    if title:
        plt.suptitle(title)

    sns.histplot(pvalues, ax=ax1, bins=20, stat='density')
    ax1.plot([0,1],[1,1], 'k--')
    ax1.set_xlabel('p-value')
    ax1.axvline(alpha, color='r', linestyle='--', label=f'Ξ± = {alpha}\nFPR = {np.mean(np.array(pvalues)<alpha)}')
    ax1.legend()

    sns.ecdfplot(pvalues, ax=ax2)
    ax2.set_ylabel('Probability')
    ax2.set_xlabel('p-value')
    ax2.grid()
gen_aa_data()[0]
user_id group revenue
0 0 A 5.760583
1 0 A 6.492185
2 0 A 5.186003
3 0 A 5.248786
4 0 A 6.018372
... ... ... ...
20026 4997 A 8.622417
20027 4997 A 8.022218
20028 4997 A 8.390011
20029 4997 A 10.039620
20030 4997 A 7.995335

10116 rows Γ— 3 columns

def run_once():
   
    df = gen_aa_data()
    # --- Ratio (session-level): зависимыС наблюдСния ---
    df_a, df_b = gen_aa_data()
    p_ratio = stats.ttest_ind(df_a.revenue, df_b.revenue, equal_var=False).pvalue

    # --- User-level ---
    user_mean_a = df_a.groupby(["user_id"], as_index=False)["revenue"].mean()
    user_mean_b = df_b.groupby(["user_id"], as_index=False)["revenue"].mean()
    p_user = stats.ttest_ind(user_mean_a.revenue, user_mean_b.revenue, equal_var=False).pvalue

    return p_ratio, p_user

n_iter = 1000
alpha = 0.05

p_ratio_list, p_user_list = zip(*[run_once() for _ in range(n_iter)])
p_ratio_list = np.array(p_ratio_list)
p_user_list = np.array(p_user_list)

fpr_ratio = np.mean(p_ratio_list < alpha)
fpr_user = np.mean(p_user_list < alpha)

plot_pvalue_ecdf(p_ratio_list, title='A/A t-test для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ')
plot_pvalue_ecdf(p_user_list, title='A/A t-test для прСдусрСднСнных ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ')
../_images/fbe22a785ec3b3a9c3755de3ef1b55078e5477b0f6a297cc022a755655426d44.png ../_images/0045f1abfbe5e4997e5802c0c870322ad65d9178584e3af347166d19fea980a8.png

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ, Ссли Ρ€Π°ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ t-тСстом, Ρ‚ΠΎ Π² Π²Π°ΡˆΠΈΡ… экспСримСнтах Π±ΡƒΠ΄Π΅Ρ‚ расти ошибка 1-Π³ΠΎ Ρ€ΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ росту Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊ-ΠΏΡƒΡΡ‚Ρ‹ΡˆΠ΅ΠΊ Π±Π΅Π· ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ влияния Π½Π° бизнСс.

Π’ΠΎΠ³Π΄Π° встаСт Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ вопрос, Π° ΠΊΠ°ΠΊ Π² Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΎΡ†Π΅Π½ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° ΡΡ‚Π°Ρ‚Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΈ здСсь Π΅ΡΡ‚ΡŒ 3 распространСнных Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

  • ΠŸΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· прокси-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ, Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Π½ΡƒΡŽ прСдусрСднСнным срСдним Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ бутстрапа.

  • Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π΅Π»ΡŒΡ‚Π°-ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

И ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅Π΅Ρ‚ свои нСдостатки. Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ срСднСго Ρ‡Π΅ΠΊΠ°, CTR Π±Π°Π½Π½Π΅Ρ€Π° ΠΈ срСднСй Π΄Π»ΠΈΠ½Ρ‹ сСссии.

πŸ”ΉΠŸΡ€Π΅Π΄ΡƒΡΡ€Π΅Π΄Π½Π΅Π½Π½ΠΎΠ΅ срСднСС#

НаивноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ ΠΊ срСднСй ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ прокси-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ΅, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ усрСднив ΠΏΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ сигналы. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ получится прСдусрСднСнноС срСднСС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π° общая Ρ„ΠΎΡ€ΠΌΡƒΠ»Π° для срСднСго Ρ‡Π΅ΠΊΠ° Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, CTR Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ срСднСй Π΄Π»ΠΈΠ½Ρ‹ сСссии Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Для Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ стандартными статтСстами, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ эти сигналы нСзависимы. Однако Ρƒ Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” Π² экспСримСнтах Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹ΠΉ эффСкт Π² прСдусрСднСнном срСднСм ΠΈ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΉ Π·Π½Π°ΠΊ, Ρ‚.Π΅. эффСкты ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹. НапримСр, срСдний Ρ‡Π΅ΠΊ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ‚ статзначимо вырасти, Π½ΠΎ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ срСдний Ρ‡Π΅ΠΊ ΠΌΠΎΠ³ ΡƒΠΏΠ°ΡΡ‚ΡŒ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ Π½Π° корпусС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… экспСримСнтов, Π»ΠΈΠ±ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ симуляций.

На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ ΠΏΠΎ оси Ox Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Π΅ измСнСния Π² прСдусрСднСнном срСднСм, ΠΏΠΎ Oy эффСкт Π² ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ΅. Π‘ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ измСнСния Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ Π·Π΅Π»Π΅Π½Ρ‹ΠΌΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌΠΈ, Π° Ρ€Π°Π·Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ β€” красными. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² экспСримСнтах ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ эффСктов ΠΌΠ΅ΠΆΠ΄Ρƒ этими ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°ΠΌΠΈ, Ρ‚ΠΎ прСдусрСднСнноС срСднСС являСтся ΠΏΠ»ΠΎΡ…ΠΎΠΉ прокси-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΎΠΉ для Π·Π°ΠΌΠ΅Ρ€Π° статзначимости Π² ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ΅.

πŸ”ΉΠ‘ΡƒΡ‚ΡΡ‚Ρ€Π°ΠΏ#

Когда Π½Π΅ знаСшь ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ для своСй ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ β€” бутстрап Π² ΠΏΠΎΠΌΠΎΡ‰ΡŒ.

ЀактичСски ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° статоцСнки Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ t-тСстом связана с Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ наблюдСний. НСльзя просто Π²Π·ΡΡ‚ΡŒ ΠΈ ΠΏΠΎ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΡƒΡŽ Π΄ΠΈΡΠΏΠ΅Ρ€ΡΠΈΡŽ ΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ срСднСго (standard error) для Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. А Π²ΠΎΡ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ бутстрапа ΠΌΠΎΠΆΠ½ΠΎ.

Для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π½Π°Π΄ΠΎ ΡΠ΅ΠΌΠΏΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅ΠΌ случайных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… ΠΈ ΠΎΡ‚Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈΡ… ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ сигналы для числитСля ΠΈ знамСнатСля, ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ бутстрапированных ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ-ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·. По ΠΈΡ‚ΠΎΠ³Ρƒ получится эмпиричСскоС распрСдСлСниС Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, срСднСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹ΠΉ эффСкт Π² экспСримСнтС, с ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ Π΅Π΅ вариативности, эмпиричСской стандартной ошибкой срСднСго. Из этого распрСдСлСния ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π·Π°Π²Π΅Ρ‚Π½Ρ‹ΠΉ p-value.

\[ \Delta = R_{B_{bs}} - R_{A_{bs}} = \frac{\sum_{u \in T_{bs}} X(u)}{\sum_{u \in T_{bs}} Y(u)} - \frac{\sum_{u \in C_{bs}} X(u)}{\sum_{u \in C_{bs}} Y(u)} \]

Бутстрап Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ p-value для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, Π½ΠΎ минус ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ β€” бутстрап Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Ρ‚Ρ€Π°Ρ‚Π΅Π½ ΠΈ Π½Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ экспСримСнтов, Π³Π΄Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ дСсятки ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ. Π’Π°ΠΊ ΠΆΠ΅ Π½Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ Π½Π΅ получится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ извСстныС способы пониТСния диспСрсии.

# Π‘Ρ€Π΅Π΄Π½ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏ
# Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ это ΠΈΠΌΠ΅Π½Π½ΠΎ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°, Π° Π½Π΅ ΠΏΠΎΡŽΠ·Π΅Ρ€Π½Π°Ρ 
# (усрСднСнная для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ) ΡŽΠ·Π΅Ρ€Π°.

def bootstrap(df_a, df_b, id_column='user_id', value_column='revenue', n_iter=2000, alpha=0.05):

    df_a = df_a.groupby([id_column]).agg(revenue_sum=(value_column, 'sum'),
                                         session_count=(value_column, 'count')).reset_index()
    df_b = df_b.groupby([id_column]).agg(revenue_sum=(value_column, 'sum'),
                                         session_count=(value_column, 'count')).reset_index()

    mean_diff = []
    for _ in range(n_iter):
        a_sample = df_a.sample(n=len(df_a), replace=True)
        b_sample = df_b.sample(n=len(df_b), replace=True)

        a_mean = a_sample['revenue_sum'].sum() / a_sample['session_count'].sum()
        b_mean = b_sample['revenue_sum'].sum() / b_sample['session_count'].sum()

        mean_diff.append(float(a_mean - b_mean))

    mean_diff = np.array(mean_diff)
    left_bound = np.quantile(mean_diff, alpha/2)
    right_bound = np.quantile(mean_diff, 1-alpha/2)
    out_ci = 1 if (left_bound > 0) or (right_bound < 0) else 0
    return mean_diff, left_bound, right_bound, out_ci


p_value = []
for _ in tqdm(range(400)):
    _, _, _, out_ci = bootstrap(*gen_aa_data())
    p_value.append(out_ci)
print('FPR: ' , np.mean(p_value))

mean_diff, left_bound, right_bound, p_value = bootstrap(*gen_aa_data())
plt.figure(figsize=(8,5))
plt.title('Singe Bootstrap test result')
plt.hist(mean_diff, bins=40, color='coral', alpha=0.7)
plt.axvline(0, color='k', linestyle='--', label='Hβ‚€: diff = 0')
plt.axvline(left_bound, color='black', linestyle='--', label=f'CI: {left_bound:.2f} – {right_bound:.2f}')
plt.axvline(right_bound, color='black', linestyle='--')
plt.xlabel("A_mean βˆ’ B_mean")
plt.ylabel("Frequency")
plt.legend();
100%|β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 400/400 [05:33<00:00,  1.20it/s]
p-value:  0.055
../_images/e56f6d213177aea0bb82666872a1f014e3d5fc17f973664c00d15ced316e02aa.png

πŸ”ΉΠ”Π΅Π»ΡŒΡ‚Π°-ΠΌΠ΅Ρ‚ΠΎΠ΄#

Π Π°Π½Π΅Π΅ ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ тСст Π‘Ρ‚ΡŒΡŽΠ΄Π΅Π½Ρ‚Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ для ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΈΠ·-Π·Π° зависимых Π΄Π°Π½Π½Ρ‹Ρ…. Если ΠΊΠΎΠΏΠ½ΡƒΡ‚ΡŒ Π³Π»ΡƒΠ±ΠΆΠ΅, Ρ‚ΠΎ окаТСтся, Ρ‡Ρ‚ΠΎ тСст Π‘Ρ‚ΡŒΡŽΠ΄Π΅Π½Ρ‚Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ диспСрсии. Для ΠΎΡ†Π΅Π½ΠΊΠΈ диспСрсии зависимых Π΄Π°Π½Π½Ρ‹Ρ… нСдостаточно просто Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΡƒΡŽ Π΄ΠΈΡΠΏΠ΅Ρ€ΡΠΈΡŽ.

t - статистика для Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ Π΄Π²ΡƒΡ… ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ:

\[ t = \frac{R_T - R_C}{\sqrt{\frac{\mathbb{V}[R_T]}{n_T} + \frac{\mathbb{V}[R_C]}{n_C}}} \]

Вопрос: ΠΊΠ°ΠΊ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ диспСрсии \(R_T\) ΠΈ \(R_C\)?

  • ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅

Для любой \(f(x, y)\) Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’Π΅ΠΉΠ»ΠΎΡ€Π° Π² окрСстности Ρ‚ΠΎΡ‡ΠΊΠΈ \(\theta = (\theta_x, \theta_y)\)

\(f(x, y) = f(\theta) + f'_x(\theta)(x-\theta_x) + f'_y(\theta)(y-\theta_y) + R\)

Π³Π΄Π΅ \(R\) - остаток мСньшСго порядка Ρ‡Π΅ΠΌ Ρ‡Π»Π΅Π½Ρ‹ уравнСния.

ПолоТим \(\theta = (\mathbb{E}[X], \mathbb{E}[Y]) = (\mu_x, \mu_y)\)

Π’ΠΎΠ³Π΄Π°:

\( \mathbb{E}[X] = \mathbb{E}\left[f(\theta) + f'_x(\theta)(X-\mu_x) + f'_y(\theta)(Y-\mu_y) + R\right] \approx \)

\( \approx \mathbb{E}[f(\theta)] + \mathbb{E}[f'_x(\theta)(X-\mu_x)] + \mathbb{E}[f'_y(\theta)(Y-\mu_y)]= \)

\( = \mathbb{E}[f(\theta)] + f'_x(\theta)\mathbb{E}[(X-\mu_x)] + f'_y(\theta)\mathbb{E}[(Y-\mu_y)]= \)

\( = \mathbb{E}[f(\theta)] + 0 + 0 = \)(ΠœΠ°Ρ‚ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ числа)=

\( = f(\mu_x, \mu_y) \)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для \(f = f(X, Y) = f_{X, Y}(x, y) = \frac{X}{Y}\) ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ \(\mathbb{E}[f(X, Y)] \approx \frac{\mu_x}{\mu_y}\)


  • ДиспСрсия

ДиспСрсия ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ:

\[ \mathbb{V}[f(X, Y)] = \mathbb{E}\left\{[f(X, Y) - \mathbb{E}[f(X, Y)]]^2\right\} \]

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ \(\mathbb{E}[f(X, Y)] \approx f(\theta)\):

\[ \mathbb{V}[f(X, Y)] = \mathbb{E}\left\{[f(X, Y) - f(\theta)]^2\right\} \]

Π Π°Π·Π»ΠΎΠΆΠΈΠΌ Π² ряд Π’Π΅ΠΉΠ»ΠΎΡ€Π° для \(f(X, Y)\) Π² окрСстности Ρ‚ΠΎΡ‡ΠΊΠΈ \(\theta = (\mu_x, \mu_y)\):

\( \mathbb{V}[f(X, Y)] \approx \mathbb{E}\left\{ [f(\theta) + f'_x(\theta)(X-\mu_x) + f'_y(\theta)(Y-\mu_y) - f(\theta)]^2\right\} = \)

\( = \mathbb{E}\left\{ [f'_x(\theta)(X-\mu_x) + f'_y(\theta)(Y-\mu_y)]^2\right\} = \)

\( = \mathbb{E}\left\{ f'^2_x(\theta)(X-\mu_x)^2 + 2f'_x(\theta)(X-\mu_x)f'_y(\theta)(Y-\mu_y) + f'^2_y(\theta)(Y-\mu_y)^2\right\} = \)

\( = f'^2_x(\theta)\mathbb{V}[X] + 2f'_x(\theta)f'_y(\theta)cov(X, Y) + f'^2_y(\theta)\mathbb{V}[Y] \)

Вычислим ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ для \(f(X, Y) = \frac{X}{Y}\)

\( f(x, y) = \frac{x}{y} \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, f'_x = \left.\frac{1}{y}\right|_{x=X, y=Y} = \frac{1}{Y} \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,f'_y = \left.-\frac{x}{y^2}\right|_{x=X, y=Y} = -\frac{X}{Y^2} \)

Π’ΠΎΠ³Π΄Π° Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ \(\theta = (\mu_x, \mu_y)\) ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ

\( f'^2_x(\theta) = \frac{1}{\mu_y^2} \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,f'_y(\theta) = \frac{\mu_x^2}{\mu_y^4} \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\, f'^2_x(\theta)f'_y(\theta) = -\frac{\mu_x}{\mu_y^3} \)

ΠŸΠΎΠ΄ΡΡ‚Π°Π²ΠΈΠ² значСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ…, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ

\[ \boxed{\mathbb{V}\left[\frac{X}{Y}\right]=\frac{1}{\mu_y^2}\mathbb{V}[X] -2\frac{\mu_x}{\mu_y^3}cov(X, Y) + \frac{\mu_x^2}{\mu_y^4}\mathbb{V}[Y]} \]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ t-статистику ΠΈ p-value для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ.

\[ t = \frac{R_T - R_C}{\sqrt{\frac{\mathbb{V}[R_T]}{n_T} + \frac{\mathbb{V}[R_C]}{n_C}}} \]
\[ R = \frac{X}{Y} \]
\[ \mathbb{V}\left[\frac{X}{Y}\right]=\frac{1}{\mu_y^2}\mathbb{V}[X] -2\frac{\mu_x}{\mu_y^3}cov(X, Y) + \frac{\mu_x^2}{\mu_y^4}\mathbb{V}[Y] \]
def delta_t_test(df_a, df_b, id_column='user_id', value_column='revenue'):
    def get_var(mu_x, mu_y, v_x, v_y, cov):
        return v_x/mu_y**2 - 2*mu_x*cov/mu_y**2 + mu_x**2/mu_y**4 * v_y
     
    df_a = df_a.groupby([id_column]).agg(revenue_sum=(value_column, 'sum'),
                                         session_count=(value_column, 'count')).reset_index()
    df_b = df_b.groupby([id_column]).agg(revenue_sum=(value_column, 'sum'),
                                         session_count=(value_column, 'count')).reset_index()

    r_a = df_a.revenue_sum.sum()/df_a.session_count.sum()
    mu_a_x, mu_a_y = df_a.revenue_sum.mean(), df_a.session_count.mean()
    v_a_x, v_a_y = df_a.revenue_sum.var(), df_a.session_count.var()
    cov_a = np.cov(df_a.revenue_sum, df_a.session_count)[0, 1]
    var_a = get_var(mu_a_x, mu_a_y, v_a_x, v_a_y, cov_a)

    r_b = df_b.revenue_sum.sum()/df_b.session_count.sum()
    mu_b_x, mu_b_y = df_b.revenue_sum.mean(), df_b.session_count.mean()
    v_b_x, v_b_y= df_b.revenue_sum.var(), df_b.session_count.var()
    cov_b = np.cov(df_b.revenue_sum, df_b.session_count)[0, 1]
    var_b = get_var(mu_b_x, mu_b_y, v_b_x, v_b_y, cov_b)
    t = (r_a - r_b)/math.sqrt(var_a/df_a.shape[0] + var_b/df_b.shape[0])
    p_value = 2 * (1 - stats.norm.cdf(abs(t)))
    return t, p_value


n_iter = 1000
alpha = 0.05

_, p_value_list = zip(*[delta_t_test(*gen_aa_data()) for _ in range(n_iter)])
p_value_list = np.array(p_user_list)

plot_pvalue_ecdf(p_value_list, title='A/A Π”Π΅Π»ΡŒΡ‚Π°-ΠΌΠ΅Ρ‚ΠΎΠ΄ для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ')
../_images/2fb4d7f343d1f272d780441715f58f3f74386c9e60fb8abb18399c19b6c0e8ed.png

Если ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ бутстрапом ΠΈ Π΄Π΅Π»ΡŒΡ‚Π°-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π½Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Π²Ρ‹Π±ΠΎΡ€ΠΊΠ°Ρ… для Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, Ρ‚ΠΎ p-value Π΄Π²ΡƒΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с достаточной Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ с Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΌ ΡƒΠ³Π»ΠΎΠ²Ρ‹ΠΌ коэффициСнтом. МоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ значСния p-value Π΄Π΅Π»ΡŒΡ‚Π°-ΠΌΠ΅Ρ‚ΠΎΠ΄Π° консистСнтны значСниям, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ бутстрапа. БоотвСтствСнно, ΠΈ Π½Π° A/A-тСстах Π΄Π΅Π»ΡŒΡ‚Π°-ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄Π°Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹Π΅ распрСдСлСния для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΈ Π½Π΅ Π·Π°Π²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ 1-Π³ΠΎ Ρ€ΠΎΠ΄Π°.

НСдостатки Ρƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ сигналами, Ρ‚ΠΎ для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π½Π΅ получится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚.Π΅. Π² экспСримСнтах для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… конвСрсий ΠΈ срСдних ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ CUPED, для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ β€” Π½Π΅Ρ‚.

πŸ”ΉΠ›ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΡ#

ΠŸΡƒΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ какая-Ρ‚ΠΎ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° Π²ΠΈΠ΄Π°:

\[ R_A = \frac{\sum_{u \in A} X(u)}{\sum_{u \in A} Y(u)} \]
  • ЛинСаризованная ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

\[ L(u) = X(u) - \alpha Y(u) \]
  • ЛинСаризованная ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°:

\[ \mathcal{L}_A = avg_{u \in A} L(u) \]

Как Π½Π°ΠΉΡ‚ΠΈ \(\alpha\)?


Π’Π²Π΅Π΄Π΅ΠΌ нСсколько Ρ‚Π΅ΠΎΡ€Π΅ΠΌ.

ΠΠ°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ#

Π’Π΅ΠΎΡ€Π΅ΠΌΠ°

ΠŸΡƒΡΡ‚ΡŒ \(X\) ΠΈ \(Y\) - ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ \(Y\) - ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ. \(R\) - ratio ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°, \(\mathcal{L}\) - линСаризованная ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ \(\alpha\) ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ°ΠΊ \(\alpha(\eta) = (1-\eta)R_A + \eta R_B, \,\,\,\, \eta \in \mathbb{R}\). Π’ΠΎΠ³Π΄Π° Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ связана ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ

\[ \Delta(\mathcal{L}) = ((1-\eta)Y_B + \eta Y_A)\Delta(R) \]

Π”ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ:

ΠŸΡ€ΠΈ \(\eta=0\) ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ \(\alpha = R_A\) ΠΈ \(\Delta(\mathcal{L}_{\alpha(0)}) = Y_B \Delta (R)\)

\[ \Delta(\mathcal{L}_{\alpha(0)}) - \Delta(X) - \alpha(0)\Delta(Y) = (X_B - X_A) - \left(\frac{X_A}{Y_A}\right)(Y_B - Y_A) = \]
\[ =X_B - \frac{X_A Y_B}{Y_A} = Y_B\left(\frac{X_B}{Y_B} - \frac{X_A}{Y_A}\right) = Y_B\Delta(R) \]

Аналогично, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ \(\Delta(\mathcal{L}_{\alpha(1)}) = Y_A\Delta(R)\) ΠΏΡ€ΠΈ \(\eta=1\). ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ \(\mathcal{L}_{\alpha(\eta)}\) ΠΊΠ°ΠΊ Π»ΠΈΠ½Π΅ΠΉΠ½ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ \(\mathcal{L}_{\alpha(0)}\) ΠΈ \(\mathcal{L}_{\alpha(1)}\):

\[ \Delta(\mathcal{L}_{\alpha(\eta)}) = \Delta(X) - ((1-\eta)R_A + \eta R_B) \Delta(Y) = \]
\[ =(1-\eta)\Delta(\mathcal{L}_{R_A}) + \eta \Delta(\mathcal{L}_{R_B}) = (1-\eta)Y_B\Delta(R) + \eta Y_A\Delta(R) \]

БлСдствиС

Если \(\alpha \in [min\{R_A, R_B\}, max\{R_A, R_B\}]\), Ρ‚ΠΎ

\( sgn\Delta(R) = sgn\Delta(\mathcal{L}) \)


Π—Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ#

ΠžΡ†Π΅Π½ΠΊΠ° значимости

Для ΠΎΡ†Π΅Π½ΠΊΠΈ значимости измСнСния Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΅Π΅ распрСдСлСниС ΠΏΡ€ΠΈ условии Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ€Π½Π° нулСвая Π³ΠΈΠΏΠΎΡ‚Π΅Π·Π°.

\(\mathcal{L}\) - срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ нСзависимыми.

МоТно ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ тСст Π‘Ρ‚ΡŒΡŽΠ΄Π΅Π½Ρ‚Π°, ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€ΠΈ Π·Π°Ρ€Π°Π½Π΅Π΅ фиксированном ΠΈ нСзависящСм ΠΎΡ‚ наблюдСний ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ \(\alpha\).

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° значимости Π΄Π°Π½Π½Ρ‹Ρ…

Если устанавливаСм \(\alpha = R_A\), Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ΡΡ Π΄Π²Π° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… условия критСрия Π‘Ρ‚ΡŒΡŽΠ΄Π΅Π½Ρ‚Π°:

  • ЗначСния \(\mathcal{L_A}\) ΠΈ \(\mathcal{L_B}\) Π½Π΅ нСзависимыС;

  • ЗначСния Π²Π½Ρ‚ΡƒΡ€ΠΈ мноТСств \(\{L(u)|u \in V=A, B\}\) Π½Π΅ нСзависимыС.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΡ‚ΡŒ ряд Ρ‚Π΅ΠΎΡ€Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π‘Ρ‚ΡŒΡŽΠ΄Π΅Π½Ρ‚Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ для \(\Delta(\mathcal{L})\).


Π’Π΅ΠΎΡ€Π΅ΠΌΠ° ΠŸΡƒΡΡ‚ΡŒ \(X\) ΠΈ \(Y\) - ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ \(Y\) - ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ. \(R\) - ratio ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°, \(\mathcal{L}\) - линСаризованная ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ \(\alpha = R_A\). ΠŸΡƒΡΡ‚ΡŒ \(T(\mathcal{L_A})\) - t-статистика для срСднСго ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ \(L\). \(D(R) = \Delta(R) / \sqrt{\delta(R_A) + \delta(R_B)}\) - ассимтотичСски стандартная Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π°Ρ статистика, получСнная дСльма ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Π³Π΄Π΅ \(\delta(R_A)\) ΠΈ \(\delta(R_B)\) - диспСрсии ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ \(R_A\) ΠΈ \(R_B\), Π° \(\Delta(R) = R_B-R_A\)

  • Π’ΠΎΠ³Π΄Π° Π²Π΅Ρ€Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ тоТдСство:

\[ T(\mathcal{L}) = D(R)\sqrt{1-\frac{\gamma}{\delta(R_A) + \delta(R_B) + \gamma}}, \]

Π³Π΄Π΅ \(\gamma = (Y^2_A/Y^2_B-1)\delta(R_A) + \beta\) ΠΈ \(\beta = \frac{\Delta(R)\left((R_A + R_B) \sigma^2_B(Y) - 2cov_B(X, Y)\right)}{|B|Y^2_B}\)

  • Если выборочная коррСляция ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° \(|corr_B(X, Y)|\) < c < 1, Ρ‚ΠΎ Π²Π΅Ρ€Π½ΠΎ

\[ \left| \frac{T(\mathcal{L})}{D(R)}-1\right| \leq C_1(c)\left|\frac{\Delta X}{X_B}\right|+ C_2(c)\left|\frac{\Delta Y}{Y_B}\right| \]

ΠŸΡ€ΠΈ достаточно ΠΌΠ°Π»Ρ‹Ρ… ΠΎΠ½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… измСнСниях \(\left|\frac{\Delta X}{X_B}\right| < \varepsilon_1(c)\) ΠΈ \(\left|\frac{\Delta Y}{Y_B}\right| < \varepsilon_2(c)\); Π³Π΄Π΅ константы \(C_1(c), C_2(c), \varepsilon_1(c), \varepsilon_2(c)\) зависят Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ \(c\).

  • Если \(|corr(X, Y|B)| < c < 1\) ΠΈ \(\mathbb{E}[X|A] \neq 0\), \(\mathbb{E}[Y|A] \neq 0\), Ρ‚ΠΎ t-статистика \(T(\mathcal{L})\) ассимптотичСски Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½Π° ΠΏΡ€ΠΈ Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π³ΠΈΠΏΠΎΡ‚Π΅Π·Π΅.


Π‘ΡƒΡ‚ΡŒ: АссимптотичСски ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ Π‘Ρ‚ΡŒΡŽΠ΄Π΅Π½Ρ‚Π° для Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ \(\frac{\Delta X}{X_B}\) ΠΈ \(\frac{\Delta Y}{Y_B}\) Π½Π΅Π²Π΅Π»ΠΈΠΊΠΈ, Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ², Π² этом случаС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ \(T(\mathcal{L})\) ΠΈ \(D(R)\) Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ порядка, Π° ΡƒΡ€ΠΎΠ²Π½ΠΈ значимости \(\Delta(\mathcal{L})\), рассчитанныС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ критСрия Π‘Ρ‚ΡŒΡŽΠ΄Π΅Π½Ρ‚Π° ΡΠΎΠ³Π»Π°ΡΡƒΡŽΡ‚ΡΡ с уровнями значимости \(\Delta(R)\), ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π΅Π»ΡŒΡ‚Π°-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠΈ бутсатрапом.



Алгоритм примСнСния Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ#

Алгоритм примСнСния Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΎΡ†Π΅Π½ΠΈΠΊ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° AB тСста, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π² качСствС основной ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ выступаСт ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ

\[ R_A = \frac{\sum_{u \in A} X(u)}{\sum_{u \in A} Y(u)} \]
  1. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΡƒΡ‡Π°Π²ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠ΅Π³ΠΎ Π² AB-тСстС, Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ \(L(u) = X(u) - \alpha Y(u), \,\,\,\,\, \alpha = R_A\);

  2. ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ способы ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ;

  3. Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ t-статистики критСрия Π‘Ρ‚ΡŒΡŽΠ΄Π΅Π½Ρ‚Π° ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ \(p_{value}\);

  4. ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Π΅ согласно ΠΎΠ³ΠΎΠ²ΠΎΡ€Π΅Π½Π½ΠΎΠΌΡƒ Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° экспСримСнта ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Π΅ \(p_{value}\) ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ значимости.

def linearization(df_a, df_b, id_column='user_id', value_column='revenue'):
    df_a = df_a.groupby([id_column]).agg(revenue_sum=(value_column, 'sum'),
                                         session_count=(value_column, 'count')).reset_index()
    df_b = df_b.groupby([id_column]).agg(revenue_sum=(value_column, 'sum'),
                                         session_count=(value_column, 'count')).reset_index()
    
    alpha = df_a.revenue_sum.sum()/df_a.session_count.sum()

    df_a['L'] = df_a.revenue_sum - alpha*df_a.session_count
    df_b['L'] = df_b.revenue_sum - alpha*df_b.session_count

    p = stats.ttest_ind(df_a.L, df_b.L, equal_var=False).pvalue
    return p
    
p_value_list = [linearization(*gen_aa_data()) for _ in range(1000)]
plot_pvalue_ecdf(p_value_list, title='A/A линСаризация для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ')
../_images/ff2a359c81fb59633e2a444b712d0481395f61a068727c748c3125e47b50e5c0.png

А Ρ‡Ρ‚ΠΎ Π·Π° значСния Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сигналов ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈΡΡŒ, ΠΊΠ°ΠΊ ΠΈΡ… Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ ΠΈΠ½Π΅Ρ€ΠΏΡ€ΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ?

К Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ сигналам ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΊ Π΅Π΄ΠΈΠ½ΠΈΡ†Π°ΠΌ Π²ΠΊΠ»Π°Π΄Π° Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ Π΄ΠΎ наблюдаСмого Π² тСстС. Π­Ρ‚ΠΎΡ‚ тСзис ΠΌΠΎΠΆΠ½ΠΎ наглядно ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° распрСдСлСниях этих Π²ΠΊΠ»Π°Π΄ΠΎΠ² Π² ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏΠ°Ρ….

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ всСгда равняСтся Π½ΡƒΠ»ΡŽ, Ρ‚.Π΅. суммарно Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ Π²ΠΊΠ»Π°Π΄Π° Π½Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ ΠΈ замСряСм. Π’ тСстовой ΠΆΠ΅ Π³Ρ€ΡƒΠΏΠΏΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ срСднСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΎΠ², Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅, Π»ΠΈΠ±ΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅.

ΠŸΡ€ΠΈ этом линСаризованная ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ рядом ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… особСнностСй.

Π’ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ прСдусрСднСнного срСднСго, Ρ€Π°Π·Π½ΠΈΡ†Π° Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ всСгда сохраняСт ΡΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ΅. НапримСр, Ссли Π² экспСримСнтС CTR вырос ΠΈΠ»ΠΈ ΡƒΠΏΠ°Π», Ρ‚ΠΎ Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ CTR всСгда измСнится Π² Ρ‚Ρƒ ΠΆΠ΅ сторону. (По Ρ‚Π΅ΠΎΡ€Π΅ΠΌΠ΅ Π²Ρ‹ΡˆΠ΅)

Π’ΠΎ Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ сигналы ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ нСзависимыми ΠΈ для Π½ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΡΡ‚Π°Ρ‚Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ t-тСстом. ΠŸΡ€ΠΈ этом, значСния p-value для Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π±ΡƒΠ΄ΡƒΡ‚ консистСнтны значСниям, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π΅Π»ΡŒΡ‚Π°-ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π° исходной ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ΅. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»ΡŒΡ‚Π°-ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ значСния p-value с достаточной Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ. БоотвСтствСнно ΠΈ Π½Π° А/А-тСстах линСаризация ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹.

Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, линСаризация позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ для обнаруТСния эффСктов ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ Π² Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΡ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Ρ…. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CUPED для ratio-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π΅ Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π»ΠΈΠ½Π΅Π°Ρ€ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ сигналы Π½Π° ΠΏΡ€Π΅Π΄ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π΅. ΠŸΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡΡ Π΄Π²Π΅ срСдниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ CUPED.