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

Bình phương tối thiểu với `statsmodels`

Một số thư viện Python cung cấp các giao diện trừu tượng tiện lợi để bạn không phải luôn xử lý tường minh mọi chi tiết tối ưu hóa mô hình.

Ví dụ, trong bài tập này, bạn sẽ dùng thư viện statsmodels theo một quy trình làm việc cấp cao, tổng quát hơn để xây dựng mô hình bằng tối ưu hóa bình phương tối thiểu (tối thiểu hóa RSS).

Để bạn bắt đầu nhanh hơn, chúng tôi đã nạp sẵn dữ liệu từ x_data, y_data = load_data() và lưu vào một pandas DataFrame với tên cột x_columny_column bằng lệnh df = pd.DataFrame(dict(x_column=x_data, y_column=y_data))

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

  • Tạo mô hình ols() với công thức formula="y_column ~ x_column" và dữ liệu data=df, sau đó .fit() mô hình với dữ liệu.
  • Dùng model_fit.predict() để lấy các giá trị y_model.
  • Sử dụng hàm đã cung cấp plot_data_with_model() để vẽ chồng y_data với y_model.
  • Trích xuất các tham số mô hình a0a1 từ model_fit.params.
  • Dùng compute_rss_and_plot_fit() để xác nhận các kết quả này nhất quán với các công thức giải tích đã được triển khai bằng numpy.

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.

# Pass data and `formula` into ols(), use and `.fit()` the model to the data
model_fit = ols(____="y_column ~ x_column", ____=df).____()

# Use .predict(df) to get y_model values, then over-plot y_data with y_model
y_model = model_fit.____(df)
fig = plot_data_with_model(x_data, ____, ____)

# Extract the a0, a1 values from model_fit.params
a0 = model_fit.____['Intercept']
a1 = model_fit.____['x_column']

# Visually verify that these parameters a0, a1 give the minimum RSS
fig, rss = compute_rss_and_plot_fit(a0, a1)
Chỉnh sửa và Chạy Mã