IniziaInizia gratis

Modello lineare in cosmologia

Meno di 100 anni fa, l’universo sembrava composto da un’unica galassia statica, con forse un milione di stelle. Oggi abbiamo osservazioni di centinaia di miliardi di galassie, ciascuna con centinaia di miliardi di stelle, tutte in movimento.

L’inizio della moderna scienza fisica della cosmologia arrivò con la pubblicazione del 1929 di Edwin Hubble, che includeva l’uso di un modello lineare.

In questo esercizio costruirai un modello la cui pendenza fornirà la Costante di Hubble, che descrive la velocità delle galassie come funzione lineare della distanza dalla Terra.

Grafico di Hubble

Questo esercizio fa parte del corso

Introduzione alla modellazione lineare in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Usa il DataFrame pre-caricato con le colonne names, distances e velocities.
  • Crea e adatta un modello usando ols().fit() con formula="velocities ~ distances" e data=df.
  • Estrai le stime dei parametri per intercetta e pendenza usando model_fit.params, assegnandole rispettivamente ad a0 e a1.
  • Ripeti il processo per i corrispondenti valori di incertezza, questa volta usando model_fit.bse.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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))
Modifica ed esegui il codice