LoslegenKostenlos loslegen

Kleinste Quadrate mit `statsmodels`

Mehrere Python-Bibliotheken bieten bequeme, abstrahierte Schnittstellen, sodass du die Optimierung des Modells nicht immer ganz explizit steuern musst.

In dieser Übung nutzt du als Beispiel die Bibliothek statsmodels in einem höherstufigen, verallgemeinerten Workflow, um ein Modell mithilfe von Least-Squares-Optimierung (Minimierung der RSS) zu erstellen.

Zum Einstieg haben wir die Daten aus x_data, y_data = load_data() vorab geladen und in einem pandas DataFrame mit den Spaltennamen x_column und y_column gespeichert, und zwar mit df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))

Diese Übung ist Teil des Kurses

Einführung in lineares Modellieren mit Python

Kurs anzeigen

Anleitung zur Übung

  • Konstruiere ein Modell mit ols() und der Formel formula="y_column ~ x_column" und den Daten data=df, und .fit() es anschließend an die Daten an.
  • Verwende model_fit.predict(), um y_model-Werte zu erhalten.
  • Überlagere mit der bereitgestellten Funktion plot_data_with_model() die y_data mit y_model.
  • Extrahiere die Modellparameter a0 und a1 aus model_fit.params.
  • Nutze compute_rss_and_plot_fit(), um zu bestätigen, dass diese Ergebnisse mit den analytischen Formeln übereinstimmen, die mit numpy implementiert sind.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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)
Code bearbeiten und ausführen