Aan de slagBegin gratis

Kleinste kwadraten met `numpy`

De onderstaande formules zijn het resultaat van de analyse uit de inleiding. In deze oefening vertrouwen we erop dat de afleiding klopt en implementeren we de formules in code met numpy.

$$ a_{1} = \frac{ covariance(x, y) }{ variance(x) } $$ $$ a_{0} = mean(y) - a_{1} mean(x) $$

Deze oefening maakt deel uit van de cursus

Introductie tot lineaire modellering in Python

Bekijk cursus

Oefeninstructies

  • Bereken de gemiddelden en afwijkingen van de twee variabelen x, y uit de vooraf geladen data.
  • Gebruik np.sum() om de formules voor kleinste kwadraten te voltooien en bereken daarmee de optimale waarden voor a0 en a1.
  • Gebruik model() om de modelwaarden y_model te bouwen op basis van de optimale helling a1 en het snijpunt a0.
  • Gebruik de vooraf gedefinieerde compute_rss_and_plot_fit() om visueel te controleren dat dit optimale model goed bij de data past.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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 bewerken en uitvoeren