Garch模型_garch in mean模型

Garch模型_garch in mean模型理解garch模型

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Garch

小声逼逼一句,学长有毒吧~~让我进金融的东东,我懂个锤子?

金融时间序列

金融资产的波动是一个非常重要的概念,它与资产的风险直接相关,因此对资产的波动模式进行建模是量化投资中的一个重要课题。一般来讲,波动建模有以下量化投资方向的应用:
期权定价:波动率是影响期权价值的重要因素;
风险度量和管理:在VaR的计算中波动率是主要影响因素,根据波动率决定交易策略的杠杆;
资产价格预测和模拟:通过Garch簇模型对资产价格的时间序列进行预测和模拟;
调仓:盯住波动率的调仓策略,如一个tracing指数的策略;
作为交易标的:在VIX、ETF以及远期中波动率作为标的可以直接交易。

上面的几行确实没明白,正确性有待考证

许良:股票收益率中的方差一般就是表示风险

嗯,这个check了一下,债券/股票等的收益率的波动性(volatility)就是风险,就是滚动风险。

金融时间序列分析的核心是找到资产收益率序列的自相关性,并利用它。川流不息

同方差&&异方差

在讲Garch模型之前,我们必须对同方差和异方差的概念进行回顾。在时间序列的弱平稳条件中二阶矩是一个不变的、与时间无关的常数。在理想条件下,如果这个假设是成立的,那么金融时间序列的预测将会变得非常简单,采用ARIMA等线性模型就能做不错的预测。然而采用Ariam等模型对金融事件序列建模效果是非常差的,原因就在于金融事件序列的异方差性。这种非平稳性无法用简单的差分去消除,其根本原因在于其二阶矩随时间t变化而变化。扯扯金融

这里说的方差是回报率(收益率)
简单的理解就是说对于普通的时间序列,一般采用取n差分或者取对数或者滞后,就可以使时间序列平稳,这个的前提是方差不随时间变化也就是同方差(此时方差是个常数,因为是不随时间变化的),这个时候可以使用ARIMA进行预测了。
但是金融时间序列的方差是随着时间变化而变化的,方差不在是一个常数了。

异方差描述的是金融时间序列大的趋势,时间跨度相对较长。金融时间序列的另一个特征是波动聚集,它是在小时间尺度下的波动特性(可以理解为小尺度下的异方差表现)。一般来讲,金融时间序列的波动具有大波动接着大波动,小波动接着小波动的特征,即波峰和波谷具有连续性。在高波动的时候,人们情绪高涨市场的势能不断积累,于是会转化成更大的波动;在低波动的时候,人们对市场的兴趣越来越低,市场逐渐会成为一摊死水。此外,金融事件序列存在波动的不对称性,在上涨时候的波动率会小于下跌时候的波动率。

波动率聚类

Garch模型作为现代的金融事件序列模型,是基于波动聚集这个特性建模的。波动聚集告诉我们当前的波动率是和过去的波动率存在一定的关系,方差的概念也相应的扩展到条件方差,所谓条件反差指的是过去时刻信息已知的方差。Garch模型认为本期的条件方差是过去N期条件方差和序列平方的线性组合,而序列是本期条件方差和白噪声的乘积。

以 2012 年 1 月 1 日到 2019 年 7 月 31 日上证指数日频对数收益率为例,假设使用 ARMA(3, 2) 对其建模,并考察其残差。下图展示了残差时序以及它的 ACF 和 Partial ACF(PACF)。

Garch模型_garch in mean模型
从 ACF 和 PACF 上不难看出,在很多 lags 上,自相关系数是超过 95% 的置信区间的;而从最上面一副图中也能明显看出收益率序列的一大特征 —— 波动率聚类。如果把残差取平方,并再次作图,上述波动率聚类则会变得更加直观。它在数学上被称为条件异方差(conditional heteroskedasticity)。

Garch模型_garch in mean模型
上述结果意味着,仅使用 ARMA 对收益率序列建模是不够的,它对条件异方差无能为力。为了解决这个问题需要对波动率建模,即使用 Generalized Autoregressive Conditional Heteroskedasticity(GARCH)模型。

