Bắt đầu ngayBắt đầu miễn phí

Mô hình tuyến tính trong Vũ trụ học

Chưa đầy 100 năm trước, vũ trụ dường như chỉ gồm một thiên hà tĩnh duy nhất, chứa chừng một triệu ngôi sao. Ngày nay, chúng ta có quan sát về hàng trăm tỷ thiên hà, mỗi thiên hà có hàng trăm tỷ ngôi sao, tất cả đều đang chuyển động.

Khởi đầu của khoa học vật lý hiện đại về vũ trụ học đến từ công bố năm 1929 của Edwin Hubble, trong đó có sử dụng một mô hình tuyến tính.

Trong bài tập này, bạn sẽ xây dựng một mô hình mà hệ số góc của nó chính là Hằng số Hubble, mô tả vận tốc của các thiên hà như một hàm tuyến tính theo khoảng cách từ Trái Đất.

Biểu đồ của Hubble

Bài tập này là một phần của khóa học

Nhập môn Mô hình tuyến tính với Python

Xem khóa học

Hướng dẫn bài tập

  • Sử dụng DataFrame đã nạp sẵn với các cột names, distances, và velocities.
  • Xây dựng và fit mô hình bằng ols().fit() với formula="velocities ~ distances"data=df.
  • Trích xuất ước lượng tham số cho hệ số chặn và hệ số góc bằng model_fit.params, lần lượt gán vào a0a1.
  • Lặp lại quy trình cho các giá trị độ bất định tương ứng, lần này sử dụng model_fit.bse.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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))
Chỉnh sửa và Chạy Mã