Mínimos quadrados com `statsmodels`
Várias bibliotecas em Python oferecem interfaces abstratas e práticas, para que você não precise lidar sempre de forma tão explícita com a parte mecânica da otimização do modelo.
Como exemplo, neste exercício, você vai usar a biblioteca statsmodels em um fluxo de trabalho mais de alto nível e generalizado para construir um modelo usando otimização por mínimos quadrados (minimização do RSS).
Para ajudar você a começar, nós já carregamos os dados com x_data, y_data = load_data() e armazenamos tudo em um pandas DataFrame com os nomes de colunas x_column e y_column usando df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))
Este exercicio faz parte do curso
Introdução à Modelagem Linear em Python
Instruções do exercicio
- Construa um modelo com
ols()usando a fórmulaformula="y_column ~ x_column"e os dadosdata=df, e depois chame.fit()para ajustá-lo aos dados. - Use
model_fit.predict()para obter os valoresy_model. - Usando a função fornecida
plot_data_with_model(), sobreponha osy_datacomy_model. - Extraia os valores dos parâmetros do modelo
a0ea1a partir demodel_fit.params. - Use
compute_rss_and_plot_fit()para confirmar que esses resultados são consistentes com as fórmulas analíticas implementadas comnumpy.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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)