Zacznij terazZacznij za darmo

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

Zobacz kurs

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 zmiennej time_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 zmiennej time_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 zmiennej time_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=-10 oraz max_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()
Edytuj i uruchom kod