Testarea ipotezelor – Diferența dintre medii
Vrem să testăm ipoteza că există o diferență între donațiile medii primite din A și B. Anterior, ai învățat cum să generezi o singură permutare a datelor. Acum vom genera o distribuție nulă a diferenței dintre medii și vom calcula valoarea p.
Pentru distribuția nulă, generăm mai multe seturi de date permutate și stocăm diferența dintre medii pentru fiecare caz. Apoi calculăm statistica de test ca diferența dintre medii în setul de date original. În final, aproximăm valoarea p calculând de două ori fracția cazurilor în care diferența este mai mare sau egală cu valoarea absolută a statisticii de test (ipoteză bilaterală). O valoare p mai mică decât, să zicem, 0,05 poate indica semnificație statistică.
Acest exercițiu face parte din cursul
Simulare statistică în Python
Instrucțiuni pentru exercițiu
- Generează mai multe permutări ale
donations_Așidonations_Bși atribuie-le variabileiperm. - Setează
samplesca diferența dintre mediilepermuted_A_datasetsșipermuted_B_datasets. Folosimaxis=1pentru a obține câte o medie pentru fiecare set de date în parte, nu o medie globală. - Setează
test_statca diferența dintre mediiledonations_Așidonations_B. - Calculează valoarea p
p_valca dublul fracției dinsamplescare este mai mare sau egală cu valoarea absolută atest_stat.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# Generate permutations equal to the number of repetitions
perm = np.array([np.random.____(len(____) + len(____)) for i in range(reps)])
permuted_A_datasets = data[perm[:, :len(donations_A)]]
permuted_B_datasets = data[perm[:, len(donations_A):]]
# Calculate the difference in means for each of the datasets
samples = np.mean(____, axis=1) - np.mean(____, axis=1)
# Calculate the test statistic and p-value
test_stat = ____
p_val = 2*np.sum(____ >= np.abs(____))/reps
print("p-value = {}".format(p_val))