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

Tính R-squared

Giờ bạn đã tính được RMSE của dự đoán từ mô hình, hãy xem mô hình khớp dữ liệu tốt đến mức nào: tức là mô hình giải thích được bao nhiêu phương sai. Bạn có thể làm điều này bằng \(R^2\).

Giả sử \(y\) là giá trị thực tế của biến mục tiêu, \(p\) là dự đoán từ mô hình, và \(res = y - p\) là phần dư của các dự đoán.

Khi đó tổng bình phương sai số so với trung bình \(tss\) ("tổng phương sai") của dữ liệu là:

$$ tss = \sum{(y - \overline{y})^2} $$

trong đó \(\overline{y}\) là giá trị trung bình của \(y\).

Tổng bình phương sai số phần dư của mô hình, \(rss\), là: $$ rss = \sum{res^2} $$

\(R^2\) (R-squared), phần "phương sai được mô hình giải thích", là:

$$ 1 - \frac{rss}{tss} $$

Sau khi bạn tính \(R^2\), hãy so sánh kết quả với \(R^2\) do glance() báo cáo (docs). glance() trả về một data frame một hàng; với mô hình hồi quy tuyến tính, một trong các cột trả về là \(R^2\) của mô hình trên dữ liệu huấn luyện.

Data frame unemployment đã được nạp sẵn, và chứa các cột predictionsresiduals mà bạn đã tính ở bài trước. Đối tượng unemployment_model cũng đã sẵn sàng để bạn dùng.

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

Học có giám sát với R: Hồi quy

Xem khóa học

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

  • Tính trung bình female_unemployment và gán vào biến fe_mean.
  • Tính tổng bình phương sai số so với trung bình và gán vào biến tss.
  • Tính tổng bình phương phần dư và gán vào biến rss.
  • Tính \(R^2\). Mô hình có khớp tốt không (\(R^2\) gần 1)?
  • Dùng glance() để lấy \(R^2\) từ mô hình. Có trùng với giá trị bạn vừa tính không?

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.

# unemployment is available
summary(unemployment)

# unemployment_model is available
summary(unemployment_model)

# Calculate and print the mean female_unemployment: fe_mean
(fe_mean <- ___)

# Calculate and print the total sum of squares: tss
(tss <- ___((___ - ___)^2))

# Calculate and print residual sum of squares: rss
(rss <- ___)

# Calculate and print the R-squared: rsq
(rsq <- ___)

# Get R-squared from glance and print it
(rsq_glance <- ___(___)$___)
Chỉnh sửa và Chạy Mã