ComenzarEmpieza gratis

Modelo lineal en cosmología

Hace menos de 100 años, el universo parecía estar compuesto por una única galaxia estática, con quizá un millón de estrellas. Hoy disponemos de observaciones de cientos de miles de millones de galaxias, cada una con cientos de miles de millones de estrellas, todas en movimiento.

Los inicios de la ciencia física moderna de la cosmología llegaron con la publicación de 1929 de Edwin Hubble, que incluía el uso de un modelo lineal.

En este ejercicio, construirás un modelo cuya pendiente te dará la Constante de Hubble, que describe la velocidad de las galaxias como una función lineal de la distancia a la Tierra.

Gráfico de Hubble

Este ejercicio forma parte del curso

Introducción al modelado lineal en Python

Ver curso

Instrucciones del ejercicio

  • Usa el DataFrame precargado con las columnas names, distances y velocities.
  • Construye y ajusta un modelo usando ols().fit() con formula="velocities ~ distances" y data=df.
  • Extrae las estimaciones de los parámetros para la intersección y la pendiente usando model_fit.params, asignándolas a a0 y a1, respectivamente.
  • Repite el proceso para los valores de incertidumbre correspondientes, esta vez usando model_fit.bse.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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))
Editar y ejecutar código