LoslegenKostenlos loslegen

Problem der multiplen Vergleiche

Das Problem der multiplen Vergleiche tritt auf, wenn Forschende wiederholt verschiedene Variablen/Stichproben miteinander auf Signifikanz prüfen. Durch reinen Zufall erwarten wir gelegentlich ein statistisch signifikantes Ergebnis zu finden.

In dieser Übung arbeitest du mit Gehaltsdaten von Beschäftigten der Stadt Austin, TX. Du vergleichst deren Gehälter mit zufällig generierten Daten. So siehst du, wie oft diese Zufallsdaten „signifikant“ darin sind, die Gehälter der Beschäftigten zu erklären. Offensichtlich wäre eine solche „Signifikanz“ nur scheinbar, denn Zufallszahlen helfen nicht wirklich, etwas zu erklären!

Ein DataFrame mit Gehältern von Polizeikräften (police_salaries_df) wurde für dich geladen, ebenso die Pakete pandas als pd, NumPy als np, Matplotlib als plt und stats aus SciPy.

Diese Übung ist Teil des Kurses

Grundlagen der Inferenz in Python

Kurs anzeigen

Anleitung zur Übung

  • Speichere die Anzahl der Personen im Datensatz in n_rows (jede Zeile entspricht einer Person) und initialisiere die Anzahl signifikanter Ergebnisse, n_significant, mit null.
  • Schreibe eine for-Schleife, die 1000-mal läuft und n_rows Zufallszahlen erzeugt.
  • Berechne Pearsons R und den zugehörigen p-Wert zwischen diesen zufällig generierten Zahlen und den Gehältern der Polizeikräfte.
  • Wenn der p-Wert auf dem 5-%-Niveau signifikant ist, erhöhe n_significant um eins mit dem Operator +=.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Compute number of rows and initialize n_significant
n_rows = ____
n_significant = ____

# For loop which generates n_rows random numbers 1000 times
for i in ____:
  random_nums = np.random.uniform(size=____)
  # Compute correlation between random_nums and police salaries
  r, p_value = stats.____(____, random_nums)
  # If the p-value is significant at 5%, increment n_significant
  if ____ < ____:
    ____ += 1
    
print(n_significant)
Code bearbeiten und ausführen