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 R
fa" 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
Xd11Xd22⋯Xdkk
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 2 ⋯ X d k kXiXd11Xd22⋯Xdkk
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
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.)
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
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
I sono reciprocamente ortogonali nel senso che perpi(X)i≠j, 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))
P′P=Id+1.
P′PId+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/n−−−√1.
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.ϵ=X−X^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 R
fa
Il software per la regressione polinomiale tende quindi a concentrarsi sull'elaborazione di sequenze polinomiali ortogonali univariate . È caratteristico R
estendere tale supporto il più automaticamente possibile a gruppi di polinomi univariati. Questo è quello che poly
fa. (Il suo compagno polym
è essenzialmente lo stesso codice, con meno campane e fischietti; le due funzioni fanno le stesse cose.)
In particolare, poly
calcolerà 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,
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
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).
R
non 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=⎛⎝⎜152364⎞⎠⎟.
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)′X01=(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.)X21=(1,25,4)p0(X1)p1(X1)X1n=3X1,(t−1)(t−5)(t−4),3,3
La matrice risultante che rappresenta una sequenza polinomiale per èX1
P1=⎛⎝⎜0.580.580.58−0.570.79−0.230.590.20−0.78⎞⎠⎟
(a due cifre significative).
Allo stesso modo, una matrice polinomiale per èX2
P2=⎛⎝⎜0.580.580.58−0.620.77−0.150.530.27−0.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)′.poly
polym
P=⎛⎝⎜−0.570.79−0.230.590.20−0.78−0.620.77−0.150.350.610.0350.530.27−0.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 (X1X2P′P,(1,2),(2,1),(3,5),(5,3)(1,1),(2,2),(3,3),(5,5)(4,4)in questo esempio). Infatti,
P′P=⎛⎝⎜⎜⎜⎜⎜⎜1010.280.09101−0.0910.311−0.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".P10−17