주가 데이터를 heatmap 으로 시각화하기
안녕하세요, 여러분! 오늘은 파이썬을 이용하여 시계열 데이터 분석을 해보려고 합니다. 이번 포스트에서는 TSLA(Tesla Inc.) 주가 데이터를 활용하여 교차 상관 관계를 분석해 보도록 하겠습니다.
먼저, 필요한 데이터를 불러오는 과정을 살펴보겠습니다.
df = pd.read_csv('dataset/TSLA.csv')
df['Date'] = pd.to_datetime(df['Date'])
df = df[['Date', 'Close']]
print(df.head())
이 코드에서는 pandas 라이브러리를 사용하여 TSLA 주가 데이터를 CSV 파일에서 읽어옵니다. 이후 날짜를 Datetime 형식으로 변환하고, Date와 Close(종가) 열만 남기도록 전처리를 진행합니다. 그리고 df.head()를 통해 데이터의 상위 5개의 데이터를 출력합니다.
다음은 이동평균과 교차 상관 관계를 계산하는 코드입니다.
df_crosscorrelated = df_shift(df, lag=10, start=1, skip=2, rejected_columns=['Date'])
df_crosscorrelated['ma7'] = df_crosscorrelated['Close'].rolling(7).mean()
df_crosscorrelated['ma14'] = df_crosscorrelated['Close'].rolling(14).mean()
df_crosscorrelated['ma25'] = df_crosscorrelated['Close'].rolling(25).mean()
df_shift 함수를 이용해 lag(지연)을 10으로 설정하고, 1부터 시작하여 2씩 건너뛰며 시계열 데이터를 변환합니다. 이후 7일, 14일, 25일 이동 평균을 계산하여 각각 'ma7', 'ma14', 'ma25' 열에 저장합니다.
마지막으로, 교차 상관 관계를 시각화하는 코드입니다.
colormap = plt.cm.RdBu
plt.figure(figsize=(10, 5))
ax = plt.subplot(111)
plt.title("cross correlation", y=1.05, size=16)
selected_columns = ['Close', 'Close_1', 'Close_3', 'ma7', 'ma14']
sns.heatmap(df_crosscorrelated[selected_columns].corr(), ax=ax, linewidths=0.1, vmax=1.0,
square=True, cmap=colormap, linecolor='white', annot=True)
plt.show()
이 코드는 matplotlib와 seaborn 라이브러리를 사용해 교차 상관 관계 히트맵을 그립니다. RdBu 색상 척도를 사용하여 히트맵을 생성하고, 5개의 열('Close', 'Close_1', 'Close_3', ''ma7', 'ma14')을 선택하여 상관 계수를 계산합니다. 이들 열은 각각 종가, 1일 지연 종가, 3일 지연 종가, 7일 이동 평균, 그리고 14일 이동 평균을 나타냅니다.
히트맵을 생성할 때, seaborn의 heatmap 함수를 사용하여 df_crosscorrelated의 상관 계수를 계산하고 시각화합니다. ax, linewidths, vmax, square, cmap, linecolor, 그리고 annot와 같은 여러 인자들을 설정하여 히트맵의 모양과 스타일을 조절합니다.
마지막으로, plt.show()를 호출하여 완성된 히트맵을 출력합니다. 이 히트맵은 선택한 열 간의 교차 상관 관계를 쉽게 확인할 수 있게 해줍니다. 상관 계수가 1에 가까울수록 두 변수 사이에 강한 양의 상관 관계가 있음을 의미하며, -1에 가까울수록 강한 음의 상관 관계가 있음을 나타냅니다.
이렇게 파이썬을 이용한 시계열 데이터 분석을 통해, 주가 데이터를 활용하여 교차 상관 관계를 분석할 수 있습니다. 이를 통해 주가의 움직임에 영향을 미치는 요인들을 파악하고, 이를 기반으로 한 투자 전략을 개발하는 데 도움이 될 수 있습니다.
이상으로 시계열 데이터 분석에 대한 간단한 예제를 살펴보았습니다. 다음 포스트에서는 더 다양한 기법들을 적용해보며, 주가 예측에 도움이 될 수 있는 분석 방법들을 함께 살펴보도록 하겠습니다.
