Cosa sono i polinomi ortogonali multivariati calcolati in R?


12

I polinomi ortogonali in un insieme univariato di punti sono polinomi che producono valori su quei punti in modo tale che il suo prodotto punto e la correlazione a coppie siano zero. R può produrre polinomi ortogonali con funzione poli .

La stessa funzione ha un polimero variante che produce polinomi ortogonali su un insieme di punti multivariati. Comunque i polinomi risultanti non sono ortogonali nel senso di avere una correlazione zero a coppie. Infatti, poiché i polinomi del primo ordine dovrebbero essere le sole variabili originali, i polinomi del primo ordine non saranno ortogonali a meno che le variabili originali non siano correlate.

Quindi, le mie domande sono:

  • Quali sono i polinomi ortogonali multivariati calcolati dal polimero in R? Sono solo il prodotto dei polinomi ortogonali univariati? A cosa servono?
  • Possono esistere veri polinomi ortogonali multivariati? C'è un modo semplice per produrli? In R? Sono effettivamente utilizzati nella regressione?

Aggiornare

In risposta al commento di Superpronker, do un esempio di cosa intendo con polinomi non correlati:

> 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

La funzione Poly restituisce i polinomi ortogonali valutati in punti x (qui 10.000 punti per ciascun polinomio). La correlazione tra valori su diversi polinomi è zero (con qualche errore numerico).

Quando si utilizzano polinomi multivariati, le correlazioni sono diverse da zero:

> 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

Pertanto, non capisco in che senso quei polinomi bivariati siano ortogonali.

Aggiornamento 2

Voglio chiarire il significato dei "polinomi ortogonali" usati nella regressione perché questo contesto può essere in qualche modo fuorviante quando si applicano le idee dai polinomi ortogonali a intervalli collegati - come nel commento dell'ultimo Superpronker.

Cito la regressione pratica e Anova di Julian J. Faraway usando le pagine R 101 e 102:

I polinomi ortogonali questo problema definendo ecc. Dove vengono scelti i coefficienti a, b, c ... in modo che quando . Gli z sono chiamati polinomi ortogonali.

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

Con un leggero abuso del linguaggio, qui l'autore usa sia per il polinomio (come una funzione) sia per il vettore dei valori che il polinomio assume nei punti dell'insieme . O forse non è nemmeno un abuso del linguaggio perché dall'inizio del libro è stato il predittore (ad esempio l'insieme di valori presi dal predittore).zixx

Questo significato dei polinomi ortogonali non è in realtà diverso dai polinomi ortogonali su un intervallo. Possiamo definire polinomi ortogonali nel solito modo (usando integrali) su qualsiasi set misurabile con qualsiasi funzione di misura. Qui abbiamo un set finito ( ) e stiamo usando il prodotto punto invece che integrale, ma sono ancora polinomi ortogonali se prendiamo la nostra funzione di misura come delta di Dirac nei punti del nostro set finito.x