在采用ARMA、ARIMA模型建模后如发现残差的平方具有自相关性,那么说明有高阶的时间序列特征未被捕捉到(仍在残差中),采用ARMA或者ARIMA模型建模是不合适的,需要采用GARCH模型建模。采用Garch建模后的序列残差即为真正的白噪声,其平方不再具有自相关性。可以证明的是,序列的Garch(p,q)模型等价于序列平方的ARMA(max(p,q),p)模型

收益率和回报率概念辨析

邵昱:就证券而言,收益率是指是所有现金流的净现值为0的折现率,回报率就是利息收入与投资的比例

基于rugarch包的Garch模型

噗,介绍一堆公式

模型

\(r_{t}=c_{1}+\sum_{i=1}^{R} \phi_{i} r_{t-i}+\sum_{j=1}^{M} \phi_{j} \epsilon_{t-j}+\epsilon_{t} \cdots \cdots(1)\) 均值方程
\(\epsilon_{t}=u_{t} \sqrt{h_{t} \cdots \cdots}(2)\) 分布假设
\(h_{t}=k+\sum_{i=1}^{q} G_{i} h_{t-i}+\sum_{j=1}^{p} A_{i} \epsilon_{t-i}^{2} \cdots \cdots(3)\) 方差方程

对三个部分进行适当的变形后可以形成egarch模型,egarch-ged模型,egarch-t模型,Igarch模型,garch-m模型和Qgarch模型等。因此,设定模型形式就是分别设定均值方程、方差方程和分布。rugarch包的优越之处正在于这里。ugarchspec函数的参数也被分解为为三个主要部分,分别是variance.model,对应式(3),mean.model,对应式(1),distribution.model对应式(2)中的\(\epsilon\)。用户通过对三个部分的参数的分别设定从而构造出自己想用的模型。蘭亭客

Datamp Garch

每日收益率

\(R_{t}=\frac{P_{t}-P_{t-1}}{P_{t-1}}\)

风险

风险/波动是用收益率的方差来计算的,因此需要先计算方差
\(\hat{\sigma}=\sqrt{\frac{1}{T-1} \sum_{t=1}^{T}\left(R_{t}-\hat{\mu}\right)^{2}}\)

\(\hat{\mu}\)是平均收益率

就像前面提到的,因为标准差是随时间变化的,因此是不稳定的,一般的时间序列其方差是不变的。
Garch模型_garch in mean模型
Garch模型_garch in mean模型

roll

因为不稳定,所以用滚动方差

刻画风险的一般是roa的标准差,即偏离程度。
对于同一家银行来说,样本期间的标准差值只有一个,因此为了得到标准形式的面板数据,需要对数据进行一些处理,通常是采用滚动面板回归方法。
就你的例子来说,在计算每家银行的风险指标时,每三年为一个计算区间,计算三年间银行的风险指标。原始数据样本是19家商业银行11年(如1998至2008年)的数据,共209个观测值。采取滚动平均的方式:1998年至2000为第一个计算区间,获得一组样本值;2001年至2003年为第二个计算区间,获得第二组样本值;…;2006年至2008年为第九个计算区间,获得第九组样本值。经过滚动处理,新的样本容量是19家银行九个计算区间共171个样本值,损失38个自由度。
滚动回归会损失样本量,这个无法避免。但是回归还是可以照常做的,只是损失自由度而已。就你的例子来说,有两个年份的std_roa缺失。
Garch模型_garch in mean模型

窗口的选择

The shorter the window, the more responsive the rolling volatility estimate is to recent returns. The longer the window, the smoother it will be.

# Load the package PerformanceAnalytics
library(PerformanceAnalytics)

# Showing two plots on the same figure
par(mfrow=c(2,1)) 

# Compute the rolling 1 month estimate of annualized volatility
chart.RollingPerformance(R = sp500ret["2000::2017"], width = 22,
     FUN = "sd.annualized", scale = 252, main = "One month rolling volatility")

# Compute the rolling 3 months estimate of annualized volatility
chart.RollingPerformance(R = sp500ret["2000::2017"], width = 66,
     FUN = "sd.annualized", scale = 252, main = "Three months rolling volatility")

