Monte-Carlo-Simulation für eine Analyseplattform (schrittweise Regression).Ich habe eine Analyse, die mehrere Spalten verwendet, die zufällige Elemente enthalten.Ich weiß, wie man die Zufallszahlen in den Spalten manuell aktualisiert, und ich verstehe, wie man eine Simulation für die Ausgabe einer Analyse durchführt.Aber in diesem Fall möchte ich jedes Mal, wenn die Zufallszahlen in den Spalten aktualisiert werden, eine schrittweise Regression durchführen.Ich möchte das mindestens 1000 Mal machen.Ich weiß nicht, wie ich diesen Prozess automatisieren kann: Generieren Sie neue Zufallszahlen in Formelspalten, führen Sie die Plattform für die schrittweise Regression erneut aus, führen Sie das ausgewählte Modell aus und sammeln Sie die Ergebnisse.
Erweiterte statistische ModellierungBetreff: Monte-Carlo-Simulation für eine Analyseplattform (schrittweise Regression).(Sieht so aus, als gäbe es noch einen anderen, verwandter Thread das ist mir erst aufgefallen, als ich das gepostet habe).
Wie auch immer, finden Sie bitte einen alternativen Ansatz (unter Verwendung der Datentabelle oben), der schneller sein kann (oder auch nicht ...):
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'");
Betreff: Monte-Carlo-Simulation für eine Analyseplattform (schrittweise Regression).Ich habe die fehlende Anleitung gefunden, kann sie aber nicht zum Laufen bringen.dt << Formeln erneut ausführen;
wird in meinen Formeln einen neuen Satz Zufallszahlen generieren.Wenn ich es jedoch in das Skript einfüge – innerhalb der For-Schleife, aber vor „Fit Model“, scheint es die Zufallszahlen nicht zu ändern.Mein geändertes Skript ist:
Clear Globals();
Protokoll löschen();
Namen standardmäßig hier( 1 );
//Ein- und ausgehenden Pfad definieren
Path_in = Datei auswählen( "Datei auswählen" );
If( Directory Exists( "$Desktop\Fit_Stepwise" ),
,
Verzeichnis erstellen( "$Desktop\Fit_Stepwise" )
);
Path_out = "$Desktop\Fit_Stepwise\";
//Fit-Modell ausführen und nach dem Öffnen der Datentabelle schrittweise ausführen
dt = Open( Path_in );
For( i = 1, i <= 1000, i++,
dt << Formeln erneut ausführen;
ow = dt << Modell anpassen(
Y( :Y ),
Auswirkungen(
:Spalte 2 001,
:Spalte 2 002,
:Spalte 2 003,
:Spalte 2 004,
:Spalte 2 005,
:Spalte 2 006,
:Spalte 2 007,
:Spalte 2 008,
:Spalte 2 009,
:Spalte 2 010
),
Persönlichkeit( „Schrittweise“),
Laufen,
SendToReport( Dispatch( {}, "Schrittverlauf", OutlineBox, {Close( 1 )} ) )
);
dt_result = Report( ow )[Outline Box( "Stepwise Fit for Y" )][Outline Box( "Current Estimates" )][Table Box( 1 )] << In Datentabelle umwandeln;
dt_result << save( Path_out || Char( i ) || ".csv", "csv" );
ow << Fenster schließen;
dt_result << Fenster schließen;
);
dt << Fenster schließen;
dt_result = Mehrere Dateiimport(
< < < < < < < < < < < < < < < < < < < < < < < < < < < < ) << Daten importieren;
dt_result << Row Selection( Select where( :Name( "\!"Prob>F\!"" ) > 0,05 ) ) << Zeilen löschen;
dt_result << Distribution( Stack( 1 ), Nominal Distribution( Column( :Parameter ), Horizontal Layout( 1 ), Vertical( 0 ) ) );
Kann mir jemand bei der Platzierung des Befehls „Formeln erneut ausführen“ helfen oder mir sagen, warum er nicht funktioniert?
Betreff: Monte-Carlo-Simulation für eine Analyseplattform (schrittweise Regression).frank
Danke, das ist fast perfekt.Ich habe jedoch Zufallsfunktionen in meinen Spalten und möchte, dass sie bei jedem Durchlauf der Schleife aktualisiert werden (neue Zufallsziehungen auswählen).Das von Ihnen geschriebene Skript scheint für jeden Lauf dieselben Zufallszahlen zu verwenden.Gibt es eine Möglichkeit, die Formeln jedes Mal zu aktualisieren?
Betreff: Monte-Carlo-Simulation für eine Analyseplattform (schrittweise Regression).Hallo dale_lehman
Meine Idee ist, das Ergebnis von der „schrittweisen“ Plattform im Ordner abzurufen und zu speichern. Dann ' Mehrere Dateiimport ' gesamtes Ergebnis als eine Datei.
Zum Schluss Zeile sauber machen mit ' P-Wert' und nach Belieben verteilen.Detail JSL wie folgt:
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>
Betreff: Monte-Carlo-Simulation für eine Analyseplattform (schrittweise Regression).Was Sie im vorherigen Beitrag dargelegt haben, ist ein guter Plan. Das würde ich auch tun. Ich werde versuchen, einige Empfehlungen zu geben.
- Wenn Sie mit der Skripterstellung in JMP noch nicht vertraut sind, ist dies ein Ausgangspunkt Skript-Anleitung . Einige wichtige Teile dieser speziellen Aufgabe könnten sein:
- Darüber hinaus müssen Sie mit dem Scripting Index im Hilfemenü vertraut sein. Es gibt drei Gruppen von Skriptobjekten: Funktionen, Objekte und Anzeigefelder. Oben links befindet sich ein Kombinationsfeld, mit dem Sie auf eine bestimmte Gruppe eingrenzen können.
- Für diese spezielle Aufgabe müssen Sie möglicherweise die Gruppe „Objekte“ überprüfen. Hier werden alle Plattformen inklusive Datentabelle aufgelistet. Möglicherweise möchten Sie das Element „Schrittweise anpassen“ unter dem Objekt „Modell anpassen“ überprüfen. Klicken Sie auf „Schrittweise anpassen“ und suchen Sie rechts nach der Meldung „Fertig stellen“ unter „Elementmeldungen“. Das könnte für Sie jetzt der entscheidende fehlende Teil sein.
- Für diese spezielle Aufgabe müssen Sie auch lernen, wie man Datentabellen manipuliert. Insbesondere die Verkettung vielleicht. Gehen Sie zur Objektliste, klicken Sie auf „Datentabelle“ und suchen Sie rechts nach „Verketten“ unter den Elementnachrichten.
Neben den oben genannten gibt es hier noch weitere hilfreiche Tipps, die ich von meinen Kollegen gelernt habe.
- Posten Sie nach Möglichkeit kleinere, spezifische Fragen im Diskussionsforum. Es ist wahrscheinlicher, dass Hilfe generiert wird.
- Bevorzugen Sie Screenshots gegenüber Anhängen. JSL-Codes können Sie direkt in den Beitrag einfügen, damit die Leser sie sehen können. Suchen Sie beim Bearbeiten eines Beitrags in der Symbolleiste nach der Schaltfläche . Es wird auch wahrscheinlicher sein, dass Hilfe generiert wird. Beispielsweise ist es unwahrscheinlich, dass ein Leser auf einem mobilen Gerät einen Anhang öffnet.

