Что такое многомерные ортогональные полиномы, вычисленные в R?


12

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

Эта же функция имеет вариант polym, который создает ортогональные полиномы на множестве многовариантных точек. В любом случае, полученные многочлены не являются ортогональными в смысле наличия попарно нулевой корреляции. Фактически, поскольку полиномы первого порядка должны быть только исходными переменными, полиномы первого порядка не будут ортогональными, если исходные переменные не являются коррелированными.

Тогда мои вопросы:

  • Какие многовариантные ортогональные полиномы вычисляются с помощью polym в R? Являются ли они просто произведением одномерных ортогональных многочленов? Для чего они используются?
  • Могут ли существовать истинные многомерные ортогональные полиномы? Есть ли простой способ их производства? В R? Они действительно используются в регрессии?

Обновить

В ответ на комментарий Суперпронкера я привожу один пример того, что я имею в виду с некоррелированными полиномами:

> 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

Я хочу уточнить значение «ортогональных многочленов», используемых в регрессии, потому что этот контекст может быть как-то вводящим в заблуждение при применении идей из ортогональных многочленов в связанных интервалах - как в последнем комментарии Суперпроникера.

Я процитирую « Практическую регрессию» Джулиана Дж. Фаравея и «Анову», используя страницы R и 101:

Ортогональные полиномы эту проблему, определяя и т. Д., Где выбираются коэффициенты a, b, c ... так что когда . Z называются ортогональными полиномами.

z1=a1+b1x
z2=a2+b2x+c2x2
z3=a3+b3x+c3x2+d3x3
ziT·zj=0ij

При незначительном злоупотреблении языком автор использует как для многочлена (как функции), так и для вектора значений, которые многочлен принимает в точках множества . Или, может быть, это даже не злоупотребление языком вообще, потому что с начала книги был предиктором (например, набор значений, взятых предиктором).zixx

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

А по отношению к корреляции: скалярное произведение ортогональных векторов в (как изображение ортогональных векторов на конечном множестве). Если скалярное произведение двух векторов равно нулю, ковариация равна нулю, а если ковариация равна нулю, корреляция равна нулю. В контексте линейных моделей очень полезно соотносить «ортогональные» и «некоррелированные», как в «ортогональных планах экспериментов».Rn


Что вы имеете в виду, когда говорите, что полиномы в некоторой точке некоррелированы? Стохастические переменные могут быть некоррелированными; векторы могут иметь скалярное произведение, равное нулю.
Суперпронкер

Когда оценивается в конечном наборе точек, мы получаем набор значений для каждого полинома. Мы можем вычислить корреляцию между этими наборами значений, а для ортогональных многочленов мы получим нулевую корреляцию. Поскольку корреляция связана с ковариацией, а ковариация - с точечным произведением, я предполагаю, что нулевая корреляция и произведение с нулевой точкой эквивалентны.
Пере

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

Я обновил вопрос этим, хотя в контексте регрессии ортогональность и некоррелированность являются почти синонимами. Я связал источник. И да, это зависит от баллов, которые мы оцениваем. Первый аргумент порядка poly - это вектор точек, которые мы оцениваем, и первый шаг в моих примерах - это генерация вектора точек для оценки. В регрессии нас интересуют ортогональные векторы в значениях нашего предиктора.
Pere

Я думаю, что злоупотребление нотацией более проблематично, чем кажется; Ортогональность двух полиномов не определяется как нулевое произведение точки, независимо от того, где вы оцениваете полиномы. Скорее, это то, что два полиномиальных члена (разных порядков) должны иметь нулевое произведение точек в «функциональном смысле»; и точечные произведения для функций, как правило, являются интегралами по некоторой мере (т. е. функции веса). Смотрите en.m.wikipedia.org/wiki/Orthogonal_polynomials . Если я прав, это объясняет путаницу. Но в вики есть комментарий по отношению к моментам.
Суперпронкер

Ответы:


5

Давайте посмотрим, что происходит. Я уверен, что вы уже знаете большую часть следующего материала, но, чтобы установить обозначения и определения и прояснить идеи, я расскажу об основах полиномиальной регрессии, прежде чем ответить на вопрос. Если хотите, перейдите к заголовку «Что Rпроисходит» примерно в двух третях пути к этому сообщению, а затем пропустите все определения, которые могут вам понадобиться.

Настройка

Мы рассматриваем модельную матрицу потенциальных объясняющих переменных в некоторой регрессии. Это означает, что мы рассматриваем столбцы как векторы и будем формировать их линейные комбинации, чтобы предсказать или оценить ответ. n×kXXnX1,X2,,Xkβ1X1+β2X2++βkXk,

