Implementazione del modello "Power Fit" in JMP e messa a punto del modelloTutto,
Ho alcuni dati che si adattano bene al "Power Fit" in Excel.
Ho trovato alcune informazioni utili in questo post ( https://community.jmp.com/t5/Discussions/Power-Fit-Equation-for-JMP/td-p/5783 )
Apprezzerei molto ulteriori indicazioni su questo argomento:
- Quando il power fit viene eseguito sui dati in Excel, l'adattamento sembra abbastanza ragionevole
- Per eseguire il power fit sui dati in JSL - theta1 e theta2 sono i 2 parametri sintonizzabili. Ho capito attraverso tentativi ed errori qual è un valore ragionevole per theta2 e theta 1 per fare in modo che il modello di adattamento sia corretto
Come può un utente capire quali sono i valori migliori per theta1 e theta2 per il set di dati dato senza sovradimensionare il modello?
Si prega gentilmente di fornire un esempio se possibile.
Oggetto: Implementazione del modello "Power Fit" in JMP e messa a punto del modelloPer fornire la chiusura, sto pubblicando la risposta che ho ricevuto dal supporto tecnico.
In sostanza, il lancio della piattaforma non lineare tramite JSL presenta alcune limitazioni, ovvero il modo migliore per sfruttare i modelli non lineari è procedere come segue:
1. Definire una colonna che codifichi la formula che governa il modello
2. Fornire la colonna formulata come input per la chiamata di funzione della piattaforma Non lineare.
Questo pur richiedendo un valore iniziale iniziale è la migliore risposta che ho trovato finora.
dt << New Column("Model E", Numeric, Continuous,
Formula( Parameter( {theta1 = 0.03, theta2 = 1.25}, theta1 * :year ^ theta2 ) )
);
dt << New Column("Exponential 3", Numeric, Continuous,
Formula( Parameter( {a = -20, b = 0.01, c = 0.01},
a + b * Exp( c * :year ) ) )
);
dt << New Column("Mechanistic Growth", Numeric, Continuous,
Formula( Parameter( {a = -40, b = 0.01, c = -0.01},
a * (1 - b * Exp( -c * :year ) ) ) )
);
dt << Run Formulas;
fc = Nonlinear( Y( :pop ), X( :Name("Exponential 3" )) );
fc << Finish;
fc << Save Prediction Formula;
//End Script;Oggetto: Implementazione del modello "Power Fit" in JMP e messa a punto del modelloLa mia comprensione di come funziona la piattaforma non lineare è leggermente diversa.Per eseguire quella piattaforma, crei una colonna predittore di formule utilizzando i parametri: credo che tu debba inserire i valori iniziali per questi parametri come ipotesi.Quando fai clic su "Vai", la piattaforma ti dirà se è convergente o meno a una soluzione.Se converge e salvi la soluzione, inserisce quei valori nella colonna del predittore che hai creato, ma la formula è sempre la stessa dell'originale.In altre parole, la colonna predittore contiene parametri che inizializzi e che devono essere ottimizzati.Ma a differenza di altre piattaforme JMP, la colonna di salvataggio non crea una nuova colonna, ma inserisce solo i valori della soluzione per l'ottimizzazione non lineare nella stessa colonna formula che hai creato.
La mia comprensione potrebbe essere sbagliata, quindi qualcuno può correggermi.
Oggetto: Implementazione del modello "Power Fit" in JMP e messa a punto del modello@dale_lehman , @susan_walsh1
Grazie per il tuo suggerimento .
Sto cercando di mettere insieme un esempio per capire il flusso di lavoro.
Quando avvio la piattaforma del modello "Non lineare" e specifico quanto segue:
- Y - variabile
- X - variabile
- Modello non lineare
Salva la formula prevista: i valori vengono salvati nella tabella dati.
Presumo che seguendo questi passaggi, poiché non sto impostando alcun valore iniziale per i parametri nel modello, JMP imposti automaticamente quelli che ritiene siano i migliori valori possibili per i parametri del modello e salvi i dati previsti come colonna nella tabella dati .
Tuttavia, se provo a eseguire un secondo modello sulla stessa tabella dati, la colonna che viene aggiunta dopo aver avviato la piattaforma non lineare per la seconda volta ha l'equazione del vecchio modello.Si prega di vedere il codice di esempio qui sotto:
Clear Log();
Clear Globals();
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/US Population.jmp" );
/* Run Predictions using different models*/
PowerFitPredModel = Nonlinear(Y(:pop),X(:Name("X-formula")),"Model E(2P)");
PowerFitPredModel << Save Prediction Formula ;
PowerFitPredModel << Close Window;
Wait(0.1);
CPredModel = Nonlinear(Y(:pop),X(:Name("X-formula")),"Mechanistic Growth Model(3P)");
CPredModel << Save Prediction Formula ;
CPredModel << Close Window;
Ora, un paio di cose che non seguo sono:
- Quando avvio la piattaforma non lineare più volte, perché nello script precedente viene applicata solo la prima equazione del modello che chiamo?
- Come posso determinare se i parametri assunti da JMP per adattarsi al modello stanno producendo una soluzione che converge?

Oggetto: Implementazione del modello "Power Fit" in JMP e messa a punto del modelloNon ho una risposta, ma questo potrebbe aprire una discussione interessante.In allegato è riportato un piccolo set di dati con alcune osservazioni sulla velocità dell'automobile e sulla distanza di arresto.Una curva di potenza sembra adattarsi bene.Ho usato la piattaforma non lineare in JMP con la colonna dello stimatore - ho usato ipotesi di parametro iniziale di 1,1 (non troppo vicino ai valori giusti ma non molto lontano) - ciò che viene salvato nel set di dati è il miglior adattamento dal non lineare platfrom (in risposta parziale alla tua domanda, JMP calcolerà theta1 e theta2 quindi non devi preoccuparti di "overfitting" ma c'è un problema sul fatto che JMP convergerà su una soluzione a seconda dei valori che usi come ipotesi iniziali) .Ho anche inserito una colonna utilizzando la formula fornita da Excel per la linea di tendenza Power fit.Nota che non sono la stessa cosa!L'adattamento di JMP è migliore dell'adattamento di Excel.Questo non è scioccante, poiché Excel spesso non esegue la migliore analisi statistica.Tuttavia, sono rimasto sorpreso da quanto siano diverse le due soluzioni per questi dati abbastanza semplici.
Credo che sia JMP che Excel possano incontrare problemi quando si adatta una relazione di potere ai dati.JMP può convergere o meno a una soluzione se converge, credo che la soluzione sia affidabile.Excel ti dà solo un adattamento - non so se dà un errore se non può adattarsi o cosa succede - forse qualcuno può far luce su come Excel adatta la funzione di potenza ai dati.Penso che "overfitting" sia una falsa pista qui - riguarda se la relazione di potere è la relazione giusta o meno, e non la particolare relazione di potere che si sta adattando.Poiché l'algoritmo sceglie i valori theta1 e theta2, saranno i valori che si adattano meglio ai dati - l'overfitting è sempre una possibilità, ma è una proprietà della funzione che si sta utilizzando per adattare i dati e non le scelte particolari del parametri scelti dall'algoritmo.Forse un modo più chiaro per dirlo è che se questi dati particolari non sono un buon campione dei dati che stai cercando di modellare (forse un diverso tipo di auto), allora l'adattamento della relazione di potere a questi dati corre il rischio di overfitting.
La domanda Excel vs JMP è diversa e sono interessato se qualcuno può far luce sulle differenze tra i due.