b-значение для района Паркфилд
ECDF хорошо выявляет эффект «выпадения» данных, что было заметно для магнитуд ниже 1. Поскольку землетрясений с магнитудой выше 3 достаточно, в качестве порога полноты каталога можно использовать mt = 3. С этим порогом вычислите b-значение для района Паркфилд за период с 1950 по 2016 год, а также 95%-й доверительный интервал. Выведите результаты на экран. Массив всех магнитуд доступен в переменной mags.
Наложите теоретическую функцию распределения (CDF) экспоненциального распределения, чтобы проверить, соответствует ли район Паркфилд закону Гутенберга–Рихтера.
Это упражнение является частью курса
Примеры применения статистического мышления
Инструкции к упражнению
- Вычислите b-значение и 95%-й доверительный интервал с помощью функции
b_value(). Используйте 10 000 бутстрэп-реплик. - С помощью
np.random.exponential()получите 100 000 выборок из теоретического распределения. Среднее значение распределения равноb/np.log(10); не забудьте прибавитьmtк полученным выборкам, чтобы корректно задать параметр сдвига. Сохраните результат вm_theor. - Постройте ECDF для
m_theorв виде линии. - Постройте ECDF для всех магнитуд выше
mtв виде точек. - Нажмите Отправить ответ, чтобы отобразить график и вывести на экран b-значение и доверительный интервал.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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))