Иногда регрессия может быть улучшена путем введения дополнительных столбцов, созданных путем умножения различных столбцов друг на друга, коэффициента на коэффициент. Такие продукты называются «мономами» и могут быть написаны какX

X1d1X2d2Xkdk

где каждая «степень» равна нулю или больше, представляя, сколько раз каждый появляется в произведении. Обратите внимание , что является - вектор постоянных коэффициентов ( ) и само по себе. Таким образом, мономы (как векторы) генерируют векторное пространство, которое включает в себя исходное пространство столбцов Возможность того, что это может быть большее векторное пространство, расширяет возможности этой процедуры для моделирования ответа с линейными комбинациями.diX1X0n1X1=XX.

Мы намерены заменить исходную модель матрицы набором линейных комбинаций мономов. Когда степень хотя бы одного из этих мономов превышает это называется полиномиальной регрессией.X1,

Оценки полиномов

Степень одночлена является суммой своих полномочий, Степень линейной комбинации мономов («полином») является самой большой степенью среди мономов с ненулевыми коэффициентами. Степень имеет внутреннее значение, потому что когда вы изменяете основание исходного векторного пространства, каждый вектор вновь представляется линейной комбинацией всех векторов; мономы таким образом, становятся полиномами одинаковой степени; и, следовательно, степень любого многочлена неизменна.d1+d2++dk.X i X d 1 1 X d 2 2X d k kXiX1d1X2d2Xkdk

Степень обеспечивает естественную «градуировку» для этой полиномиальной алгебры: векторное пространство, порожденное всеми линейными комбинациями мономов в степени до включительно называемое «многочленами [или до] степени в "расширяет векторное пространство многочленов до степени вXd+1,d+1X,dX.

Использование полиномиальной регрессии

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

Основные проблемы с этим подходом

  1. Мономы часто вводят проблемные величины «мультиколлинеарности» в новую матрицу модели, главным образом потому, что степени одной переменной имеют тенденцию быть в высокой степени коллинеарными. (Коллинеарность между степенями двух разных переменных непредсказуема, потому что она зависит от того, как эти переменные связаны, и поэтому менее предсказуема.)

  2. Изменение только одного столбца матрицы модели, или введение нового, или удаление одного, может потребовать «холодного перезапуска» процедуры регрессии, что может занять много времени для вычислений.

Оценки полиномиальных алгебр позволяют преодолеть обе проблемы.

Ортогональные полиномы от одной переменной

Учитывая одного вектора - столбца набор «ортогональных многочленов» для представляет собой последовательность векторов - столбцов выполнена в виде линейных комбинаций одночленов в есть-- то есть, как степени со следующими свойствами:X,Xp0(X),p1(X),p2(X),XX

  1. d=0,1,2,,p0(X),p1(X),,pd(X)X0,X1,,Xd.X0nX1X сам.)

  2. pi(X)ij,

    pi(X)pj(X)=0.

Обычно матрица замены сформированная из этих одночленов, выбирается ортонормированной путем нормализации ее столбцов к единице длины: Поскольку обратное значение присутствует в большинстве уравнений регрессии, а обратное значение матрицы тождества само по себе, это представляет огромный вычислительный выигрыш.

P=(p0(X)p1(X)pd(X))
PP=Id+1.
PPId+1

Ортонормальность очень близко определяет Вы можете увидеть это по построению:pi(X).

  • Первый полином, должен быть кратным вектору число единичной длины. Есть только два варианта: Обычно выбирают положительный квадратный корень.p0(X),n1=(1,1,,1)±1/n1.

  • Второй многочлен, должен быть ортогонален Его можно получить путем регрессии к решением которого является вектор средних значений Если остатки не являются тождественно нулевыми, они дают только два возможных решенияp1(X),1.X1,X^=X¯1.ϵ=XX^p1(X)=±(1/||ϵ||)ϵ.

...

  • Как правило, получается путем регрессии против и перемасштабирования остатков до вектора единицы длина. Есть два варианта знака, когда все остатки не равны нулю. В противном случае процесс заканчивается: бесполезно смотреть на любые более высокие степени (Это хорошая теорема, но ее доказательство не должно отвлекать нас здесь).pd+1(X)Xd+1p0(X),p1(X),,pd(X)X.

Это процесс Грамма-Шмидта, применяемый к внутренней последовательности векторов Обычно он вычисляется с использованием QR-разложения, что почти то же самое, но рассчитывается численно стабильным образом.X0,X1,,Xd,.

