Що таке багатоваріантні ортогональні многочлени, обчислені в R?


12

Ортогональні многочлени в одновимірному наборі точок - це многочлени, які виробляють значення в цих точках таким чином, що його крапковий добуток і попарна кореляція дорівнюють нулю. R може виробляти ортогональні многочлени з функцією poly .

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

Тоді мої запитання:

  • Які багатоваріантні ортогональні многочлени обчислюються полімою в R? Чи вони є лише продуктом одновимірних ортогональних многочленів? Для чого вони використовуються?
  • Чи можуть існувати справжні багатофакторні ортогональні многочлени? Чи є простий спосіб їх виготовлення? В R? Чи реально вони використовуються в регресії?

Оновлення

У відповідь на коментар Superpronker, я наводжу один приклад того, що я маю на увазі під некорельованими поліномами:

> x<-rnorm(10000)
> cor(cbind(poly(x,degree=3)))
              1             2             3
1  1.000000e+00 -6.809725e-17  2.253577e-18
2 -6.809725e-17  1.000000e+00 -2.765115e-17
3  2.253577e-18 -2.765115e-17  1.000000e+00

Функція Poly повертає ортогональні многочлени, оцінені в точках x (тут 10000 балів за кожен многочлен). Кореляція між значеннями на різних многочленах дорівнює нулю (з деякою числовою помилкою).

При використанні багатоваріантних многочленів кореляції відрізняються від нуля:

> x<-rnorm(1000)
> y<-rnorm(1000)
> cor(cbind(polym(x,y,degree=2)))
              1.0           2.0           0.1         1.1           0.2
1.0  1.000000e+00  2.351107e-17  2.803716e-02 -0.02838553  3.802363e-02
2.0  2.351107e-17  1.000000e+00 -1.899282e-02  0.10336693 -8.205039e-04
0.1  2.803716e-02 -1.899282e-02  1.000000e+00  0.05426440  5.974827e-17
1.1 -2.838553e-02  1.033669e-01  5.426440e-02  1.00000000  8.415630e-02
0.2  3.802363e-02 -8.205039e-04  5.974827e-17  0.08415630  1.000000e+00

Тому я не розумію, в якому сенсі ці двосхилі многочлени є ортогональними.

Оновлення 2

Я хочу уточнити значення "ортогональних поліномів", що використовуються в регресії, оскільки цей контекст може бути якимось оманливим при застосуванні ідей з ортогональних многочленів у пов'язаних інтервалах - як у останньому коментарі Superpronker.

Я цитую " Практичну регресію" та "Anova" Юліана Дж. Фаравея на R- сторінках 101 і 102:

Ортогональні многочлени обходять цю задачу, визначивши

z1=a1+b1x
z2=a2+b2x+c2x2
z3=a3+b3x+c3x2+d3x3
і т.д., де коефіцієнти a, b, c ... вибираються так, що ziT·zj=0коли ij . Z називаються ортогональними многочленами.

Незначно зловживаючи мовою, тут автор використовує zi як для полінома (як функції), так і для вектора значень, який поліном приймає в точках множини x . А може, це зовсім не зловживання мовою, оскільки з початку книги x був предиктором (напр., Набором значень, взятим передбачувачем).

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

А стосовно кореляції: крапковий добуток ортогональних векторів у Rn (як зображення ортогональних векторів на скінченному множині). Якщо крапковий добуток двох векторів дорівнює нулю, коваріація дорівнює нулю, а якщо коваріація дорівнює нулю, кореляція дорівнює нулю. У контексті лінійних моделей дуже корисно співвідносити "ортогональне" та "некорельоване", як у "ортогональному проектуванні експериментів".


Що ви маєте на увазі, говорячи про те, що многочлени в точці некорельовані? Стохастичні змінні можуть бути некорельованими; вектори можуть мати крапковий добуток, рівний нулю.
Superpronker

Оцінюючи за кінцевим набором балів, ми отримуємо набір значень для кожного многочлена. Ми можемо обчислити кореляцію між цими множинами значень, а для ортогональних многочленів ми отримаємо нульову кореляцію. Оскільки кореляція пов'язана з коваріацією, а коваріація пов'язана з точковим продуктом, я вважаю, що нульова кореляція та нульовий крапковий продукт є рівнозначними.
Пере

Вибачте, якщо я неправильно розумію, але все одно не дотримуюся. Кореляція між двома векторами, де у вас, скажімо, N спостережень за кожним. Ви маєте на увазі, що термін першого та другого порядку має бути невідповідним? Тоді це залежить від балів, де ви оцінюєте. На [-1; 1] вони не є, але на [0; 1] вони є. Я думаю, що інтуїція щодо співвідношення ортогональності та некорельованості не є точною.
Superpronker

