So wählen Sie eine Quotenstichprobe aus einem Datensatz ausHallo zusammen
Ich arbeite an einer Untersuchung, die die Arbeit mit einer repräsentativen Stichprobe erfordert. Ich habe bereits Daten gesammelt, muss aber eine Teilmenge auswählen, die die folgenden Repräsentationskriterien erfüllt: Die Stichprobe sollte die folgenden Quoten erfüllen:
-
nach Geschlecht: 50 % Männer und 50 % Frauen.
-
nach Alter: 1/3 von 18 bis 30 Jahre, 1/3 von 31 bis 50 Jahre und 1/3 über 51 Jahre.
-
nach Haushaltseinkommensniveau: 1/3 vom niedrigen , 1/3 vom mittleren 7 und 1/3 vom hohen .
1/5 der untersuchten Bevölkerung aus jeder der fünf Regionen der Stadt (Nord, Süd, Zentrum, Ost und West)
Wie kann ich dieses Beispiel erstellen?
Ich verwende JMP Pro 17
DatenzugriffDatenzusammenführung und -bereinigungBetreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausklingt wie eine Lehrbuchübung – gibt es ein Kapitel mit der Lösung?
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausNEIN
Ich habe dieses Problem tatsächlich mit einem Kollegen besprochen, um mit der Datenanalyse eines Projekts mithilfe dieser Quotenstichprobentechnik zu beginnen.Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausDies ist ein komplexes Problem. Wie groß ist die Datentabelle, aus der Sie Daten ziehen? Welche Stichprobengröße ziehen Sie heran? Sie haben 90 Kombinationen Ihrer 4 Spalten. Haben Sie und Ihr Kollege eine Idee, wie Sie das Problem angehen könnten?
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausUnd Sie möchten die Stichprobendaten nicht nach dem tatsächlichen Anteil der Verteilung auswählen, sondern nach dem künstlichen Anteil?
Wie wäre es mit weiblich, > 51 Jahre, hohes Einkommen, Norden.
Sollte es 1/2 * 1/3 * 1/3 * 1/5 sein? (*)
Dies ist sehr einfach zu berechnen – aber vielleicht zu streng – und nicht beabsichtigt?
Denken Sie nur an den Fall, dass es in der ursprünglichen Verteilung keine Frau über 51 Jahre mit hohem Einkommen im Norden gibt.
Andererseits: Wenn nur 1/2, 1/3, 1/3 und 1/5 erfüllt sein müssen, könnte man Extremfälle mit 0 Stichprobendaten für weiblich, > 51 Jahre, hohes Einkommen, Norden bilden.
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausDas ist nicht elegant und ich bin mir nicht einmal sicher, ob es funktioniert, aber es könnte funktionieren. Sie können für jedes Ihrer Kriterien 0,1-Spalten erstellen und diese dann zu einer einzigen 0,1-Spalte kombinieren, wobei 1 bedeutet, dass alle einzelnen Kriterienspalten =1 waren. Dadurch erhalten Sie die gewünschte Teilmenge. Und wenn Sie eine zufällige Auswahl aus solchen Zeilen wünschen, verwenden Sie einfach eine Validierungsspalte, die nach dieser 0,1-Spalte geschichtet ist. Wie gesagt, nicht elegant, aber könnte funktionieren.
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausDatentabelle - Idealfall:
New Table( "quota_samples",
Add Rows( 100000 ),
Compress File When Saved( 1 ),
New Column( "gender",
Character,
Formula( Match( Floor( Random Uniform() * 2 ), 0, "M", "F" ) ),
Compact(),
Set Selected
),
New Column( "income",
Character,
Formula(
Match( Floor( Random Uniform() * 3 ), 0, "low", 1, "medium", "high" )
),
Compact()
),
New Column( "region",
Character,
Formula(
Match( Floor( Random Uniform() * 5 ),
0, "N",
1, "S",
2, "W",
3, "E",
"C"
)
)
),
New Column( "age",
Character,
Formula(
Match( Floor( Random Uniform() * 3 ), 0, "young", 1, "medium", "old" )
)
)
)
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausFür eine solche ideale Tabelle (wenn die Wahrscheinlichkeiten Ihres Datensatzes zu den gewünschten Anteilen passen) können Sie Zufallsstichproben auswählen – Zufallsstichproben pro Variante oder eine bestimmte Anzahl von Stichproben pro Variante – oder eine Kombination aller drei …
Sie erhalten immer die Untergruppen mit dem gewünschten Bruchteil (1/2, 1/3, 1/3 und 1/5)

