Інтуїція за взаємодією тензорних продуктів у GAM (пакет MGCV в R)


30

Узагальнені моделі добавок - це такі, де наприклад. функції плавні, і їх слід оцінити. Зазвичай пенальними шліцами. MGCV - це пакет в R, який робить це, і автор (Simon Wood) пише книгу про свій пакет із прикладами R. Ruppert та ін. (2003) написати набагато доступнішу книгу про простіші версії того самого.

y=α+f1(x1)+f2(x2)+ei

Моє запитання - про взаємодію в таких моделях. Що робити, якщо я хочу зробити щось на кшталт наступного: якщо ми були в землі OLS (де просто бета-версія) , Я б не мав проблем з інтерпретацією . Якщо ми оцінюємо за допомогою санкціонованих сплайнів, у мене також немає проблем з інтерпретацією в контексті добавок.

y=α+f1(x1)+f2(x2)+f3(x1×x2)+ei
е 3ff^3

Але в пакеті MGCV в GAM є такі речі, які називаються "згладжування тензорних продуктів". Я гугл "тензорний продукт", і мої очі одразу заглядають, намагаючись прочитати пояснення, які я знаходжу. Або я недостатньо розумний, або математика не пояснюється дуже добре, або те й інше.

Замість кодування

normal = gam(y~s(x1)+s(x2)+s(x1*x2))

тензорний добуток зробив би те саме (?) діло

what = gam(y~te(x1,x2))

коли я роблю

plot(what)

або

vis.gam(what)

Я отримую дійсно класний вихід. Але я не маю уявлення, що відбувається всередині чорної скриньки, що є te(), і як інтерпретувати вищезгаданий крутий вихід. Тільки напередодні ночі у мене був кошмар, який я проводив на семінарі. Я показав усім крутий графік, вони запитали мене, що це означає, і я не знав. Потім я виявив, що в мене немає одягу.

Чи може хтось допомогти і мені, і нащадкам, подавши трохи механіки та інтуїції щодо того, що відбувається під капотом тут? В ідеалі, кажучи трохи про різницю між нормальним випадком взаємодії добавки та випадком тензора? Бонусні бали за те, що говорити все простою англійською мовою, перш ніж перейти до математики.


простий приклад, взятий з книги автора пакета: бібліотека (mgcv) дані (дерева) ct5 <- gam (Об'єм ~ te (Висота, обхват, k = 5), сімейство = Гамма (посилання = журнал), дані = дерева) ct5 vis.gam (ct5) сюжет (ct5, too.far = 0,15)
generic_user

Відповіді:


30

Я (спробую) відповісти на це трьома кроками: спочатку давайте визначимо, що саме ми розуміємо під одномірною гладкою. Далі ми опишемо багатоваріантну гладку (конкретно, гладку з двох змінних). Нарешті, я спробую описати тензорний виріб гладко.

1) Уніваріантний гладкий

Скажімо, у нас є деякі дані відповіді які ми передбачаємо, є невідома функція змінної предиктора плюс деяка помилка . Модель буде:f x εyfxε

y=f(x)+ε

Тепер, щоб відповідати цій моделі, ми повинні визначити функціональну форму . Ми робимо це шляхом виявлення базових функцій, які накладені для того, щоб представити функцію у повному обсязі. Дуже простий приклад - лінійна регресія, в якій функціями є лише і , перехоплення. Застосовуючи розширення бази, ми маємоf β 2 x β 1ffβ2xβ1

y=β1+β2x+ε

У матричній формі ми мали б:

Y=Xβ+ε

Якщо - вектор стовпців n-на-1, - матриця моделі n-by-2, - вектор стовпців коефіцієнтів моделі 2 на 1, а - вектор помилок стовпця n-by-1 . є два стовпчики, оскільки в нашому розширенні бази є два терміни: лінійний член і перехоплення.X β ε XYXβεX

