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 dei 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 si esegue manualmente, ad esempio:
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 )
);
Re: Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non lineareStupendo! Posso credere di aver perso questa soluzione nella comunità. Ho cercato tutti i tipi di esempi. Avevo solo bisogno di "Salva" era tutto ciò di cui avevo bisogno.
Grazie mille Fil!
Re: Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non lineareFa la 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);
Questo utilizza il comando Salva formula di previsione, anziché Pubblica formula di previsione. Penso che questo sia quello che vuoi fare e non richiede Pro.
Ti dà una colonna della formula di previsione dei risultati con, in effetti, un modello per ogni 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) )),
.
)
Re: Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non lineareCiao Fil,
Grazie ancora per il feedback.
Cercherò di spiegare un po' di più su questa risposta.
Sì, la mia domanda riguarda il modo in cui automatizzare l'adattamento di un modello e generare 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 ogni gruppo e voglio solo replicarla con i nuovi parametri che sono stati stimati.
L'idea di farlo è solo per poter riportare i risultati per ciascun gruppo in modo indiretto, oltre a 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
Re: 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 lo standard JMP... purtroppo.
Re: Come salvare la formula di previsione per diverse categorie durante l'esecuzione dell'adattamento del modello non lineareLa formula di previsione della pubblicazione si riferisce alla capacità di pubblicare in Formula Depot in JMP Pro. Non mi aspetto che funzioni se stai utilizzando JMP standard. È possibile 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, vero?)
Funziona? Dovrebbe far apparire il Formula Depot. Ancora una volta, mi aspetto che funzioni solo se stai utilizzando JMP Pro.
Re: 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 d'aiuto se potessi usare l'opzione JSL quando pubblichi domande di scripting. Devi solo fare clic su sulla barra degli strumenti sopra la finestra di pubblicazione e aggiungere il tuo JSL lì. Molto più chiaro per le persone capire il tuo JSL e aiutarti.
In secondo luogo, c'è un modello non lineare complesso che si adatta qui, ma la tua domanda riguarda in realtà come automatizzare l'adattamento di un modello e generare la colonna della formula di previsione per ciascun gruppo. Sarà più facile per le persone aiutare se fornisci un esempio più semplice che dimostri la parte particolare del problema che stai cercando di affrontare. Renderà anche più accessibile agli altri membri della comunità capire se questo dà loro una soluzione al loro problema. Un esempio che utilizza il classico set di dati di esempio Big Class è sempre buono. Nel tuo caso penso che adattare un modello semplice per ogni 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 d'aiuto se riuscissi a spiegare un po' cosa stai cercando di ottenere alla fine. 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