Monte-Carlo-Resapling-Simulation für Mittelwert und Standardentwicklung JMP 14Ich habe Probleme beim Debuggen des Teils beim Resampling. Hilfe wäre dankbar.
dt=Aktuelle Datentabelle();
n=N Zeile(dt);
nSim=1000;
dtMC=Neue Tabelle ("MC", Neue Spalte ("Sim", Numerisch, "Kontinuierlich"), Neue Spalte ("Mittelwert", Numerisch, "Kontinuierlich"), Neue Spalte ("Std Dev", Numerisch, "Kontinuierlich") );
For(i=1, i<=nSim, i++,
dtResample=dt< dtMC< dtMC:Sim[i]=i;
dtMC:Mean[i]=Mean(dtResample:X)
dtMC:Std Dev[i]= Std Dev(dtResample:X);
);
dtMC< Größe (400, 300),
Variablen (X(:Sim), Y(:Mittelwert)),
Elemente(Punkte(X,Y))
);
Erweiterte statistische ModellierungBetreff: Monte-Carlo-Resapling-Simulation für Mittelwert und Standardentwicklung JMP 14Es fällt mir schwer, den Fehler in Ihrem Skript zu diagnostizieren. Vielleicht kann ein anderes Mitglied bei diesem Problem helfen. Ich werde die Gelegenheit nutzen, Ihnen einen alternativen Weg aufzuzeigen. Wenn Sie die Datentabellenbefehle interaktiv neu abgetastet haben, ist Ihre Vorgehensweise absolut sinnvoll. Sie können stattdessen Matrixoperationen in einem Skript verwenden.
Names Default To Here( 1 );
// example
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// dt=Current Data Table();
// original data as a vector
data = dt:weight << Get As Matrix;
n = N Row( data );
nSim = 1000;
// matrix of simulation results
sim = J( nSim, 3, . );
// resample statistics
For( i = 1, i <= nSim, i++,
X = data[J( n, 1, Random Integer( 1, n ) )];
sim[i, 1] = i;
sim[i, 2] = Mean( X );
sim[i, 3] = Std Dev( X );
);
// make data tabel from matrix
dtMC = As Table( sim, <<COLUMN names=""></COLUMN>
Betreff: Monte-Carlo-Resapling-Simulation für Mittelwert und Standardentwicklung JMP 14das hat auf jeden Fall geholfen. eine Frage. Wie funktioniert die „zufällige“ Ganzzahl " Funktion funktionieren? Gibt es verschiedene Techniken für das Resampling? Vielleicht mehr Kontrolle darüber, wie das Resampling durchgeführt wird? Danke noch einmal 
Betreff: Monte-Carlo-Resapling-Simulation für Mittelwert und Standardentwicklung JMP 14Die Funktion „Random Integer()“ gibt eine Ganzzahl über einen Wertebereich mit gleicher Wahrscheinlichkeit zurück (Gleichverteilungsfunktion).

Es ist das dritte Argument im Aufruf der Funktion J(). Es wird während der Erstellung der Matrix zeilenweise ausgewertet, die wiederum als Indizes der ursprünglichen Datenmatrix bereitgestellt wird. Diese Verwendung entspricht der Stichprobe mit Ersetzung, was Sie für Stichprobenstatistiken mit erneuter Stichprobe benötigen.
Betreff: Monte-Carlo-Resapling-Simulation für Mittelwert und Standardentwicklung JMP 14Scheint, als würde es in jeder Simulation eine Zeile ersetzen. Ist es möglich, zufällige Ganzzahlwerte in mehreren Zeilen zu generieren?
Betreff: Monte-Carlo-Resapling-Simulation für Mittelwert und Standardentwicklung JMP 14Ich verstehe Ihre Annahme nicht (" Scheint, als würde es in jeder Simulation eine Zeile ersetzen. ") oder Ihre Frage (" Ist es möglich, zufällige Ganzzahlwerte in mehreren Zeilen zu generieren? "). Das Skript ist für das Resampling von Statistiken korrekt. Ich verwende eine vektorisierte Lösung, die Ihnen möglicherweise unbekannt ist. Eine modifizierte Version des Skripts umfasst die Verteilung der erneut abgetasteten Schätzungen des Mittelwerts und der ursprünglichen Schätzung mithilfe der Verteilungsplattform.
Names Default To Here( 1 );
// example
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// dt=Current Data Table();
// original data as a vector
data = dt:weight << Get As Matrix;
sampleMean = Col Mean( dt:weight );
n = N Row( data );
nSim = 1000;
// matrix of simulation results
sim = J( nSim, 3, . );
// resample statistics
For( i = 1, i <= nSim, i++,
X = data[J( n, 1, Random Integer( 1, n ) )];
sim[i, 1] = i;
sim[i, 2] = Mean( X );
sim[i, 3] = Std Dev( X );
);
// make data tabel from matrix
dtMC = As Table( sim, <<COLUMN names=""></COLUMN>
Versuchen Sie etwas anderes? Bitte erläutern Sie Ihre letzte Antwort genauer.
Betreff: Monte-Carlo-Resapling-Simulation für Mittelwert und Standardentwicklung JMP 14Entschuldigung für die Verwirrung. Wie extrahiere ich im ersten Skript X aus jeder Iteration in eine Tabelle, sodass alle Werte in 1000 Iterationen simuliert werden? Danke nochmal für deine Hilfe
Names Default To Here( 1 );
// example
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// dt=Current Data Table();
// original data as a vector
data = dt:weight << Get As Matrix;
n = N Row( data );
nSim = 1000;
// matrix of simulation results
sim = J( nSim, 3, . );
// resample statistics
For( i = 1, i <= nSim, i++,
X = data[J( n, 1, Random Integer( 1, n ) )];
sim[i, 1] = i;
sim[i, 2] = Mean( X );
sim[i, 3] = Std Dev( X );
);
// make data tabel from matrix
dtMC = As Table( sim, <<COLUMN names=""></COLUMN>
Betreff: Monte-Carlo-Resapling-Simulation für Mittelwert und Standardentwicklung JMP 14Dieses Skript erstellt zwei Datentabellen: eine Tabelle mit den neu abgetasteten Daten und eine andere mit den neu abgetasteten Statistiken.
Names Default To Here( 1 );
// example
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// dt=Current Data Table();
// original data as a vector
data = dt:weight << Get As Matrix;
sampleMean = Col Mean( dt:weight );
sampleSD = Col Std Dev( dt:weight );
n = N Row( data );
nSim = 1000;
// matrix of simulation data
simData = [];
// resample data
For( i = 1, i <= nSim, i++,
X = data[J( n, 1, Random Integer( 1, n ) )];
simData ||= X;
);
// make table of resampled data
colNames = List();
For( i = 1, i <= nSim, i++, Insert Into( colNames, Eval( "Sample " || Char( i ) ) ) );
dtSimData = As Table( simData, << Column Names( colNames ) );
// matrix of simulation results
simStat = J( nSim, 3, . );
// resample statistics
For( i = 1, i <= nSim, i++,
simStat[i, 1] = i;
simStat[i, 2] = Mean( simData[0,i] );
simStat[i, 3] = Std Dev( simData[0,i] );
);
// make data table from matrix
dtMC = As Table( simStat, << Column Names( {"Simulation", "Mean", "Std Dev"} ) );
// plot resampled statistics
dtMC << Graph Builder(
Size( 534, 456 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :Simulation ), Y( :Mean ), Y( :Std Dev ) ),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 3 ) ) ),
Elements( Position( 1, 2 ), Points( X, Y, Legend( 4 ) ) )
);
obj = dtMC << Distribution( Y( :Mean, :Std Dev ) );
rpt = obj << Report;
rpt[AxisBox(1)] << Add Ref Line( sampleMean, "Solid", "Red", "Sample Mean", 1, 0 );
rpt[AxisBox(2)] << Add Ref Line( sampleSD, "Solid", "Red", "Sample Std Dev", 1, 0 );Betreff: Monte-Carlo-Resapling-Simulation für Mittelwert und Standardentwicklung JMP 14Danke. Eine Frage. Wenn ich einen Datensatz [1 2 3 5 8 9 7] habe und der obigen Logik folgen und zwei Iterationen durchführen möchte, wird er dann erstellt?
2 Sätze durch zufällige Auswahl von Zahlen aus dem Datensatz durch Ersetzen jedes Standorts? Zum Beispiel:
[3 2 1 5 8 7 7]
[9 1 3 5 2 8 6]
Wenn dies wirklich zufällig ist, bedeutet das dann nicht, dass wir jedes Mal, wenn es ausgeführt wird, unterschiedliche Datensätze erhalten?