НачатьНачать бесплатно

Корреляции

Перед построением моделей машинного обучения полезно проверить корреляции: так можно увидеть, какие признаки наиболее тесно связаны с целевой переменной. Для этого часто используют коэффициент корреляции Пирсона, который выявляет только линейные зависимости. Обычно предполагается, что данные распределены нормально — это можно оценить на глаз по гистограммам. Сильно коррелирующие переменные имеют коэффициент корреляции Пирсона, близкий к 1 (положительная корреляция) или к −1 (отрицательная корреляция). Значение, близкое к 0, означает отсутствие линейной корреляции между переменными.

Если использовать одинаковые временные периоды для прошлых и будущих изменений цены, можно определить, возвращается ли цена акции к среднему значению (колеблется вокруг него) или следует тренду (продолжает расти, если недавно росла).

Это упражнение является частью курса

Машинное обучение для финансов на Python

Посмотреть курс

Инструкции к упражнению

Используя DataFrame 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()
Редактировать и запускать код