Python 中的 GARCH 模型
Chelsea Yang
Data Science Instructor
规则一:永远不要亏钱
规则二:别忘了规则一
—— 沃伦·巴菲特

VaR 指在险价值(Value at Risk)
三要素:
1 天 5% VaR:100 万美元
在 1 天内,组合价值下跌至少 100 万美元的概率为 5%
10 天 1% VaR:900 万美元
在 10 天内,组合价值下跌至少 900 万美元的概率为 1%

使用 GARCH 更贴近现实地估计 VaR
VaR = 均值 +(GARCH 波动)× 分位数
VaR = mean_forecast.values + np.sqrt(variance_forecast).values * quantile
# Specify and fit a GARCH model
basic_gm = arch_model(bitcoin_data['Return'], p = 1, q = 1,
mean = 'constant', vol = 'GARCH', dist = 't')
gm_result = basic_gm.fit()
# Make variance forecast
gm_forecast = gm_result.forecast(start = '2019-01-01')
步骤 2:用 GARCH 获取前瞻性的均值与波动率
mean_forecast = gm_forecast.mean['2019-01-01':]
variance_forecast = gm_forecast.variance['2019-01-01':]
步骤 3:按置信水平获取分位数
基于 GARCH 假定的标准化残差分布估计分位数
# Assume a Student's t-distribution
# ppf(): Percent point function
q_parametric = garch_model.distribution.ppf(0.05, nu)
基于 GARCH 标准化残差的观测分布估计分位数
q_empirical = std_resid.quantile(0.05)
Python 中的 GARCH 模型