Ciao,
Sto lavorando a uno script che consentirà agli utenti di farlo
- Seleziona le colonne per adattarle a un modello
- Identificare la variabile primaria e specificare il valore dell'obiettivo
- Identificare per quale colonna suddividere il modello
- Consentire a JMP di creare il modello, ottimizzare la desiderabilità per raggiungere l'obiettivo prefissato, quindi produrre i risultati del modello
- Copia i risultati da una comoda tabella di output
Ho script funzionali che fanno ciò che voglio senza consentire l'input o la selezione dell'utente, ma rendere lo script interattivo è stato impegnativo. Penso di essere per lo più lì, ma ho alcune cose specifiche con cui sto lottando
- Domanda 1: in una versione precedente di questo script, ho utilizzato una finestra diversa per ogni modello utilizzando un ciclo for con una riga While( x == "y[i]"). Preferirei usare By( :x ) perché è più flessibile e fornisce una finestra di output. Tuttavia, l'utilizzo di By( :x ) interrompe lo script successivo per ottenere un oggetto scriptabile dal report. È possibile creare un report diverso per ogni sottocasella nella finestra del modello? O un modo migliore per codificare le righe 173-181? Costruisco quelle righe sulla base di questi altri due thread: filo 1 , filo 2 .
- Domanda 2: Ho bisogno dell'opzione per poter avere un numero variabile di effetti modellati senza avere funzioni di desiderabilità (in seguito lo script completo avrà anche effetti ridotti al minimo ma questo script demo semplificato stava diventando troppo complicato. Nelle righe 122-126 sono in grado di creare l'espressione desiderata in ModExpr, ma poiché è un elenco non ha funzionato quando ho provato a sostituirlo direttamente nel profilo. La mia soluzione è avere un numero di segnaposto maggiore del numero di variabili che mi aspetto di modellare e il codice sembra ignorare le parti senza senso se ho meno di 6 effetti modellati ... ma questo sembra super stravagante. C'è un modo per correggere il codice commentato nelle righe 130-134 in modo tale che l'elenco sia combinato in un'unica espressione che funzioni? Neanche io sono riuscito a far suonare bene Concatenation, ma scommetto che c'è qualcosa di semplice che mi è sfuggito.
Ecco uno script di esempio che utilizza dati di esempio. Il modello è una pessima vestibilità, ma non è molto importante per la demo. Durante l'esecuzione, se si cancella la selezione per "by", le cose funzioneranno correttamente e produrranno risultati. Se viene lasciato qualcosa nella sezione "by", la riga 174 verrà interrotta.
Grazie per tutto l'aiuto!
Names Default To Here( 1 );
//sample data for demo
dt = Open( "$SAMPLE_DATA/Football.jmp" );
xvar = {};
yvar = {};
byvar = {};
ytarg = 60;
dtout = {};
//let users select the columns to model
win = New Window( "Model Variable Selection",
<<MODAL></MODAL>