Korelasi
Korelasi bagus untuk diperiksa sebelum membangun model Machine Learning, karena kita dapat melihat fitur mana yang paling kuat korelasinya dengan target. Koefisien korelasi Pearson sering digunakan, yang hanya mendeteksi hubungan linear. Umumnya diasumsikan data kita berdistribusi normal, yang dapat kita "lihat sekilas" dari histogram. Variabel yang sangat berkorelasi memiliki koefisien korelasi Pearson mendekati 1 (berkorelasi positif) atau -1 (berkorelasi negatif). Nilai mendekati 0 berarti kedua variabel tidak berkorelasi secara linear.
Jika kita menggunakan periode waktu yang sama untuk perubahan harga masa lalu dan perubahan harga masa depan, kita dapat melihat apakah harga saham bersifat mean-reverting (berayun di sekitar rata-rata) atau mengikuti tren (naik jika baru-baru ini naik).
Latihan ini merupakan bagian dari kursus
Machine Learning untuk Keuangan dengan Python
Instruksi latihan
Menggunakan DataFrame lng_df dan Adj_Close di dalamnya:
- Buat harga masa depan 5 hari (sebagai
5d_future_close) dengan.shift(-5)dari pandas. - Gunakan
pct_change(5)pada5d_future_closedanAdj_Closeuntuk membuat persentase perubahan harga 5 hari di masa depan (5d_close_future_pct), dan persentase perubahan harga 5 hari saat ini (5d_close_pct). - Periksa korelasi antara dua kolom persentase perubahan harga 5 hari tersebut dengan
.corr()padalng_df. - Dengan
plt.scatter(), buat plot sebar5d_close_pctvs5d_close_future_pct.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
# 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()