Я актуалізував питання з цим, хоча в контексті регресії ортогональність та некорельованість є майже синонімами. Я пов’язав джерело. І так, це залежить від балів, які ми оцінюємо. Перший аргумент полі порядку - це вектор балів, який ми оцінюємо, і перший крок моїх прикладів - це генерування вектора балів для оцінки. У регресії нас цікавлять ортогональні вектори у значеннях нашого прогноктора.
Пере

Я вважаю, що зловживання нотацією є більш проблематичним, ніж здається; ортогональність двох многочленів не визначається, оскільки крапка добутку дорівнює нулю, незалежно від того, де ви оцінюєте поліноми. Швидше за все, це те, що два поліномові члени (різного порядку) повинні мати нульовий крапковий добуток у "функціональному сенсі"; і крапкові продукти для функцій, як правило, є інтегралами wrt деякої міри (тобто функцією ваги). Дивіться en.m.wikipedia.org/wiki/Orthogonal_polynomials . Якщо я маю рацію, це пояснює плутанину. Але на wiki є коментар щодо відношення до моментів.
Superpronker

Відповіді:


5

Давайте вивчимо, що відбувається. Я впевнений, що ви вже знаєте більшість поданих нижче матеріалів, але щоб встановити позначення та визначення та зробити ідеї зрозумілими, я висвітлю основи поліноміальної регресії, перш ніж відповісти на питання. Якщо вам подобається, Rперейдіть до заголовка "Що робить" про дві третини шляху до цієї публікації, а потім пропустіть назад для будь-яких визначень, які можуть вам знадобитися.

Установка

Ми розглядаємо в n×k моделі матриця X потенційних пояснюють змінних в якій - то регрес. Це означає, що ми думаємо про стовпці X як n вектори X1,X2,,Xk і ми формуватимемо їх лінійні комбінації, β1X1+β2X2++βkXk, для прогнозування або оцінки відповіді.

Іноді регресію можна покращити шляхом введення додаткових стовпців, створених шляхом множення різних стовпців X один на одного, коефіцієнта на коефіцієнт. Такі вироби називаються «мономерами» і їх можна писати подібними

X1d1X2d2Xkdk

де кожна "потужність" di дорівнює нулю або більше, що представляє, скільки разів кожен X1 з'являється у творі. Зауважте, що X0 - n вектор постійних коефіцієнтів ( 1 ), а X1=X сам. Таким чином, Мономах (як вектори) породжують векторне простір , яке включає в себе вихідний стовпець простір X. Можливість, що це може бути більший векторний простір, дає цій процедурі більший обсяг для моделювання відповіді за допомогою лінійних комбінацій.

Ми маємо намір замінити оригінальну матрицю X на колекційну лінійну комбінацію одночленів. Коли ступінь принаймні одного з цих мономенів перевищує 1, це називається поліноміальною регресією.

Класифікація многочленів

Ступінь одночлена є сумою своїх повноважень, d1+d2++dk. Ступінь лінійної комбінації одночленів ("многочлен") є найбільшою мірою серед одночленних членів з ненульовими коефіцієнтами. Ступінь має внутрішнє значення, оскільки коли ви змінюєте основу вихідного векторного простору, кожен вектор Xi знову представляється лінійною комбінацією всіх векторів; одночлени X1d1X2d2Xkdkтим самим стають многочленами однакового ступеня; і, отже, ступінь будь-якого многочлена не змінюється.

Ступінь забезпечує природне "класифікацію" цієї поліноміальної алгебри: векторний простір, сформований усіма лінійними комбінаціями одночленів у X ступеня до і включаючи d+1, називається "поліномами [або до] ступеня d+1 у X, "розширює векторний простір многочленів до ступеня d в X.

Використання поліноміальної регресії

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

