주가 변동성 GARCH 모형 (고급 PYTHON)
고급
정량 분석
economic
python
난이도: 고급 — 심화 내용을 포함합니다. 사전 지식이 필요할 수 있습니다.
개요
주가 수익률의 변동성(volatility)을 GARCH(1,1) 모형으로 모델링한다. Python의 arch 패키지를 사용하여 조건부 분산을 추정하고 변동성을 시각화한다.
분석 절차
1단계: 수익률 계산
종가 데이터에서 일간 수익률을 계산한다: r_t = (P_t – P_{t-1}) / P_{t-1} × 100
2단계: GARCH 모형 적합
arch_model() 함수에 vol=’Garch’, p=1, q=1을 지정하여 GARCH(1,1) 모형을 적합한다.
3단계: 결과 해석
alpha(arch coefficient)와 beta(garch coefficient)의 합이 1에 가까우면 변동성이 지속성(persistence)을 가진다.
4단계: 조건부 변동성 시각화
conditional_volatility 속성으로 추정된 변동성을 시계열 플롯으로 확인한다.
코드 예제
import pandas as pd
import numpy as np
from arch import arch_model
import matplotlib.pyplot as plt
# 수익률 계산
df = pd.read_csv('stock_data.csv')
df['returns'] = df['close'].pct_change() * 100
df = df.dropna()
# GARCH(1,1) 모형 적합
model = arch_model(df['returns'], vol='Garch', p=1, q=1, mean='Constant', dist='normal')
results = model.fit(disp='off')
print(results.summary())
# 조건부 변동성 시각화
fig, ax = plt.subplots(figsize=(12, 4))
ax.plot(results.conditional_volatility)
ax.set_title('Conditional Volatility (GARCH(1,1))')
ax.set_ylabel('Volatility')
plt.tight_layout()
plt.savefig('garch_volatility.png', dpi=150)
참고문헌
Engle, R. F. (2001). GARCH 101: The Use of ARCH/GARCH Models in Applied Econometrics. Journal of Economic Perspectives, 15(4), 157-168.
심화 내용
고급 분석에서는 다음을 추가로 고려해야 합니다:
- 부트스트래핑(Bootstrapping)을 통한 강건성 검증
- 교차 검증(Cross-validation)으로 모형 일반화 성능 평가
- 민감도 분석(Sensitivity Analysis)으로 가정 위반 시 영향 평가
코드 예제
PYTHON
import pandas as pd import numpy as np from arch import arch_model import matplotlib.pyplot as plt # 수익률 계산 df = pd.read_csv('stock_data.csv') df['returns'] = df['close'].pct_change() * 100 df = df.dropna() # GARCH(1,1) 모형 적합 model = arch_model(df['returns'], vol='Garch', p=1, q=1, mean='Constant', dist='normal') results = model.fit(disp='off') print(results.summary()) # 조건부 변동성 시각화 fig, ax = plt.subplots(figsize=(12, 4)) ax.plot(results.conditional_volatility) ax.set_title('Conditional Volatility (GARCH(1,1))') ax.set_ylabel('Volatility') plt.tight_layout() plt.savefig('garch_volatility.png', dpi=150)
참고문헌
Engle, R. F. (2001). GARCH 101: The Use of ARCH/GARCH Models in Applied Econometrics. Journal of Economic Perspectives, 15(4), 157-168.