Kleinste Quadrate mit `numpy`
Die folgenden Formeln ergeben sich aus der im Intro besprochenen Analysis. In dieser Übung vertrauen wir darauf, dass die Herleitung korrekt ist, und setzen die Formeln mit numpy im Code um.
$$ a_{1} = \frac{ covariance(x, y) }{ variance(x) } $$ $$ a_{0} = mean(y) - a_{1} mean(x) $$
Diese Übung ist Teil des Kurses
Einführung in lineares Modellieren mit Python
Anleitung zur Übung
- Berechne die Mittelwerte und Abweichungen der beiden Variablen
x, yaus den vorab geladenen Daten. - Verwende
np.sum(), um die Formeln der kleinsten Quadrate zu vervollständigen, und nutze sie, um die optimalen Werte füra0unda1zu berechnen. - Verwende
model(), um aus diesen optimalen Werten für Steigung a1 und Achsenabschnitt a0 die Modellwertey_modelzu erzeugen. - Nutze die vordefinierte Funktion
compute_rss_and_plot_fit(), um visuell zu prüfen, dass dieses optimale Modell die Daten gut beschreibt.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# prepare the means and deviations of the two variables
x_mean = np.____(x)
y_mean = np.____(y)
x_dev = x - ____
y_dev = y - ____
# Complete least-squares formulae to find the optimal a0, a1
a1 = np.sum(____ * ____) / np.sum( np.square(____) )
a0 = ____ - (a1 * ____)
# Use the those optimal model parameters a0, a1 to build a model
y_model = model(x, ____, ____)
# plot to verify that the resulting y_model best fits the data y
fig, rss = compute_rss_and_plot_fit(a0, a1)