Probleem van multiple comparisons
Het probleem van multiple comparisons ontstaat wanneer een onderzoeker herhaaldelijk verschillende variabelen/steekproeven met elkaar vergelijkt op significantie. Door toeval alleen al verwachten we af en toe een resultaat dat statistisch significant lijkt.
In deze oefening werk je met salarisgegevens van werknemers van de City of Austin, TX. Je vergelijkt hun salarissen met willekeurig gegenereerde data. Je ziet hoe vaak deze willekeurige data "significant" is in het verklaren van de salarissen van werknemers. Duidelijk is dat zo'n "significantie" schijn is, want willekeurige getallen helpen niet echt om iets te verklaren!
Een DataFrame met salarissen van politieagenten (police_salaries_df) is voor je geladen, net als de pakketten pandas als pd, NumPy als np, Matplotlib als plt, en stats uit SciPy.
Deze oefening maakt deel uit van de cursus
Basis van inferentie in Python
Oefeninstructies
- Sla het aantal mensen in de gegevensset op in
n_rows(elke rij is een persoon), en initialiseer het aantal significante resultaten,n_significant, op nul. - Schrijf een
for-lus die 1000 keer draait enn_rowswillekeurige getallen genereert. - Bereken Pearson's R en de bijbehorende p-waarde tussen deze willekeurig gegenereerde getallen en de salarissen van de politieagenten.
- Als de p-waarde significant is op 5%, tel er dan één bij op bij
n_significantmet de+=-operator.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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)