Zacznij terazZacznij za darmo

Liniowy model w kosmologii

Jeszcze niecałe 100 lat temu uważano, że wszechświat składa się z jednej statycznej galaktyki, zawierającej może milion gwiazd. Dziś obserwujemy setki miliardów galaktyk, z których każda zawiera setki miliardów gwiazd – i wszystkie są w ruchu.

Podwaliny współczesnej kosmologii jako nauki przyrodniczej położyła publikacja Edwina Hubble'a z 1929 roku, w której zastosowano model liniowy.

W tym ćwiczeniu zbudujesz model, którego nachylenie wyznaczy stałą Hubble'a – opisującą prędkość galaktyk jako liniową funkcję odległości od Ziemi.

Wykres Hubble'a

To ćwiczenie jest częścią kursu

Wprowadzenie do modelowania liniowego w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Skorzystaj z wczytanego wcześniej DataFrame z kolumnami names, distances i velocities.
  • Zbuduj i dopasuj model za pomocą ols().fit(), używając formula="velocities ~ distances" oraz data=df.
  • Wyodrębnij estymaty parametrów dla wyrazu wolnego i nachylenia przy użyciu model_fit.params, przypisując je odpowiednio do a0 i a1.
  • Powtórz ten proces dla odpowiadających im wartości niepewności, tym razem korzystając z model_fit.bse.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod