Führen Sie geschichtete Stichproben in Pandas durch

Preet Sanghavi 21 Juni 2023
  1. Geschichtete Stichproben in der Statistik
  2. Führen Sie geschichtete Stichproben in Pandas durch
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.

  1. 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.
  2. Bestimmen Sie die Stichprobengröße. Wir müssen zu diesem Zeitpunkt entscheiden, ob unsere Stichprobe groß oder klein sein wird.
  3. 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.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub

Verwandter Artikel - Pandas Statistics