Betreff: Monte-Carlo-Simulation für eine Analyseplattform (schrittweise Regression).Ich habe mein Problem größtenteils gelöst, habe aber noch eine Frage.Im Anhang ist ein kleines Skript, das die schrittweise Regression wie gewünscht ausführt.Aber um 1000 Stichproben zu generieren, musste ich eine „Stichproben“-Spalte erstellen und diese als „Nach“-Variable in der Analyse verwenden.Das funktioniert, ist aber eine umständliche Methode zur Simulation, da ich die Datei sehr lang machen muss – zum Beispiel benötige ich für 1000 Stichproben mit jeweils 1000 Beobachtungen 1.000.000 Zeilen.Kennt jemand eine effizientere Möglichkeit, eine Simulation durchzuführen?Soweit ich das beurteilen kann, kann die Option „Simulieren“, die vielen JMP-Plattformen beiliegt, nur bestimmte Analyseergebnisse simulieren, nicht jedoch die Analyse selbst.
Betreff: Monte-Carlo-Simulation für eine Analyseplattform (schrittweise Regression).Lassen Sie mich genauer darauf eingehen, falls einer der großzügigen Drehbuchautoren da draußen helfen kann.Ich habe eine kleinere Version dessen angehängt, was ich versuche.Ich habe 10 Spalten (alle beginnend mit Spalte 2) in der angehängten Datei, die eine zufällige Normalverteilung beinhalten, und die erste Spalte Y, die 5 Spalten mit den Bezeichnungen Parameter 1 bis 5 und eine zufällige Normalverteilung in der Formel verwendet.Ich möchte folgende Schritte durchführen:
1. Führen Sie die in der Datei gespeicherte schrittweise Regression aus.Ich muss das Modell nicht erstellen oder ausführen, ich muss nur die Schaltfläche „Los“ ausführen, die den schrittweisen Vorgang nach „Ausführen über die Plattform „Modell anpassen““ ausführt.
2. Notieren Sie, wie oft jede der 10 Spalten, die mit Spalte 2 beginnen, durch das schrittweise Verfahren ausgewählt wird. (Ich weiß nicht, wie man ein Skript zum Sammeln dieser bestimmten Informationen erstellt.)
3. Führen Sie die Formel für die 5 Parameterspalten erneut aus, sodass sie einen neuen Satz simulierter Werte enthalten.Ich weiß, dass dies mit dem Befehl „Formel erneut ausführen“ am roten Pfeil oben links in der Tabelle möglich ist (aber ich weiß nicht, wie ich das per Skript ausführen soll).
4. Wiederholen Sie die Schritte 1 und 2. (Ich glaube, dass dies über eine einfache Schleife erfolgen kann)
5. Wiederholen Sie dies 1000 Mal und zeigen Sie die Verteilungen für die Häufigkeit an, mit der jede der 10 Spalten von Spalte 2 im schrittweisen Verfahren ausgewählt wurde.
Ich glaube, das alles lässt sich in Skripten umsetzen, aber es übersteigt bei weitem alles, was ich tun kann.Wenn jemand behilflich sein kann, wäre ich dankbar.Ich bin bereit, gemeinsam mit jemandem eine Arbeit zu verfassen, da ich dafür eine Möglichkeit im Auge habe.