π¦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 Π΄Π»Ρ ΠΏΡΠ΅Π΄ΡΡΡΠ΅Π΄Π½Π΅Π½Π½ΡΡ
ΠΌΠ΅ΡΡΠΈΠΊ')
ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΠ°ΡΡΠΈΡΡΠ²Π°ΡΡ ratio-ΠΌΠ΅ΡΡΠΈΠΊΠΈ t-ΡΠ΅ΡΡΠΎΠΌ, ΡΠΎ Π² Π²Π°ΡΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ° 1-Π³ΠΎ ΡΠΎΠ΄Π°, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΡΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ Π² ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊ-ΠΏΡΡΡΡΡΠ΅ΠΊ Π±Π΅Π· ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²Π»ΠΈΡΠ½ΠΈΡ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ.
Π’ΠΎΠ³Π΄Π° Π²ΡΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ Π²ΠΎΠΏΡΠΎΡ, Π° ΠΊΠ°ΠΊ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ Π½Π° ΡΡΠ°ΡΠ·Π½Π°ΡΠΈΠΌΠΎΡΡΡ ratio-ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΈ Π·Π΄Π΅ΡΡ Π΅ΡΡΡ 3 ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠ°:
ΠΠΎΡΡΠΈΡΠ°ΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠΊΡΠΈ-ΠΌΠ΅ΡΡΠΈΠΊΡ, Π²ΡΡΠ°ΠΆΠ΅Π½Π½ΡΡ ΠΏΡΠ΅Π΄ΡΡΡΠ΅Π΄Π½Π΅Π½Π½ΡΠΌ ΡΡΠ΅Π΄Π½ΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΡΡΡΡΡΠ°ΠΏΠ°.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π΅Π»ΡΡΠ°-ΠΌΠ΅ΡΠΎΠ΄Π°.
Π ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΡΠ΅ΠΊΠ°, CTR Π±Π°Π½Π½Π΅ΡΠ° ΠΈ ΡΡΠ΅Π΄Π½Π΅ΠΉ Π΄Π»ΠΈΠ½Ρ ΡΠ΅ΡΡΠΈΠΈ.
πΉΠΡΠ΅Π΄ΡΡΡΠ΅Π΄Π½Π΅Π½Π½ΠΎΠ΅ ΡΡΠ΅Π΄Π½Π΅Π΅#
ΠΠ°ΠΈΠ²Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ratio-ΠΌΠ΅ΡΡΠΈΠΊΡ ΠΊ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΏΡΠΎΠΊΡΠΈ-ΠΌΠ΅ΡΡΠΈΠΊΠ΅, ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΡΠ΅Π΄Π½ΠΈΠ² ΠΏΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΏΡΠ΅Π΄ΡΡΡΠ΅Π΄Π½Π΅Π½Π½ΠΎΠ΅ ΡΡΠ΅Π΄Π½Π΅Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ. ΠΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅ ΡΠΊΠ°Π·Π°Π½Π° ΠΎΠ±ΡΠ°Ρ ΡΠΎΡΠΌΡΠ»Π° Π΄Π»Ρ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ ΡΠ΅ΠΊΠ° Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, CTR Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΡΡΠ΅Π΄Π½Π΅ΠΉ Π΄Π»ΠΈΠ½Ρ ΡΠ΅ΡΡΠΈΠΈ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.

ΠΠ»Ρ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π·Π½Π°ΡΠΈΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΡΡΠ°ΡΡΠ΅ΡΡΠ°ΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΈ ΡΠΈΠ³Π½Π°Π»Ρ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡ. ΠΠ΄Π½Π°ΠΊΠΎ Ρ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° β Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΡΡΡΠ΅ΠΊΡ Π² ΠΏΡΠ΅Π΄ΡΡΡΠ΅Π΄Π½Π΅Π½Π½ΠΎΠΌ ΡΡΠ΅Π΄Π½Π΅ΠΌ ΠΈ Π² ΡΠ΅Π»Π΅Π²ΠΎΠΉ ratio-ΠΌΠ΅ΡΡΠΈΠΊΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠΉ Π·Π½Π°ΠΊ, Ρ.Π΅. ΡΡΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ΅ΠΊ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΠ·Π½Π°ΡΠΈΠΌΠΎ Π²ΡΡΠ°ΡΡΠΈ, Π½ΠΎ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΠ΅ΠΊ ΠΌΠΎΠ³ ΡΠΏΠ°ΡΡΡ. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ Π½Π° ΠΊΠΎΡΠΏΡΡΠ΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ², Π»ΠΈΠ±ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΈΠΌΡΠ»ΡΡΠΈΠΉ.

