Aan de slagBegin gratis

Variatie rond de trend

De gegevens hoeven niet perfect lineair te zijn; er kan willekeurige variatie of "spreiding" in de metingen zitten, en dat vertaalt zich in variatie van de modelparameters. Deze variatie in de parameter wordt gekwantificeerd door de "standaardfout" en geïnterpreteerd als de "onzekerheid" in de schatting van de modelparameter.

In deze oefening gebruik je ols uit statsmodels om een model te bouwen en de standaardfout voor elke parameter van dat model op te halen.

Deze oefening maakt deel uit van de cursus

Introductie tot lineaire modellering in Python

Bekijk cursus

Oefeninstructies

  • Sla de vooraf geladen data op in een DataFrame df, waarbij je x_data het label times geeft en y_data het label distances.
  • Gebruik model_fit = ols().fit() om een lineair model van de vorm formula="distances ~ times" te fitten op data=df.
  • Haal de geschatte intercept op met model_fit.params['Intercept'] en de standaardfout van de intercept met model_fit.bse['Intercept'].
  • Herhaal dit voor de helling (slope) en print vervolgens alle 4 met duidelijke namen.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# Store x_data and y_data, as times and distances, in df, and use ols() to fit a model to it.
df = pd.DataFrame(dict(____=x_data, ____=y_data))
model_fit = ols(____="distances ~ times", data=____).____()

# Extact the model parameters and their uncertainties
a0 = model_fit.____['Intercept']
e0 = model_fit.____['Intercept']
a1 = model_fit.____['times']
e1 = model_fit.____['times']

# Print the results with more meaningful names
print('Estimate    of the intercept = {:0.2f}'.format(____))
print('Uncertainty of the intercept = {:0.2f}'.format(____))
print('Estimate    of the slope = {:0.2f}'.format(____))
print('Uncertainty of the slope = {:0.2f}'.format(____))
Code bewerken en uitvoeren