È possibile lo scripting del modello con adattamento variabile?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao a tutti, sono nuovo in questo forum e spero di andare d'accordo con tutti voi
Sono uno studente che utilizza JMP ma sto riscontrando alcune difficoltà nello scripting relativo alla parte del modello di adattamento. Quanto segue illustra il codice del modello adatto che non riesco a farlo funzionare:
a=0;var_list={:param1,:param2};rs_list={:test1,:test2,:test3,:test4,:test5};obj=Fit Model( Y(var_list[1]), Effects( response surface(:test1,:test2,:test3,:test4,:test5) ), Personality( Standard Least Squares ), Emphasis( Effect Screening ), Run());if(a==1, obj< var_list[1]< maximize desirability(1), ); obj << {Lack of Fit( 0 ), Sorted Estimates( 1 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )}; );if(a==0, obj< var_list[1]< maximize desirability(1), ); obj << {Lack of Fit( 0 ), Sorted Estimates( 1 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )};);ho 10 variabili in un elenco e vorrei usarle tutte per eseguire una serie di analisi dei minimi quadrati tramite fitmodelling, ma non riesco a farlo funzionare. il codice di cui sopra era inizialmente previsto per essere inserito in a ciclo for per eseguire il ciclo 10 volte (questo potrebbe variare in quanto il numero di variabili potrebbe essere più o meno) ma il fatto è che vorrei usare un ciclo per comandare jmp per eseguire l'analisi desiderata dall'elenco sopra... inoltre, è possibile posizionare rs_list nella funzione della superficie di risposta sopra? (anche io non riesco a far funzionare l'elenco)...qualsiasi idea o consiglio è molto apprezzato! grazie in anticipo e buona giornata!:)
È possibile lo scripting del modello con adattamento variabile?Grazie mille per la guida MS, apprezzo molto! 
È possibile lo scripting del modello con adattamento variabile?Ok, il mio codice funziona qui se applicato alla tabella di esempio che ho usato. Quando applicato a una tabella più grande, ho anche riscontrato che per alcune iterazioni mancava la trama effettiva in base alle previsioni. Immagino che ciò possa derivare da un lento adattamento delle desiderabilità e che JMP continui a eseguire il codice nonostante i calcoli attuali non siano terminati. A volte questo può essere risolto inserendo i comandi Wait() nei posti giusti (non è ovvio qui dove possano essere).
Ri: È possibile lo scripting del modello con adattamento variabile?MS, ho provato il tuo codice, sembra che stia osservando alcuni bug?... quello che vedo è che a volte la trama effettiva non appare nella finestra di previsione nei rapporti mentre gli altri li hanno, ad esempio: Il report di drvros non ha la trama effettiva mentre il grafico di drvrus ha la trama effettiva... ho anche provato a massimizzare e minimizzare in base a una sequenza, ad esempio massimizza prima, quindi minimizza ma sembra funzionare altrettanto bene... qualunque idee? grazie in anticipo!:)
PS: Grazie mille per la tua guida esperta, ho imparato così tanto dalle tue due risposte, JSL può davvero dare sui nervi ahah, in precedenza non riuscivo a trovare la funzione Response Surface() nella guida allo scripting (è non elencato nella guida allo scripting JMP9.0.3) e ha utilizzato altri metodi come:
effetti(
var1 e RS,
var2 e RS,
polinomio (var1,var2),
fattoriale(var1,var2),
)
che può essere semplificato utilizzando la funzione Response Surface(var1,var2)... ho appena deciso di provarlo e funziona LOL...
Ri: È possibile lo scripting del modello con adattamento variabile?Scusate, mi sono persa la parte relativa alla superficie delle risposte. E come hai anche sperimentato, c'è un'altra funzione che non sembra risolvere bene gli elenchi. JSL è piuttosto fastidioso a questo riguardo poiché spesso è difficile stabilire in anticipo i requisiti dell'argomento.
Quindi dobbiamo fare lo stesso trucco anche per Fit Model obj, cioè usare un'espressione e sostituirla. Per esempio:
dt = Aprire ( "$ENGLISH_SAMPLE_DATA/Tiretread.jmp" ) ;
UN = 0 ;
lista_obiettivi = { Minimizzare , Massimizzare } ; // elenco delle opzioni
lista_var = { : ABRASIONE , : DUREZZA } ;
rs_list = { : SILICE , : SILANO , : ZOLFO } ;
obj_espr = espr ( ogg = dt << Modello adatto (
Y ( lista_var [ io ] ) ,
Effetti ,
Personalità ( Minimi quadrati standard ) ,
Enfasi ( Screening degli effetti ) ,
Mancanza di adattamento ( 0 ) ,
Stime ordinate ( 1 ) ,
Traccia il valore effettivo rispetto a quello previsto ( 1 ) ,
Regressione grafica ( 0 ) ,
Traccia residuo in base alla previsione ( 0 ) ,
Leva degli effetti di trama ( 0 ) ,
Correre ()
)) ;
objsettings_expr = Espr (
ogg << Profilatore (
1 ,
Intervalli di confidenza ( 1 ) ,
var << Limiti di risposta ( { Obiettivo ( massimo ) , Importanza ( 1 )} ) ,
massimizzare la desiderabilità ( 1 ) ,
Funzioni di desiderabilità ( 1 )
)
) ;
rs_cols = Regex ( Car ( rs_list ) , "\{(.+)\}" , "\1" ) ; // Elimina l'elenco dalle parentesi graffe
Sostituisci in ( obj_espr , Espr ( Effetti ) , Analizzare ( "Effetti(superficie di risposta(" || rs_cols || "))" ) ) ; // inserisce gli effetti come Parse(string)
Sostituisci in ( objsettings_expr , Espr ( massimo ) , lista_obiettivi [ UN + 1 ] ) ; // obiettivo prefissato
Per ( io = 1 , io <= N articoli ( lista_var ) , io ++,
obj_espr ;
Val ( Sostituire ( Nome Espr ( objsettings_expr ) , Espr ( var ) , lista_var [ io ] ) ) ; // applica le impostazioni del profiler
) ;
Ri: È possibile lo scripting del modello con adattamento variabile?Prima di tutto, grazie mpb e ms per il consiglio, apprezzo davvero il vostro aiuto! Innanzitutto, facendo riferimento alla risposta di mpb, devo utilizzare il file superficie di risposta() per la mia analisi e sembra che sia così:
response surface(eval(rs_list))
non funziona. Ho già provato molte volte il metodo suggerito da mpb ma senza alcun risultato. È stato utilizzato il seguente codice:
Cannot find specified column in access or evaluation of 'Eval' , Eval( rs_list )In the following script, error marked by /*###*/obj=Fit Model( Y( var_list ), //this part works perfectly fine if the response list is listed out below Effects( response surface( Eval/*###*/(rs_list) ) ), Personality( Standard Least Squares ), Emphasis( Effect Screening ), Run, invisible);
Un modo per implementare la superficie di risposta o altri metodi alternativi?
Per quanto riguarda la risposta di MS, mi chiedevo, puoi leggermi nel pensiero ahahah... sì, il problema principale che sto affrontando è la parte relativa al limite di risposta! non sembra massimizzare o minimizzare correttamente secondo necessità... proverò il tuo esempio sopra
... ma grazie mille per il tuo aiuto, apprezzo sinceramente tutto questo aiuto dato che ho provato questo per settimane:)
È possibile lo scripting del modello con adattamento variabile?Come notato sopra da mpb, Y() ed Effects() comprendono le variabili e gli elenchi di variabili valutati. Tuttavia, il messaggio del Profiler "<< Limiti di risposta({})" sembra non valutare una variabile di colonna, almeno non rappresentata da un elemento di elenco. Quindi inserirlo in un elenco di variabili non è molto semplice.
Un modo per aggirare il problema è utilizzare le espressioni e sostituire le voci critiche all'interno del ciclo.
Ecco un esempio (utilizzando uno dei file di dati di esempio di JMP):
dt = Aprire ( "$ENGLISH_SAMPLE_DATA/Tiretread.jmp" ) ;
UN = 0 ;
lista_obiettivi = { Minimizzare , Massimizzare } ; // elenco delle opzioni
lista_var = { : ABRASIONE , : DUREZZA } ;
rs_list = { : SILICE , : SILANO , : ZOLFO } ;
objsettings_expr = Espr (
ogg << Profilatore (
1 ,
Intervalli di confidenza ( 1 ) ,
var << Limiti di risposta ( { Obiettivo ( massimo ) , Importanza ( 1 )} ) ,
massimizzare la desiderabilità ( 1 ) ,
Funzioni di desiderabilità ( 1 )
)
) ;
Sostituisci in ( objsettings_expr , Espr ( massimo ) , lista_obiettivi [ UN + 1 ] ) ; // obiettivo prefissato
Per ( io = 1 , io <= N articoli ( lista_var ) , io ++,
ogg = dt << Modello adatto (
Y ( lista_var [ io ] ) ,
Effetti ( Val ( rs_list ) ) ,
Personalità ( Minimi quadrati standard ) ,
Enfasi ( Screening degli effetti ) ,
Mancanza di adattamento ( 0 ) ,
Stime ordinate ( 1 ) ,
Traccia il valore effettivo rispetto a quello previsto ( 1 ) ,
Regressione grafica ( 0 ) ,
Traccia residuo in base alla previsione ( 0 ) ,
Leva degli effetti di trama ( 0 ) ,
Correre ()
) ;
Val ( Sostituire ( Nome Espr ( objsettings_expr ) , Espr ( var ) , lista_var [ io ] ) ) ; // applica le impostazioni del profiler
) ;
È possibile lo scripting del modello con adattamento variabile?Questo può essere utile:
var_list={:DrvrOS,:DrvrUS};
rs_list={:SKEW,:PKGIMP,:MBIMP,:XT,:MBLEN};
fm = Adatta modello(
Y(eval(var_list)),
Effetti( eval(rs_list)),
Personalità (minimi quadrati standard),
Enfasi (screening degli effetti),
Correre()
);