Головні проблеми такого підходу є

  1. Мономіали часто вносять проблемні кількості "мультиколінеарності" в нову матрицю моделі, в першу чергу через те, що потужності однієї змінної, як правило, є дуже колінеарними. (Колінеарність між повноваженнями двох різних змінних непередбачувана, оскільки це залежить від того, наскільки ці змінні пов'язані, а тому є менш передбачуваною.)

  2. Зміна лише одного стовпчика матриці моделі або введення нового або видалення його може зажадати «холодного перезапуску» процедури регресії, що потенційно може зайняти тривалий час для обчислення.

Класифікація поліноміальних алгебр дає спосіб подолати обидві проблеми.

Ортогональні многочлени в одній змінній

З огляду на одного вектор - стовпець X, набір «ортогональних многочленів» для X являє собою послідовність векторів - стовпців p0(X),p1(X),p2(X), формується в вигляді лінійної комбінації одночленним в X в поодинці - що є, як сили X - з такими властивостями:

  1. Для кожного ступеня d=0,1,2,, вектори p0(X),p1(X),,pd(X) генерують той же векторний простір, що і X0,X1,,Xd. (Зауважте, що X0 - n вектор одиниць, а X1 - просто X себе.)

  2. pi(X) є взаємно ортогональними в тому сенсі , що для ij,

    pi(X)pj(X)=0.

Зазвичай матриця заміщення моделі

P=(p0(X)p1(X)pd(X))
сформована з цих мономенів, вибирається ортонормальною шляхом нормалізації її стовпців до одиничної довжини:
PP=Id+1.
Оскільки обернення PP з'являється в більшості рівнянь регресії та інверсії матриці тотожності Id+1 саме по собі, це представляє величезний обчислювальний приріст.

Ортонормальність майже майже визначає pi(X). Ви можете переконатися в цьому:

  • Перший многочлен, p0(X), повинен бути кратним n вектору 1=(1,1,,1) одиничної довжини. Є лише два варіанти, ±1/n1. Зазвичай обирають позитивний квадратний корінь.

  • Другий многочлен, p1(X), повинен бути ортогональним до 1. Вона може бути отримана регрес X проти 1, рішення якого є вектором середніх значень Х = ˉ Х 1 . Якщо різниці ε = Х - Х не тотожне дорівнюють нулю, вони дають лише два можливих рішень р 1 ( X ) = ± ( 1 / | | е | |X^=X¯1.ϵ=XX^p1(X)=±(1/||ϵ||)ϵ.

...

  • pd+1(X)Xd+1p0(X),p1(X),,pd(X)X.

Це процес Грам-Шмідта, застосований до внутрішньої послідовності векторів X0,X1,,Xd,. Зазвичай він обчислюється за допомогою розкладання QR, що є майже таким же, але обчислюється чисельно стабільним чином.

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

Поліноми у кількох змінних

Розвідувальна регресія (як і підгонка моделі) зазвичай відбувається шляхом спочатку розгляду, які (оригінальні) змінні включити до моделі; потім оцінюють, чи можна змінити ці змінні, включаючи різні перетворення їх, наприклад, мономеї; а потім введення «взаємодій», утворених з продуктів цих змінних, та їх повторного вираження.

X

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


Що Rробить

Програмне забезпечення для поліноміальної регресії, як правило, фокусується на обчисленні одновимірних ортогональних послідовностей поліномів. Характерно, Rщоб така підтримка була максимально автоматизованою до груп одноманітних поліномів. Це те, що polyробить. (Його супутник polym- це по суті той самий код, з меншою кількістю дзвіночків; дві функції виконують те саме.)

polyX,d.dX1,,XkX,

  1. p1(Xj),p2(Xj),,pd(Xj)jd.p0(Xi)R

  2. d.

d.2d=2, R

p1(X1),p2(X1),p1(X2),p1(X1)p1(X2),p2(X2).

R p2(X1)p1(X2), p1(X1)p2(X2)p1(X2)p2(X2)formula

p1(X1)p1(X2).p1(X1)p1(X2)

Приклад

X=(135624).

X1=(1,5,2)X10=(1,1,1)p0(X1)=(1,1,1)/3(0.58,0.58,0.58).X11=X1p0(X1),X1p0(X1)p1(X1)X1p1(X1)=(0.57,0.79,0.23).X12=(1,25,4)p0(X1)p1(X1)X1n=3X1,(t1)(t5)(t4),3,3 або більше - це лінійні комбінації менших потужностей, і ці менші потужності лінійно незалежні.)

X1

P1=(0.580.570.590.580.790.200.580.230.78)

(до двох значущих цифр).

X2

P2=(0.580.620.530.580.770.270.580.150.80).

(0.35,0.61,0.035).polypolym

P=(0.570.590.620.350.530.790.200.770.610.270.230.780.150.0350.80).

X1X2PP,(1,2),(2,1),(3,5),(5,3)(1,1),(2,2),(3,3),(5,5)(4,4)

PP=(1010.280.091010.0910.3110.09110.2500.280.30.250.50.320.091100.321).

P1017


1
Rp1(X1)p2(X2)p1(X1)p1(X2)

1
@Cool Хороший улов - виправлено зараз.
whuber

1
Дякую за чудову відповідь. Той факт, що відповідь надійде черездовго після того, як я втратив надію на її відповідь, робить це дуже приємною несподіванкою.
Пер

X1=XX1=X

Цілком правильно. Я вдячний, що ви читаєте текст так уважно, що виявляєте ці помилки!
whuber
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.