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
Anleitung zur Übung
- Konstruiere ein Modell mit
ols()und der Formelformula="y_column ~ x_column"und den Datendata=df, und.fit()es anschließend an die Daten an. - Verwende
model_fit.predict(), umy_model-Werte zu erhalten. - Überlagere mit der bereitgestellten Funktion
plot_data_with_model()diey_datamity_model. - Extrahiere die Modellparameter
a0unda1ausmodel_fit.params. - Nutze
compute_rss_and_plot_fit(), um zu bestätigen, dass diese Ergebnisse mit den analytischen Formeln übereinstimmen, die mitnumpyimplementiert 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)