НАУКА ЗА ПРИЧИННО-СЛЕДСТВЕНИТЕ ДАННИ

Машинно обучение с двойно отклонение (част 2)

Как да премахнете пристрастието на регулацията с помощта на селекция след двойно

При причинно-следствените изводи обикновено се интересуваме от ефекта на променливата на лечението върху конкретен резултат. При рандомизирани контролни изпитвания или AB тестове, обвързването на анализа с набор от други променливи — контролните променливи или ковариати — може да увеличи силата на анализа, като намали дисбалансите, които са се появили въпреки рандомизацията. Въпреки това, кондиционирането е още по-важно при наблюдателни проучвания, където при липса на рандомизация може да е „съществено да се възстановят причинно-следствените ефекти“.

Често нямаме твърдо мнение върху кои променливи да обусловим анализа или с коя функционална форма и може да се изкушим да оставим данните да решат, или чрез избор на променлива, или чрез гъвкаво машинно обучение методи. В предишната част на тази публикация в блога видяхме как тази процедура може да изкриви извода, т.е. да създаде грешни доверителни интервали за причинно-следствения ефект от интерес. Това отклонение обикновено се нарича регуларизиращо отклонение или отклонение преди теста.

В тази публикация в блога ще проучим решение на проблема с избора на променливи, селекция след двойно, и ще въведем общ подход за справяне с много контролни променливи и/или не- линейни функционални форми, машинно обучение с двойно отклонение.

Обобщение

За да разберем по-добре източника на отклонението, в първата част на тази публикация проучихме примера на фирма, която се интересува от тестване на ефективността на рекламна кампания. Фирмата разполага с информация за текущите си рекламни разходи и за нивото на продажбите. Проблемът възниква, защото фирмата не е сигурна дали трябва да обуслови анализа си от нивото на минали продажби.

Следната Насочена ациклична графика (DAG) обобщава процеса на генериране на данни.

Импортирам процеса на генериране на данни dgp_pretest() от src.dgp и някои чертащи функции и библиотеки от src.utils.

from src.utils import *
from src.dgp import dgp_pretest

df = dgp_pretest().generate_data()
df.head()

Имаме данни за 1000 различни пазара, за които наблюдаваме текущо sales, изразходваната сума в advertisement и past sales.

Искаме да разберем дали разходите за ads са ефективни за увеличаване на sales. Една от възможностите е да регресирате последното върху първото, като използвате следния регресионен модел, наричан още кратък модел.

Трябва ли да включим и past sales в регресията? След това регресионният модел ще бъде следният, наричан още дълъг модел.

Един наивен подход би бил да оставим данните да решат: можем да изпълним втората регресия и ако изчисленият ефект на past sales, β̂, е статистически значим, ние сме добри с дългия модел, в противен случай изпълняваме късия модел. Тази процедура се нарича предварително тестване.

Проблемът с тази процедура е, че тя въвежда отклонение, което се нарича регулиране или отклонение преди теста. Предварителното тестване гарантира, че това отклонение е достатъчно малко, за да не изкриви изчисления коефициент. Това обаче не гарантира, че е достатъчно малък, за да не изкриви доверителните интервали около изчисления коефициент.

Има ли решение? да

Пост-двойна селекция

Решението се нарича селекция след двойно. Методът е въведен за първи път от Белони, Черножуков, Хансен (2014) и по-късно е разширен в различни статии с Виктор Черножуков като общ знаменател.

Авторите приемат следния процес на генериране на данни:

В нашия пример Y съответства на sales, D съответства на ads, X съответства на past_sales и интересният ефект е α. В нашия пример X е едномерен за простота, но като цяло се интересуваме от случаите, в които X е многомерен, като потенциално дори има повече измерения от броя на наблюденията. В този случай изборът на променлива е съществен в линейната регресия, тъй като не можем да имаме повече функции от променливи (Коефициентите на OLS не са еднозначно определени).

Изборът след дублиране се състои от следната процедура.

  1. Избор на намалена форма: ласо Y върху X. Изберете статистически значимите променливи в набора S₁ ⊆ X
  2. Избор на Първи етап: регресия D на X. Изберете статистически значимите променливи в набора S₂ ⊆ X
  3. Регресия Y върху D и обединението на избраните променливи в първите две стъпки, S₁ S₂

Авторите показват, че тази процедура дава доверителни интервали за изчисления коефициент на интерес α̂, които имат правилното покритие, т.е. правилната вероятност за грешка от тип 1.

