Modèle linéaire en cosmologie
Il y a moins de 100 ans, l’univers semblait se résumer à une seule galaxie statique, contenant peut-être un million d’étoiles. Aujourd’hui, nous observons des centaines de milliards de galaxies, chacune abritant des centaines de milliards d’étoiles, toutes en mouvement.
Les débuts de la science moderne de la cosmologie remontent à la publication d’Edwin Hubble en 1929, qui s’appuyait notamment sur un modèle linéaire.
Dans cet exercice, vous allez construire un modèle dont la pente fournira la constante de Hubble, qui décrit la vitesse des galaxies comme une fonction linéaire de leur distance à la Terre.

Cet exercice fait partie du cours
Introduction à la modélisation linéaire en Python
Instructions
- Utilisez le
DataFramepréchargé avec les colonnesnames,distancesetvelocities. - Créez et ajustez un modèle avec
ols().fit()en utilisantformula="velocities ~ distances"etdata=df. - Extrayez les estimations des paramètres pour l’ordonnée à l’origine et la pente via
model_fit.params, à affecter respectivement àa0eta1. - Répétez l’opération pour les valeurs d’incertitude correspondantes, cette fois avec
model_fit.bse.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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))