Questo è il quarto di una serie di post su come adattare funzioni continue a tratti ai set di dati. Mi piace iniziare ogni post con collegamenti a tutti gli altri post precedenti della serie:
Alla quarta parte...
introduzione
Nei post precedenti di questa serie, abbiamo lavorato sul set di dati mostrato nel grafico seguente:
Figure 1: Sample Data Set.Figura 1: set di dati di esempio.
Finora abbiamo discusso della segmentazione delle regioni dati e della definizione delle curve associate a ciascuna regione, tra cui:
- Eliminando alcuni coefficienti delle equazioni segmentate in virtù della continuità agli estremi.
- Utilizzando JMP L'editor di formule di con parametri sconosciuti ed equazioni multiple in un'unica formula, in preparazione alla risoluzione delle incognite.
Ora siamo pronti per utilizzare la piattaforma non lineare di JMP per trovare i parametri sconosciuti e fornire un modello più adatto. Ora discutiamo:
- Come risolvere le equazioni a tratti utilizzando la piattaforma non lineare di JMP
- Far convergere i modelli attraverso:
- Algoritmi di convergenza opzionali
- Impostazione dei limiti dei parametri
- Obiettivi di convergenza
Diamo uno sguardo più da vicino.
La piattaforma non lineare di JMP
La piattaforma non lineare utilizza uno dei numerosi processi di stima iterativi selezionabili dall'utente per risolvere i parametri sconosciuti descritti nell'editor delle formule. Per risolvere le equazioni a tratti come descritto nei post precedenti del blog, andiamo prima ad Analizza-->Modellazione specializzata-->Non lineare. Si apre la seguente interfaccia utente:
Figure 2: The Nonlinear Input InterfaceFigura 2: l'interfaccia di input non lineare
Nella Figura 2, abbiamo già compilato gli input.
- "Y, Risposta" sono i dati originali (misurati).
- "X, Formula predittore" è la colonna formula definita nel post precedente del blog.
- Tieni presente che i valori x in corrispondenza dei quali sono stati misurati i valori y non vengono immessi direttamente nella GUI, ma sono inclusi tramite riferimenti nella colonna della formula.
- Tieni presente che i parametri della colonna formula vengono visualizzati (insieme ai relativi valori iniziali) nella sezione Opzioni/Predittore. JMP lo compila automaticamente per noi.
Dopo aver fatto clic su OK, viene visualizzata la seguente finestra:
Figure 3: Nonlinear platform, ready to fitFigura 3: piattaforma non lineare, pronta per l'adattamento
Qui vediamo un riepilogo del modello finora, con i valori iniziali mostrati per ciascun parametro sconosciuto. Vediamo anche il criterio di convergenza (discusso più avanti). Vediamo i dati originali (punti neri) e l'adattamento corrente (sottile linea nera, risultante dall'utilizzo dei valori iniziali dei parametri).
Abbiamo anche quattro pulsanti:
- Vai: avvia il processo di risoluzione iterativo.
- Interrompi: interrompe il processo (se il risolutore non converge).
- Passaggio: eseguire manualmente un passaggio di iterazione alla volta per osservare come cambiano il criterio di convergenza e il grafico di adattamento.
- Reset: ripristina i parametri ai valori iniziali.
Facendo clic più volte sul pulsante "Step", possiamo vedere l'algoritmo di convergenza all'opera:
Figure 4: Convergence In ActionFigura 4: Convergenza in azione
Nelle sottotrame della Figura 4, si noti che la sottile linea nera converge definitivamente verso i dati misurati man mano che si incrementano i passaggi. Inoltre, i parametri stanno cambiando e anche i criteri di convergenza si stanno restringendo.
Facendo clic sul pulsante Vai ci si porta automaticamente ai valori convergenti finali, come mostrato di seguito:
Figure 5: Final Converged ModelFigura 5: Modello convergente finale
Nella Figura 5, nella parte superiore dell'output è presente un messaggio di avviso che recita "Non riuscito: numero massimo di iterazioni superate". Ne parleremo più avanti in questo post. Ma guardando il grafico, è chiaro che abbiamo già raggiunto una buona convergenza del modello con i dati osservati.
Alcune osservazioni sui parametri:
- Ricordiamo dalla Figura 1 che X1, X2, X3 e X4 erano i punti di divisione delle funzioni a tratti. Questi si sono spostati in modo appropriato dai valori iniziali stimati per fornire buoni punti finali per ciascuna delle funzioni a tratti.
- I restanti parametri hanno tutti importanza per i singoli pezzi della curva. Ad esempio, a0 rappresenta il livello Y medio prima che i dati del test inizino ad accumularsi a X1=24,8.
Cosa succede se non abbiamo convergenza?
Opzioni per quando la soluzione non converge
Come notato sopra, questa particolare soluzione non convergeva (tecnicamente). Ciò significa che l'algoritmo di convergenza predefinito non ha soddisfatto i criteri di convergenza, come definiti nel pannello di controllo Adattamento non lineare. Infatti, senza convergenza, JMP non ci consente di fare molto con i risultati (come salvare i nuovi parametri).
Quindi cosa possiamo fare?Ci sono diverse opzioni:
Modificare i criteri di convergenza
Nella sezione Criteri della Figura 5, possiamo vedere quali sono gli attuali criteri di convergenza e quanto siamo vicini a soddisfarli. Ad esempio, nell'esempio precedente JMP ha eseguito 60 passaggi di iterazione e non ha raggiunto la convergenza. Quindi potremmo voler aumentare il "limite di arresto" per provare più passaggi (a scapito di impiegare più tempo per convergere).
Oppure potremmo voler modificare Cambiamento oggetto, Gradiente relativo o Gradiente. La convergenza viene raggiunta se uno qualsiasi dei tre criteri scende al di sotto dello "Stop Limit".
Modificare l'algoritmo di stima iterativa
Il triangolo rosso accanto a "Adattamento non lineare" (vedi Figura 3) offre diverse opzioni, tra cui "Opzioni di iterazione". Qui abbiamo tre diversi algoritmi di iterazione tra cui scegliere:
- Newton (predefinito)
BFGS quasi-Newton
Quasi-Newton SR1
Alcune di queste opzioni consentono anche il calcolo di "Solo derivati numerici". Secondo la Guida di JMP , non c'è consenso su quale di questi algoritmi sia il migliore da utilizzare, poiché dipende dai dati e dall'equazione particolari che si adattano.
Puoi combinare gli algoritmi. Ad esempio, nel nostro caso di test il metodo di Newton non converge. Ma puoi mantenere i valori a cui è arrivato il metodo di Newton e modificare semplicemente l'algoritmo di iterazione, quindi fare clic sul pulsante Vai per procedere con la convergenza dal punto finale raggiunto dall'algoritmo di Newton. Perché funziona? Perché stiamo iniziando con stime migliori dei parametri.
Il che mi porta alla mia prossima opzione per migliorare la convergenza...
Impostazione dei limiti dei parametri
A volte, quando un algoritmo iterativo modifica un parametro, può "decollare" nella direzione sbagliata o rimanere bloccato in un minimo locale, ecc. Quando ciò accade, può essere utile limitare gli intervalli che i parametri possono assumere.
Nel nostro problema di esempio, forse sappiamo che il punto di interruzione X1 dovrebbe avere un valore di circa 20. Potremmo voler dire a JMP che X1 non deve cadere al di fuori dell'intervallo 15-25. Ciò contribuirà a evitare che l'algoritmo iterativo "si perda" mentre svolge il suo lavoro.
I limiti dei parametri possono essere trovati sotto lo stesso triangolo rosso di adattamento non lineare. Una volta attivato, nella parte inferiore del report viene visualizzata una tabella che consente di inserire stime e intervalli per ciascuna variabile. Da notare anche che è possibile utilizzare i dispositivi di scorrimento in questa tabella come una sorta di Profiler, per esaminare gli effetti della modifica di ciascun parametro sull'adattamento complessivo mostrato nel grafico.
La Figura 6 mostra un esempio della tabella Limiti dei parametri:
Figure 6: Parameter Bounds TableFigura 6: tabella dei limiti dei parametri
Una volta raggiunta la convergenza
Se si dispone di un'equazione corretta formata nell'editor delle formule e si è ottenuta la convergenza tramite le opzioni sopra descritte, la piattaforma non lineare di JMP dovrebbe fornire le migliori stime di tutti i parametri sconosciuti. Vedrai una nota sull'effetto "Convergente in gradiente" nella parte superiore del rapporto, e nella parte inferiore del rapporto vedrai una sezione per "Soluzione", che mostra le stime finali di tutti i parametri sconosciuti:
Figure 7: Converged Parameter EstimatesFigura 7: stime dei parametri convergenti
Inoltre, appena sopra il grafico dei dati misurati e la funzione di adattamento ottimale, ora dovrebbe essere presente un pulsante "Salva stime". Facendo clic su questo pulsante verranno sostituiti i valori dei parametri correnti nella formula con i nuovi valori più adatti.
Post successivo del blog (ultimo della serie)
Questo post spiega come utilizzare la piattaforma Non lineare per risolvere una funzione arbitraria (e in particolare una funzione a pezzi). Ma la piattaforma Non lineare ha anche una speciale "Libreria di modelli" che merita un proprio post sul blog.
Pertanto, l'ultimo post sul blog della serie Piecewise parlerà di come potresti voler adattare altri modelli "preimpostati" integrati nella piattaforma Non lineare. Spero che lo darai un'occhiata!