Цей самий принцип застосовується і для розширення бази в MGCV, хоча основні функції значно складніші. Зокрема, окремі базові функції не повинні визначатися для повної області незалежної змінної . Таке часто трапляється при використанні баз на основі вузлів (див. "Приклад на основі вузла"x). Потім модель представляється як сума базових функцій, кожна з яких оцінюється при кожному значенні незалежної змінної. Однак, як я вже згадував, деякі з цих базових функцій приймають значення нуля поза заданого інтервалу і, таким чином, не сприяють розширенню бази за межами цього інтервалу. Як приклад, розглянемо кубічну сплайн-основу, в якій кожна базисна функція симетрична щодо різного значення (вузла) незалежної змінної - іншими словами, кожна базисна функція виглядає однаково, але просто зміщена по осі незалежної змінної (це надмірне спрощення, оскільки будь-яка практична основа також буде включати перехоплення та лінійний термін, але, сподіваємось, ви зрозумієте цю ідею).

Якщо бути ясним, базове розширення виміру може виглядати так:i2

y=β1+β2x+β3f1(x)+β4f2(x)+...+βifi2(x)+ε

де кожна функція є, можливо, кубічною функцією незалежної змінної .xfx

Матричне рівняння все ще може використовуватися для представлення нашої моделі. Єдина відмінність полягає в тому, що тепер є матрицею n-by-i; тобто він містить стовпчик для кожного терміна в розширенні бази (включаючи перехоплюючий та лінійний член). Оскільки процес розширення бази дозволив нам представити модель у вигляді матричного рівняння, ми можемо використовувати лінійні найменші квадрати, щоб відповідати моделі та знаходити коефіцієнти . X βY=Xβ+εXβ

Це приклад неосвоєної регресії, і однією з головних сильних сторін MGCV є оцінка її гладкості за допомогою штрафної матриці та параметра згладжування. Іншими словами, замість:

β=(XTX)1XTY

ми маємо:

β=(XTX+λS)1XTY

де - квадратична матриця штрафу -by- а - параметр скалярного згладжування. Я не буду заглиблюватися в специфікацію штрафної матриці тут, але слід досить сказати, що при будь-якій заданій основі розширення якоїсь незалежної змінної та визначення квадратичного покарання "химерність" (наприклад, покарання другого похідного), один можна розрахувати штраф матриці .i i λ SSiiλS

MGCV може використовувати різні засоби оцінки оптимального параметра згладжування . Я не буду займатися цією темою, оскільки моя мета тут полягала в тому, щоб дати широкий огляд того, як будується універсальна гладка, що я вважаю, що я зробив.λ

2) Багатоваріантний гладкий

Наведене пояснення можна узагальнити до кількох вимірів. Повернемося до нашої моделі, яка дає відповідь як функцію предикторів і . Обмеження до двох незалежних змінних не дозволить захаращувати пояснення таємними позначеннями. Тоді модель:f x zyfxz

y=f(x,z)+ε

Тепер повинно бути інтуїтивно очевидно, що ми будемо представляти з розширенням бази (тобто, суперпозицією базових функцій), як ми це робили в універсальному випадку вище. Слід також бути очевидним, що принаймні одна, і майже напевно багато інших, цих базових функцій повинні бути функціями як і (якщо цього не було, то неявно було б відокремленим таким, що ). Візуальна ілюстрацію багатовимірної сплайн основи можна знайти тут . Повне двовимірне розширення розміру може виглядати приблизно так:f ( x ) xf(x,z)f(x)xf f ( x , z ) = f x ( x ) + f z ( z ) i - 3zff(x,z)=fx(x)+fz(z)i3

y=β1+β2x+β3z+β4f1(x,z)+...+βifi3(x,z)+ε

Я думаю, що цілком зрозуміло, що ми все ще можемо представити це в матричній формі за допомогою:

Y=Xβ+ε

просто оцінюючи кожну базову функцію при кожній унікальній комбінації і . Рішення все ще:zxz

β=(XTX)1XTY

