Simulazione Monte Carlo per una piattaforma di analisi (regressione graduale).Ho un'analisi che utilizza diverse colonne che contengono elementi casuali.So come aggiornare manualmente i numeri casuali presenti nelle colonne e capisco come condurre una simulazione per l'output di un'analisi.Ma in questo caso, voglio eseguire una regressione graduale ogni volta che i numeri casuali nelle colonne vengono aggiornati.Voglio farlo almeno 1000 volte.Non so come automatizzare questo processo: generare nuovi numeri casuali nelle colonne della formula, eseguire nuovamente la piattaforma di regressione graduale, eseguire il modello scelto e raccogliere i risultati.
Modellazione statistica avanzataRi: Simulazione Monte Carlo per una piattaforma di analisi (regressione graduale).(Sembra che ce ne sia un altro, discussione correlata che non avevo notato finché non ho pubblicato questo).
Ad ogni modo, trova un approccio alternativo (utilizzando la tabella dati sopra) che potrebbe (o meno...) essere più rapido:
NamesDefaultToHere(1);
dt = DataTable("Test Data.jmp");
n = 100; // Number of simulations
resMat = []; // Results matrix
for(i=1, i<=n, i++,
fm = dt << Fit Model(
Y( :Y ),
Effects(
:Column 2 001, :Column 2 002, :Column 2 003, :Column 2 004, :Column 2 005,
:Column 2 006, :Column 2 007, :Column 2 008, :Column 2 009, :Column 2 010
),
Personality( "Stepwise" ),
Run,
Invisible
);
fmRep = Report(fm);
fmRep[ButtonBox(7)] << click; // Press the 'Go' button
Wait(0); // Needed to let Stepwise do it's thing before proceeding
selectedItems = fmRep[CheckBoxBox(2)] << Get Selected Indices As Matrix; // Retrive which parameters were selected this time
fmRep << closeWindow;
resmat = VConcat(resmat, Transpose(selectedItems)); // Append current results row-wise to those we have already
dt << reRunFormulas; // Get a new random sample
);
dt2 = AsTable(resmat); // Make a results table
dt2 << setName("Parameters selected by 'Stepwise'");
Ri: Simulazione Monte Carlo per una piattaforma di analisi (regressione graduale).Ho trovato le istruzioni mancanti, ma non riesco a farlo funzionare.dt <
genererà una nuova serie di numeri casuali nelle mie formule.Tuttavia, quando lo inserisco nello script, all'interno del ciclo For ma prima di Fit Model, non sembra che vengano modificati i numeri casuali.Il mio script modificato è:
Cancella valori globali();
Pulisci il registro();
Nomi predefiniti qui (1);
//Definisce il percorso in entrata e in uscita
Path_in = Scegli file("Seleziona file");
Se( la directory esiste( "$Desktop\Fit_Stepwise" ),
,
Crea directory ("$Desktop\Fit_Stepwise")
);
Percorso_out = "$Desktop\Fit_Stepwise\";
//Esegui il modello Fit e procedi gradualmente dopo l'apertura di datatable
dt = Apri(Percorso_in);
For( i = 1, i <= 1000, i++,
dt < ow = dt << Adatta modello(
Y(:Y),
Effetti(
:Colonna 2 001,
:Colonna 2 002,
:Colonna 2 003,
:Colonna 2 004,
:Colonna 2 005,
:Colonna 2 006,
:Colonna 2 007,
:Colonna 2 008,
:Colonna 2 009,
:Colonna 2 010
),
Personalità( "Per gradi" ),
Correre,
SendToReport( Dispatch( {}, "Cronologia passaggi", OutlineBox, {Close( 1 )} ) )
);
dt_result = Report( ow )[Riquadro di contorno( "Adattamento graduale per Y" )][Riquadro di contorno( "Stime correnti" )][Riquadro di tabella( 1 )] << Trasforma in tabella dati;
dt_result << salva( Path_out || Char( i ) || ".csv", "csv" );
ahi << chiudi la finestra;
dt_result < );
dt <
dt_result = Importazione di più file(
< < < < < < < < < < < < < < < < < < < < < < < < < < < < ) <
dt_result << Selezione riga( Seleziona dove( :Nome( "\!"Prob>F\!"" ) > 0.05 ) ) << Elimina righe;
dt_result << Distribuzione (Stack (1), Distribuzione nominale (Colonna (: Parametro), Layout orizzontale (1), Verticale (0)));
Qualcuno può aiutarmi con il posizionamento del comando Riesegui formule o dirmi perché non funziona?
Ri: Simulazione Monte Carlo per una piattaforma di analisi (regressione graduale).Franco
Grazie, questo è quasi perfetto.Tuttavia, ho funzioni casuali nelle mie colonne e voglio che si aggiornino (scegli nuove estrazioni casuali) ogni volta che viene eseguito il ciclo.Lo script che hai scritto sembra utilizzare gli stessi numeri casuali per ogni esecuzione.C'è un modo per aggiornare le formule ogni volta?
Ri: Simulazione Monte Carlo per una piattaforma di analisi (regressione graduale).Ciao dale_lehman
La mia idea è ottenere e salvare il risultato dalla piattaforma "passo passo" nella cartella. Poi ' Importazione di più file 'intero risultato in un unico file.
Alla fine, fila pulita per ' Valore P' e distribuiscilo come desideri.Dettagli JSL come di seguito:
Clear Globals();
Clear Log();
Names Default To Here( 1 );
//Define path in and out
Path_in = Pick File( "Select file" );
If( Directory Exists( "$Desktop\Fit_Stepwise" ),
,
Create Directory( "$Desktop\Fit_Stepwise" )
);
Path_out = "$Desktop\Fit_Stepwise\";
//Run Fit model and stepwise after open datatable
dt = Open( Path_in );
For( i = 1, i <= 1000, i++,
ow = dt << Fit Model(
Y( :Y ),
Effects(
:Column 2 001,
:Column 2 002,
:Column 2 003,
:Column 2 004,
:Column 2 005,
:Column 2 006,
:Column 2 007,
:Column 2 008,
:Column 2 009,
:Column 2 010
),
Personality( "Stepwise" ),
Run,
SendToReport( Dispatch( {}, "Step History", OutlineBox, {Close( 1 )} ) )
);
dt_result = Report( ow )[Outline Box( "Stepwise Fit for Y" )][Outline Box( "Current Estimates" )][Table Box( 1 )] << Make Into Data Table;
dt_result << save( Path_out || Char( i ) || ".csv", "csv" );
ow << close window;
dt_result << Close Window;
);
dt << Close Window;
dt_result = Multiple File Import(
<<SET folder="">F\!"" ) > 0.05 ) ) << Delete Rows;
dt_result << Distribution( Stack( 1 ), Nominal Distribution( Column( :Parameter ), Horizontal Layout( 1 ), Vertical( 0 ) ) );</SET>
Ri: Simulazione Monte Carlo per una piattaforma di analisi (regressione graduale).Quello che hai esposto nel post precedente è un buon piano. Lo farei anch'io. Cercherò di dare alcuni consigli.
- Se sei nuovo allo scripting in JMP, un punto di partenza è Guida allo scripting . Alcuni pezzi importanti, in questo compito specifico, potrebbero essere:
- Oltre a ciò, è necessario avere familiarità con lo Scripting Index nel menu Aiuto. Esistono 3 gruppi di oggetti di scripting: Funzioni, Oggetti e Caselle di visualizzazione. C'è una casella combinata in alto a sinistra e puoi restringere il campo a un gruppo specifico.
- Per questa attività specifica, potrebbe essere necessario controllare il gruppo Oggetti. Tutte le piattaforme, inclusa la tabella dati, sono elencate qui. Potresti voler controllare l'elemento "Adatta gradualmente" sotto l'oggetto "Adatta modello". Fai clic su "Adatta gradualmente" e cerca a destra il messaggio "Fine" tra "Messaggi elemento". Questo potrebbe essere il pezzo mancante per te adesso.
- Per questo compito specifico, devi anche imparare a manipolare le tabelle di dati. La concatenazione, in particolare, forse. Vai all'elenco Oggetti, fai clic su "Tabella dati" e cerca "Concatena" a destra tra i messaggi elemento.
Oltre a quanto sopra, ecco altri suggerimenti utili che ho imparato dai miei colleghi.
- Pubblica domande più piccole e specifiche nel forum di discussione, quando possibile. Sarà più probabile che generi aiuto.
- Preferisci gli screenshot agli allegati. Per i codici JSL, puoi inserirli direttamente nel post, in modo che i lettori possano vederli. Cerca il pulsante nella barra degli strumenti quando modifichi un post. Sarà anche più probabile che generi aiuto. Ad esempio, è improbabile che un lettore su un dispositivo mobile apra un allegato.

