Co to są wielowymiarowe ortogonalne wielomiany obliczone w R?

12

Wielomiany ortogonalne w jednowymiarowym zestawie punktów są wielomianami, które wytwarzają wartości na tych punktach w taki sposób, że iloczyn skalarny i korelacja par są zerowe. R może wytwarzać ortogonalne wielomiany z funkcją poli .

Ta sama funkcja ma wariant polimorficzny, który tworzy wielomiany ortogonalne na zestawie punktów na wielu odmianach. W każdym razie powstałe wielomiany nie są ortogonalne w sensie korelacji zerowej parami. W rzeczywistości, ponieważ wielomiany pierwszego rzędu mają być tylko oryginalnymi zmiennymi, wielomiany pierwszego rzędu nie będą ortogonalne, chyba że pierwotne zmienne nie są skorelowane.

Następnie moje pytania to:

  • Jakie są wielowymiarowe ortogonalne wielomiany obliczane przez polimorf w R? Czy są tylko produktem wielowymiarowych ortogonalnych wielomianów? Do czego są używane?
  • Czy mogą istnieć prawdziwe wielowymiarowe ortogonalne wielomiany? Czy istnieje prosty sposób na ich wyprodukowanie? W R? Czy faktycznie są stosowane w regresji?

Aktualizacja

W odpowiedzi na komentarz Superpronkera podam jeden przykład tego, co mam na myśli z nieskorelowanymi wielomianami:

> 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

Funkcja Poly zwraca ortogonalne wielomiany obliczone w punktach x (tutaj 10 000 punktów dla każdego wielomianu). Korelacja między wartościami na różnych wielomianach wynosi zero (z pewnym błędem numerycznym).

Podczas korzystania z wielowymiarowych wielomianów korelacje są różne od zera:

> 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

Dlatego nie rozumiem, w jakim sensie te dwuwymiarowe wielomiany są ortogonalne.

Aktualizacja 2

Chcę wyjaśnić znaczenie „wielomianów ortogonalnych” używanych w regresji, ponieważ kontekst ten może być w pewnym sensie mylący przy stosowaniu pomysłów z wielomianów ortogonalnych w połączonych interwałach - jak w ostatnim komentarzu Superpronkera.

Cytuję Regresję praktyczną Juliana J. Faraway'a i Anovę przy użyciu stron R 101 i 102:

Wielomiany ortogonalne omijają ten problem, definiując

z1=za1+b1x
z2)=za2)+b2)x+do2)x2)
z3)=za3)+b3)x+do3)x2)+re3)x3)
itd., gdzie współczynniki a, b, c ... są wybrane tak, że zjaT.·zjot=0kiedy jajot . Z nazywane są wielomianami ortogonalnymi.

Przy lekkim nadużyciu języka autor używa zja zarówno dla wielomianu (jako funkcji), jak i dla wektora wartości wielomian przyjmuje punkty zbioru x . A może wcale nie jest to nadużycie języka, ponieważ od początku książki x był predyktorem (np. Zestaw wartości przyjmowanych przez predyktor).

Znaczenie ortogonalnych wielomianów w rzeczywistości nie różni się od ortogonalnych wielomianów w danym przedziale. Możemy zdefiniować ortogonalne wielomiany w zwykły sposób (przy użyciu całek) w dowolnym zestawie mierzalnym z dowolną funkcją miary. Mamy tutaj zestaw skończony ( x ) i używamy iloczynu zamiast całki, ale nadal są to ortogonalne wielomiany, jeśli weźmiemy naszą funkcję miary jako delta Diraca w punktach naszego skończonego zbioru.

A w odniesieniu do korelacji: iloczyn iloczynu wektorów ortogonalnych w Rn (jako obraz wektorów ortogonalnych na zbiorze skończonym). Jeśli iloczyn iloczynu dwóch wektorów wynosi zero, kowariancja wynosi zero, a jeśli kowariancja wynosi zero, korelacja wynosi zero. W kontekście modeli liniowych bardzo przydatne jest powiązanie „ortogonalnego” i „nieskorelowanego”, jak w „ortogonalnym projekcie eksperymentów”.

