주식 시장 예측이 가능한가? - 닫힌 가격만 사용한 분석
카테고리
데이터 과학/AI
서브카테고리
데이터 분석
대상자
- 시간적 시계열 분석을 수행하는 데이터 과학자
- 양적 분석가 및 금융 모델링 전문가
- 머신러닝 기반 주식 예측 모델 개발자
- 난이도: 중급(시계열 데이터 전처리 및 모델 평가 지표 이해 필요)
핵심 요약
- 닫힌 가격만으로 주식 시장을 예측하는 것은 가능하지만, 모델의 정확도는 제한적이다
- 시간 시계열 데이터는 60일 이동 평균 기반의 '수익률(returns)'로 정규화하여 처리 (코드:
ret_t-{n}
) - 10일 예측 범위 설정은 실용적 성능과 현실성의 균형을 고려한 선택
- 모델 평가 시 MAE/MSE 등 기본 지표 누락이 흔한 문제점 지적
섹션별 세부 요약
1. 데이터 수집 및 준비
- 17,610개 데이터 포인트 수집 (10개 기업, 2018-2025 기간)
- DataFrame 생성 (
pd.read_csv('data.csv', index_col=0)
) - 데이터 정규화 (회사별 가격 차이를 완화하기 위해)
- 수익률 계산 공식:
(target_price - current_price) / current_price
2. 시간 시계열 데이터 생성
- prepare_supervised_return_data 함수 사용
- window_size=60, forecast_horizon=10 설정
- 수익률 기반 특성 생성:
ret_t-60
~ret_t-1
(총 60개 특성) - 정규화 방법:
(input_seq - np.mean(input_seq)) / np.std(input_seq)
3. 데이터 분할 및 표준화 검증
- 7:1.5:1.5 비율로 train/val/test 분할
- StandardScaler 사용 검토
- 표준화 전후 분포 비교 결과: 표준화 필요성 미미 확인
- Boxplot 비교 코드:
plot_boxplot
함수 사용
4. 모델 평가 및 한계
- 기존 연구의 평가 지표 누락 문제 지적 (MAE/MSE 등)
- 수익률 기반 모델이 가격 기반 모델보다 일반화 성능 우수
- 10일 예측 범위는 과도한 예측(예: 30일 이상)보다 현실적
결론
- 닫힌 가격만으로 주식 예측 가능하지만, 모델 평가 지표(예: MAE) 누락은 주의해야 함
- 수익률 기반 정규화(
ret_t-{n}
)는 기업별 가격 차이를 완화하는 핵심 전략 - 10일 예측 범위 설정은 실용성과 예측 가능성의 균형을 고려한 선택
- GitHub 코드 활용 시
StandardScaler
사용 여부를 추가 실험으로 검토 권장