Забележка (1): тази процедура винаги е по-малко пестелива по отношение на избора на променливи, отколкото предварителното тестване. Всъщност ние все още избираме всички променливи, които бихме избрали с предварително тестване, но на първия етап можем да изберем допълнителни променливи.

Забележка (2): термините първи етап и редуцирана форма идват от литературата за „инструментални променливи“ в иконометрията. Наистина, първото приложение на следдвойната селекция беше да се изберат инструментални променливи в Белони, Чен, Черножуков, Хансен (2012).

Забележка (3): името post-double селекция идва от факта, че сега не извършваме селекция на променливи веднъж, а два пъти.

Интуицията

Идеята зад подбора след дублиране е: обвързване на пристрастието на пропуснатата променлива. В случай, че не сте запознати с него, написах отделна публикация в блога за отклонението на пропуснатата променлива.

В нашата настройка можем да изразим отклонението на пропуснатата променлива като

Както виждаме, отклонението на пропуснатата променлива идва от произведението на две количества, свързани с пропуснатата променлива X:

  1. Неговата частична корелация с резултата Y, β
  2. Неговата частична корелация с лечението D, δ

С предварителното тестване гарантираме, че частичната корелация между Xи резултата Y, β, е малка . Всъщност рядко пропускаме X, когато не трябва (т.е. извършваме грешка от тип 2). Какво означават малък и рядко?

Когато избираме променлива поради нейната значимост, гарантираме, че размерът й е по-малък от c/√n за някакво число c, където n е размерът на извадката. Следователно с предварително тестване ние гарантираме, че независимо каква е стойността на δ, размерът на отклонението е по-малък от c/√n. което означава, че се свежда до нула за достатъчно големи n. Ето защо оценителят преди тестването все още е последователен, т.е. се сближава с истинската стойност за достатъчно голям размер на извадката n.

Въпреки това, за да могат нашите доверителни интервали да имат правилното покритие, това не е достатъчно. На практика трябва отклонението да се сближи до нула по-бързо от 1/√n. Защо?

За да получим интуиция за този резултат, трябва да се обърнем към Теоремата за централната граница. CLT ни казва, че за голям размер на извадката n разпределението на средната стойност на извадката на случайна променлива X се сближава с нормално разпределение със средно μ > и стандартно отклонение σ/√n, където μ и σ са средното и стандартното отклонение на X. За да направим извод, обикновено прилагаме централната гранична теорема към нашия оценител, за да получим неговото асимптотично разпределение, което от своя страна ни позволява да изградим доверителни интервали (като използваме средната стойност и стандартното отклонение). Следователно, ако отклонението не е значително по-малко от стандартното отклонение на оценителя, доверителните интервали ще бъдат грешни. Следователно трябва отклонението да се сближи до нула по-бързо от стандартното отклонение, т.е. по-бързо от 1/√n.

В нашата настройка отклонението на пропуснатата променлива е βδ и искаме то да се сближи до нула по-бързо от 1/√n. Пост-двойната селекция гарантира това

  • Избор на намалена форма: всяка „липсваща“ променлива j има |βⱼ| ≤ c/√n
  • Първи етап избор: всяка „липсваща“ променлива j има |δⱼ| ≤ c/√n

В резултат на това, докато броят на пропуснатите променливи е краен, отклонението на пропуснатата променлива ще се сближи до нула със скорост 1/n, която е по-бърза от 1/√n . Проблемът е разрешен!

Приложение

Нека сега да се върнем към нашия пример и да тестваме процедурата за подбор след удвояване. На практика искаме да направим следното:

  1. Избор на Първи етап: регресия ads на past_sales. Проверете дали past_sales е статистически значимо
  2. Избор на намалена форма: регресия sales на past_sales. Проверете дали past_sales е статистически значимо
  3. Регресия sales на ads и включване на past_sales само ако е била значима в която и да е една от двете предишни регресии

Актуализирам функцията pre_test от първата част на публикацията, за да изчисля и оценителя за избор след двойно.

Вече можем да начертаем разпределенията (върху симулации) на оценените коефициенти.

Както виждаме, процедурата за подбор след двойното избиране винаги правилно избира дългата регресия и следователно оценителят има правилното разпределение.

Двойни проверки

В последната публикация проведохме някои симулации, за да проучим кога се появява отклонение преди тестването. Видяхме, че предварителното тестване е проблем за

  • Малки размери на извадката n
  • Междинни стойности на β
  • Когато стойността на β зависи от размера на извадката

Нека проверим дали след-удвоената селекция премахва отклонението на регулацията във всички предишни случаи.

Първо, нека симулираме разпределението на оценителя за подбор след двойно α̂-postdouble за различни размери на извадката.

