IniziaInizia gratis

Minimi quadrati con `statsmodels`

Diverse librerie Python offrono interfacce comode e astratte, così non devi sempre gestire in modo esplicito tutti i dettagli dell’ottimizzazione del modello.

In questo esercizio userai la libreria statsmodels in un flusso di lavoro più di alto livello e generalizzato per costruire un modello usando l’ottimizzazione ai minimi quadrati (minimizzazione dell’RSS).

Per aiutarti a partire, abbiamo già caricato i dati con x_data, y_data = load_data() e li abbiamo salvati in un pandas DataFrame con nomi di colonna x_column e y_column usando df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))

Questo esercizio fa parte del corso

Introduzione alla modellazione lineare in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Costruisci un modello con ols() usando formula="y_column ~ x_column" e data=df, quindi applica .fit() ai dati.
  • Usa model_fit.predict() per ottenere i valori y_model.
  • Usando la funzione fornita plot_data_with_model(), sovrapponi y_data con y_model.
  • Estrai i valori dei parametri del modello a0 e a1 da model_fit.params.
  • Usa compute_rss_and_plot_fit() per confermare che questi risultati siano coerenti con le formule analitiche implementate con numpy.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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)
Modifica ed esegui il codice