Pere
źródło
Co masz na myśli, mówiąc, że wielomiany w jednym punkcie są nieskorelowane? Zmienne stochastyczne mogą być nieskorelowane; wektory mogą mieć iloczyn iloczynu równy zero.
Superpronker,
Oceniany w skończonym zbiorze punktów, otrzymujemy zestaw wartości dla każdego wielomianu. Możemy obliczyć korelację między tymi zestawami wartości, a dla wielomianów ortogonalnych otrzymujemy korelację zerową. Ponieważ korelacja jest związana z kowariancją, a kowariancja jest związana z iloczynem kropkowym, zakładam, że zerowa korelacja i iloczyn zerowy są równoważne.
Pere,
Przepraszam, jeśli źle zrozumiałem, ale nadal nie podążam. Korelacja zachodzi między dwoma wektorami, w których masz, powiedzmy, N obserwacji każdego z nich. Czy masz na myśli, że terminy pierwszego i drugiego rzędu powinny być nieskorelowane? To zależy od punktów, w których oceniasz. Na [-1; 1] nie są, ale na [0; 1] są. Myślę, że twoja intuicja dla związku między ortogonalnością i nieskorelacją nie jest precyzyjna.
Superpronker,
Zaktualizowałem to pytanie, chociaż w kontekście regresji ortogonalność i nieskorelacja są prawie synonimami. Podłączyłem źródło. I tak, to zależy od punktów, które oceniamy. Pierwszym argumentem rzędu poli jest wektor ocenianych przez nas punktów, a pierwszym krokiem w moich przykładach jest wygenerowanie wektora punktów do oceny. W regresji interesują nas wektory ortogonalne o wartościach naszego predyktora.
Pere
Myślę, że nadużycie notacji jest bardziej problematyczne niż się wydaje; ortogonalność dwóch wielomianów nie jest zdefiniowana jako iloczyn iloczynu zerowego, bez względu na to, gdzie oceniasz wielomiany. Raczej jest tak, że dwa terminy wielomianowe (różnych rzędów) powinny mieć iloczyn zerowy w „sensie funkcji”; i produkty kropkowe dla funkcji są zwykle całkami z pewną miarą (tj. funkcją wagi). Zobacz en.m.wikipedia.org/wiki/Orthogonal_polynomials . Jeśli mam rację, to wyjaśnia zamieszanie. Ale na wiki jest komentarz dotyczący relacji do momentów.
Superpronker,

Odpowiedzi:

5

Zobaczmy, co się dzieje. Jestem pewien, że znasz już większość następujących materiałów, ale aby ustalić notację i definicje oraz wyjaśnić idee, omówię podstawy regresji wielomianowej przed udzieleniem odpowiedzi na pytanie. Jeśli chcesz, przeskocz do nagłówka „Co Rrobi” około dwie trzecie drogi do tego postu, a następnie pomiń wszelkie potrzebne definicje.

Ustawienie

Jesteśmy rozważa n×k modelem macierzy X potencjalnych zmiennych objaśniających w pewnego rodzaju regresji. Oznacza to, że myślimy o kolumnach X jako o n wektorach X1,X2),,Xk i będziemy tworzyć ich liniowe kombinacje, β1X1+β2)X2)++βkXk, aby przewidzieć lub oszacować odpowiedź.

Czasami regresję można poprawić, wprowadzając dodatkowe kolumny utworzone przez pomnożenie przez siebie różnych kolumn X , współczynnik przez współczynnik. Takie produkty nazywane są „monomialami” i można je pisać w podobny sposób

X1re1X2)re2)Xkrek

gdzie każda „moc” reja jest równa zero lub większa, reprezentując ile razy każdy X1 pojawia się w produkcie. Zauważ, że X0 jest wektorem n stałych współczynników ( 1 ), a X1=X sam X. Tak więc, jednomianów (wektory) tworzą przestrzeń wektorową, która zawiera pierwotnego obszaru kolumny X. Możliwość, że może to być większa przestrzeń wektorowa, daje tej procedurze większy zakres do modelowania odpowiedzi za pomocą kombinacji liniowych.

Zamierzamy zastąpić pierwotną macierz modelu X kolekcją liniowych kombinacji monomialów. Gdy stopień co najmniej jednego z tych monomialów przekracza 1, nazywa się to regresją wielomianową.

Gradacje wielomianów

