Каузальність, друга серія
Apr. 11th, 2024 05:22 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Причинно-наслідкова або ж каузальна дедукція. Це я так перекладаю поняття causal inference. Оскільки воно все туманно, давайте, краще визначу про що мова.
Отже, нехай у нас є якась числова міра реальності Y, яку можна застосувати до одного семпла. Місячна виручка за морозиво марки ʼКурдупликʼ в генделиках Галичини, оцінка на тестуванні з математики у студента, ефективність їзди в літрах на 100 км на автомобіль і т. п. Далі, нехай, у нас є якась дія A, яка може статися або не статися перед тим, як ми мірятимемо наш Y. Скажімо, для трьох вищевказаних прикладів діями можуть бути "поставили паперову фігурку Курдуплика на вході в генделик", "прослухали рекомендовану лекцію ʼМатематика - це стильно, модно, маладьожноʼ", "Поставили під вітрове скло іконку Святого Хоми". Важливо, що в нашій популяції (популяція -- це сукупність всіх генделиків/студентів/машин, які ми розглядаємо) у деяких членів за час, поки їх спостерігали, ця дія сталася, а у решти -- не сталася. Ще ви, може, звернули увагу, що я назвав лише бінарні дії, A або відбулося або ні, А=0 або 1, тоді як Y найчастіше має якийсь відносно неперервний інтервал (можна описати дійсним або цілим числом). (Насправді, для небінарної дії все виводиться і імплементується практично так само, але я фокусуватимуся саме на бінарних А, тим більше, що в реальних задачах воно трапляється частіше, а мінуси, які я буду критикувати в кінці курсу, там очевидніші.)
Повернемося до задачі. Максимально загальне її формулювання дуже туманне: знайти, як бінарна дія (action або treatment) А впливає на кількісний наслідок (outcome) Y:

