Hypotestestning – skillnad i medelvärden
Vi vill testa hypotesen att det finns en skillnad i genomsnittliga donationer från A och B. I föregående övning lärde du dig att generera en permutation av data. Nu ska vi generera en nollfördelning av skillnaden i medelvärden och sedan beräkna p-värdet.
För nollfördelningen genererar vi först flera permuterade datamängder och lagrar skillnaden i medelvärden för varje fall. Sedan beräknar vi teststatistikan som skillnaden i medelvärden för den ursprungliga datamängden. Slutligen approximerar vi p-värdet genom att beräkna dubbla andelen fall där skillnaden är större än eller lika med det absoluta värdet av teststatistikan (tvåsidig hypotes). Ett p-värde under exempelvis 0,05 kan indikera statistisk signifikans.
Den här övningen är en del av kursen
Statistisk simulering i Python
Övningsinstruktioner
- Generera flera permutationer av
donations_Aochdonations_Boch tilldela resultatet tillperm. - Sätt
samplestill skillnaden i medelvärden förpermuted_A_datasetsochpermuted_B_datasets. Vi sätteraxis=1för att beräkna ett medelvärde per datamängd i stället för ett totalt medelvärde. - Sätt
test_stattill skillnaden i medelvärden fördonations_Aochdonations_B. - Beräkna p-värdet
p_valsom dubbla andelen värden isamplessom är större än eller lika med det absoluta värdet avtest_stat.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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))