Mulai sekarangMulai gratis

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

Lihat Kursus

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) pada 5d_future_close dan Adj_Close untuk 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() pada lng_df.
  • Dengan plt.scatter(), buat plot sebar 5d_close_pct vs 5d_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()
Edit dan Jalankan Kode