Можна прискіпатися, чого це ми впевнені, що А є однією з причин Y, а не навпаки, але не проблема: зворотнього впливу бути не може, бо Y вимірюється після того, як А відбулося або не відбулося. Інша справа, що від настільки загального формулювання толку мало, бо що значить "як впливає"?
Найпершим ділом, визначимо оце "як". Як я і обіцяв у попередньому дописі, ми зробимо ось таку штуку. Ми уявимо собі, що можемо спостерегти і ситуацію, коли дії не було, і ситуацію, коли дія була. Давайте, для зручності, відтепер мислити в термінах першого з придуманих прикладів, про генделики, морозиво і курдупликів. Насправді, це одна з найпопулярніших задач в бізнесі: маркетологи придумали спосіб підняти продажі, здизайнували фігурку, друкували-вирізали-клеїли, розіслали в деякі генделики, десь їх навіть встигли встановили, і от тепер тепер начальство хоче знати, чи був від цього толк. Словом, чи не найтиповіша бізнес-задача в цьому світі.
Повертаємося до формулювань. Нехай індекс i позначає номер генделика нашому списку, Ai позначає факт встановлення там фігурки Курдуплика, а Yi позначає місячні продажі там відповідного морозива. Так от, ми визначимо казуальний вплив дії на результат βi через два можливі сценарії, в одному з яких Ai дорівнює нулю, а в іншому -- одиниці.
(1) Yi[якщо Ai=1] = Yi[якщо Ai=0] + βi.
(N.B. для тих, хто не звик до статей і книжок з математики/фізики: цифра (1) перед попередньою формулою -- це її номер, щоби потім не казати "а памʼятаєте, я колись писав формулу про таке–то", а посилатися на неї як "формула номер один".)
В цьому місці ми зробили один дуже хитрий логічний хід: ми допустили, що, принаймні в уяві, можемо порівнювати два зовсім різні сценарії, в одному з яких сталося одне, а в другому -- друге, тоді як в реалі такого не буває, в кожному з генделиків ми мали або сценарій Ai=0, або Ai=1, ніколи не обидва зразу. (Насправді, я ще не торкався важливого моменту, коли відбувається наша дія; поки що, для простоти, уявімо собі, що фігурки Курдупликів ставили або не ставили виключно 31 січня і ніколи більше, а продажі міряли в лютому. (Щось я зловживаю зауваженнями в дужках, але такий з мене непродуманий писака.)) Можливість, хай віртуально, порівнювати два різних сценарії, хоча спостерегти можемо лише один, нічим не гарантована. Але таким чином ми обходимо кілька дуже слизьких моментів і використовуємо нашу богорівну уяву, щоби замінити строгі визначення інтуіцією. А що на такому допущенні ґрунтується вся теорія імовірності сотоваріщі, то чим ми гірші? Для неофітів додам, що повний набір отаких справжніх і уявно можливих сценаріїв називається "статистичний ансамбль".
Оскільки, як я оце розпинався, ми ніколи не можемо спостерегти продажі для двох різних сценаріїв, найпростіше допустити, що це β для всіх генделиків однакове. А якщо неоднакове, то тупо оголосити, що ми шукаємо середнє, найчастіше середнього достатньо. Інтуітивно найочевиднішим сподобом оцінити наше β є просто порівняти середні продажі mean(Yi) для всіх генделиків, де Ai=1, з середнім для всіх, де Ai=0. То, що саме цей метод є інтуітивно найочевиднішим, це я вам з досвіду кажу. Я бачив навіть цілком собі інженерів і вчених, які без задньої думки вважали, що це нормальний підхід. Навіть серед людей, які колись якусь статистику вчили бачив... Хоча не треба бути вченим, а досить мінімального здорового ґлузду, щоби зрозуміти, що міряти так абсолютно не можна! Тому що якісь висновки з різниці двох середніх можна робити тоді і тільки тоді, коли точно знаємо, що постановка фігурки Курдуплика була абсолютно випадковою дією... та й то, тоді треба ще дивитися на статистичну потужність. А ніхто і ніяк не гарантував, що змінна Ai -- випадкова. Навпаки, кількома абзацами вище я майже прямим текстом пишу протилежне.
Чому порівнювати середнє для груп Ai=0 і Ai=1 не можна? Достатньою причиною є "тому що ніхто не доказав, що можна", але я вам приведу кілька прикладів. Приклад 1: фігурки розіслали всім, але більші магазини мали свої власні дизайни до Дня Св. Валентина, тому нічого не встановлювали, встановили лише малі генделики, де продажі нижчі банально тому, що це дрібні точки, а не великі. Результат: негативна бета, бо середнє Y для Ai=0 (великі магазини) більше, ніж для Ai=1, навіть якщо в тих маленьких генделиках продажі таки зросли відносно уявних безкурдупликових продажів. Приклад 2: фігурки розіслали всім, але встановили їх лише в тих магазинах, де дисциплінований персонал, а там, де все роблять абияк, їх не поставили. Але при хорошому персоналові і продажі хороші, тому бета вийшла позитивною навіть якщо та фігурка Курдуплика була гиденькою і третину потенційних покупців відвернула. Впевнений, ви самі можете придумати десятки інших ситуацій, коли середні продажі визначалися чимось дуже іншим, ніж якась там фігурка. Висновок? Нема чого порівнювати середні значення, якщо ви не приклали надлюдських зусиль для забезпечення випадковості вибірки!
Як же ж бути? Панікувати не треба, все можна порахувати, хай і приклавши трохи зусиль. Всі ці ускладнення в попередньому абзаці називаються сплутуючими змінними X. Ще кажуть "конфаундери". Напівжирним шрифтом тому, що це не одна змінна, а може бути багато (розмір магазину, середні продажі до лютого, якась міра дисциплінованості персоналу, ще щось). Ми ж усі прекрасно памʼятаємо з минулого допису, що на результат Y, крім A, впливають і всякі інші причини, частина з яких може впливати і на саме значення змінної A. Ось десь так:

Тут знову, як і в попередній картинці, ми твердо фіксуємо напрямок причинно-наслідковості. Така штука називається спрямований ациклічний граф або directed acyclic graph (DAG). Коли ми вже додали конфаундери, ациклічність (відсутність зворотніх звʼязків) уже починає бути сильнішим допущенням, але якщо обережно розділяти події і явища в часі, то це все ще не проблема. Ви бачите, що стається: ми допускаємо знання якихось більш ранніх причин, які визначають і дію, і результат, і можемо точно порахувати, яка частка результату визначається значенням дії. Це ї є наше середнє β
Здавалося б, все добре, але, подумавши, ви побачите, що насправді-то змісту в в такому формулюванні нема. просто тому, що це абсолютно детерміністичний випадок, ми можемо виключити A з рівняння, і Y буде формуватися точно так само, тобто β стає чисто формальною похідною величиною і втрачає смисл незалежної причинності. Але не бійтеся! Вся суть в тому, що картинка вище все ще неповна, тому що повна картинка ось така:

