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
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 undn_rowsZufallszahlen 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_significantum 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)