Visualiser l'échantillonnage par permutation
Pour mieux comprendre le fonctionnement de l'échantillonnage par permutation, vous allez générer des échantillons par permutation et les examiner graphiquement.
Nous allons utiliser de nouveau les données de la station météo de Sheffield, cette fois en considérant les précipitations mensuelles en juin (mois sec) et en novembre (mois pluvieux). Nous nous attendons à ce que leurs distributions diffèrent; nous prendrons donc des échantillons par permutation pour voir à quoi leurs ECDF auraient l'air si elles étaient identiquement distribuées.
Les données sont stockées dans les tableaux NumPy rain_june et rain_november.
Rappel : permutation_sample() a la signature permutation_sample(data_1, data_2) et retourne permuted_data[:len(data_1)], permuted_data[len(data_1):], où permuted_data = np.random.permutation(np.concatenate((data_1, data_2))).
Cette activité fait partie du cours
Réflexion statistique en Python (partie 2)
Instructions de l’exercice
- Écrivez une boucle
forpour générer 50 échantillons par permutation, calculer leurs ECDF et les tracer.- Générez une paire d'échantillons par permutation à partir de
rain_juneetrain_novemberà l'aide de votre fonctionpermutation_sample(). - Générez les valeurs
xetyd'une ECDF pour chacun des deux échantillons par permutation en utilisant votre fonctionecdf(). - Tracez l'ECDF du premier échantillon par permutation (
x_1ety_1) sous forme de points. Faites de même pour le deuxième échantillon par permutation (x_2ety_2).
- Générez une paire d'échantillons par permutation à partir de
- Générez les valeurs
xetypour les ECDF des donnéesrain_juneetrain_novemberet tracez les ECDF en utilisant respectivement les arguments nomméscolor='red'etcolor='blue'. - Donnez un titre à vos axes, appliquez une marge de 2 % et affichez votre graphique. Cela a été fait pour vous, alors cliquez simplement sur Soumettre pour voir le graphique!
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
for _ in ____:
# Generate permutation samples
perm_sample_1, perm_sample_2 = ____
# Compute ECDFs
x_1, y_1 = ____
x_2, y_2 = ____
# Plot ECDFs of permutation sample
_ = plt.plot(____, ____, marker='.', linestyle='none',
color='red', alpha=0.02)
_ = plt.plot(____, ____, marker='.', linestyle='none',
color='blue', alpha=0.02)
# Create and plot ECDFs from original data
x_1, y_1 = ____
x_2, y_2 = ____
_ = plt.plot(x_1, y_1, marker='.', linestyle='none', color='red')
_ = plt.plot(x_2, y_2, marker='.', linestyle='none', color='blue')
# Label axes, set margin, and show plot
plt.margins(0.02)
_ = plt.xlabel('monthly rainfall (mm)')
_ = plt.ylabel('ECDF')
plt.show()