Є ще всякі різні причини, які ми НЕ знаємо і знати не можемо. Воно, звичайно, шкода, що не знаємо, але в цьому "не знаємо" є величезний плюс -- бо ми можемо до цих причин додавати свободу вибору менеджера магазину.
А що саме я маю на увазі і що там далі -- в наступному випуску :)
P.S. До теми конфаундерів: нагадую!
Отже, нехай у нас є якась числова міра реальності Y, яку можна застосувати до одного семпла. Місячна виручка за морозиво марки ʼКурдупликʼ в генделиках Галичини, оцінка на тестуванні з математики у студента, ефективність їзди в літрах на 100 км на автомобіль і т. п. Далі, нехай, у нас є якась дія A, яка може статися або не статися перед тим, як ми мірятимемо наш Y. Скажімо, для трьох вищевказаних прикладів діями можуть бути "поставили паперову фігурку Курдуплика на вході в генделик", "прослухали рекомендовану лекцію ʼМатематика - це стильно, модно, маладьожноʼ", "Поставили під вітрове скло іконку Святого Хоми". Важливо, що в нашій популяції (популяція -- це сукупність всіх генделиків/студентів/машин, які ми розглядаємо) у деяких членів за час, поки їх спостерігали, ця дія сталася, а у решти -- не сталася. Ще ви, може, звернули увагу, що я назвав лише бінарні дії, A або відбулося або ні, А=0 або 1, тоді як Y найчастіше має якийсь відносно неперервний інтервал (можна описати дійсним або цілим числом). (Насправді, для небінарної дії все виводиться і імплементується практично так само, але я фокусуватимуся саме на бінарних А, тим більше, що в реальних задачах воно трапляється частіше, а мінуси, які я буду критикувати в кінці курсу, там очевидніші.)
Повернемося до задачі. Максимально загальне її формулювання дуже туманне: знайти, як бінарна дія (action або treatment) А впливає на кількісний наслідок (outcome) Y:

