НачатьНачать бесплатно

Метод наименьших квадратов с `statsmodels`

Многие библиотеки Python предоставляют удобные высокоуровневые интерфейсы, которые избавляют вас от необходимости вручную управлять всеми деталями оптимизации модели.

В этом упражнении вы воспользуетесь библиотекой statsmodels в рамках обобщённого высокоуровневого рабочего процесса для построения модели методом наименьших квадратов (минимизация RSS).

Для удобства данные уже загружены с помощью x_data, y_data = load_data() и сохранены в DataFrame с именами столбцов x_column и y_column следующим образом: df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))

Это упражнение является частью курса

Введение в линейное моделирование на Python

Посмотреть курс

Инструкции к упражнению

  • Постройте модель ols() с параметрами formula="y_column ~ x_column" и data=df, затем подгоните её к данным с помощью .fit().
  • Используйте model_fit.predict(), чтобы получить значения y_model.
  • С помощью предоставленной функции plot_data_with_model() наложите y_model поверх y_data.
  • Извлеките параметры модели a0 и a1 из model_fit.params.
  • Используйте compute_rss_and_plot_fit(), чтобы убедиться, что полученные результаты согласуются с аналитическими формулами, реализованными через numpy.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Pass data and `formula` into ols(), use and `.fit()` the model to the data
model_fit = ols(____="y_column ~ x_column", ____=df).____()

# Use .predict(df) to get y_model values, then over-plot y_data with y_model
y_model = model_fit.____(df)
fig = plot_data_with_model(x_data, ____, ____)

# Extract the a0, a1 values from model_fit.params
a0 = model_fit.____['Intercept']
a1 = model_fit.____['x_column']

# Visually verify that these parameters a0, a1 give the minimum RSS
fig, rss = compute_rss_and_plot_fit(a0, a1)
Редактировать и запускать код