Обчислення другої похідної матричної штрафної матриці є майже такою ж, як і в універсаріальному випадку, за винятком того, що замість того, щоб інтегрувати другу похідну кожної базисної функції відносно однієї змінної, ми інтегруємо суму всіх інших похідних (включаючи частки) стосовно до всіх незалежних змінних. Деталі вищесказаного не особливо важливі: справа в тому, що ми все ще можемо побудувати штрафну матрицю і використати той же метод, щоб отримати оптимальне значення параметра згладжування , а враховуючи, що параметр згладжування, вектор коефіцієнтів все ще:λSλ

β=(XTX+λS)1XTY

Тепер ця двовимірна гладка має ізотропний штраф: це означає, що єдине значення застосовується в обох напрямках. Це чудово працює, коли і і знаходяться приблизно в одному масштабі, наприклад, просторовому застосуванні. Але що робити, якщо замінити просторову змінну тимчасовою змінною ? Одиниці можуть бути набагато більшими або меншими, ніж одиниці , і це може скинути інтеграцію наших других похідних, тому що деякі з цих похідних будуть сприяти непропорційно загальній інтеграції (наприклад, якщо виміряти в наносекундах і x z zλxzzt x t x t x xttxtxу світлові роки інтеграл другої похідної відносно може бути набагато більшим, ніж інтеграл другої похідної щодо , і, таким чином, «хиткість» уздовж напрямку може в значній мірі залишатися невикористаною). Слайд 15 "гладкої панелі інструментів", з якою я пов’язаний, має більш детальну інформацію щодо цієї теми.txx

Варто зазначити, що ми не розкладали базові функції на граничні основи та . Звідси випливає, що багатоваріантні гладкі повинні бути побудовані з баз, що підтримують декілька змінних. Як я пояснюю нижче, тензорний продукт розгладжує підтримку побудови багатоваріантних баз з одновимірних граничних основ.zxz

3) Тензорний продукт розгладжує

Продукт Tensor згладжує проблему моделювання відповідей на взаємодію декількох входів з різними одиницями. Припустимо, у нас є відповідь яка є функцією просторової змінної і тимчасової змінної . Наша модель тоді:f x tyfxt

y=f(x,t)+ε

Що ми хотіли б зробити, це побудувати двовимірну основу для змінних і . Це буде набагато простіше, якщо ми можемо представити як:t fxtf

f(x,t)=fx(x)ft(t)

В алгебраїчному / аналітичному сенсі це не обов'язково можливо. Але пам’ятайте, ми дискретизуємо області і (уявіть двовимірну «решітку», визначену розташуванням вузлів на осях і ), так що «справжня» функція представлена ​​суперпозицією базових функцій . Так само, як ми припускали, що дуже складна одноваріантна функція може бути апроксимована простою кубічною функцією на певному інтервалі її області, ми можемо припустити, що нероздільна функція може бути апроксимована добутком простіших функцій іt x txtxtff(x,t)fx(x)ft(t) на інтервалі - за умови, що наш вибір базових розмірів робить ці інтервали достатньо маленькими!

Наше розширення бази, з урахуванням -вимірної основи в і -вимірної основи в , буде виглядати так:ixjt

y=β1+β2x+β3fx1(x)+β4fx2(x)+...+βifx(i3)(x)+βi+1t+βi+2tx+βi+3tfx1(x)+βi+4tfx2(x)+...+β2itfx(i3)(x)+β2i+1ft1(t)+β2i+2ft1(t)x+β2i+3ft1(t)fx1(x)+βi+4ft1(t)fx2(x)+...+β2ift1(t)fx(i3)(x)++βijft(j3)(t)fx(i3)(x)+ε

Що може трактуватися як тензорний добуток. Уявіть , що ми оцінювали кожну базисну функцію в і , конструюючи таким чином п-по-я і п-по-J моделі матриць і , відповідно. Тоді ми могли б обчислити добуток -by- тензорного добутку з цих двох модельних матриць та реорганізувати у стовпці, щоб кожен стовпчик представляв унікальну комбінацію . Нагадаємо, що матриці граничної моделі мали відповідно і стовпчики. Ці значення відповідають їхнім базовим розмірам. Наша нова двозмінна основа повинна мати розмірністьxtXTn2ij XTijijij, а отже, однакова кількість стовпців у матриці його моделі.