Ns = [100,300,1000,3000]
alphas = {f'N = {n:.0f}':  pre_test(N=n) for n in Ns}

Вече можем да начертаем и сравним разпределенията на оценителя преди тестването и оценителя след двойното.

За малки проби разпределението на оценителя преди тестването не е нормално, а по-скоро бимодално. Вместо това, post-double оценителят е гаусов също и в малки размери на извадката.

Сега повтаряме същото упражнение, но за различни стойности на β, коефициента на past_sales върху sales.

betas = 0.3 * np.array([0.1,0.3,1,3])
alphas = {rf'$\beta$ = {b:.2f}': pre_test(b=b) for b in betas}
compare_alphas(alphas, true_alpha=1)

Отново, оценителят след двойна селекция има Гаусово разпределение, независимо от стойността на β, докато оценителят преди тестването страда от пристрастност на регулацията.

За последната симулация променяме едновременно коефициента и размера на извадката.

betas = 0.3 * 30 / np.sqrt(Ns)
alphas = {rf'N = {n:.0f}, $\beta$ = {b:.2f}':  pre_test(b=b, N=n) for n,b in zip(Ns,betas)}
compare_alphas(alphas, true_alpha=1)

Също така в този последен случай селекцията след двойното има правилното разпределение на Гаус в симулациите.

Машинно обучение с двойно отклонение

Досега сме анализирали само линеен, едномерен пример. Какво се случва, ако измерението на X се увеличи и ние не знаем функционалната форма, чрез която X засяга Y и D >? В тези случаи можем да използваме алгоритми за машинно обучение, за да разкрием тези високомерни нелинейни връзки.

Черножуков, Четвериков, Демирер, Дюфло, Хансен, Нюи и Робинс (2018) изследват тази обстановка. По-специално, авторите разглеждат следния частично линеен модел.

където Y е променливата на резултата, D е отношението към интереса и X е потенциално многомерен набор от контролни променливи. Разликата по отношение на предишната настройка е, че сега оставяме връзките между X и Y и D неуточнени , чрез функциите g() и m().

Наивен подход

Наивен подход към оценката на α с помощта на методи за машинно обучение би бил например конструирането на сложен оценител за машинно обучение за изучаване на регресионната функция αD + g(X) .

  1. Разделете пробата на две: основна проба и спомагателна проба (защо? вижте бележката по-долу)
  2. Използвайте спомагателната извадка, за да оцените ĝ(X)
  3. Използвайте основната проба, за да изчислите ортогонализирания компонент на Y върху X:

4. Използвайте основната извадка, за да оцените остатъчния OLS оценител от регресия û върху D

Този оценител ще има два проблема:

  1. Бавна скорост на конвергенция, т.е. по-бавна от√n
  2. Ще бъде предубедено, защото използваме многомерни регуляризирани оценители (напр. правим селекция на променливи)

Забележка (1): досега не сме говорили за това, но процедурата за избор на променлива също така въвежда друг тип отклонение: пристрастие към прекомерно оборудване. Това отклонение възниква поради факта, че извадката, използвана за избор на променливите, е същата, която се използва за оценка на коефициента на интерес. Това отклонение лесно се отчита с разделяне на извадката: използване на различни подизвадки за процедурите за подбор и оценка.

Забележка (2): защо можем да използваме остатъците от стъпка 3, за да оценим α в стъпка 4? Заради теоремата на Фриш-Уо-Ловел. Ако не сте запознати с нея, написах „публикация в блога за теоремата на Frisch-Waugh-Lovell тук“.

Двойна ортогонализация

Машинното обучение с двойно отклонение решава проблема чрез повтаряне на процедурата за ортогонализиране два пъти. Идеята е същата зад селекцията след дублиране: намалете отклонението на регуларизацията, като извършите селекция на променливи два пъти. Оценката все още е валидна поради теоремата на Frisch-Waugh-Lovell.

На практика машинното обучение с двойно отклонение се състои от следните стъпки.

  1. Разделете пробата на две: основна проба и спомагателна проба
  2. Използвайте спомагателната извадка, за да оцените ĝ(X) от

3. Използвайте спомагателната проба, за да оцените от

4. Използвайте основната проба, за да изчислите ортогонализирания компонент на D върху X като

5. Използвайте основната извадка, за да оцените двойно остатъчната OLS оценка като

Оценителят е съвместим с root-N! Това означава, че не само оценителят се сближава до истинската стойност с увеличаване на размера на извадката (т.е. той е последователен), но също така и неговото стандартно отклонение (т.е. той е последователен по корен-N).