Stopień z Jednomian jest sumą swoich uprawnień, re1+re2)++rek. Stopień liniowej kombinacji monomialów („wielomian”) jest największym stopniem wśród terminów jednomianowych o niezerowych współczynnikach. Stopień ma wewnętrzne znaczenie, ponieważ po zmianie podstawy oryginalnej przestrzeni wektorowej każdy wektor Xja jest na nowo reprezentowany przez liniową kombinację wszystkich wektorów; monomiały X1re1X2)re2)Xkrekw ten sposób stają się wielomianami tego samego stopnia; i w konsekwencji stopień dowolnego wielomianu pozostaje niezmieniony.

Stopień zapewnia naturalne „stopniowanie” tej algebry wielomianowej: przestrzeń wektorowa generowana przez wszystkie liniowe kombinacje monomialów w X stopnia do re+1, włącznie , zwane „wielomianami [lub do] stopnia re+1 w X, "rozciąga przestrzeni wektorowej wielomianów aż do stopni re w X.

Zastosowania regresji wielomianowej

Często regresja wielomianowa ma charakter eksploracyjny w tym sensie, że na początku nie wiemy, które monomale należy uwzględnić. Proces tworzenia nowych matryc modelowych z monomialów i ponownego dopasowania regresji może wymagać powtórzenia wiele razy, być może astronomicznej liczby razy w niektórych ustawieniach uczenia maszynowego.

Głównymi problemami z tym podejściem są

  1. Monomialy często wprowadzają problematyczne ilości „wielokoliniowości” w nowej matrycy modelu, przede wszystkim dlatego, że moce jednej zmiennej są zwykle kolinearne. (Kolinearność między potęgami dwóch różnych zmiennych jest nieprzewidywalna, ponieważ zależy od tego, jak te zmienne są powiązane, a zatem jest mniej przewidywalna.)

  2. Zmiana tylko jednej kolumny macierzy modelu lub wprowadzenie nowej lub usunięcie jednej może wymagać „zimnego restartu” procedury regresji, co może zająć dużo czasu na obliczenia.

Klasyfikacje algebr wielomianowych stanowią sposób na rozwiązanie obu problemów.

Wielomiany ortogonalne w jednej zmiennej

Biorąc pod uwagę wektor X pojedynczej kolumny , zestaw „wielomianów ortogonalnych” dla X jest sekwencją wektorów kolumnowych p 0 ( X ) , p 1 ( X ) , p 2 ( X ) , utworzonych jako liniowe kombinacje monomialów w samym X - czyli jako potęgi X - o następujących właściwościach:X,Xp0(X),p1(X),p2)(X),XX

  1. Dla każdego stopnia re=0,1,2),, wektory p0(X),p1(X),,pre(X) wytworzenia z tej samej przestrzeni wektora jako X0,X1,,Xre. (Zauważ, że X0 jest wektorem n jedynek, a X1 to tylko X samo.)

  2. pja(X) są wzajemnie ortogonalne w tym sensie, że dla jajot,

    pja(X)pjot(X)=0.

Zazwyczaj zastępcza macierz modelu

P.=(p0(X)p1(X)pre(X))
utworzona z tych monomianów jest wybierana jako ortonormalna przez normalizację kolumn do długości jednostkowej:
P.P.=jare+1.
Ponieważ odwrotność P.P. pojawia się w większości równań regresji, a odwrotność macierzy tożsamości jare+1 jest sam w sobie, co stanowi ogromny zysk obliczeniowy.

