금융 시장의 트렌드를 분석하고 투자 기회를 포착하는 하나의 방법은 주요 주식 간의 상관관계를 파악하는 것입니다. 본 포스트에서는 Python과 FinanceDataReader를 활용하여 삼성전자와 KOSPI 상장 주식 중 상위 50개의 상관관계를 분석하는 방법을 설명합니다.
필요한 도구
이 분석을 수행하기 위해 필요한 Python 라이브러리는 다음과 같습니다:
- FinanceDataReader: 금융 데이터를 쉽게 다운로드할 수 있게 도와주는 라이브러리입니다.
- Pandas: 데이터를 효율적으로 처리하고 분석하는 데 사용됩니다.
- Matplotlib 및 Seaborn: 데이터를 시각화하는 데 사용됩니다.
설치 방법
먼저, 필요한 라이브러리를 설치해야 합니다. 아래의 명령어를 통해 설치할 수 있습니다:
pip install finance-datareader pandas matplotlib seaborn
데이터 로딩과 전처리
다음으로, KOSPI에서 상장된 주식 중 상위 50개의 주식을 포함하여 '삼성전자'의 주가 데이터를 불러옵니다. 이 과정에서 데이터가 없는 날짜는 이전 값으로 채우는 방식을 사용하여 데이터를 전처리합니다.
import FinanceDataReader as fdr
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 한글 폰트 설정
plt.rcParams['font.family'] = 'Malgun Gothic'
plt.rcParams['axes.unicode_minus'] = False
# KOSPI 종목 코드 불러오기
kospi_stocks = fdr.StockListing('KOSPI')
# 종목별 주가 데이터 불러오기
stock_prices = pd.DataFrame()
# '삼성전자'와 다른 상위 49개 종목 포함
codes = ['005930'] + kospi_stocks['Code'].tolist()[:49]
names = ['삼성전자'] + kospi_stocks['Name'].tolist()[:49]
for code, name in zip(codes, names):
try:
stock_data = fdr.DataReader(code, '2020-01-01')['Close']
stock_prices[name] = stock_data
except Exception as e:
print(f"Error loading data for {name} ({code}): {e}")
# 누락된 데이터 처리
stock_prices.fillna(method='ffill', inplace=True)
상관관계 분석 및 시각화
모든 주식의 일별 종가 데이터를 바탕으로 상관관계 행렬을 계산하고, 이를 시각화하여 각 주식 간의 상관관계를 파악합니다.
# 삼성전자와 다른 주식들 간의 상관 계수 계산
correlation_matrix = stock_prices.corr()
# 상관 계수 히트맵 그리기
plt.figure(figsize=(12, 10))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', linewidths=.5)
plt.title('상관 관계 행렬')
plt.show()

- 높은 상관관계:
- 현대자동차 (0.71): 삼성전자와 현대자동차는 높은 양의 상관관계를 보여줍니다. 이는 두 회사의 주가가 비슷한 방향으로 움직이는 경향이 있음을 의미합니다.
- SK이앤에스 (0.68): 삼성전자와 SK이앤에스 역시 높은 양의 상관관계를 보여줍니다.
- KT (0.59): 삼성전자와 KT는 다소 낮은 양의 상관관계를 보여줍니다.
- 낮은 상관관계 또는 음의 상관관계:
- LG전자 (0.32): 삼성전자와 LG전자는 상대적으로 낮은 양의 상관관계를 보여줍니다.
- 나스닥 (-0.04): 삼성전자와 나스닥은 약한 음의 상관관계를 보여줍니다. 즉, 삼성전자 주가가 상승할 때 나스닥 지수는 하락하는 경향이 있음을 의미합니다.
- S&P 500 (-0.01): 삼성전자와 S&P 500 지수는 거의 상관관계가 없습니다.
- 코스피 (0.40): 삼성전자와 코스피는 다소 낮은 양의 상관관계를 보여줍니다.
'IT > 금융' 카테고리의 다른 글
[주가] 하이브와 검색 트렌드 (0) | 2024.04.29 |
---|---|
삼성전자 주가 예측: LSTM 신경망을 활용한 접근 (확장판) (1) | 2024.04.26 |
삼성전자 주가 예측: LSTM 신경망을 활용한 접근 (0) | 2024.04.25 |
글로벌 금융 지수의 동향과 상관 관계 분석 (0) | 2024.04.25 |
Python을 이용한 주식 수익률 분석 및 시각화 (0) | 2024.04.22 |