Aan de slagBegin gratis

R-kwadraat

Eerder beschreven we een andere maat voor modelkwaliteit, R-kwadraat, als een verhouding van RSS tot VAR. Door teller en noemer met 1/n te vermenigvuldigen, kun je de numerieke variant zien als de verhouding van de variantie van de residuen gedeeld door de variantie van de lineaire trend in de data die we modelleren. Dit kun je interpreteren als een maat voor hoeveel van de variantie in je data wordt "verklaard" door je model, in tegenstelling tot de spreiding of variantie van de residuen (nadat je de lineaire trend hebt verwijderd).

Hier zijn de data x_data,y_data en de modelvoorspellingen y_model voor het best passende model al ingeladen; jouw doel is om de R-kwadraat-maat te berekenen om te kwantificeren hoeveel dit lineaire model van de variatie in de data verklaart.

Deze oefening maakt deel uit van de cursus

Introductie tot lineaire modellering in Python

Bekijk cursus

Oefeninstructies

  • Bereken de residuals door y_data van y_model af te trekken, en de deviations door y_data af te trekken van het np.mean() van y_data.
  • Bereken de variantie van de residuals en de variantie van de deviations met np.mean() en np.square() op elk.
  • Bereken r_squared als 1 min de verhouding var_residuals / var_deviations, en print het resultaat.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# Compute the residuals and the deviations
residuals = ____ - y_data
deviations = np.____(____) - y_data

# Compute the variance of the residuals and deviations
var_residuals = np.____(np.____(____))
var_deviations = np.____(np.____(____))

# Compute r_squared as 1 - the ratio of RSS/Variance
r_squared = 1 - (____ / ____)
print('R-squared is {:0.2f}'.format(____))
Code bewerken en uitvoeren