Domanda di approssimazione dei minimi quadrati


11

Sto seguendo un corso di calcolo scientifico e abbiamo appena superato l'approssimazione dei minimi quadrati. La mia domanda riguarda in particolare l'approssimazione con i polinomi. Capisco che se hai n + 1 punti dati, puoi trovare un polinomio unico di grado n che descrive tutti questi punti. Ma posso anche capire perché questo non è sempre l'ideale. È possibile ottenere un sacco di rumore tra i punti dati con un tale approccio. Suppongo che sia bello ottenere un polinomio di grado inferiore che stima i tuoi dati abbastanza bene.

La mia domanda è: come decidi in pratica quale grado di polinomio utilizzerai? Esiste una regola empirica o dipende esclusivamente dal problema attuale? Dobbiamo prendere in considerazione vari compromessi quando decidiamo tra più o meno gradi? O sto fraintendendo qualcosa qui?

Grazie in anticipo.


2
Penso che in pratica le persone usino cose come l'interpolazione spline en.wikipedia.org/wiki/Spline_interpolation in modo che vengano usati poligoni di basso ordine, ma si adattano bene l'uno all'altro nel dominio generale. In questo modo non è necessario indovinare un ordine polinomiale generale.
Nasser,

Grazie per il link Non abbiamo ancora esaminato le spline, quindi questa è una lettura interessante.
Uday Pramod,

Che cosa vuoi fare esattamente? Stai cercando di interpolare i punti o adattare i dati forniti? Ad esempio, è inutile interpolare i dati che consistono in una normale distribuzione con rumore. Per la prima, la risposta di Nasser è buona. Per quest'ultimo, la funzione di adattamento dipende esclusivamente dal problema attuale e in molti casi non è polinomiale.
Hauntergeist

Potresti essere interessato alle risposte a questa domanda su cross validate .
Bort

Risposte:


18

L'aspetto più importante dell'interpolazione e dell'adattamento alla curva è capire perché gli adattamenti polinomiali di alto ordine possono essere un problema e quali sono le altre opzioni e quindi puoi capire quando sono / non sono una buona scelta.

Alcuni problemi con i polinomi di alto ordine:

  • I polinomi sono funzioni naturalmente oscillatorie. All'aumentare dell'ordine del polinomio, aumenta il numero di oscillazioni e queste oscillazioni diventano più gravi. Sto semplificando qui, la possibilità di radici multiple e immaginarie rende un po 'più complesso, ma il punto è lo stesso.

  • I polinomi si avvicinano a +/- infinito ad una velocità uguale all'ordine polinomiale mentre x va a +/- infinito. Questo non è spesso un comportamento desiderato.

  • Il calcolo dei coefficienti polinomiali per i polinomi di alto ordine è in genere un problema mal condizionato. Ciò significa che piccoli errori (come arrotondamenti nel computer) possono creare grandi cambiamenti nella risposta. Il sistema lineare che deve essere risolto coinvolge una matrice Vandermonde che può essere facilmente mal condizionata.

Penso che forse il cuore di questo problema sia la distinzione tra adattamento alla curva e interpolazione .

L'interpolazione viene utilizzata quando ritieni che i tuoi dati siano molto precisi, quindi desideri che la tua funzione corrisponda esattamente ai punti dati. Quando sono necessari valori tra i punti dati, in genere è consigliabile utilizzare una funzione uniforme che corrisponda all'andamento locale dei dati. Le spline cubiche o eremite sono spesso una buona scelta per questo tipo di problema poiché sono molto meno sensibili alle modifiche o agli errori non locali (cioè in punti dati lontani da un dato punto) e sono meno oscillanti di un polinomio. Considera il seguente set di dati:

x = 1   2   3   4   5   6   7   8   9  10
y = 1   1 1.1   1   1   1   1   1   1   1

interpolazione
Un adattamento polinomiale ha oscillazioni molto più grandi, in particolare vicino ai bordi del set di dati, rispetto a una spline Hermite.

