Notice
Recent Posts
Recent Comments
Link
반응형
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

To Be Develop

투자자 심리 주기 모델링 Hidden SemiMarkov Model을 활용한 분석 본문

study

투자자 심리 주기 모델링 Hidden SemiMarkov Model을 활용한 분석

To Be Develop 2024. 11. 28. 00:22
반응형

개요

투자자 심리는 금융 시장의 역동성을 이해하는 데 중요한 요소입니다. 감정적 반응, 시장 뉴스, 경제적 이벤트 등 다양한 요인으로 인해 투자자 심리는 주기적인 패턴을 보이는 경우가 많습니다. 이 글에서는 Hidden Semi-Markov Model(HSMM)을 활용하여 투자자 심리의 주기를 모델링하고, 이를 통해 시장 변동성을 분석하는 방법을 자세히 다룹니다.


1. Hidden Semi-Markov Model(HSMM)이란?

HSMM은 숨겨진 마르코프 모델(Hidden Markov Model, HMM)의 확장판으로, 상태 간 전환에 걸리는 시간이 가변적이라는 점이 특징입니다. 이는 투자자 심리 주기와 같은 지속성이 있는 현상을 모델링하는 데 유리합니다.

HMM과 HSMM의 차이점

  1. 상태 지속 시간 모델링
  • HMM: 상태 지속 시간이 기하분포를 따름. 즉, 일정한 전환 확률을 가정.
  • HSMM: 상태 지속 시간을 명시적으로 모델링하며, 일반적인 분포(예: 정규 분포, 지수 분포)를 따를 수 있음.
  1. 적용 가능성
  • HMM: 짧은 상태 지속 시간의 패턴 모델링에 적합.
  • HSMM: 금융 시장의 감정적 사이클과 같이 상태가 장기간 유지되는 경우 적합.

2. 투자자 심리 주기와 시장 역동성

투자자 심리 주기의 구성 요소

  • 낙관적(Optimistic): 시장 상승 기대감.
  • 중립적(Neutral): 관망 상태.
  • 비관적(Pessimistic): 시장 하락 우려.

이러한 심리 상태는 반복적으로 순환하며, 특정 이벤트(예: 금리 인상, 실적 발표)로 인해 전환됩니다. HSMM은 이러한 전환의 지속 시간과 패턴을 학습할 수 있습니다.

시장 역동성에 미치는 영향

  • 낙관적 심리: 거래량 증가, 주가 상승.
  • 중립적 심리: 낮은 거래량, 횡보.
  • 비관적 심리: 거래량 급증, 주가 하락.

3. HSMM을 활용한 투자자 심리 주기 모델링: 단계별 가이드

3.1 데이터 준비

HSMM 모델링에는 투자자 심리를 대리할 수 있는 데이터가 필요합니다. 예를 들어:

  • 시장 데이터: 주가, 거래량, 변동성(VIX).
  • 소셜 미디어 데이터: 트위터, 뉴스, 포럼에서의 긍정/부정 감정 분석.
  • 심리 지수: AAII 투자자 심리 조사 등.
import pandas as pd
import numpy as np

# 샘플 데이터 로드
data = pd.read_csv('investor_sentiment.csv')

# 감정 점수 및 거래량 지표 생성
data['sentiment_score'] = (data['positive'] - data['negative']) / (data['positive'] + data['negative'])
data['log_volume'] = np.log(data['volume'])

# 데이터 정규화
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
data[['sentiment_score', 'log_volume']] = scaler.fit_transform(data[['sentiment_score', 'log_volume']])

3.2 HSMM 모델 구성

HSMM은 Python 라이브러리 hmmlearn이나 pyhsmm을 활용하여 구현할 수 있습니다. 아래는 pyhsmm 기반의 예제입니다.

import pyhsmm
import numpy as np

# 초기 설정
N_states = 3  # 심리 상태 개수 (낙관적, 중립적, 비관적)
obs_dim = 2   # 관측 변수 개수 (감정 점수, 거래량)

# HSMM 모델 생성
model = pyhsmm.models.HSMM(
alpha=6.0,                          # 상태 전환의 디리클레 농도
obs_distns=[
pyhsmm.distributions.Gaussian(
mu=np.zeros(obs_dim),       # 평균
sigma=0.5 * np.eye(obs_dim)  # 공분산
) for state in range(N_states)
]
)

3.3 모델 학습

HSMM은 투자자 심리 데이터에서 상태 전환 패턴과 지속 시간을 학습합니다.

# 데이터 학습
observations = data[['sentiment_score', 'log_volume']].values
model.add_data(observations)

# Gibbs 샘플링을 통한 학습
for _ in range(100):
model.resample_model()

3.4 결과 분석

1) 상태 지속 시간 분석

상태가 얼마나 오랫동안 유지되는지 분석하면 각 심리 주기의 지속 시간과 전환 속도를 파악할 수 있습니다.

state_durations = [state.dur for state in model.states_list]
print("상태 지속 시간:", state_durations)

2) 심리 상태 추적

학습된 HSMM은 각 시점에서 숨겨진 심리 상태를 추론합니다.

inferred_states = model.states_list[0].stateseq
data['hidden_state'] = inferred_states

# 시각화
import matplotlib.pyplot as plt
plt.plot(data['hidden_state'])
plt.title("추론된 투자자 심리 상태")
plt.show()

4. HSMM의 장점과 한계

장점

  1. 상태 지속 시간 모델링: 심리 상태가 일정 기간 지속되는 특성을 반영.
  2. 시장 주기 이해: 투자자 심리 변화와 이에 따른 시장 변화를 더 깊이 분석 가능.
  3. 비정상성 데이터 처리: 금융 데이터의 비정상적 특성을 모델링하는 데 적합.

한계

  1. 높은 계산 비용: 상태 전환과 지속 시간 분포를 모두 학습해야 하므로 계산 부담이 큼.
  2. 데이터 품질 의존성: 투자자 심리를 대리할 수 있는 고품질 데이터가 필요.
  3. 과적합 위험: 복잡한 모델 구조로 인해 과적합 가능성 존재.

5. HSMM 활용 시 투자 전략 예시

전략 1: 심리 상태 기반 포트폴리오 조정

  • 낙관적 상태: 위험 자산 비중 확대.
  • 비관적 상태: 방어적 자산 비중 확대.

전략 2: 상태 전환 신호 활용

  • 상태 전환 초기 신호를 포착하여 매수/매도 타이밍 결정.

결론

Hidden Semi-Markov Model은 투자자 심리 주기를 분석하고 이를 금융 시장의 역동성과 연계시키는 강력한 도구입니다. 이 모델을 활용하면 시장의 변동성과 불확실성을 더 깊이 이해할 수 있으며, 데이터 기반 투자 전략을 설계하는 데 유용합니다.


참고 자료

  1. pyhsmm GitHub Repository
  2. HMM and HSMM Overview
  3. Investor Sentiment and Financial Markets - SSRN
반응형