Questo è il terzo di una serie di post su come adattare funzioni continue a tratti a set di dati. Inizierò ogni post con i link a tutti gli altri post della serie. Loro sono:
Nella parte 3...
introduzione
Se hai seguito i miei post precedenti in questa serie, sai che ora abbiamo sviluppato equazioni contenenti 10 parametri sconosciuti che devono essere determinati per adattare al meglio i pezzi del problema di esempio. Come lo facciamo in JMP ?
Innanzitutto, dobbiamo utilizzare l'editor di formule di JMP per inserire le nostre equazioni e i parametri sconosciuti. Presumo che il lettore abbia generalmente familiarità con l'editor di formule. (In caso contrario, ecco un breve video sulla creazione di formule e un video più lungo con molti più dettagli sull'editor di formule .)
Impostazione dei parametri nell'editor delle formule di JMP
Quello di cui potresti non essere a conoscenza è la capacità nell'editor delle formule di impostare i parametri. I parametri sono variabili locali alla formula che si sta creando. Sono accessibili tramite i menu a discesa (l'impostazione predefinita è Variabili di tabella, passare a Parametri come mostrato nella Figura 1.)
Figura 1: accesso ai parametri nell'editor delle formule
Questo fa apparire un'opzione per aggiungere un "Nuovo parametro" alla formula. Facciamo un semplice esempio e aggiungiamo un parametro chiamato "a0" all'elenco dei parametri. Fare clic su Nuovo parametro, quindi modificare il nome del parametro in "a0" e assegnargli un Valore di 1:
Figura 2: Creazione di un nuovo parametro e assegnazione di un valore iniziale
- "Nome" è arbitrario. Puoi scegliere qualsiasi nome di variabile JSL valido.
- "Valore" è il valore iniziale per questo parametro. Devi dare un valore iniziale. A volte (a seconda della formula che hai scelto), il valore iniziale può essere importante e dovrebbe essere selezionato per essere vicino al valore reale come puoi immaginare. (Questo aiuta a prevenire problemi di convergenza in seguito.) In questo caso, non ho idea di quale dovrebbe essere il valore, quindi sceglierò arbitrariamente un valore iniziale di 1.
Ora possiamo usare questo nuovo parametro "a0" in una formula, proprio come se fosse una variabile di colonna. Aggiungiamolo semplicemente ai valori nella colonna etichettata "y". Fare doppio clic su a0 nell'elenco dei parametri (dovrebbe apparire nel pannello Formula), quindi digitare "+", quindi fare doppio clic su "y" nell'elenco delle colonne. Questo dovrebbe dare la seguente formula:
Figura 3: utilizzo di un parametro in una formula
Ora, quando facciamo clic su OK e guardiamo il risultato nella tabella dei dati, abbiamo
Figura 4: Risultati dell'utilizzo di un parametro in una formula
Quindi la formula ora riconosce il valore corrente del parametro a0 e lo applica di conseguenza. Questo importante concetto verrà utilizzato nel prossimo post del blog quando utilizzeremo la piattaforma non lineare JMP per risolvere i parametri sconosciuti.
Immissione dei parametri per le funzioni a tratti
Nella parte 2 di questa serie di blog, abbiamo sviluppato i cinque semplici polinomi da applicare tra i punti di interruzione nella serie di dati di esempio. Questi polinomi avevano sei parametri sconosciuti: a0, b1, b2, c1, d1 e d2. Avevamo anche quattro punti di taglio che definivano le regioni in cui erano attivi i polinomi: X1, X2, X3 e X4. Dobbiamo aggiungere ciascuno di questi parametri al nostro elenco di parametri Formula, insieme a valori iniziali ragionevoli. Al termine, l'elenco dei parametri si presenta così:
Figura 5: tutti e dieci i parametri inseriti e inizializzati per il nostro esempio a tratti
Nota che ho assunto i valori iniziali di "1" per ciascuno dei coefficienti nei polinomi. Per i punti di interruzione da X1 a X4, ho scelto di stimare i valori basati su "eyeballing" dove pensavo che potessero verificarsi. Ciò fornisce semplicemente a JMP un posto migliore per iniziare a cercare i punti di interruzione.
Inserimento delle formule a tratti - incluso un trucco booleano!
Ora sai come impostare i parametri nell'editor delle formule e sai come inserire una delle cinque equazioni a tratti mostrate nella parte 2 anche nell'editor delle formule. Ma come inseriamo TUTTE LE CINQUE equazioni a tratti nella stessa formula?
Un modo è utilizzare un'istruzione IF di grandi dimensioni, ad esempio "If x @PatrickGiuliano , che ha pubblicato un utile trucco in un precedente thread di discussione della community di JMP.
JMP riconosce gli operatori booleani (And, Or, Nor e così via). Se in una formula viene utilizzato un operatore booleano, la logica booleana restituisce 1 se vero e 0 se falso. Quindi possiamo impostare un operatore come (X1<:x & :x<=X2). Questo operatore restituisce 1 se il valore nella colonna "x" (indicato come ":x" nell'espressione) è compreso tra i parametri X1 e X2 e 0 in caso contrario. Quindi potremmo semplicemente moltiplicare l'equazione a tratti per il segmento X1-X2 per l'espressione booleana sopra. Se il valore di x rientra nell'intervallo corretto, viene attivata l'equazione del segmento. In caso contrario, restituiamo 0. Quindi faremmo la stessa cosa per tutti gli altri intervalli e sommeremo tutte le equazioni insieme.
Se facciamo tutto questo, ci ritroveremo con una formula simile a questa:
Figura 6: Formula completa a tratti (mostrata in modalità Editor formule)
E di seguito sono riportate le stesse informazioni in formato di input JSL, se preferisci:
Figura 7: Formula completa a tratti (mostrata in modalità JSL)
Quindi per riassumere, nelle Figure 6 e 7, abbiamo essenzialmente costruito una formula in una nuova colonna (chiamata ypred) che:
- Definisce 10 parametri sconosciuti (e assegna a ciascun parametro un valore iniziale appropriato) che verranno utilizzati nella formula.
- Descrive quattro equazioni a tratti, ciascuna utilizzando i parametri appropriati.
- Attiva ogni equazione a tratti moltiplicando per un'appropriata disuguaglianza booleana che descrive gli intervalli per ogni equazione.
- Somma le quattro equazioni per ottenere la formula finale.
Abbastanza fresco...
Il prossimo della serie
La prossima volta utilizzeremo finalmente le equazioni con la piattaforma non lineare per risolvere i parametri di adattamento migliore. Discuteremo anche le scelte per i criteri e gli algoritmi di convergenza.
Ciao @JerryFish , Mi sono davvero piaciuti questi post del blog finora!Per qualcuno che non esegue l'ottimizzazione dei parametri ogni giorno, è fantastico avere questa risorsa a cui puntare per avere un aggiornamento su come farlo e su come gestire casi più avanzati come l'adattamento non lineare a tratti trattato qui.
Domanda veloce associata a questo post: se volessi generare dati simulati che producano una tendenza gradualmente crescente (o decrescente) nel "tempo" (possiamo usare l'ordine delle righe per semplicità) come potrei parametrizzarlo in JMP? (Oppure esiste un modo più semplice senza utilizzare la parametrizzazione del modello, ad esempio con una combinazione di formule di colonne istantanee?).
Grazie!@Patrick Giuliano