Problema comparațiilor multiple
Problema comparațiilor multiple apare atunci când un cercetător verifică în mod repetat diferite variabile/eșantioane unele față de altele pentru a stabili semnificația statistică. Doar prin simplă întâmplare, ne așteptăm să găsim ocazional un rezultat semnificativ din punct de vedere statistic.
În acest exercițiu vei lucra cu date despre salariile angajaților din orașul Austin, TX. Vei compara salariile acestora cu date generate aleatoriu. Vei vedea cât de des aceste date aleatorii sunt „semnificative" în explicarea salariilor angajaților. Este evident că orice astfel de „semnificație" ar fi pur întâmplătoare, deoarece numerele aleatorii nu sunt de mare ajutor în explicarea vreunui fenomen!
Un DataFrame cu salariile ofițerilor de poliție (police_salaries_df) a fost deja încărcat pentru tine, la fel și pachetele pandas ca pd, NumPy ca np, Matplotlib ca plt și stats din SciPy.
Acest exercițiu face parte din cursul
Bazele inferenței în Python
Instrucțiuni pentru exercițiu
- Stochează numărul de persoane din set de date în
n_rows(fiecare rând reprezintă o persoană) și inițializează numărul de rezultate semnificative,n_significant, la zero. - Scrie o buclă
forcare rulează de 1000 de ori și genereazăn_rowsnumere aleatorii. - Calculează R-ul lui Pearson și valoarea p asociată între aceste numere generate aleatoriu și salariile ofițerilor de poliție.
- Dacă valoarea p este semnificativă la 5%, adaugă unu la
n_significantfolosind operatorul+=.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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)