CommencezCommencez gratuitement

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)

Voir le cours

Instructions de l’exercice

  • Écrivez une boucle for pour 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_june et rain_november à l'aide de votre fonction permutation_sample().
    • Générez les valeurs x et y d'une ECDF pour chacun des deux échantillons par permutation en utilisant votre fonction ecdf().
    • Tracez l'ECDF du premier échantillon par permutation (x_1 et y_1) sous forme de points. Faites de même pour le deuxième échantillon par permutation (x_2 et y_2).
  • Générez les valeurs x et y pour les ECDF des données rain_june et rain_november et tracez les ECDF en utilisant respectivement les arguments nommés color='red' et color='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()
Modifier et exécuter le code