CommencezCommencez gratuitement

Moindres carrés avec `statsmodels`

Plusieurs bibliothèques Python offrent des interfaces pratiques et abstraites pour éviter d'avoir à gérer explicitement toute la mécanique d'optimisation du modèle.

Dans cet exercice, à titre d'exemple, vous utiliserez la bibliothèque statsmodels dans un flux de travail plus haut niveau et générique pour construire un modèle à l'aide de l'optimisation aux moindres carrés (minimisation du RSS).

Pour vous aider à démarrer, nous avons préchargé les données avec 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))

Cette activité fait partie du cours

Introduction aux modèles linéaires en Python

Voir le cours

Instructions de l’exercice

  • Construisez un modèle avec ols() en utilisant formula="y_column ~ x_column" et data=df, puis appliquez .fit() aux données.
  • Utilisez model_fit.predict() pour obtenir les valeurs y_model.
  • En vous servant de la fonction fournie plot_data_with_model(), superposez y_data et y_model.
  • Extrayez les paramètres du modèle a0 et a1 à partir de model_fit.params.
  • Utilisez compute_rss_and_plot_fit() pour confirmer que ces résultats sont cohérents avec les formules analytiques mises en œuvre avec numpy.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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)
Modifier et exécuter le code