ΠΠ° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΠΏΠΎ ΠΎΡΠΈ Ox Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠ΅Π΄ΡΡΡΠ΅Π΄Π½Π΅Π½Π½ΠΎΠΌ ΡΡΠ΅Π΄Π½Π΅ΠΌ, ΠΏΠΎ Oy ΡΡΡΠ΅ΠΊΡ Π² ratio-ΠΌΠ΅ΡΡΠΈΠΊΠ΅. Π‘ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΡΠ΄Π΅Π»Π΅Π½Ρ Π·Π΅Π»Π΅Π½ΡΠΌΠΈ ΡΠΎΡΠΊΠ°ΠΌΠΈ, Π° ΡΠ°Π·Π½ΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ β ΠΊΡΠ°ΡΠ½ΡΠΌΠΈ. ΠΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΡΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌΠΈ, ΡΠΎ ΠΏΡΠ΅Π΄ΡΡΡΠ΅Π΄Π½Π΅Π½Π½ΠΎΠ΅ ΡΡΠ΅Π΄Π½Π΅Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ»ΠΎΡ ΠΎΠΉ ΠΏΡΠΎΠΊΡΠΈ-ΠΌΠ΅ΡΡΠΈΠΊΠΎΠΉ Π΄Π»Ρ Π·Π°ΠΌΠ΅ΡΠ° ΡΡΠ°ΡΠ·Π½Π°ΡΠΈΠΌΠΎΡΡΠΈ Π² ratio-ΠΌΠ΅ΡΡΠΈΠΊΠ΅.
πΉΠΡΡΡΡΡΠ°ΠΏ#
ΠΠΎΠ³Π΄Π° Π½Π΅ Π·Π½Π°Π΅ΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ ΡΡΠ°ΡΠ·Π½Π°ΡΠΈΠΌΠΎΡΡΡ Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠ΅ΡΡΠΈΠΊΠΈ β Π±ΡΡΡΡΡΠ°ΠΏ Π² ΠΏΠΎΠΌΠΎΡΡ.
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠ°ΡΠΎΡΠ΅Π½ΠΊΠΈ ΡΠ°Π·Π½ΠΈΡΡ ratio-ΠΌΠ΅ΡΡΠΈΠΊ t-ΡΠ΅ΡΡΠΎΠΌ ΡΠ²ΡΠ·Π°Π½Π° Ρ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΠΉ. ΠΠ΅Π»ΡΠ·Ρ ΠΏΡΠΎΡΡΠΎ Π²Π·ΡΡΡ ΠΈ ΠΏΠΎ Π³ΡΡΠΏΠΏΠ°ΠΌ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ ΠΈ ΠΎΡΠ΅Π½ΠΈΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ (standard error) Π΄Π»Ρ ΡΠ°Π·Π½ΠΈΡΡ ratio-ΠΌΠ΅ΡΡΠΈΠΊ. Π Π²ΠΎΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΡΡΡΡΡΠ°ΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠ»Ρ ratio-ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π½Π°Π΄ΠΎ ΡΠ΅ΠΌΠΏΠ»ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² Π³ΡΡΠΏΠΏΠ°Ρ ΠΈ ΠΎΡΠ±ΠΈΡΠ°ΡΡ ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ Π΄Π»Ρ ΡΠΈΡΠ»ΠΈΡΠ΅Π»Ρ ΠΈ Π·Π½Π°ΠΌΠ΅Π½Π°ΡΠ΅Π»Ρ, ΡΡΠΈΡΠ°ΡΡ ΡΠ°Π·Π½ΠΈΡΡ Π±ΡΡΡΡΡΠ°ΠΏΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ratio-ΠΌΠ΅ΡΡΠΈΠΊ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΡΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ-ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π·. ΠΠΎ ΠΈΡΠΎΠ³Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΡΠΌΠΏΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π·Π½ΠΈΡΡ ratio-ΠΌΠ΅ΡΡΠΈΠΊ, ΡΡΠ΅Π΄Π½Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΠΉ ΡΡΡΠ΅ΠΊΡ Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ΅, Ρ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΎΡΠ΅Π½ΠΊΠΎΠΉ Π΅Π΅ Π²Π°ΡΠΈΠ°ΡΠΈΠ²Π½ΠΎΡΡΠΈ, ΡΠΌΠΏΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ. ΠΠ· ΡΡΠΎΠ³ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΈΡΠ°ΡΡ Π·Π°Π²Π΅ΡΠ½ΡΠΉ p-value.
ΠΡΡΡΡΡΠ°ΠΏ Π²ΡΠ΄Π°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ 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
πΉΠΠ΅Π»ΡΡΠ°-ΠΌΠ΅ΡΠΎΠ΄#
Π Π°Π½Π΅Π΅ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ, ΡΡΠΎ ΡΠ΅ΡΡ Π‘ΡΡΡΠ΄Π΅Π½ΡΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΌΠ΅ΡΡΠΈΠΊ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΈΠ·-Π·Π° Π·Π°Π²ΠΈΡΠΈΠΌΡΡ
Π΄Π°Π½Π½ΡΡ
. ΠΡΠ»ΠΈ ΠΊΠΎΠΏΠ½ΡΡΡ Π³Π»ΡΠ±ΠΆΠ΅, ΡΠΎ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΡΠ΅ΡΡ Π‘ΡΡΡΠ΄Π΅Π½ΡΠ° Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈΠ·-Π·Π° Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΈ. ΠΠ»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΡΡ
Π΄Π°Π½Π½ΡΡ
Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΡ.
t - ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π΄Π»Ρ ΡΠ°Π·Π½ΠΈΡΡ Π΄Π²ΡΡ ratio-ΠΌΠ΅ΡΡΠΈΠΊ:
ΠΠΎΠΏΡΠΎΡ: ΠΊΠ°ΠΊ ΠΎΡΠ΅Π½ΠΈΡΡ Π΄ΠΈΡΠΏΠ΅ΡΡΠΈΠΈ \(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{E}[f(X, Y)] \approx f(\theta)\):
Π Π°Π·Π»ΠΎΠΆΠΈΠΌ Π² ΡΡΠ΄ Π’Π΅ΠΉΠ»ΠΎΡΠ° Π΄Π»Ρ \(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} \)
ΠΠΎΠ΄ΡΡΠ°Π²ΠΈΠ² Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ , ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΈΡΠΎΠ³ΠΎΠ²ΡΡ ΡΠΎΡΠΌΡΠ»Ρ
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΡΠΈΡΠ»ΡΡΡ t-ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΈ p-value Π΄Π»Ρ ratio-ΠΌΠ΅ΡΡΠΈΠΊ.
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-ΠΌΠ΅ΡΡΠΈΠΊ')
ΠΡΠ»ΠΈ ΡΡΠΈΡΠ°ΡΡ ΡΡΠ°ΡΠ·Π½Π°ΡΠΈΠΌΠΎΡΡΡ Π±ΡΡΡΡΡΠ°ΠΏΠΎΠΌ ΠΈ Π΄Π΅Π»ΡΡΠ°-ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π½Π° ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΡ Π²ΡΠ±ΠΎΡΠΊΠ°Ρ Π΄Π»Ρ ΡΠ°Π·Π½ΠΈΡΡ ratio-ΠΌΠ΅ΡΡΠΈΠΊ, ΡΠΎ p-value Π΄Π²ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π±ΡΠ΄ΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ ΠΈ ΠΈΠΌΠ΅ΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡ Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΡΠΌ ΡΠ³Π»ΠΎΠ²ΡΠΌ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠΌ. ΠΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ p-value Π΄Π΅Π»ΡΡΠ°-ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΡΡΡΡΡΠ°ΠΏΠ°. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈ Π½Π° A/A-ΡΠ΅ΡΡΠ°Ρ Π΄Π΅Π»ΡΡΠ°-ΠΌΠ΅ΡΠΎΠ΄ Π΄Π°Π΅Ρ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄Π»Ρ ratio-ΠΌΠ΅ΡΡΠΈΠΊ ΠΈ Π½Π΅ Π·Π°Π²ΡΡΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ 1-Π³ΠΎ ΡΠΎΠ΄Π°.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΡΠΎΠΆΠ΅ Π΅ΡΡΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°ΠΏΡΡΠΌΡΡ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌΠΈ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ, ΡΠΎ Π΄Π»Ρ ratio-ΠΌΠ΅ΡΡΠΈΠΊ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Ρ.Π΅. Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Ρ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΠΉ ΠΈ ΡΡΠ΅Π΄Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΌΠ΅ΡΡΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ CUPED, Π΄Π»Ρ ratio-ΠΌΠ΅ΡΡΠΈΠΊ β Π½Π΅Ρ.
πΉΠΠΈΠ½Π΅Π°ΡΠΈΠ·Π°ΡΠΈΡ#
ΠΡΡΡΡ Π΅ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ratio-ΠΌΠ΅ΡΡΠΈΠΊΠ° Π²ΠΈΠ΄Π°:
ΠΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ°:
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ \(\alpha\)?
ΠΠ²Π΅Π΄Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΎΡΠ΅ΠΌ.
ΠΠ°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΡΡΡ#
Π’Π΅ΠΎΡΠ΅ΠΌΠ°
ΠΡΡΡΡ \(X\) ΠΈ \(Y\) - ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ \(Y\) - ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½Π°Ρ. \(R\) - ratio ΠΌΠ΅ΡΡΠΈΠΊΠ°, \(\mathcal{L}\) - Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ \(\alpha\) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΠΊΠ°ΠΊ \(\alpha(\eta) = (1-\eta)R_A + \eta R_B, \,\,\,\, \eta \in \mathbb{R}\). Π’ΠΎΠ³Π΄Π° ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΡΡΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ ΡΠ²ΡΠ·Π°Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ
ΠΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ:
ΠΡΠΈ \(\eta=0\) ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ \(\alpha = R_A\) ΠΈ \(\Delta(\mathcal{L}_{\alpha(0)}) = 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)}\):
Π‘Π»Π΅Π΄ΡΡΠ²ΠΈΠ΅
ΠΡΠ»ΠΈ \(\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\)
Π’ΠΎΠ³Π΄Π° Π²Π΅ΡΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΆΠ΄Π΅ΡΡΠ²ΠΎ:
Π³Π΄Π΅ \(\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{\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 ΡΠ΅ΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ° ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ
ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΡΡΠ°Π²ΡΡΠ²ΠΎΠ²Π°Π²ΡΠ΅Π³ΠΎ Π² AB-ΡΠ΅ΡΡΠ΅, Π²ΡΡΠΈΡΠ»ΠΈΡΡ Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π΅ \(L(u) = X(u) - \alpha Y(u), \,\,\,\,\, \alpha = R_A\);
ΠΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΊ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΌΠ΅ΡΡΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ;
ΠΡΡΠΈΡΠ»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ t-ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡ Π‘ΡΡΡΠ΄Π΅Π½ΡΠ° ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ \(p_{value}\);
ΠΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅Π½Π½ΠΎΠΌΡ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° ΠΏΡΠ°Π²ΠΈΠ»Ρ, ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Π΅ \(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-ΠΌΠ΅ΡΡΠΈΠΊ')
Π ΡΡΠΎ Π·Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΈΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΈΠ½Π΅ΡΠΏΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΌΠ΅ΡΡΠΈΠΊΡ?
Π Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠΈΠ³Π½Π°Π»Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊΠ°ΠΊ ΠΊ Π΅Π΄ΠΈΠ½ΠΈΡΠ°ΠΌ Π²ΠΊΠ»Π°Π΄Π° Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ratio-ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ Π΄ΠΎ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ Π² ΡΠ΅ΡΡΠ΅. ΠΡΠΎΡ ΡΠ΅Π·ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΡ ΡΡΠΈΡ Π²ΠΊΠ»Π°Π΄ΠΎΠ² Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π³ΡΡΠΏΠΏΠ°Ρ .
ΠΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΉ Π³ΡΡΠΏΠΏΠ΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π²Π½ΡΠ΅ΡΡΡ Π½ΡΠ»Ρ, Ρ.Π΅. ΡΡΠΌΠΌΠ°ΡΠ½ΠΎ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ Π²ΠΊΠ»Π°Π΄Π° Π½Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ratio-ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ ΠΈ Π·Π°ΠΌΠ΅ΡΡΠ΅ΠΌ. Π ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΠΆΠ΅ Π³ΡΡΠΏΠΏΠ΅ Π±ΡΠ΄Π΅Ρ ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ Π΄ΡΡΠ³ΠΎΠ΅ ΡΡΠ΅Π΄Π½Π΅Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»Π°Π΄ΠΎΠ², Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅, Π»ΠΈΠ±ΠΎ ΠΎΡΡΠΈΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅.
ΠΡΠΈ ΡΡΠΎΠΌ Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½Π°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΡΡΠ΄ΠΎΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ.
ΠΠΎ ΠΏΠ΅ΡΠ²ΡΡ , Π² ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΠΏΡΠ΅Π΄ΡΡΡΠ΅Π΄Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅Π΄Π½Π΅Π³ΠΎ, ΡΠ°Π·Π½ΠΈΡΠ° Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΌΠ΅ΡΡΠΈΠΊ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΡ ΡΠ°Π½ΡΠ΅Ρ ΡΠΎΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΡΡΡ Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π² ΡΠ΅Π»Π΅Π²ΠΎΠΉ ratio-ΠΌΠ΅ΡΡΠΈΠΊΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ΅ CTR Π²ΡΡΠΎΡ ΠΈΠ»ΠΈ ΡΠΏΠ°Π», ΡΠΎ Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ CTR Π²ΡΠ΅Π³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Π² ΡΡ ΠΆΠ΅ ΡΡΠΎΡΠΎΠ½Ρ. (ΠΠΎ ΡΠ΅ΠΎΡΠ΅ΠΌΠ΅ Π²ΡΡΠ΅)

ΠΠΎ Π²ΡΠΎΡΡΡ , Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠΌΠΈ ΠΈ Π΄Π»Ρ Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠ°ΡΠ·Π½Π°ΡΠΈΠΌΠΎΡΡΡ t-ΡΠ΅ΡΡΠΎΠΌ. ΠΡΠΈ ΡΡΠΎΠΌ, Π·Π½Π°ΡΠ΅Π½ΠΈΡ p-value Π΄Π»Ρ Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π΅Π»ΡΡΠ°-ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ratio-ΠΌΠ΅ΡΡΠΈΠΊΠ΅. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π΄Π΅Π»ΡΡΠ°-ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ p-value Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΡΡ. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈ Π½Π° Π/Π-ΡΠ΅ΡΡΠ°Ρ Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ.
Π ΡΡΠ΅ΡΡΠΈΡ , Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½Π° ratio-ΠΌΠ΅ΡΡΠΈΠΊΠ°Ρ , ΡΡΠΎΠ±Ρ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ Π³ΡΡΠΏΠΏ Π΄Π»Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ ΡΡΠΎΠ±Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ ΠΌΠΎΡΠ½ΠΎΡΡΡ Π² Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°Ρ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ CUPED Π΄Π»Ρ ratio-ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π΅ Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π»ΠΈΠ½Π΅Π°ΡΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ Π½Π° ΠΏΡΠ΅Π΄ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΠΎΠΌ ΠΏΠ΅ΡΠΈΠΎΠ΄Π΅. ΠΠΎΠ»ΡΡΠ°ΡΡΡ Π΄Π²Π΅ ΡΡΠ΅Π΄Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΊ ΠΊΠΎΡΠΎΡΡΠΌ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ CUPED.