Эта конструкция дает последовательность дополнительных столбцов, которые необходимо учитывать, включая в матрицу модели. Поэтому полиномиальная регрессия по одной переменной обычно происходит путем добавления элементов этой последовательности по порядку, пока не будет достигнуто дальнейшее улучшение регрессии. Поскольку каждый новый столбец ортогонален предыдущим, в том числе он не меняет ни одну из предыдущих оценок коэффициента. Это делает эффективную и легко интерпретируемую процедуру.

Полиномы от нескольких переменных

Исследовательская регрессия (а также подгонка модели), как правило, сначала проводится с учетом того, какие (оригинальные) переменные следует включить в модель; затем оценка того, могут ли эти переменные быть дополнены путем включения их различных преобразований, таких как мономы; и затем введение "взаимодействий", образованных из произведений этих переменных и их повторных выражений.

Выполнение такой программы началось бы с формирования одномерных ортогональных многочленов в столбцах отдельно. X После выбора подходящей степени для каждого столбца вы должны ввести взаимодействия.

На этом этапе части одномерной программы ломаются. Какую последовательность взаимодействий вы бы применили, один за другим, пока не будет определена подходящая модель? Более того, теперь, когда мы действительно вошли в сферу многовариантного анализа, число доступных вариантов и их растущая сложность позволяют предположить, что при построении последовательности многомерных ортогональных полиномов могут быть убывающие результаты . Однако, если вы имели в виду такую ​​последовательность, вы можете вычислить ее, используя QR-декомпозицию.


Что Rделает

Поэтому программное обеспечение для полиномиальной регрессии имеет тенденцию фокусироваться на вычислении одномерных ортогональных полиномиальных последовательностей. Характерно, Rчто такая поддержка максимально автоматически распространяется на группы одномерных многочленов. Это то, что polyделает. (Его компаньон polymпо сути тот же код, с меньшим количеством наворотов; две функции выполняют одинаковые действия.)

В частности, polyбудет вычисляться последовательность одномерных ортогональных многочленов, когда задан один вектор остановкой на заданной степени (Если слишком велико - и может быть трудно предсказать, насколько велико слишком большое - это, к сожалению, приводит к ошибке.) При заданном наборе векторов в виде матрицы он вернетсяX,d.dX1,,XkX,

  1. Последовательности ортонормированных полиномов для каждого выходят до запрошенной максимальной степени (Поскольку постоянный вектор является общим для всех переменных и настолько прост - обычно он учитывается с помощью перехвата в регрессии - его не смущает включение).p1(Xj),p2(Xj),,pd(Xj)jd.p0(Xi)R

  2. Все взаимодействия между этими ортогональными многочленами вплоть до включительно степениd.

Шаг (2) включает в себя несколько тонкостей. Обычно под «взаимодействием» между переменными мы подразумеваем «все возможные продукты», но некоторые из этих возможных продуктов будут иметь степени больше Например, с переменными и вычисляетd.2d=2, R

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

Rвовсе не включает в себя более высокой степени взаимодействия (многочлены степени 3) или (многочлен степени 4). (Это не является серьезным ограничением, поскольку вы можете легко рассчитать эти продукты самостоятельно или указать их в объекте регрессии .)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).

Обратите внимание на последовательность, в которой расположены столбцы: непостоянные ортонормированные полиномы для находятся в столбцах 1 и 2, в то время как таковые для находятся в столбцах 3 и 5. Таким образом, единственная ортогональность, которая гарантируется в этих выходных данных, находится между этими две пары столбцов. Это отражено в расчете который будет иметь нули в позициях и (показано красным ниже), * но может отличаться от нуля в любом другом месте и будет иметь значения в позициях и (показано синим цветом) ниже), но, скорее всего, не будет одного в других диагональных положениях (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
(+1) Отлично читал как обычно. Я считаю, что есть небольшая опечатка: вы пишете, что Rвычисляет но не должно быть ? p1(X1)p2(X2)p1(X1)p1(X2)
COOLSerdash

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

1
Спасибо за этот отличный ответ. Тот факт, что ответ приходит спустя много времени после того, как я потерял надежду на получение ответа, делает его очень приятным сюрпризом.
Пер

И я думаю, что есть еще одна маленькая опечатка: я думаю, что « сам» в 4-м абзаце подразумевается как « сам». Х 1 = ХX1=XX1=X
Pere

Совершенно верно. Я благодарен вам за то, что вы так внимательно читаете текст, что обнаруживаете эти ошибки!
whuber
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.