D'altra parte, l'approssimazione dei minimi quadrati è un adattamento della curvatecnica. L'adattamento alla curva viene utilizzato quando si ha un'idea della funzionalità prevista dei dati, ma non è necessario che la funzione passi esattamente attraverso tutti i punti dati. Questo è tipico quando i dati possono contenere errori di misurazione o altre imprecisioni o quando si desidera estrarre la tendenza generale dei dati. L'approssimazione dei minimi quadrati viene spesso introdotta in un corso usando i polinomi per l'adattamento della curva perché ciò si traduce in un sistema lineare che è relativamente semplice da risolvere usando le tecniche che probabilmente hai imparato in precedenza nel corso. Tuttavia, le tecniche dei minimi quadrati sono molto più generali di semplici adattamenti polinomiali e possono essere utilizzate per adattare qualsiasi funzione desiderata a un set di dati. Ad esempio, se ti aspetti un trend di crescita esponenziale nel tuo set di dati,

Infine, scegliere la funzione corretta per adattarsi ai dati è importante quanto eseguire correttamente i calcoli dell'interpolazione o dei minimi quadrati. Ciò consente anche la possibilità di estrapolazione (cauta). Considera la seguente situazione. Dati sulla popolazione (in milioni di persone) per gli Stati Uniti dal 2000-2010:

Year:  2000   2001   2002   2003   2004   2005   2006   2007   2008   2010
Pop.: 284.97 287.63 290.11 292.81 295.52 298.38 301.23 304.09 306.77 309.35

L'uso di un adattamento esponenziale dei minimi quadrati linearizzati N(t)=A*exp(B*t)o di un interpolante polinomiale del 10 ° ordine produce i seguenti risultati:
Trama della popolazione

La crescita della popolazione degli Stati Uniti non è del tutto esponenziale, ma ti lascerò essere il giudice della misura migliore.


1
Un punto che vorrei sottolineare con il tuo grafico della popolazione americana, dalla memoria un buon adattamento nel dominio non significa che si estrapolerà bene. Alla luce di ciò, potrebbe essere fuorviante mostrare i grandi errori polinomiali al di fuori della regione in cui si hanno i dati.
Daryl,

@Daryl D'accordo, ecco perché ho sottolineato che l'estrapolazione dovrebbe essere fatta con cautela e che la scelta di una funzione appropriata è cruciale in quel caso.
Doug Lipinski,

@DougLipinski Grazie per la risposta perspicace. Puoi spiegare cosa intendi con i minimi quadrati linearizzati in opposizione ai minimi quadrati?
bela83,

@ bela83 Rispondere correttamente che sarebbe troppo lungo per un commento. Penso che sarebbe una nuova domanda molto buona se vuoi farla.
Doug Lipinski,

@DougLipinski Ci proverò!
bela83,

2

Molto poco scientifico, ma una buona regola empirica è che i polinomi di 3 ° grado sono in genere un buon inizio, e in pratica non ho mai visto nessuno usare più di un 6 ° grado per ottenere buoni risultati.

Il polinomio "ideale" sarebbe il più basso ordine che rappresenta i dati silenziosi abbastanza bene per il tuo scopo.

Se i tuoi dati sono abbastanza piccoli da consentirli (di solito lo sono), puoi semplicemente provare ad adattarti a polinomi di ordine superiore fino a quando non inizi a vedere le oscillazioni, che tendono ad essere il segno di "overfitting".

Un'alternativa sarebbe una spline levigante , ma dipende molto dall'applicazione. Le spline e le spline leviganti sono utili solo per l'interpolazione. Per i dati rumorosi tendo a preferire adattamenti polinomiali alle spline di levigatura, ma i dati con cui lavoro sono in genere ben approssimati dai polinomi.


1

Un approccio decentemente efficace che ho usato con l'approssimazione polinomiale consiste nel calcolare i polinomi dei minimi quadrati per vari gradi (ad esempio, da 1 a 10) e quindi scegliere la curva che minimizza l'errore quadratico medio in punti a metà strada tra consecutivi (quando ordinati per x) punti nel set di dati. Questo aiuta a escludere le curve con oscillazioni troppo gravi.

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.