LoslegenKostenlos loslegen

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

Kurs anzeigen

Anleitung zur Übung

  • Berechne die Mittelwerte und Abweichungen der beiden Variablen x, y aus den vorab geladenen Daten.
  • Verwende np.sum(), um die Formeln der kleinsten Quadrate zu vervollständigen, und nutze sie, um die optimalen Werte für a0 und a1 zu berechnen.
  • Verwende model(), um aus diesen optimalen Werten für Steigung a1 und Achsenabschnitt a0 die Modellwerte y_model zu 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)
Code bearbeiten und ausführen