ПРИМІТКА: Я хотів би зазначити, що оскільки ми явно побудували функції основи тензорного продукту, взявши продукти граничних функцій бази, бази тензорних виробів можуть бути побудовані з граничних основ будь-якого типу. Їм не потрібно підтримувати більше однієї змінної, на відміну від багатоваріантної гладкості, обговореної вище.

Насправді, цей процес призводить до загальної основі розширення розмірності , так як повне множення включає в себе множення кожного базис функції по й-перехоплення (таким чином , ми віднімаємо ), а також множення кожного функція через t-перехоплення (так ми віднімаємо ), але ми повинні додати перехоплення назад в себе (тому ми додаємо 1). Це відомо як застосування обмеження для ідентифікації.t β xijij+1tβx1jxβt1i

Тож ми можемо представити це як:

y=β1+β2x+β3t+β4f1(x,t)+β5f2(x,t)+...+βijij+1fijij2(x,t)+ε

Де кожна з багатоваріантних базових функцій є добутком пари граничних функцій основи і . Знову ж таки, досить зрозуміло, побудувавши цю основу, що ми все ще можемо представити це за допомогою матричного рівняння:fxt

Y=Xβ+ε

Яке (досі) має рішення:

β=(XTX)1XTY

Там, де матриця має стовпці. Що стосується штрафних матриць та , вони будуються окремо для кожної незалежної змінної наступним чином:i j - i - j + 1 J x J tXijij+1JxJt

Jx=βTIjSxβ

і,

Jt=βTStIiβ

Це дає можливість загального анізотропного (різного в кожному напрямку) покарання (Примітка: штрафи за другою похідною додаються на кожен вузол на осі , і навпаки). Параметри згладжування та тепер можуть бути оцінені приблизно так само, як єдиний параметр згладжування був для одновимірної та багатоваріантної гладкості. Результат полягає в тому, що загальна форма гладкого тензорного виробу інваріантна масштабуванню його незалежних змінних.t λ x λ txtλxλt

Я рекомендую прочитати всі віньєтки на веб-сайті MGCV, а також " Узагальнені моделі добавок: та введення з R ". Хай живе Саймон Вуд.


Гарна відповідь. З тих пір я дізнався набагато більше, ніж знав три роки тому. Але я не впевнений, що я би зрозумів 3 роки тому, що ти написав сьогодні. А може, я і мав би. Я думаю, що для початку слід подумати про розширення основи в багатьох вимірах як про "мережу" через змінний простір. Я припускаю, що тензори можна охарактеризувати як сітку з прямокутними візерунками ... І, можливо, різні сили "зсуву" тягнуться з кожного напрямку.
generic_user

З іншого приводу, я б застеріг вас від думки про тензорний добуток як про щось просторове. Це тому, що фактичний тензорний добуток граничних функцій основи та включатиме тони нулів, які представляють оцінку базових функцій поза їх визначеним діапазоном. Фактичний тензорний продукт зазвичай буде дуже рідким. тxt
Джош

1
Дякую за це чудове резюме! Лише одне зауваження: рівняння після "Розширення нашої основи" не є абсолютно правильним. Він дає правильні базисні функції, але дає параметризацію, коли відповідні параметри мають форму виробу ( ). βxiβtj
jarauh

1
@Josh Добре, я спробував. Це не просто правильно і легко зрозуміти водночас (і слідувати чужим позначенням). До речі, посилання на smooth-toolbox.pdf начебто порушено.
jarauh

1
Виглядає добре. Мабуть, ваша редакція була відхилена, але я відмінив відхилення і схвалив його. Коли я почав писати цю відповідь, я не зрозумів, як заплутано виглядатимуть розширення. Напевно, я мав би повернутися назад і переписати його з позначенням pi (product) на днях.
Джош
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.