Tương quan
Việc kiểm tra tương quan rất hữu ích trước khi xây dựng các mô hình Machine Learning, vì bạn có thể thấy đặc trưng nào tương quan mạnh nhất với biến mục tiêu. Hệ số tương quan Pearson thường được dùng, và nó chỉ phát hiện quan hệ tuyến tính. Thông thường người ta giả định dữ liệu phân phối chuẩn, điều này có thể "ước lượng bằng mắt" qua các biểu đồ histogram. Các biến tương quan cao sẽ có hệ số tương quan Pearson gần 1 (tương quan dương) hoặc -1 (tương quan âm). Giá trị gần 0 nghĩa là hai biến không có tương quan tuyến tính.
Nếu ta dùng cùng các khoảng thời gian cho biến động giá trong quá khứ và trong tương lai, ta có thể xem giá cổ phiếu có khuynh hướng hồi quy về trung bình (dao động quanh một mức) hay theo xu hướng (tiếp tục tăng nếu gần đây đã tăng).
Bài tập này là một phần của khóa học
Machine Learning cho Tài chính bằng Python
Hướng dẫn bài tập
Sử dụng DataFrame lng_df và cột Adj_Close của nó:
- Tạo giá tương lai sau 5 ngày (lưu vào
5d_future_close) với.shift(-5)của pandas. - Dùng
pct_change(5)trên5d_future_closevàAdj_Closeđể tạo % thay đổi giá 5 ngày trong tương lai (5d_close_future_pct) và % thay đổi giá 5 ngày hiện tại (5d_close_pct). - Kiểm tra tương quan giữa hai cột % thay đổi giá 5 ngày bằng
.corr()trênlng_df. - Dùng
plt.scatter()để vẽ biểu đồ phân tán giữa5d_close_pctvà5d_close_future_pct.
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.
# Create 5-day % changes of Adj_Close for the current day, and 5 days in the future
lng_df['5d_future_close'] = lng_df['Adj_Close'].shift(____)
lng_df['5d_close_future_pct'] = lng_df['5d_future_close'].pct_change(5)
lng_df['5d_close_pct'] = lng_df['Adj_Close'].pct_change(____)
# Calculate the correlation matrix between the 5d close pecentage changes (current and future)
corr = lng_df[['5d_close_pct', '5d_close_future_pct']].____
print(corr)
# Scatter the current 5-day percent change vs the future 5-day percent change
plt.scatter(lng_df['5d_close_pct'], lng_df[____])
plt.show()