CommencerCommencer gratuitement

La valeur b pour Parkfield

L’ECDF met efficacement en évidence le « roll-off », comme vous avez pu le voir en dessous de la magnitude 1. Comme il y a de nombreux séismes au-dessus de la magnitude 3, vous pouvez utiliser mt = 3 comme seuil de complétude. Avec ce seuil, calculez la valeur b pour la région de Parkfield de 1950 à 2016, ainsi que l’intervalle de confiance à 95 %. Affichez les résultats à l’écran. La variable mags, qui contient toutes les magnitudes, est déjà disponible dans votre espace de travail.

Superposez la CDF exponentielle théorique pour vérifier que la région de Parkfield suit la loi de Gutenberg-Richter.

Cet exercice fait partie du cours

Études de cas en pensée statistique

Afficher le cours

Instructions

  • Calculez la valeur b et l’intervalle de confiance à 95 % avec votre fonction b_value(). Utilisez 10 000 réplicats bootstrap.
  • Utilisez np.random.exponential() pour tirer 100 000 échantillons de la distribution théorique. La moyenne de la distribution est b/np.log(10), et vous devez ajouter mt à vos échantillons pour gérer correctement le paramètre de position. Stockez le résultat dans m_theor.
  • Tracez l’ECDF de m_theor sous forme de ligne.
  • Tracez l’ECDF de toutes les magnitudes supérieures à mt sous forme de points.
  • Cliquez sur "Soumettre la réponse" pour afficher le graphique et imprimer à l’écran la valeur b et l’intervalle de confiance.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# Compute b-value and 95% confidence interval
b, conf_int = ____(____, ____, ____=[____, ____], n_reps=____)

# Generate samples to for theoretical ECDF
m_theor = ____(____, size=____) + ____

# Plot the theoretical CDF
_ = ____(*____)

# Plot the ECDF (slicing mags >= mt)
_ = plt.plot(*____(____[____ >= ____]), marker='.', linestyle='none')

# Pretty up and show the plot
_ = plt.xlabel('magnitude')
_ = plt.ylabel('ECDF')
_ = plt.xlim(2.8, 6.2)
plt.show()

# Report the results
print("""
b-value: {0:.2f}
95% conf int: [{1:.2f}, {2:.2f}]""".format(b, *conf_int))
Modifier et exécuter le code