Метод наименьших квадратов с `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)