Ortogonalność bardzo prawie determinuje pja(X). Możesz to zobaczyć według budowy:

  • Pierwszy wielomianu p0(X), może być wielokrotnością n -vector 1=(1,1,,1) o długości jednostkowej. Istnieją tylko dwie opcje, ±1/n1. Zazwyczaj wybiera się dodatni pierwiastek kwadratowy.

  • Drugi wielomian, p1(X), musi być prostopadły do 1. To może być uzyskane przez regresję X na 1, których rozwiązanie jest wektorem wartości średnie x = ˉ X 1 . Jeżeli pozostałości ε = X - X nie są identyczne zerowa, dają dwóch jedynych możliwych rozwiązań p 1 ( X ) = ± ( 1 / | | ε | |X^=X¯1.ϵ=X-X^p1(X)=±(1/||ϵ||)ϵ.

...

  • Ogólnie, pre+1(X) otrzymuje się przez regresję Xre+1 na p0(X),p1(X),,pre(X) i Przeskalowywanie pozostałości jako wektor o długości jednostkowej. Istnieją dwie możliwości wyboru znaku, gdy reszty nie są równe zero. W przeciwnym razie proces się skończy: patrzenie na wyższe potęgi X. będzie bezowocne . (To fajne twierdzenie, ale jego dowód nie musi nas tutaj rozpraszać.)

Jest to proces Gram-Schmidta zastosowany do wewnętrznej sekwencji wektorów X0,X1,,Xre,. Zwykle jest obliczany przy użyciu rozkładu QR, który jest prawie taki sam, ale obliczany w sposób stabilny numerycznie.

Ta konstrukcja daje sekwencję dodatkowych kolumn, które należy rozważyć, uwzględniając w matrycy modelu. Dlatego regresja wielomianowa w jednej zmiennej zwykle przebiega przez dodawanie elementów tej sekwencji jeden po drugim, w kolejności, dopóki nie zostanie osiągnięta żadna dalsza poprawa regresji. Ponieważ każda nowa kolumna jest prostopadła do poprzednich, w tym nie zmienia żadnych poprzednich oszacowań współczynników. To sprawia, że ​​procedura jest wydajna i łatwa do interpretacji.

Wielomiany w wielu zmiennych

Regresja eksploracyjna (a także dopasowanie modelu) zwykle przebiega najpierw, biorąc pod uwagę, które (oryginalne) zmienne należy uwzględnić w modelu; następnie oceniając, czy zmienne te można rozszerzyć, uwzględniając różne ich transformacje, takie jak monomialy; a następnie wprowadzenie „interakcji” utworzonych z iloczynów tych zmiennych i ich ponownego wyrażenia.

Wykonanie takiego programu zaczynałoby się od utworzenia osobnych wielowymiarowych ortogonalnych wielomianów w kolumnach X oddzielnie. Po wybraniu odpowiedniego stopnia dla każdej kolumny należy wprowadzić interakcje.

W tym momencie rozkładają się części programu jednowymiarowego. Jaką sekwencję interakcji zastosowałbyś jeden po drugim, dopóki nie zostanie zidentyfikowany odpowiedni model? Co więcej, teraz, gdy naprawdę wkroczyliśmy w sferę analizy wielowymiarowej, liczba dostępnych opcji i ich rosnąca złożoność sugerują, że może dojść do malejących zysków przy konstruowaniu sekwencji wielowymiarowych ortogonalnych wielomianów. Jeśli jednak miałeś na myśli taką sekwencję, możesz ją obliczyć za pomocą rozkładu QR.


Co Rrobi

Oprogramowanie do regresji wielomianowej ma zatem tendencję do koncentrowania się na obliczaniu jednowymiarowych ortogonalnych sekwencji wielomianowych. Charakterystyczne jest, Raby rozszerzać takie wsparcie tak automatycznie, jak to możliwe, na grupy wielomianów jednowymiarowych. To co polyrobi. (Jego towarzyszem polymjest zasadniczo ten sam kod, z mniejszą liczbą dzwonków i gwizdków; obie funkcje robią to samo).

W szczególności polyobliczy sekwencję wielowymiarowych wielomianów ortogonalnych, gdy otrzyma pojedynczy wektor X, zatrzymując się w określonym stopniu re. (Jeśli re jest zbyt duże - i może być trudno przewidzieć, jak duże jest zbyt duże - niestety generuje błąd.) Gdy otrzymamy zestaw wektorów X1,,Xk w postaci macierzy X, powróci

  1. p1(Xj),p2(Xj),,pd(Xj)jotre.p0(Xja)R

  2. re.

re.2)re=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))

Przykład

X=(13)562)4).

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 lub większe to liniowe kombinacje niższych mocy, a te niższe moce są liniowo niezależne).

X1

P1=(0.580.570.590.580.790.200.580.230.78)

(do dwóch znaczących cyfr).

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)

P.P.=(1010,280,09101-0,0910,311-0,09110,2500,280,30,250,50,320,091100,321).

P.10-17

Whuber
źródło
1
Rp1(X1)p2)(X2))p1(X1)p1(X2))
1
@Cool Dobry chwyt - naprawiony teraz.
whuber
1
Dzięki za tę świetną odpowiedź. Fakt, że odpowiedź pojawia się na długo po tym, jak straciłem nadzieję na odpowiedź, czyni ją bardzo przyjemną niespodzianką.
Pere
X1=XX1=X
Całkowicie słuszne. Jestem wdzięczny, że czytasz ten tekst tak uważnie, że znalazłeś te błędy!
whuber