Экстраполяция: за пределами данных
В этом упражнении мы рассмотрим риски экстраполяции. На рисунке показан профиль горного маршрута. Участок тропы, выделенный чёрным, выглядит линейным — на его основе была построена модель. Однако линия наилучшего соответствия, показанная красным, плохо описывает данные за пределами исходной «области определения»: при выходе на новые данные, отмеченные синим, точность заметно снижается.
Если мы хотим использовать модель для предсказания высоты и при этом оставаться в допустимых пределах погрешности, каковы наименьшее и наибольшее значения независимой переменной x, при которых модель ещё применима?
Для решения задачи используйте предварительно загруженные переменные x_data, y_data, y_model и функцию plot_data_model_tolerance().

Это упражнение является частью курса
Введение в линейное моделирование на Python
Инструкции к упражнению
- С помощью
np.abs()вычислите остатки как разностиy_data - y_model. - Найдите значения
.min()и.max()переменнойx, при которыхresidualsменьшеtolerance = 100метров. - Используйте
np.min()иnp.max(), чтобы вывести диапазон (наибольшее и наименьшее) значенийx_good. - Используйте предопределённую функцию
plot_data_model_tolerance(), чтобы сравнить данные, модель и диапазон значенийx_good, для которыхresiduals < toleranceравноTrue.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Compute the residuals, "data - model", and determine where [residuals < tolerance]
residuals = np.abs(____ - ____)
tolerance = 100
x_good = x_data[____ < ____]
# Find the min and max of the "good" values, and plot y_data, y_model, and the tolerance range
print('Minimum good x value = {}'.format(np.____(____)))
print('Maximum good x value = {}'.format(np.____(____)))
fig = plot_data_model_tolerance(x_data, y_data, y_model, tolerance)