Führen Sie geschichtete Stichproben in Pandas durch
Im folgenden Tutorial erfahren Sie, wie Sie geschichtete Stichproben in Pandas in einem Datenrahmen durchführen.
Geschichtete Stichproben in der Statistik
Die geschichtete Probenahme ist eine Strategie zur Gewinnung von Proben, die für die Bevölkerung repräsentativ sind. Die Aufteilung der Bevölkerung in homogene Gruppierungen, die als Schichten bezeichnet werden, und die zufällige Stichprobenziehung von Daten aus jeder Schicht verringert die Verzerrung bei der Stichprobenauswahl.
Wenn sich die Mittelwerte jeder Schicht unterscheiden, wird in der Statistik eine geschichtete Stichprobe verwendet. Geschichtete Stichproben werden beim maschinellen Lernen häufig verwendet, um Testdatensätze für die Bewertung von Modellen zu erstellen, hauptsächlich wenn ein Datensatz umfangreich und uneinheitlich ist.
Führen Sie geschichtete Stichproben in Pandas durch
Der erste Schritt bei der Durchführung des geschichteten Samplings wäre das Importieren der Pandas-Bibliothek.
import pandas as pd
Lassen Sie uns nun die Schritte lernen, die bei der geschichteten Stichprobenziehung erforderlich sind.
- Trennen Sie die Bevölkerung in Schichten. In diesem Stadium wird die Population anhand vergleichbarer Merkmale in Schichten eingeteilt, wobei jedes Individuum genau einer Schicht angehören muss.
- Bestimmen Sie die Stichprobengröße. Wir müssen zu diesem Zeitpunkt entscheiden, ob unsere Stichprobe groß oder klein sein wird.
- Jede Schicht nach dem Zufallsprinzip abtasten. Unverhältnismäßige Stichproben, bei denen die Stichprobengröße jeder Schicht unabhängig von ihrer Bevölkerungsgröße gleich ist, oder proportionale Stichproben, bei der die Stichprobengröße jeder Schicht proportional zu ihrer Bevölkerungsgröße ist, werden verwendet, um Zufallsstichproben aus jeder Schicht auszuwählen.
Wir werden nun eine Stichprobe betrachten und eine unverhältnismäßige und verhältnismäßige geschichtete Stichprobe durchführen. Von 10 Schülern werden 6 Schüler anhand ihrer Noten ausgewählt.
Lassen Sie uns zunächst einen Beispieldatenrahmen erstellen, an dem wir arbeiten können. Hier nehmen wir 4 Spalten, einschließlich Name, ID, Klasse und Kategorie.
Wir erstellen diesen Datenrahmen mit dem folgenden Code.
students = {
"Name": [
"sanay",
"shivesh",
"rutwik",
"preet",
"yash",
"mann",
"pritesh",
"hritesh",
"raj",
"tarun",
],
"ID": ["001", "002", "003", "004", "005", "006", "007", "008", "009", "010"],
"Grade": ["A", "A", "C", "B", "B", "B", "C", "A", "A", "A"],
"Category": [2, 3, 1, 3, 2, 3, 3, 1, 2, 1],
}
df = pd.DataFrame(students)
print(df)
Ausgang:
Name ID Grade Category
0 sanay 001 A 2
1 shivesh 002 A 3
2 rutwik 003 C 1
3 preet 004 B 3
4 yash 005 B 2
5 mann 006 B 3
6 pritesh 007 C 3
7 hritesh 008 A 1
8 raj 009 A 2
9 tarun 010 A 1
Es ist erwähnenswert, dass 50 Prozent der Kinder in die Klasse A, 30 Prozent in die Klasse B und 20 Prozent in die Klasse C gehen. Wir werden jetzt eine disproportionale Stichprobenziehung durchführen und eine Stichprobe von 6 Schülern erstellen.
Teilen Sie die Schüler für eine unverhältnismäßige Stichprobenentnahme je nach ihrer Note in Gruppen auf, d. h. A, B, C, und verwenden Sie dann die Stichprobenfunktion, um 2 Schüler aus jeder Klassengruppe nach dem Zufallsprinzip auszuwählen. Wir tun dies mit dem folgenden Code.
df.groupby("Grade", group_keys=False).apply(lambda x: x.sample(2))
Ausgang:
Name ID Grade Category
0 sanay 001 A 2
7 hritesh 008 A 1
5 mann 006 B 3
4 yash 005 B 2
2 rutwik 003 C 1
6 pritesh 007 C 3
Für eine proportionale Auswahl teilen Sie die Schüler je nach ihrer Note in Gruppen auf, d. h. A, B, C, und ziehen dann eine Zufallsstichprobe aus jeder Gruppe basierend auf dem Bevölkerungsprozentsatz mit Pandas groupby()
. Die Gesamtstichprobengröße beträgt 60 % der Bevölkerung (0,6).
Wir führen dies mit dem folgenden Code aus.
df.groupby("Grade", group_keys=False).apply(lambda x: x.sample(frac=0.6))
Ausgang:
Name ID Grade Category
7 hritesh 008 A 1
9 tarun 010 A 1
0 sanay 001 A 2
3 preet 004 B 3
5 mann 006 B 3
6 pritesh 007 C 3
Daher können wir mit den oben genannten Ansätzen erfolgreich proportionale und disproportionale Stichproben für einen Datenrahmen in Pandas durchführen.