Кореляції
Кореляції корисно переглянути перед побудовою моделей машинного навчання, адже так ми бачимо, які ознаки найсильніше корелюють із цільовою змінною. Часто використовують коефіцієнт кореляції Пірсона, який виявляє лише лінійні зв'язки. Зазвичай припускають, що наші дані мають нормальний розподіл, що можна попередньо оцінити на гістограмах. Висококорельовані змінні мають коефіцієнт кореляції Пірсона, близький до 1 (додатна кореляція) або до -1 (від'ємна кореляція). Значення, близьке до 0, означає, що дві змінні не мають лінійної кореляції.
Якщо використати однакові періоди для попередніх і майбутніх змін ціни, можна побачити, чи ціна акції має властивість повернення до середнього (коливається навколо середнього) чи слідує тренду (зростає, якщо нещодавно зростала).
Ця вправа є частиною курсу
Machine Learning для фінансів у Python
Інструкції до вправи
Використовуючи датафрейм lng_df та його Adj_Close:
- Створіть майбутню ціну за 5 днів (як
5d_future_close) за допомогою.shift(-5)із pandas. - Застосуйте
pct_change(5)до5d_future_closeіAdj_Close, щоб створити майбутню 5-денну зміну ціни у відсотках (5d_close_future_pct) і поточну 5-денну зміну ціни у відсотках (5d_close_pct). - Дослідіть кореляції між цими двома стовпцями 5-денних відсоткових змін ціни за допомогою
.corr()наlng_df. - Використовуючи
plt.scatter(), побудуйте діаграму розсіювання для5d_close_pctпроти5d_close_future_pct.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()