Moindres carrés avec `statsmodels`
Plusieurs bibliothèques Python proposent des interfaces pratiques et abstraites pour éviter de gérer explicitement toute la mécanique d’optimisation du modèle.
Dans cet exercice, à titre d’exemple, vous allez utiliser la bibliothèque statsmodels dans un flux de travail plus haut niveau et généralisé pour construire un modèle à l’aide de l’optimisation par moindres carrés (minimisation du RSS).
Pour vous faire gagner du temps, nous avons préchargé les données via x_data, y_data = load_data() et les avons stockées dans un DataFrame pandas avec les noms de colonnes x_column et y_column en utilisant df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))
Cet exercice fait partie du cours
Introduction à la modélisation linéaire en Python
Instructions
- Construisez un modèle avec
ols()en utilisantformula="y_column ~ x_column"etdata=df, puis appliquez.fit()aux données. - Utilisez
model_fit.predict()pour obtenir les valeursy_model. - À l’aide de la fonction fournie
plot_data_with_model(), superposezy_dataavecy_model. - Extrayez les paramètres du modèle
a0eta1depuismodel_fit.params. - Utilisez
compute_rss_and_plot_fit()pour vérifier que ces résultats sont cohérents avec les formules analytiques implémentées avecnumpy.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)