Ri: Simulazione Monte Carlo per una piattaforma di analisi (regressione graduale).Ho quasi risolto il mio problema, ma ho ancora una domanda.In allegato c'è un piccolo script che esegue la regressione graduale come desidero.Ma per generare 1000 campioni, dovevo creare una colonna "campione" e utilizzarla come variabile "Per" nell'analisi.Funziona, ma è un modo complicato per eseguire la simulazione, poiché devo rendere il file molto lungo: ad esempio, per 1000 campioni di 1000 osservazioni ciascuno, ho bisogno di 1.000.000 di righe.Qualcuno conosce un modo più efficiente per condurre una simulazione?Per quanto ne so, l'opzione "simulazione" che accompagna molte piattaforme JMP può simulare solo determinati risultati dell'analisi ma non l'analisi stessa.
Ri: Simulazione Monte Carlo per una piattaforma di analisi (regressione graduale).Vorrei essere più specifico nel caso in cui qualcuno dei generosi scripter là fuori possa aiutare.Ho allegato una versione più piccola di ciò che sto cercando di fare.Nel file allegato ho 10 colonne (tutte che iniziano con la colonna 2) che coinvolgono una distribuzione normale casuale e la prima colonna Y, che utilizza 5 colonne etichettate come parametri da 1 a 5 e una distribuzione normale casuale nella formula.Desidero eseguire i seguenti passaggi:
1. Eseguire la regressione graduale memorizzata nel file.Non ho bisogno di creare o eseguire il modello, devo solo eseguire il pulsante Vai che esegue la procedura passo passo dopo Esegui dalla piattaforma Adatta modello.
2. Registrare la frequenza con cui ciascuna delle 10 colonne che iniziano con la Colonna 2 viene selezionata mediante la procedura passo-passo. (Non so come eseguire lo script per raccogliere quella particolare informazione)
3. Eseguire nuovamente la formula per le 5 colonne dei parametri in modo che contengano un nuovo set di valori simulati.So che questo può essere fatto con il comando Riesegui formula che si trova nella freccia rossa in alto a sinistra della tabella (ma non so come scriverlo).
4. Ripetere i passaggi 1 e 2. (Credo che questo possa essere fatto tramite un semplice loop)
5. Ripetere l'operazione 1000 volte e mostrare le distribuzioni per il numero di volte in cui ciascuna delle 10 colonne della Colonna 2 è stata selezionata nella procedura passo-passo.
Credo che tutto questo possa essere scritto, ma va ben oltre qualsiasi cosa io sia in grado di fare.Se qualcuno può essere d'aiuto, lo apprezzerei.Sono disposto a collaborare con qualcuno perché ho in mente uno sbocco per questo.