Garch模型_garch in mean模型

GARCH与roll的区别

Rolling Variance 是 backward 预测的,也就是事后的,不具备预测能力的。
GARCH 计算的Variance 是 forward 预测的,也就是事前的,具备预测能力。

ARCH

ARCH(p)
ARCH(p) model: Autoregressive Conditional Heteroscedasticity 自回归条件异方差
\(\sigma_{t}^{2}=\omega+\sum_{i=1}^{p} \alpha e_{t-1}^{2}\)

GARCH

Generalized ARCH 广义的arch
\(\sigma_{t}^{2}=\omega+\sum_{i=1}^{p} \alpha e_{t-1}^{2}+\beta \sigma_{t-1}^{2}\)

\(R_{t}=\mu+e_{t}\)

\(e_{t} \sim N\left(0, \sigma_{t}^{2}\right)\)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167206.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月5日 下午1:00
下一篇 2022年8月5日 下午1:16


相关推荐

  • Orchard Core 中运行带程序上下文的单元测试

    Orchard Core 中运行带程序上下文的单元测试

    2021年11月24日
    50
  • matlab中fprintf函数的用法举例_matlabfopen函数的用法

    matlab中fprintf函数的用法举例_matlabfopen函数的用法fprintf函数在matlab具体应用clcclearage=18;name=’小飞’;fprintf(‘%s的年龄是%d。\n’,name,age)说明:\n表示换行示例clcclearsymsabna=5;b=4;n=30;D(1)=a+b;D(2)=(a+b).^2-a*b;fori=3:nD(i)=D(i-1)*(a+b)-a*b*D(i-2);fprint.

    2022年10月19日
    4
  • 搞定Prometheus普罗米修斯监控系统

    搞定Prometheus普罗米修斯监控系统学习目录能够安装prometheus服务器 能够通过安装node_exporter监控远程linux 能够通过安装mysqld_exporter监控远程mysql数据库 能够安装grafana 能够在grafana添加prometheus数据源 能够在grafana添加监控cpu负载的图形 能够在grafana图形显示mysql监控数据 能够通过grafana+onealert实现报警任务背景AAA公司是一家电商网站,由于公司的业务快速发展,公司要求对现有机器进行为业务监控,责成运维

    2022年7月19日
    64
  • 电磁场与电磁波实验 01 – | 位移电流测量及电磁场与电磁波的存在实验[通俗易懂]

    电磁场与电磁波实验 01 – | 位移电流测量及电磁场与电磁波的存在实验[通俗易懂]一、实验目的 1、认识时变电磁场,理解电磁感应的原理和作用 2、理解电磁波辐射原理 3、了解位移电流的概念 二、预习要求 1、什么是法拉第电磁感应定律? 2、半波振子天线的原理。 三、实验仪器 HD-CB-V电磁场电磁波数字智能实训平台:1套 电磁波传输电缆:1套; 平板极化天线:1副; 半波振子天线:1副 (…

    2025年6月29日
    5
  • jsp:setProperty动作

    jsp:setProperty动作标签用来设置已经实例化的 JavaBean 对象的属性 设置 setProperty 标签属性值有三种语法格式 1 通过表达式或字符串设置语法格式 nbsp nbsp nbsp 字符串 其中 name 表示 JavaBean 的名字 对应 useBean 标签中的 id 属性 property 表示要给哪个属性设置值 value 表示设置属性的表达式或者字符串 如果将表达式的值设置为 JavaBean 属

    2026年3月18日
    1
  • 数据库分区概念及简单运用

    数据库分区概念及简单运用概念:数据库分区是一种物理数据库设计技术目的:主要目的是为了在特定SQL操作中减少数据读写的总量以缩短响应时间分类:分为水平分区(HorizontalParitioning)和垂直分区(VerticalPartitioning)水平分区:是对表的行进行分区,通过这种方式不同分组里面的物理列分隔的数据集得以组合,从而进行个体分隔(单分区)或集体分隔(1个或多个分区).所有表中定义的列在米格数据集中都能找到,所以表的特性依然得以保持。例如:一个包含十年发票记录的表可以被分区为十个不同..

    2022年6月6日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号