// random sampling : full data set
if(not(current data table() << has column ("cum_prob")),New Column( "cum_prob",
Formula(
Col Rank( random uniform()) / (
Col Number( 1 ))
)
));
// random sampling : per variant
if(not(current data table() << has column ("cum_prob_indiv")),New Column( "cum_prob_indiv",
Formula(
tmp = random uniform(); // tmp =1; // **)
Col Rank( tmp, :gender, :income, :region, :age ) / (
Col Number( tmp, :gender, :income, :region, :age ))
)
));
// force ratios: 1/2, 1/3, 1/3, 1/5
if(not(current data table() << has column ("rank_indiv")),
New Column( "rank_indiv",
Formula( Col Rank( random uniform(), :gender, :income, :region, :age ) )
));
Graph Builder(
Size( 518, 448 ),
Show Control Panel( 0 ),
Graph Spacing( 4 ),
Variables( X( :gender ), X( :income ), X( :region ), X( :age ) ),
Elements( Position( 1, 1 ), Bar( X, Summary Statistic( "N" ) ) ),
Elements( Position( 2, 1 ), Bar( X, Summary Statistic( "N" ) ) ),
Elements( Position( 3, 1 ), Bar( X, Summary Statistic( "N" ) ) ),
Elements( Position( 4, 1 ), Bar( X, Summary Statistic( "N" ) ) ),
Local Data Filter(<BR /> Title( "how many samples do you want ? " ),
Add Filter(
columns( :cum_prob, :cum_prob_indiv, :rank_indiv )
)
)
);
**) Anstatt CDFs mit zufälligem uniform() zu verwenden, kann man die Zeilenreihenfolge zufällig anordnen und CDFs von „1“ verwenden.
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausDie letzte Option funktioniert auch für weniger systematische Tabellen wie die folgende.
Die einzige Einschränkung besteht darin, dass bei wenigen Proben für eine bestimmte Variante die Anzahl der auswählbaren Proben klar begrenzt ist.
Dabei gilt die einfache Regel:
Wenn für eine der Varianten (A) nur N Stichproben vorhanden sind, nehmen Sie diese und wählen Sie die gleiche Anzahl an Zufallsstichproben aus den anderen Varianten aus.
Tatsächlich handelt es sich bei Variante „A“ NICHT um Sampling.
Wählen Sie also vielleicht einfach M << N Beispiele aus – zufällig aus allen Varianten.
Sie können dieselbe (JSL-)Logik verwenden – passen Sie N einfach auf einen niedrigeren Wert an.
variants = {};
For Each( {gender}, {"F", "M"},
For Each( {age}, {"young", "medium", "old"},
For Each( {income}, {"low", "medium", "high"},
For Each( {region}, {"N", "S", "E", "W", "C"},
Insert Into( variants, Concat Items( {gender, age, income, region} ) )
)
)
)
);
Eval(
Eval Expr(
new table(
"unfair",
add rows( 100000 ),
New Column( "variant",Character,
formula(
variants = As constant(Expr( variants ));
Try(
variants[Floor( Random Normal( 45, 30 ) )],
"F young medium C"
);
)
),
New column ("gender",Character, formula(Word(1,:variant))),
New column ("age",Character, formula(Word(2,:variant))),
New column ("income",Character, formula(Word(3,:variant))),
New column ("region",Character, formula(Word(4,:variant))),
)
)
);
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausIch habe viel Zeit damit verbracht, über diese Frage nachzudenken, und bin auf keine gute Antwort gekommen. Ich habe eine Beispieldatentabelle ähnlich wie @hogi erstellt. Unten finden Sie eine Änderung an @hogi JSL mit meinem verwendeten Code. Grundsätzlich denke ich, dass es leichter zu lesen ist, und im Fall des Alters stellt es die von @Samira angegebene Verteilung besser dar.
New Table( "Samp",
Add Rows( 100000 ),
Compress File When Saved( 1 ),
New Column( "gender",
Character,
Set Each Value( Match( Random Integer( 1, 2 ), 1, "Male", "Female" ) ),
Compact()
),
New Column( "income",
Character,
Set Each Value(
Match( Random Integer( 1, 3 ), 1, "Low", 2, "Medium", "High" )
),
Compact()
),
New Column( "region",
Character,
Set Each Value(
Match( Random Integer( 1, 5 ),
1, "North",
2, "South",
3, "West",
4, "East",
"Ccentre"
)
)
),
New Column( "age",
Character,
Set Each Value(
temp = Random Integer( 18, 80 );
If(
temp <= 30, "Young",
temp <= 50, "Middle Age",
"Old"
);
)
)
)
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausVielen Dank für Ihre Antwort
Die Idee besteht darin, die Untersuchung an einer repräsentativen Stichprobe der Bevölkerung der gesamten Stadt durchzuführen
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausVielen Dank für Ihre Bemühungen
Ihr Vorschlag hat mir eine gute Idee gegeben, meinen Datensatz effektiv zu untersuchen, indem ich zuerst den lokalen Datenfilter im Graph Builder verwende. Für meine Daten scheint es, dass bei einigen Kombinationen (wie z. B. Männern mittleren Alters, die in der zentralen Region leben und ein Einkommen aus IM haben) die Stichprobe 0 ist.
Die ganze Idee, auf diese Weise eine repräsentative Stichprobe zu erstellen, scheint nun nicht mehr praktikabel. Die Stichprobentechnik, die von Anfang an hätte verwendet werden sollen, ist eine der Wahrscheinlichkeitsstichprobentechniken. Dies könnte eine geschichtete Zufallsstichprobe sein, bei der nur die 5 Regionen als Schichten verwendet werden. Dann wird aus jeder Schicht eine Zufallsstichprobe entnommen.
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausVielen Dank für Ihre Zeit und Mühe
Die ganze Idee, auf diese Weise eine repräsentative Stichprobe zu erstellen, scheint nun nicht mehr praktikabel. Die Stichprobentechnik, die von Anfang an hätte verwendet werden sollen, ist eine der Wahrscheinlichkeitsstichprobentechniken. Dies könnte eine geschichtete Zufallsstichprobe sein, bei der nur die 5 Regionen als Schichten verwendet werden. Dann wird aus jeder Schicht eine Zufallsstichprobe entnommen.
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausVielen Dank für Ihre Antwort
Ich glaube, du hast recht,
Die ganze Idee, auf diese Weise eine repräsentative Stichprobe zu erstellen, scheint nun nicht mehr praktikabel. Die Stichprobentechnik, die von Anfang an hätte verwendet werden sollen, ist eine der Wahrscheinlichkeitsstichprobentechniken. Dies könnte eine geschichtete Zufallsstichprobe sein, bei der nur die 5 Regionen als Schichten verwendet werden. Dann wird aus jeder Schicht eine Zufallsstichprobe entnommen.
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausDas klingt nach einem vernünftigen Ansatz
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausSie haben im Originalbeitrag also Folgendes verlangt:
unverhältnismäßige geschichtete Zufallsstichprobe , richtig?
Und die Schichten sind die 90 Untergruppen Geschlecht x Alter x Einkommen x Region.
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausNachdem ich verschiedene Stichprobentechniken in Lehrbüchern sorgfältig durchgesehen hatte, stellte ich fest, dass meine ursprüngliche Idee zu keiner davon passte. Um eine repräsentative Stichprobe zu erhalten, sollten Sie eine der Wahrscheinlichkeitsstichprobentechniken wählen (die jedem Befragten der untersuchten Population die gleiche Wahrscheinlichkeit oder Chance bieten, in die Stichprobe aufgenommen zu werden). Diese Techniken umfassen 4 Typen:
- –Einfache Zufallsstichproben
- –Systematische Probenahme
- –Cluster-Sampling
- –Geschichtete Stichproben
Deshalb denke ich, dass man von Anfang an eine geschichtete Stichprobe hätte verwenden können, um die Stichprobe für die Studie zu erhalten ( indem man nur die 5 Regionen als Schichten verwendet. Dann wird aus jeder Schicht eine Zufallsstichprobe entnommen). Die geschichteten, Cluster- und Quotenstichprobenverfahren erfordern eine Einteilung der Population in sich gegenseitig ausschließende Gruppen , was bei meiner Frage nicht der Fall ist. Deshalb denke ich, dass meine ursprüngliche Frage überhaupt nicht richtig ist.
:
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausHm, wenn wir diesen Fall mit DOE vergleichen …
In einem gut konzipierten DOE wählt man nicht einmal aus jeder der 90 Teilmengen eine (einzelne) Stichprobe aus.
[1 Stichprobe aus jeder der 90 Teilmengen: „vollfaktoriell“ -> viel zu „teuer“]
Vielleicht ist es also neben einer gewissen Vereinfachung des Modells auch in Ordnung, einen Datensatz mit fehlenden Einträgen an einigen Schnittpunkten zu verwenden? Und einen Schritt weiter: Vielleicht kann man durch absichtliches Entfernen (einiger Datenpunkte aus) einigen Schnittpunkten etwas Nützliches zwischen geschichteten Eingabedaten und einem ausgeglichenen DOE erreichen?
@Victor_G hat vielleicht einen Vorschlag?
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz aus
Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausFür den Ansatz "Zufallsstichprobe - pro Variante" aus
https://community.jmp.com/t5/Discussions/How-to-Select-a-quota-sample-from-a-data-set/mp/821078/highlight/true#M100011
Ich habe ein JSL-Snippet erstellt, um beliebige Daten zu schichten – wählen Sie einfach die Spalten aus und klicken Sie auf „OK“.
librecall kann hier heruntergeladen werden: Recall Function Library
Names Default To Here( 1 );
verbose=0;
//Include( ".\libRecall_v2.jsl" );
objects = {"si^myCols", "s^Ncolumns", "s^Nfolds"};
values = {{}, {1}, {5}};
Try( // issue with projects
librecall:genArrays( objects, values, "Stratify", verbose )
);
dt = Current Data Table();
nw = New Window( "K Fold Creator",
<<TYPE></TYPE>Betreff: So wählen Sie eine Quotenstichprobe aus einem Datensatz ausHallo @hogi und @Samira ,
Ich habe mir gerade schnell den Beitrag und die Antworten durchgelesen, und mir ist Ihr Ziel immer noch nicht hundertprozentig klar, da ein „repräsentativer“ Datensatz unterschiedliche Auswirkungen haben kann:
Möchten Sie eine Reaktion/ein Phänomen anhand demografischer Daten (Alter, Geschlecht, Standort usw.) besser verstehen und modellieren, oder möchten Sie eine „repräsentative“ Stichprobe, um Rückschlüsse/Verallgemeinerungen bezüglich der Bevölkerung ziehen zu können?
- Im ersten Fall ist es am besten, einen ausgewogenen Datensatz zu haben, also ausgewogene Ebenen für Alter, Geschlecht, Standort usw., da Sie die Antwort/das Phänomen mit bestimmten Attributen verknüpfen möchten, um die Modellierung und Interpretation der Ergebnisse zu erleichtern.
Mithilfe eines DoE-Ansatzes können Sie entweder Ihr benutzerdefiniertes Design „von Grund auf“ erstellen und die richtige Person entsprechend der verschiedenen Attribute finden oder Ihr D-optimales Design dank eines Kandidatensatzansatzes mit gesammelten demografischen Daten erstellen. Dies würde Ihnen helfen, die verschiedenen demografischen Faktoren so unabhängig und individuell wie möglich zu untersuchen und zu analysieren.
- Im zweiten Fall, weil Sie die Ergebnisse der Stichprobe auf die Bevölkerung verallgemeinern möchten, benötigen Sie eine repräsentative Stichprobe (die genauso „verzerrt“ ist wie die Bevölkerung) Ihrer Bevölkerung. Vielleicht haben Sie also nicht 50/50 Männer/Frauen, da die Bevölkerung beispielsweise auf 40/60 verzerrt sein könnte, also müssen Sie diese demografische Besonderheit berücksichtigen.
Es kann hilfreich sein, einen geschichteten Ansatz für die demografischen Daten zu verwenden, die Sie in Ihren 5 Regionen gesammelt haben. Möglicherweise müssen Sie zwei Aspekte berücksichtigen: die Erstellung von Stichproben Ihrer Regionen basierend auf ihrer Bevölkerung (stellen Sie sicher, dass der Anteil Ihrer Stichprobe im Verhältnis zur Bevölkerung der Region gleich ist, sodass eine stark/dicht besiedelte Region mehr Menschen im Stichprobendatensatz hat) und basierend auf den demografischen Daten (Geschlecht, Alter usw.).
In beiden Fällen würde ich empfehlen, möglichst viele Daten über die Bevölkerung Ihrer fünf Regionen zu sammeln, um Ihre Methode zur Stichprobenerstellung besser zu verstehen und zu unterstützen.
Nebenbei bemerkt, Sie können auch Literatur über die Segmentierung demografischer Daten finden. Ich bin mir nicht sicher, ob die hier vorgeschlagene Alterssegmentierung wirklich hilfreich ist, da es unterschiedliche Altersgruppen gibt: 18–30 (12 Jahre), 31–50 (19 Jahre), 51+ (20+ Jahre?). Und wie definieren Sie das Haushaltseinkommensniveau niedrig/mittel und hoch? Basierend auf Analysen oder vordefinierten Schwellenwerten/Kriterien?
Einige Beispiele zur demografischen Segmentierung: https://xperiencify.com/what-is-demographic-segmentation/
Ich hoffe, diese Antwort gibt Ihnen ein paar Anregungen,