Teilstichprobe zufällig aus einer SpalteHallo zusammen, ich habe landesweit 200 Geschäfte.Mich würde interessieren, ob ich einen Bruchteil dieser Geschäfte unterbewerten und die Verteilung der Ereignisse annähernd ermitteln kann. Könnte es eine Monte-Carlo-Methode geben, um beispielsweise 30 Zeilen in einer neuen Spalte mit einer zufälligen Teilstichprobe der ursprünglichen 200 zu füllen?
Dann könnte ich die Verteilung der 30 Zählungen in der Teilstichprobe mit der Verteilung in der Grundgesamtheit von 200 vergleichen.
Wiederholen Sie dies beispielsweise 100 Mal, um das Risiko einer Stichprobe von 30 Geschäften zu ermitteln, um eine Bevölkerung von 200 zu repräsentieren.
Gedanken?Danke, Paul
Die ersten 10 Reihen der 200
Store# – Spalte 1
Gerade zählen - Spalte 2
19 20 21 22 23 25 26 27 29 34 | 1 4 7 3 4 3 12 5 8 8 |
Qualitäts- und VerfahrenstechnikBetreff: Zufällige Teilstichprobe aus einer Spalte
Danke, Ron
Betreff: Zufällige Teilstichprobe aus einer SpalteHallo @paulp ,
Die andere nicht-skriptbasierte Lösung, die in solchen Anwendungen nützlich sein kann, ist die Verwendung des JMP Query Builder im Menü „Tabellen“.

Dort finden Sie eine Registerkarte für Zufallsstichproben wie im Bild

Wenn Sie es wie gewohnt interaktiv ausführen, können Sie das erstellte Skript für weitere Zwecke nutzen.
Betreff: Zufällige Teilstichprobe aus einer SpalteVielen Dank, Sam, und an alle, die Lösungen gepostet haben.
Betreff: Zufällige Teilstichprobe aus einer SpalteIch verstehe, dass Sie Ihre Lösung nicht per Skript erstellen. Sie können auch interaktiv „Tabellen“ > „Teilmenge“ verwenden, um eine neue kleinere Tabelle mit zufällig ausgewählten Zeilen aus der ursprünglichen Datentabelle zu erstellen. Würde das für Sie funktionieren?
Betreff: Zufällige Teilstichprobe aus einer SpalteHier ist ein Beispielskript, das Teilmengen einer bestimmten Größe ohne Ersatz erstellt
Names Default To Here( 1 );
dt =
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// New formula column: Row
Data Table( "semiconductor capability" ) << New Column( "Row",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Row() )
) << Move Selected Columns( {:Row}, after( :SITE ) );
// Loop through data creating sample data tables
sampleSize = 20;
For( i = 1, i <= 20, i++,
dtSample = Data Table( "semiconductor capability" ) << Subset(
Sample Size( sampleSize ),
Selected columns only( 0 ),
output table( "Sample " || Char( i ) )
);
matSelected = dtSample:Row << get values;
// Delete row column from sample data
dtSample << delete columns( Row );
// Delete selected rows from main table
dt << select rows( matSelected );
dt << delete rows;
);
// Delete row column from original data table
dt << delete columns( Row );Betreff: Zufällige Teilstichprobe aus einer SpalteEine schnelle Möglichkeit, eine Teilstichprobe mithilfe einer Spaltenformel zu erstellen, ist die Verwendung der Funktion „Col Shuffle()“.Die Funktion gibt eine zufällige Neuordnung der Zeilennummern zurück.Wenn Sie Zeilen auswählen, in denen die Werte von Col Shuffle() kleiner oder gleich der Teilstichprobengröße (n_sub) sind, entspricht dies einer zufälligen Sortierung der Spalte und der Auswahl der ersten n_sub-Zeilen.
Wenn Sie beispielsweise mit dieser Formel eine neue Spalte hinzufügen, wird dies für eine Teilstichprobengröße von 30 erreicht.

Beispieltabelle beigefügt.
Wenn Sie dies wiederholt tun möchten, kann das Erlernen von JMP-Scripting dies einfacher machen.Ein einfaches Skript zum wiederholten Hinzufügen solcher Spalten ist
Names Default to Here( 1 );
Number_of_Cols_to_Add = 100;
For( i = 1, i <= Number_of_Cols_to_Add, i++,
Current Data Table() <<
New Column( "Y Subsample (Size 30)",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( If( Col Shuffle() <= 30, :Y, . ) )
)
);
Betreff: Zufällige Teilstichprobe aus einer SpalteHallo Jeff, danke für die Antwort.Leider verstehe ich nicht, wie ich die Funktion für meinen Zweck nutzen kann.
- Resample Freq erstellt Zählungen von Re-Samples.Dies scheint ein Zwischenschritt zur anschließenden Erstellung einer neuen Tabelle mit den unterabgetasteten Daten zu sein. Ich hoffe, aus der ursprünglichen Grundgesamtheit von 200 Zeilen direkt eine Spalte mit untergeordneten Daten zu erstellen.
- Ich würde es vorziehen, ohne Ersatz zu probieren, nicht mit Bootstrap.
Wenn ich nur einmal eine Unterabtastung der Originaldaten benötige, wäre der einfachste Pfad „Tabelle“ > „Teilmenge“ > „Zufällige Stichprobengröße = 30“ (z. B.)
Ich erstelle kein Skript, sonst würde ich eine Schleife erstellen, um 100 Tabellen mit 30 Zufallsstichproben zu erstellen, und die 100 Tabellen dann zu einer Mastertabelle verketten.
Gibt es eine Möglichkeit, 30 Zufallsstichproben direkt aus einer Spalte zu entnehmen und diese 30 Werte in eine neue Spalte einzufügen?
Letztendlich hoffe ich, die Funktion „Zuverlässigkeit > Lebensverteilung > Gruppen vergleichen“ auszuprobieren, um die Verteilung der Teilstichproben im Vergleich zur ursprünglichen Bevölkerungsverteilung zu bewerten.
- Wiederholen Sie den Vorgang dann für Stichprobengröße = 20, dann 40 usw., damit ich die Mindeststichprobengröße ermitteln kann, die eine ähnliche Verteilung für die Grundgesamtheit von 200 Geschäften ergibt.
Danke, Paul
Betreff: Zufällige Teilstichprobe aus einer SpalteWerfen Sie einen Blick auf die Freq erneut abtasten () Funktion.
Resample-Frequenz
Erzeugt eine zufällige Auswahl mit Ersatzhäufigkeitszählungen, die für die Verwendung beim Bootstrapping geeignet sind. Beispielsweise unterstützt es eine Sekunde Freq-Spalte Argument, das es ihm ermöglicht, Bootstrap-Proben durchzuführen, die sich auf eine bereits vorhandene Häufigkeitsspalte beziehen, die im zweiten Argument angegeben ist. Freq erneut abtasten () generiert ein 100 %-Resample. ResampleFreq(Rate) erzeugt ein Rate Frequenzprobe. Resample(Rate, Spalte) generiert eine Stichprobe, die aus der Rate multipliziert mit der Summe der angegebenen Spalte berechnet wird. Weitere Informationen zur Syntax für die Resample Freq-Funktion finden Sie unter Diskrete Wahrscheinlichkeitsfunktionen im JSL-Syntaxreferenz .