Aan de slagBegin gratis

Lineair model in de kosmologie

Nog geen 100 jaar geleden leek het heelal uit één statisch sterrenstelsel te bestaan, met misschien een miljoen sterren. Tegenwoordig hebben we waarnemingen van honderden miljarden stelsels, elk met honderden miljarden sterren, allemaal in beweging.

Het begin van de moderne natuurkundige kosmologie kwam met de publicatie van Edwin Hubble in 1929, waarin een lineair model werd gebruikt.

In deze oefening bouw je een model waarvan de helling de constante van Hubble oplevert. Die beschrijft de snelheid van sterrenstelsels als een lineaire functie van hun afstand tot de aarde.

Hubbles diagram

Deze oefening maakt deel uit van de cursus

Introductie tot lineaire modellering in Python

Bekijk cursus

Oefeninstructies

  • Gebruik de vooraf ingeladen DataFrame met de kolommen names, distances en velocities.
  • Bouw en fit een model met ols().fit() met formula="velocities ~ distances" en data=df.
  • Haal de parameterschattingen voor intercept en helling op via model_fit.params en sla deze respectievelijk op in a0 en a1.
  • Herhaal dit voor de bijbehorende onzekerheden, dit keer met model_fit.bse.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# Fit the model, based on the form of the formula
model_fit = ols(formula="velocities ~ ____", data=df).fit()

# Extract the model parameters and associated "errors" or uncertainties
a0 = model_fit.params['Intercept']
a1 = model_fit.params['____']
e0 = model_fit.bse['____']
e1 = model_fit.bse['distances']

# Print the results
print('For slope a1={:.02f}, the uncertainty in a1 is {:.02f}'.format(a1, e1))
print('For intercept a0={:.02f}, the uncertainty in a0 is {:.02f}'.format(a0, e0))
Code bewerken en uitvoeren