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

Xem R-Squared của một mô hình hồi quy

R-squared cho biết dữ liệu khớp với đường hồi quy chặt chẽ đến mức nào, vì vậy trong hồi quy đơn, R-squared có liên hệ với hệ số tương quan giữa hai biến. Cụ thể, độ lớn của tương quan bằng căn bậc hai của R-squared và dấu của tương quan trùng với dấu của hệ số hồi quy.

Trong bài tập này, bạn sẽ bắt đầu sử dụng gói thống kê statsmodels, gói này thực hiện phần lớn các mô hình và kiểm định thống kê quen thuộc trong R và các phần mềm như SAS và MATLAB.

Bạn sẽ lấy hai chuỗi, xy, tính tương quan của chúng, rồi hồi quy y theo x bằng hàm OLS(y,x) trong thư viện statsmodels.api (lưu ý biến phụ thuộc, hay biến ở vế phải y, là đối số đầu tiên). Phần lớn hồi quy tuyến tính có một hằng số là hệ số chặn (\(\small \alpha\) trong phương trình \(\small y_t=\alpha + \beta x_t + \epsilon_t\)). Để bao gồm hằng số khi dùng hàm OLS(), bạn cần thêm một cột gồm toàn giá trị 1 vào vế phải của phương trình hồi quy.

Mô-đun statsmodels.api đã được nhập sẵn với tên sm.

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

Phân tích chuỗi thời gian với Python

Xem khóa học

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

  • Tính hệ số tương quan giữa xy bằng phương thức .corr().
  • Chạy hồi quy:
    • Trước tiên chuyển Series x thành DataFrame dfx.
    • Thêm hằng số bằng sm.add_constant(), gán vào dfx1
    • Hồi quy y theo dfx1 bằng sm.OLS().fit().
  • In kết quả hồi quy và so sánh R-squared với hệ số tương quan.

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.

# Import the statsmodels module
import statsmodels.api as sm

# Compute correlation of x and y
correlation = ___
print("The correlation between x and y is %4.2f" %(correlation))

# Convert the Series x to a DataFrame and name the column x
dfx = pd.DataFrame(x, columns=['x'])

# Add a constant to the DataFrame dfx
dfx1 = sm.add_constant(___)

# Regress y on dfx1
result = sm.OLS(___, ___).fit()

# Print out the results and look at the relationship between R-squared and the correlation above
print(result.summary())
Chỉnh sửa và Chạy Mã