Можна прискіпатися, чого це ми впевнені, що А є однією з причин Y, а не навпаки, але не проблема: зворотнього впливу бути не може, бо Y вимірюється після того, як А відбулося або не відбулося. Інша справа, що від настільки загального формулювання толку мало, бо що значить "як впливає"?
Найпершим ділом, визначимо оце "як". Як я і обіцяв у попередньому дописі, ми зробимо ось таку штуку. Ми уявимо собі, що можемо спостерегти і ситуацію, коли дії не було, і ситуацію, коли дія була. Давайте, для зручності, відтепер мислити в термінах першого з придуманих прикладів, про генделики, морозиво і курдупликів. Насправді, це одна з найпопулярніших задач в бізнесі: маркетологи придумали спосіб підняти продажі, здизайнували фігурку, друкували-вирізали-клеїли, розіслали в деякі генделики, десь їх навіть встигли встановили, і от тепер тепер начальство хоче знати, чи був від цього толк. Словом, чи не найтиповіша бізнес-задача в цьому світі.
Повертаємося до формулювань. Нехай індекс i позначає номер генделика нашому списку, Ai позначає факт встановлення там фігурки Курдуплика, а Yi позначає місячні продажі там відповідного морозива. Так от, ми визначимо казуальний вплив дії на результат βi через два можливі сценарії, в одному з яких Ai дорівнює нулю, а в іншому -- одиниці.
(1) Yi[якщо Ai=1] = Yi[якщо Ai=0] + βi.
(N.B. для тих, хто не звик до статей і книжок з математики/фізики: цифра (1) перед попередньою формулою -- це її номер, щоби потім не казати "а памʼятаєте, я колись писав формулу про таке–то", а посилатися на неї як "формула номер один".)
В цьому місці ми зробили один дуже хитрий логічний хід: ми допустили, що, принаймні в уяві, можемо порівнювати два зовсім різні сценарії, в одному з яких сталося одне, а в другому -- друге, тоді як в реалі такого не буває, в кожному з генделиків ми мали або сценарій Ai=0, або Ai=1, ніколи не обидва зразу. (Насправді, я ще не торкався важливого моменту, коли відбувається наша дія; поки що, для простоти, уявімо собі, що фігурки Курдупликів ставили або не ставили виключно 31 січня і ніколи більше, а продажі міряли в лютому. (Щось я зловживаю зауваженнями в дужках, але такий з мене непродуманий писака.)) Можливість, хай віртуально, порівнювати два різних сценарії, хоча спостерегти можемо лише один, нічим не гарантована. Але таким чином ми обходимо кілька дуже слизьких моментів і використовуємо нашу богорівну уяву, щоби замінити строгі визначення інтуіцією. А що на такому допущенні ґрунтується вся теорія імовірності сотоваріщі, то чим ми гірші? Для неофітів додам, що повний набір отаких справжніх і уявно можливих сценаріїв називається "статистичний ансамбль".
Оскільки, як я оце розпинався, ми ніколи не можемо спостерегти продажі для двох різних сценаріїв, найпростіше допустити, що це β для всіх генделиків однакове. А якщо неоднакове, то тупо оголосити, що ми шукаємо середнє, найчастіше середнього достатньо. Інтуітивно найочевиднішим сподобом оцінити наше β є просто порівняти середні продажі mean(Yi) для всіх генделиків, де Ai=1, з середнім для всіх, де Ai=0. То, що саме цей метод є інтуітивно найочевиднішим, це я вам з досвіду кажу. Я бачив навіть цілком собі інженерів і вчених, які без задньої думки вважали, що це нормальний підхід. Навіть серед людей, які колись якусь статистику вчили бачив... Хоча не треба бути вченим, а досить мінімального здорового ґлузду, щоби зрозуміти, що міряти так абсолютно не можна! Тому що якісь висновки з різниці двох середніх можна робити тоді і тільки тоді, коли точно знаємо, що постановка фігурки Курдуплика була абсолютно випадковою дією... та й то, тоді треба ще дивитися на статистичну потужність. А ніхто і ніяк не гарантував, що змінна Ai -- випадкова. Навпаки, кількома абзацами вище я майже прямим текстом пишу протилежне.
Чому порівнювати середнє для груп Ai=0 і Ai=1 не можна? Достатньою причиною є "тому що ніхто не доказав, що можна", але я вам приведу кілька прикладів. Приклад 1: фігурки розіслали всім, але більші магазини мали свої власні дизайни до Дня Св. Валентина, тому нічого не встановлювали, встановили лише малі генделики, де продажі нижчі банально тому, що це дрібні точки, а не великі. Результат: негативна бета, бо середнє Y для Ai=0 (великі магазини) більше, ніж для Ai=1, навіть якщо в тих маленьких генделиках продажі таки зросли відносно уявних безкурдупликових продажів. Приклад 2: фігурки розіслали всім, але встановили їх лише в тих магазинах, де дисциплінований персонал, а там, де все роблять абияк, їх не поставили. Але при хорошому персоналові і продажі хороші, тому бета вийшла позитивною навіть якщо та фігурка Курдуплика була гиденькою і третину потенційних покупців відвернула. Впевнений, ви самі можете придумати десятки інших ситуацій, коли середні продажі визначалися чимось дуже іншим, ніж якась там фігурка. Висновок? Нема чого порівнювати середні значення, якщо ви не приклали надлюдських зусиль для забезпечення випадковості вибірки!
Як же ж бути? Панікувати не треба, все можна порахувати, хай і приклавши трохи зусиль. Всі ці ускладнення в попередньому абзаці називаються сплутуючими змінними X. Ще кажуть "конфаундери". Напівжирним шрифтом тому, що це не одна змінна, а може бути багато (розмір магазину, середні продажі до лютого, якась міра дисциплінованості персоналу, ще щось). Ми ж усі прекрасно памʼятаємо з минулого допису, що на результат Y, крім A, впливають і всякі інші причини, частина з яких може впливати і на саме значення змінної A. Ось десь так:

Тут знову, як і в попередній картинці, ми твердо фіксуємо напрямок причинно-наслідковості. Така штука називається спрямований ациклічний граф або directed acyclic graph (DAG). Коли ми вже додали конфаундери, ациклічність (відсутність зворотніх звʼязків) уже починає бути сильнішим допущенням, але якщо обережно розділяти події і явища в часі, то це все ще не проблема. Ви бачите, що стається: ми допускаємо знання якихось більш ранніх причин, які визначають і дію, і результат, і можемо точно порахувати, яка частка результату визначається значенням дії. Це ї є наше середнє β
Здавалося б, все добре, але, подумавши, ви побачите, що насправді-то змісту в в такому формулюванні нема. просто тому, що це абсолютно детерміністичний випадок, ми можемо виключити A з рівняння, і Y буде формуватися точно так само, тобто β стає чисто формальною похідною величиною і втрачає смисл незалежної причинності. Але не бійтеся! Вся суть в тому, що картинка вище все ще неповна, тому що повна картинка ось така:

Є ще всякі різні причини, які ми НЕ знаємо і знати не можемо. Воно, звичайно, шкода, що не знаємо, але в цьому "не знаємо" є величезний плюс -- бо ми можемо до цих причин додавати свободу вибору менеджера магазину.
А що саме я маю на увазі і що там далі -- в наступному випуску :)
P.S. До теми конфаундерів: нагадую!