Aan de slagBegin gratis

Extrapoleren: over de rand gaan

In deze oefening kijken we naar de gevaren van extrapoleren. Hier zie je het hoogteprofiel van een bergwandelpad. Een deel van het pad, gemarkeerd in zwart, lijkt lineair en is gebruikt om een model te bouwen. Maar we zien dat de best-fit-lijn, in rood, niet past buiten het oorspronkelijke "domein", want hij loopt door in nieuwe externe data, gemarkeerd in blauw.

Als we het model willen gebruiken om de hoogte te voorspellen, maar wel binnen een bepaalde foutmarge nauwkeurig willen blijven, wat zijn dan de kleinste en grootste waarden van de onafhankelijke variabele x waarop we het model nog kunnen toepassen?

Gebruik hier de vooringeladen x_data, y_data, y_model en plot_data_model_tolerance() om je oplossing te voltooien.

Deze oefening maakt deel uit van de cursus

Introductie tot lineaire modellering in Python

Bekijk cursus

Oefeninstructies

  • Gebruik np.abs() om de residuals te berekenen als de verschillen y_data - y_model.
  • Zoek de .min()- en .max()-waarden van x waarvoor de residuals kleiner zijn dan een tolerance = 100 meter.
  • Gebruik np.min() en np.max() om het bereik (de grootste en kleinste) van x_good-waarden af te drukken.
  • Gebruik de vooraf gedefinieerde plot_data_model_tolerance() om de data, het model en het bereik van x_good-waarden te vergelijken waar residuals < tolerance True is.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# Compute the residuals, "data - model", and determine where [residuals < tolerance]
residuals = np.abs(____ - ____)
tolerance = 100
x_good = x_data[____ < ____]

# Find the min and max of the "good" values, and plot y_data, y_model, and the tolerance range
print('Minimum good x value = {}'.format(np.____(____)))
print('Maximum good x value = {}'.format(np.____(____)))
fig = plot_data_model_tolerance(x_data, y_data, y_model, tolerance)
Code bewerken en uitvoeren