E in relazione alla correlazione: punto prodotto di vettori ortogonali in (come l'immagine di un vettore ortogonale su un insieme finito). Se il prodotto punto di due vettori è zero, la covarianza è zero e se la covarianza è zero la correlazione è zero. Nel contesto dei modelli lineari è molto utile mettere in relazione "ortogonale" e "non correlato", come nel "disegno ortogonale di esperimenti".Rn


Cosa intendi quando dici che i polinomi ad un certo punto non sono correlati? Le variabili stocastiche possono essere non correlate; i vettori possono avere un punto prodotto uguale a zero.
Superpronker il

Quando valutato in una serie di punti finita, otteniamo una serie di valori per ciascun polinomio. Possiamo calcolare la correlazione tra questi insiemi di valori e per i polinomi ortogonali otteniamo una correlazione zero. Poiché la correlazione è correlata alla covarianza e la covarianza è correlata al prodotto punto, presumo che la correlazione zero e il prodotto punto zero siano equivalenti.
Pere,

Scusate se fraintendo, ma ancora non lo seguo. La correlazione è tra due vettori in cui si hanno, diciamo, N osservazioni di ciascuno. Vuoi dire che il primo e il secondo ordine non devono essere correlati? Quindi dipende dai punti in cui si valuta. Su [-1; 1] non lo sono, ma su [0; 1] lo sono. Penso che la tua intuizione per la relazione tra ortogonalità e non correlazione non sia precisa.
Superpronker,

Ho aggiornato la domanda con questo, sebbene nel contesto della regressione l'ortogonalità e l'incorrelazione siano quasi sinonimi. Ho collegato una fonte. E sì, dipende dai punti che stiamo valutando. Il primo argomento dell'ordine poli è il vettore di punti che stiamo valutando e il primo passo dei miei esempi è la generazione di un vettore di punti da valutare. In regressione siamo interessati ai vettori ortogonali nei valori del nostro predittore.
Pere,

Penso che l'abuso della notazione sia più problematico di quanto sembri; l'ortogonalità di due polinomi non è definita come il prodotto punto essendo zero, indipendentemente da dove si valutano i polinomi. Piuttosto, è che due termini polinomiali (di ordini diversi) dovrebbero avere un punto zero in un "senso della funzione"; e i prodotti punto per le funzioni sono in genere integrali con una certa misura (cioè funzione peso). Vedi en.m.wikipedia.org/wiki/Orthogonal_polynomials . Se ho ragione, questo spiega la confusione. Ma sulla wiki c'è un commento sulla relazione con i momenti.
Superpronker,

Risposte:


5

Esploriamo cosa sta succedendo. Sono sicuro che conosci già gran parte del seguente materiale, ma per stabilire notazioni e definizioni e chiarire le idee, tratterò le basi della regressione polinomiale prima di rispondere alla domanda. Se ti piace, passa all'intestazione "Cosa Rfa" a circa due terzi di questo post, quindi salta indietro per qualsiasi definizione di cui potresti aver bisogno.

Le impostazioni

Stiamo prendendo in considerazione una matrice modello di potenziali variabili esplicative in un qualche tipo di regressione. Questo significa che stiamo pensando alle colonne di come -vettori e combinazioni lineari di esse, per prevedere o stimare una risposta. n×kXXnX1,X2,,Xkβ1X1+β2X2++βkXk,

A volte una regressione può essere migliorata introducendo colonne aggiuntive create moltiplicando le varie colonne di per l'altra, coefficiente per coefficiente. Tali prodotti sono chiamati "monomi" e possono essere scritti comeX

X1d1X2d2Xkdk

dove ogni "potenza" è zero o maggiore, che rappresenta quante volte ogni appare nel prodotto. Si noti che è un vettore di coefficienti costanti ( ) e stesso. Pertanto, i monomi (come vettori) generano uno spazio vettoriale che include lo spazio colonna originale di La possibilità che possa essere uno spazio vettoriale più ampio offre a questa procedura un ambito maggiore per modellare la risposta con combinazioni lineari.diX1X0n1X1=XX.

Intendiamo sostituire il modello originale matrix con una raccolta di combinazioni lineari di monomi. Quando il grado di almeno uno di questi monomi supera questo si chiama regressione polinomiale.X1,

Classificazioni dei polinomi

Il grado di un monomio è la somma dei suoi poteri, Il grado di una combinazione lineare di monomi (un "polinomio") è il grado più grande tra i termini monomiali con coefficienti diversi da zero. Il grado ha un significato intrinseco, perché quando si modifica la base dello spazio vettoriale originale, ogni vettore viene rappresentato di nuovo da una combinazione lineare di tutti i vettori; i monomi diventano così polinomi dello stesso grado; e di conseguenza il grado di qualsiasi polinomio è invariato.d1+d2++dk.X i X d 1 1 X d 2 2X d k kXiX1d1X2d2Xkdk

Il grado fornisce una "classificazione" naturale a questa algebra polinomiale: lo spazio vettoriale generato da tutte le combinazioni lineari di monomi in di grado fino a e compreso chiamato "polinomi di [o fino a] grado in " estende lo spazio vettoriale dei polinomi fino al grado inXd+1,d+1X,dX.

Usi della regressione polinomiale

Spesso, la regressione polinomiale è esplorativa, nel senso che all'inizio non sappiamo quali monomi includere. Il processo di creazione di nuove matrici di modelli a partire da monomi e re-adattamento della regressione potrebbe dover essere ripetuto più volte, forse un numero astronomico di volte in alcune impostazioni di apprendimento automatico.

I principali problemi con questo approccio sono

  1. I monomiali spesso introducono quantità problematiche di "multicollinearità" nella matrice del nuovo modello, principalmente perché i poteri di una singola variabile tendono ad essere altamente collineari. (La collinearità tra i poteri di due diverse variabili è imprevedibile, perché dipende dal modo in cui tali variabili sono correlate e quindi è meno prevedibile.)

  2. La modifica di una sola colonna della matrice del modello o l'introduzione di una nuova o l'eliminazione di una può richiedere un "riavvio a freddo" della procedura di regressione, potenzialmente impiegando molto tempo per il calcolo.

Le classificazioni delle algebre polinomiali forniscono un modo per superare entrambi i problemi.

Polinomi ortogonali in una variabile

Dato un singolo vettore colonna una serie di "polinomi ortogonali" per è una sequenza di vettori colonna formata come combinazioni lineari di monomi in alone-- cioè, come poteri di le seguenti proprietà:X,Xp0(X),p1(X),p2(X),XX

  1. Per ogni grado i vettori generano lo stesso spazio vettoriale di (Nota che è il vettore di quelli e è solo stesso.)d=0,1,2,,p0(X),p1(X),,pd(X)X0,X1,,Xd.X0nX1X

  2. I sono reciprocamente ortogonali nel senso che perpi(X)ij,

    pi(X)pj(X)=0.

Di solito, la matrice del modello sostitutivo formata da questi monomi viene scelta come ortonormale normalizzando le sue colonne alla lunghezza dell'unità: Poiché l'inverso di appare nella maggior parte delle equazioni di regressione e l'inverso della matrice identità è esso stesso, ciò rappresenta un enorme guadagno computazionale.

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

L'ortogonalità determina quasi per intero il Puoi vederlo per costruzione:pi(X).

  • Il primo polinomio, deve essere un multiplo di -vector della lunghezza dell'unità. Ci sono solo due scelte, È consuetudine scegliere la radice quadrata positiva.p0(X),n1=(1,1,,1)±1/n1.

  • Il secondo polinomio, deve essere ortogonale a Può essere ottenuto regredendo contro cui soluzione è il vettore dei valori medi Se i residui non sono identici a zero, forniscono le uniche due soluzioni possibilip1(X),1.X1,X^=X¯1.ϵ=XX^p1(X)=±(1/||ϵ||)ϵ.

...

  • Generalmente, si ottiene regredendo contro e riscalando i residui come vettore di unità lunghezza. Ci sono due scelte di segno quando i residui non sono tutti zero. Altrimenti, il processo termina: sarà inutile guardare a qualsiasi potere superiore di (Questo è un bel teorema ma la sua prova non deve distrarci qui.)pd+1(X)Xd+1p0(X),p1(X),,pd(X)X.

Questo è il processo di Gram-Schmidt applicato alla sequenza intrinseca dei vettori Di solito viene calcolato usando una decomposizione QR, che è quasi la stessa cosa ma calcolata in modo numericamente stabile.X0,X1,,Xd,.

Questa costruzione produce una sequenza di colonne aggiuntive da considerare anche nella matrice del modello. La regressione polinomiale in una variabile quindi di solito procede aggiungendo elementi di questa sequenza uno per uno, in ordine, fino a quando non si ottiene alcun ulteriore miglioramento nella regressione. Perché ogni nuova colonna è ortogonale a quelle precedenti, incluso non cambia nessuna delle precedenti stime dei coefficienti. Questo rende una procedura efficiente e facilmente interpretabile.

Polinomi in più variabili

La regressione esplorativa (così come l'adattamento del modello) di solito procede considerando innanzitutto quali variabili (originali) includere in un modello; quindi valutare se tali variabili possano essere aumentate includendo varie trasformazioni di esse, come i monomi; e quindi introducendo "interazioni" formate dai prodotti di queste variabili e dalle loro re-espressioni.

La realizzazione di un tale programma, quindi, inizierebbe con la formazione di polinomi ortogonali univariati nelle colonne di separatamente. X Dopo aver selezionato un grado adatto per ogni colonna, dovrai quindi introdurre interazioni.

A questo punto, parti del programma univariato si rompono. Quale sequenza di interazioni applicheresti, una per una, fino a quando non verrà identificato un modello adatto? Inoltre, ora che siamo veramente entrati nel regno dell'analisi multivariabile, il numero di opzioni disponibili e la loro crescente complessità suggeriscono che potrebbero esserci rendimenti decrescenti nella costruzione di una sequenza di polinomi ortogonali multivariati. Se, tuttavia, avevi in ​​mente una sequenza del genere, puoi calcolarla usando una decomposizione QR.


Cosa Rfa

Il software per la regressione polinomiale tende quindi a concentrarsi sull'elaborazione di sequenze polinomiali ortogonali univariate . È caratteristico Restendere tale supporto il più automaticamente possibile a gruppi di polinomi univariati. Questo è quello che polyfa. (Il suo compagno polymè essenzialmente lo stesso codice, con meno campane e fischietti; le due funzioni fanno le stesse cose.)

In particolare, polycalcolerà una sequenza di polinomi ortogonali univariati quando viene dato un singolo vettore fermandosi a un grado specificato (Se è troppo grande - e può essere difficile prevedere quanto sia grande - sfortunatamente genera un errore.) Quando viene fornito un insieme di vettori sotto forma di matrice torneràX,d.dX1,,XkX,

  1. Sequenze di polinomi ortonormali per ogni fino a un massimo grado richiesto (Dato che il vettore costante è comune a tutte le variabili ed è così semplice - di solito è ospitato dall'intercettazione nella regressione - non si preoccupa di includerlo.)p1(Xj),p2(Xj),,pd(Xj)jd.p0(Xi)R

  2. Tutte le interazioni tra quei polinomi ortogonali fino a quelli di grado inclusid.

Il passaggio (2) prevede diverse sottigliezze. Di solito per "interazione" tra variabili intendiamo "tutti i possibili prodotti", ma alcuni di questi possibili prodotti avranno gradi maggiori di Ad esempio, con variabili e calcolad.2d=2, R

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

Rnon non includere le interazioni superiori gradi (polinomi di grado 3) o (un polinomio di grado 4). (Questa non è una grave limitazione perché è possibile calcolare prontamente questi prodotti da soli o specificarli in un oggetto di regressione .)p2(X1)p1(X2), p1(X1)p2(X2)p1(X2)p2(X2)formula

Un'altra sottigliezza è che nessun tipo di normalizzazione viene applicata a nessuno dei prodotti multivariati. Nell'esempio, l'unico prodotto di questo tipo è Tuttavia, non vi è alcuna garanzia nemmeno che la sua media sarà zero e quasi sicuramente non avrà una norma unitaria. In questo senso è una vera "interazione" tra e e come tale può essere interpretata come le interazioni di solito sono in un modello di regressione.p1(X1)p1(X2).p1(X1)p1(X2)

Un esempio

Diamo un'occhiata a un esempio. Ho generato a caso una matrice Per facilitare i calcoli da seguire, tutto viene arrotondato a due cifre significative per la visualizzazione.

X=(135624).

La sequenza polinomiale per la prima colonna inizia normalizzando alla lunghezza unitaria, dandoIl passaggio successivo include stesso. Per renderlo ortogonale a regredire rispetto a e impostare uguale ai residui di tale regressione, riscalati per avere unità di lunghezza. Il risultato è la solita standardizzazione di ottenuta aggiornandola e dividendola per la sua deviazione standard,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). Infine, viene regredito contro e e quei residui vengono riscalati alla lunghezza dell'unità. Non possiamo andare oltre perché i poteri di non possono generare uno spazio vettoriale superiore a dimensioni. (Siamo arrivati ​​così lontano perché il polinomio minimo dei coefficienti di ovvero ha grado dimostrando che tutti i monomi di grado o più grandi sono combinazioni lineari di i poteri e quei poteri inferiori sono linearmente indipendenti.)X12=(1,25,4)p0(X1)p1(X1)X1n=3X1,(t1)(t5)(t4),3,3

La matrice risultante che rappresenta una sequenza polinomiale per èX1

P1=(0.580.570.590.580.790.200.580.230.78)

(a due cifre significative).

Allo stesso modo, una matrice polinomiale per èX2

P2=(0.580.620.530.580.770.270.580.150.80).

Il termine di interazione è il prodotto delle colonne centrali di queste matrici, pari a La matrice completa creata da o , quindi, è(0.35,0.61,0.035).polypolym

P=(0.570.590.620.350.530.790.200.770.610.270.230.780.150.0350.80).

Notare la sequenza in cui sono disposte le colonne: i polinomi ortonormali non costanti per sono nelle colonne 1 e 2 mentre quelli per sono nelle colonne 3 e 5. Pertanto, l'unica ortogonalità garantita in questo output è tra questi due coppie di colonne. Ciò si riflette nel calcolo di che avrà zeri nelle posizioni e (mostrato in rosso di seguito), * ma potrebbe essere diverso da zero in qualsiasi altro luogo e ne avrà uno nelle posizioni e (mostrato in blu sotto), ma è probabile che non ne abbia uno nelle altre posizioni diagonali (X1X2PP,(1,2),(2,1),(3,5),(5,3)(1,1),(2,2),(3,3),(5,5)(4,4)in questo esempio). Infatti,

PP=(1010.280.091010.0910.3110.09110.2500.280.30.250.50.320.091100.321).

Quando ispezionate la matrice mostrata nella domanda e riconoscete che i multipli di sono davvero zeri, noterete che questo modello di zeri nelle posizioni rosse vale. Questo è il senso in cui quei polinomi bivariati sono "ortogonali".P1017


1
(+1) Ottima lettura come al solito. Credo che ci sia un piccolo errore di battitura: scrivi che Rcalcola ma non dovrebbe essere ? p1(X1)p2(X2)p1(X1)p1(X2)
COOLSerdash,

1
@Cool Buona cattura - risolto ora.
whuber

1
Grazie per l'ottima risposta. Il fatto che la risposta arrivi molto tempo dopo aver perso la speranza di ricevere una risposta la rende una piacevole sorpresa.
Pere,

E penso che ci sia un altro piccolo errore di battitura: penso che " stessa" nel 4 ° paragrafo sia inteso come " stessa". X 1 = XX1=XX1=X
Pere,

Assolutamente giusto. Sono grato che stai leggendo il testo così da vicino che trovi questi errori!
whuber
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.