Въпреки това, оценителят все още има по-нисък процент на конвергенция поради разделянето на извадката. Проблемът се решава чрез обръщане на разделената извадка, преоценка на коефициента и осредняване на двете оценки. Имайте предвид, че тази процедура е валидна, тъй като двете оценки са независими от процедурата за разделяне на извадката.

Предупредителна история

Преди да приключим, трябва да спомена скорошна изследователска статия от Hünermund, Louw и Caspi (2022), в която авторите показват, че машинното обучение с двойно отклонение може лесно да обратно, ако се прилага сляпо .

Проблемът е свързан с лоши контролни променливи. Ако никога не сте чували за този термин, написах уводна публикация в блог за добри и лоши контролни променливи тук. Накратко, обвързването на анализа с допълнителни характеристики не винаги е добро за причинно-следствени изводи. В зависимост от настройката може да има променливи, които искаме да оставим извън нашия анализ, тъй като тяхното включване може да промени коефициента на интерес, предотвратявайки причинно-следствена интерпретация. Най-простият пример са променливи, които са общи резултати, както на лечението D, така и на променливата на резултата Y.

Моделът на машинно обучение с двойно отклонение имплицитно предполага, че контролните променливи X са (слабо) чести причини както за резултата Y, така и за лечението D. Ако случаят е такъв и не съществува допълнителна опосредствана/непряка връзка между X и Y, няма проблем. Ако обаче, например, някаква променлива сред контролите X е общ ефект вместо обща причина, нейното включване ще промени коефициента на интерес. Освен това, тази променлива вероятно ще бъде силно свързана или с резултата Yили с лечението D. В последния случай това означава, че подборът след двойното може да го включва в случаите, в които обикновеният избор не би го включил. Следователно, при наличието на лоши контролни променливи, машинното обучение с двойно отклонение може да бъде дори по-лошо от обикновеното предварително тестване.

Накратко, както при всеки метод, е от решаващо значение да имате ясно разбиране на допусканията на метода и винаги да проверявате за потенциални нарушения.

Заключение

В тази публикация видяхме как да използваме пост-двойна селекция и, по-общо, машинно обучение с двойно отклонение, за да се отървем от важен източник на пристрастие: пристрастие на регуларизацията.

Този принос на Виктор Черножуков и съавторите несъмнено е един от най-уместните постижения в причинно-следствените изводи през последното десетилетие. Сега е широко използван в индустрията и е включен в най-използваните пакети за причинно-следствени изводи, като EconML (Microsoft) и causalml (Uber).

Ако (разбираемо) чувствате необходимост от повече материали за машинно обучение с двойно отклонение, но не ви се чете академични статии (също много разбираемо), ето един добър компромис.

В тази видео лекция самият Виктор Черножуков представя идеята. Видео лекцията е сравнително тежка по математика и статистика, но не можете да получите по-квалифициран и директен източник от този!

Препратки

[1] A. Belloni, D. Chen, V. Chernozhukov, C. Hansen, Sparse Models and Methods for Optimal Instruments With an Application to Eminent Domain (2012), Econometrica.

[2] A. Belloni, V. Chernozhukov, C. Hansen, Извод за ефектите от лечението след селекция сред високомерни контроли (2014), The Review of Economic Studies.

[3] В. Черножуков, Д. Четвериков, М. Демирер, Е. Дуфло, К. Хансен, У. Нюи, Дж. Робинс, Двойно/непредубедено машинно обучение за лечение и структурни параметри (2018), The Econometrics Journal.

[4] P. Hünermund, B. Louw, I. Caspi, Двойно машинно обучение и автоматизиран избор на объркващ фактор — предупредителна история (2022), работен документ.

Свързани статии

  • „Двойно обезубедено машинно обучение (част 1)“
  • „Разбиране на отклонението на пропуснатата променлива“
  • „Разбиране на теоремата на Frisch-Waugh-Lovell“
  • DAG и контролни променливи

Код

Можете да намерите оригиналната тетрадка Jupyter тук:



Благодаря ви, че прочетохте!

Наистина го оценявам! 🤗Ако публикацията ви е харесала и искате да видите повече, помислете за последвайте ме. Веднъж седмично публикувам теми, свързани с причинно-следствени изводи и анализ на данни. Опитвам се да поддържам публикациите си прости, но точни, като винаги предоставям код, примери и симулации.

Освен това малък отказ от отговорност: пиша, за да се науча, така че грешките са норма, въпреки че давам всичко от себе си. Моля, когато ги забележите, уведомете ме. Оценявам и предложения за нови теми!