주가 변동성 GARCH 모형 (초급 PYTHON)

초급 정량 분석 economic python
예상 소요 시간 60분 (간소화)
사전 지식 없음. Python 기초, 시계열 기초
표본 크기 기준 일간 데이터 500개 이상 (최소 조건)
통계 가정 정상성, 조건부 분산
난이도: 초급 — 입문자를 위한 간략화된 설명입니다.

개요

주가 수익률의 변동성(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.

학습 팁

이 방법론은 초급 수준입니다. 먼저 기초 통계 개념을 익힌 후 진행하세요. SPSS나 R의 기본 조작법을 숙지하면 더 수월합니다.

코드 예제

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.

이 방법론과 연결된 콘텐츠