Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non lineareHo uno script che si adatta a una formula personalizzata per un modello non lineare (non disponibile su Nonlib) che ottiene le stime per i parametri del modello. Posso salvare la formula nel menu del triangolo rosso e selezionare Salva formula di previsione che creerà una nuova colonna per i nuovi risultati. Posso farlo per ogni categoria.
New Column( "Fitted Model By Sample",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Property( "By ID", 207957763 ),
Formula(
If( :Sample == "Barley 2710",
If( :Days > 0,
0.171070850115799 * Exp( -Exp( ((0.00826868962267886 * Exp()) / 0.171070850115799) * (8.5626914275992 - :Days) ) )
+0.189197655815188 * Exp( -Exp( ((0.0822175769423173 * Exp()) / 0.189197655815188) * (1.00952608535815 - :Days) ) ),
0
),
.
)
),
Set Property( "Predicting", {:Average, Creator( "Nonlinear" )} ),
Set Selected
);
Set Label Columns( :Label );
Tuttavia, sto cercando di farlo funzionare per tutte le categorie nella tabella dati per evitare di doverlo fare manualmente. Qualche suggerimento su come farlo?
Ho provato a pubblicare semplicemente la nuova formula ma non viene creata alcuna colonna come quando lo faccio manualmente come:
obj = Nonlinear( Y( :Average ), X( :Model ), Loss( :Err ), Iteration Limit( 5000 ), By( :Sample ) );
obj << go;
obj << Publish prediction formula;
obj << Set name( "Fitted Model by sample" );
Ho anche provato a modificare lo script registrato JSL come di seguito, sfortunatamente la formula non funziona. Ogni aiuto è molto apprezzato.
obj = Nonlinear( Y( :Average ), X( :Model ), Loss( :Err ), Iteration Limit( 5000 ), By( :Sample ) );
obj << go;
//returns a list of vectors where each vector, contains the parameters estimates
obj << get estimates;
obj << get prediction formula;
col11 = New Column( "Fitted Model By Sample",
set formula(
If( :Days > 0,
(Y1_Y1_0 * Exp( -Exp( ((K1_K1_0 * Exp()) / Y1_Y1_0) * (P1_P1_0 - :Days) ) ) + Y2_Y2_0 * Exp(
-Exp( ((K2_K2_0 * Exp()) / Y2_Y2_0) * (P2_P2_0 - :Days) )
)),
0
),
By( :Sample ),
Set Property( "Predicting", {:Average, Creator( "Nonlinear" )} ),
Set Selected
),
Set Label Columns( :Label )
);
Ri: Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non lineareEccezionale! Posso credere di aver perso questa soluzione nella comunità. Ho cercato tutti i tipi di esempi. Avevo solo bisogno di "Salva", questo è tutto ciò di cui avevo bisogno.
Grazie mille Fil!
Ri: Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non lineareLa soluzione da @txnelson In questo post aiuto? ("Salvataggio della formula di previsione nella tabella")
Names Default To Here( 1 );
dt = Open(
"$SAMPLE_DATA/Nonlinear Examples/Bioassay.jmp"
);
obj = Fit Curve(
Y( :Toxicity ),
X( :log Conc ),
Group( :formulation ),
Fit Logistic 4P
);
obj << (Fit[1] << Save Prediction Formula);
Viene utilizzato il comando Salva formula di previsione anziché Pubblica formula di previsione. Penso che questo sia ciò che vuoi fare e non richiede Pro.
Fornisce una colonna della formula di previsione dei risultati con, effettivamente, un modello per ciascun gruppo:
Match( :Formulation,
"standard",
0.599015186864584 + (1.10686367677145 - 0.599015186864584) / (1
+Exp( -5.84379312234502 * (:log Conc - 0.32019959502239) )),
"test A",
0.590902329849433 + (1.1012080930316 - 0.590902329849433) / (1
+Exp( -5.98069280093278 * (:log Conc - 0.284551221955609) )),
"test B",
0.592984828033858 + (1.0972015134296 - 0.592984828033858) / (1
+Exp( -5.75586785289505 * (:log Conc - 0.084429442746212) )),
"test C",
0.593403681513877 + (1.10597929999838 - 0.593403681513877) / (1
+Exp( -6.00992746207644 * (:log Conc - 0.298749145989595) )),
.
)
Ri: Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non lineareCiao Phil,
Grazie ancora per il feedback.
Cercherò di spiegare un po' di più su questa risposta.
Sì, la mia domanda riguarda il modo in cui automatizzo l'adattamento di un modello e genero una colonna con la formula di previsione risultante per ciascun gruppo. È solo una colonna che voglio creare. La formula del modello è già in una colonna per ciascun gruppo e voglio solo replicarla con i nuovi parametri stimati.
L'idea di farlo è solo così posso riportare i risultati per ciascun gruppo in modo indiziuale e poter rappresentare graficamente la curva del modello e i dati sperimentali in modo diverso tramite il generatore di grafici.
Spero che questo sia più chiaro.
Tuttavia, sembra che avrei bisogno di Jump Pro per poterlo fare, giusto?
Grazie
Ivo
Ri: Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non lineareGrazie per il feedback Fil.
Ho provato lo script e hai ragione, non funziona perché ho solo JMP standard... purtroppo.
Ri: Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non linearePubblica formula di previsione si riferisce alla capacità di pubblicare nel Deposito formule in JMP Pro. Non mi aspetto che funzioni se utilizzi JMP standard. Puoi verificare utilizzando lo script di esempio dallo Scripting Index.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Boston Housing.jmp" );
obj = K Nearest Neighbors(
Y( :mvalue ),
X(
:crim,
:zn,
:indus,
:chas,
:nox,
:rooms,
:age,
:distance,
:radial,
:tax,
:pt,
:b,
:lstat
),
K( 10 )
);
obj << (Response[1] << Publish Prediction Formula);
(A proposito, questo è quello che stavo dicendo sull'opzione di inserimento JSL: molto più chiaro, non è vero?)
Funziona? Dovrebbe far apparire il Deposito Formula. Ancora una volta, mi aspetto che funzioni solo se utilizzi JMP Pro.
Ri: Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non lineareCIAO,
Solo alcuni suggerimenti per aiutare le persone ad aiutarti con le tue sfide.
Prima di tutto, sarebbe utile se potessi utilizzare l'opzione JSL quando pubblichi domande sullo scripting. Devi solo fare clic su sulla barra degli strumenti sopra la finestra di pubblicazione e aggiungere lì il tuo JSL. È molto più chiaro per le persone comprendere il tuo JSL e aiutarti.
In secondo luogo, qui esiste un modello non lineare complesso, ma la tua domanda riguarda in realtà come automatizzare l'adattamento di un modello e la generazione della colonna della formula di previsione per ciascun gruppo. Sarà più facile per le persone aiutarti se fornisci un esempio più semplice che dimostri la parte particolare del problema che stai cercando di affrontare. Renderà inoltre più accessibile agli altri membri della comunità la comprensione se questo fornisce loro una soluzione al loro problema. Un esempio che utilizza il classico set di dati di esempio Big Class è sempre utile. Nel tuo caso penso che adattare un modello semplice per ciascun gruppo di Sex in Big Class potrebbe essere sufficiente per dimostrare la tua sfida. O forse è più complesso di così. Non ne sono sicuro perché le informazioni che hai fornito non sono chiare.
Infine, potrebbe essere utile se potessi spiegare qualcosa su ciò che alla fine stai cercando di ottenere. Perché vuoi creare colonne formali per ogni gruppo? Potrebbero esserci altri modi migliori per raggiungere il tuo obiettivo.
Penso che se segui questi passaggi dovresti scoprire che otterrai più aiuto con le domande che pubblichi.
Saluti,
Fil