Szacowanie czasu między trzęsieniami ziemi w Parkfield
W tym ćwiczeniu najpierw obliczysz najlepsze estymaty parametrów dla modeli wykładniczego i gaussowskiego opisujących czasy między kolejnymi trzęsieniami ziemi. Następnie wyrokujesz teoretyczne CDF dla obu modeli wraz z formalnym ECDF rzeczywistych czasów między trzęsieniami w Parkfield.
To ćwiczenie jest częścią kursu
Studia przypadków w myśleniu statystycznym
Instrukcje do ćwiczenia
- Oblicz średni czas między trzęsieniami ziemi i zapisz go jako
mean_time_gap. Czasy między głównymi trzęsieniami, wyrażone w latach, są przechowywane w zmiennejtime_gap. - Oblicz odchylenie standardowe czasów między trzęsieniami i zapisz je jako
std_time_gap. - Użyj
np.random.exponential(), aby wylosować 10 000 próbek z rozkładu wykładniczego o odpowiedniej średniej. Zapisz je w zmiennejtime_gap_exp. - Użyj
np.random.normal(), aby wylosować 10 000 próbek z rozkładu normalnego o odpowiedniej średniej i odchyleniu standardowym. Zapisz je w zmiennejtime_gap_norm. - Wyrysuj teoretyczne CDF – po jednej linii kodu dla każdego modelu – korzystając z podejścia
*dcst.ecdf()przedstawionego wcześniej w tym rozdziale. - Wyrysuj ECDF, używając argumentów kluczowych
formal=True,min_x=-10orazmax_x=50.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Compute the mean time gap: mean_time_gap
mean_time_gap = ____
# Standard deviation of the time gap: std_time_gap
std_time_gap = ____
# Generate theoretical Exponential distribution of timings: time_gap_exp
time_gap_exp = ____
# Generate theoretical Normal distribution of timings: time_gap_norm
time_gap_norm = ____
# Plot theoretical CDFs
_ = plt.plot(*____)
_ = plt.plot(*____)
# Plot Parkfield ECDF
_ = plt.plot(*____(____, ____=____, ____=____, ____=____))
# Add legend
_ = plt.legend(('Exp.', 'Norm.'), loc='upper left')
# Label axes, set limits and show plot
_ = plt.xlabel('time gap (years)')
_ = plt.ylabel('ECDF')
_ = plt.xlim(-10, 50)
plt.show()