R语言指数加权模型EWMA预测股市多变量波动率时间序列

article/2025/10/26 13:05:50

最近我们被客户要求撰写关于波动率的研究报告,包括一些图形和统计输出。

从广义上讲,复杂的模型可以实现很高的预测准确性。

但是您的读者需要快速理解。他们没有意愿或时间去处理任何太乏味的事情,即使它可以稍微准确一些。简单性是商业中非常重要的模型选择标准。在多元波动率估计中,最简单的方法是使用历史协方差矩阵。但这太简单了,我们已经知道波动性是随时间变化的。您经常看到从业者使用滚动标准差来模拟随时间变化的波动率。它可能不如其他最先进的方法准确, 但它实现起来非常简单,也很容易解释。

什么是滚动窗口估计。如果我们有一个包含 5 个观察值的向量并且我们使用 2 个窗口,那么用于估计的权重向量是 [0,0,0,0.5,0.5]。更进一步的做法是对更远的过去给予少一些权重,但要对最近的观察样本给予更大的权重,比如权重向量 [0.05, 0.1, 0.15, 0.3, 0.4]。

根据低波动率跟着低波动率走,高波动率跟着高波动率走(波动率聚类)的典型事实,这个想法完全适合于多变量波动率预测。请考虑以下情况。
(1) \begin{方程*} D_t = (1-\lambda) \sum_{t=1}^ \infty \lambda^{t-1} (\varepsilon_{t-1}\varepsilon^ \prime_{t-1} ) = (1-\lambda)(\varepsilon_{t-1}\varepsilon^ \prime_{t-1})+\lambda D_{t-1}, \end{方程*}

其中 D_t 是协方差矩阵的当前估计,并且 D_{t-1} 是基于过去直到时间段 t-1 的协方差矩阵。我们使用最简单的估计,即历史协方差矩阵,但增加了一些权重(1- λ)到仅基于最近的观察估计的协方差矩阵。这真的很容易解释,几乎是一个行业标准。可以估计我们希望权重下降的速度,但您也可以根据一些先前的研究,将衰减参数估计为 0.94。

我绘制几个不同 lambda 值随时间变化的相关矩阵:


k <- 10 # 几年前?end<- format(Sys.Date(),"%Y-%m-%d")start<-format(Sys.Date() - (k*365),"%Y-%m-%d")dat0 = getSymbolsfor (i in 1:l){da0 = getSymbols(sym[i])ret[2:n,i] 
}EWMAplot
legend

 

您可以看到,如果您为最后一次观察样本分配 15% 的权重,您会得到一些不稳定的估计。仅 5% (lambda = 0.95) 的权重给出了更平滑的估计,但可能不太准确。

除了简单之外,另一个重要的优点是不需要关心可逆性,因为在每个时间点上,估计值只是两个有效的相关矩阵的加权平均数。还有,你可以将这种方法应用于任何金融工具,不管是流动的还是非流动的,这是它受欢迎的另一个原因。


EWMA <-function {## ###输入。## factors N x K的数字因素数据。数据是类data.frame## N是时间长度,K是因素的数量。  ## lambda 标量。指数衰减系数在0和1之间。## return.cor 如果是TRUE则返回EWMA相关矩阵##输出。  covewma = array
covf = var(factors)  # 时间=0时的无条件方差为EWMAmfas <- apply(factors,2, mean)for (i in 2:t.factor) {
FF 
cov.f.ewma
}}if(return.cor) {cewma 
for (i in 1:dim[1]) {corewma= covr(coewm[i, ,])

这个函数不适合用于样本外的预测。原因是我们向样本协方差矩阵收缩,而协方差矩阵是基于全样本的,在样本结束前我们还不知道。在现实的设置中,我们只能使用到我们希望预测的那一点为止的信息。随后,我改变了原始函数,加入了一个额外的参数(用于估计协方差矩阵的初始窗口长度)。然后,初始协方差矩阵的取值只使用到预测时为止的信息,标准化也是如此。修改后的新函数如下 
 

EWMAs <- function{# 调整了样本外的协方差预测## 输入。##因素N x K数字因素数据。数据是类data.frame## N是时间长度,K是因素的数量。  ## la指数衰减因子在0和1之间。## retu 逻辑的,如果是TRUE则返回EWMA相关矩阵##输出。  coa = array(,c(t.cor,k.tor,k.aor))fas <- applycovf = var
co.ewa[(wind-1),,] = (1-lad)*FF  + ada*cov.ffor (i in wind : t.factor) {covf = var# 到t的无条件方差。FF = (fators[i,]- mctors) %*% t(factors[i,]- mfcrs)coma[i,,] = (1-laa)*FF  + laba*coma[(i-1),,]for (i in wn:dim) {orma[i, , ] = covr(owma[i, ,])


http://chatgpt.dhexx.cn/article/tv4ceetP.shtml

相关文章

pandas 0.23.4 :'pd.ewma'没有这个模块,改用`Series.ewm` 或 降低版本到 pandas 0.21.0

问题&#xff1a; 在进行画出指数平滑移动平均线&#xff0c;遇到如下问题&#xff1a; # pd.ewma(comNone, spanone) # 指数平均线。com&#xff1a;数据&#xff1b;span&#xff1a;时间间隔AttributeError: module pandas has no attribute ewma解决办法&#xff1a; 方…

java 移动平均_EWMA之——EWMA指数加权移动平均模型的Java实现

具体代码如下&#xff1a; package com.lyz.storm.ewma; import java.io.Serializable; /** * 实现指数移动平均值计算 * 实现中使用了流式风格的builder API * author liuyazhuang * */ public class EWMA implements Serializable { private static final long serialVersion…

EWMA模型估计波动率

#tushare ID&#xff1a;474220 指数移动平均&#xff08;Exponential Moving Average, EMA或EWMA&#xff09;是以指数式递减加权的移动平均。各数值的加权而随时间而指数式递减&#xff0c;越近期的数据加权越重&#xff0c;但较旧的数据也给予一定的加权。加权的程度以常数λ…

史上最通俗易懂的EWMA(指数加权移动平均)的参数解释以及程序代码

文章目录 一、EWMA&#xff08;指数加权移动平均&#xff09;是什么&#xff1f;二、详细的参数解释3、使用Python pandas库中的ewm()函数实现指数加权移动平均&#xff08;EWMA&#xff09;的示例代码总结 一、EWMA&#xff08;指数加权移动平均&#xff09;是什么&#xff1f…

用计算器来进行计算10的几次方的问题

一、首先找到计算器&#xff0c;然后就是找到科学&#xff0c;如图&#xff1a; 二、比如说进行10的2次方&#xff0c;先进行CE清除&#xff0c;然后就是选中10&#xff0c;然后就是选中如下&#xff1a;10^x,如图&#xff1a; 选择10的平方为100&#xff0c;如图&#xff1a; …

十次方项目登陆问题 token令牌解析,claims获取不到userid,求大神帮忙看下代码解决问题

十次方项目登陆问题 token令牌解析&#xff0c;claims获取不到userid 这个是拦截器&#xff1a; 判断角色是用户还是管理员&#xff0c;如果是用户就存入(“claims_user”,token);到controller控制层 此时clims为空&#xff0c;所以下面取值为权限不足

C语言求次方代码

使用pow库函数求2的10次方 #include <stdio.h> #include <math.h>int main() {double a pow(2, 10);printf("%lf",a);return 0; }使用C编译器运行程序 只需更换pow函数中的参数即可求其他结果 _Check_return_ double __cdecl pow(_In_ double _X, …

十次方:区块链需要服务器吗?

随着区块链被正名&#xff0c;上升国家战略后&#xff0c;区块链“忽如一夜春风来&#xff0c;瞬间火遍了全国”。 什么是区块链? 区块链技术是指全民参与记账的一种方式。所有系统背后都有一个数据库&#xff0c;你可以把它看作是一个大账簿。目前是各自记各自的账。它最本…

十次方:服务器的1U、2U、U代表什么意思?

我们在租用或购买服务器的时候&#xff0c;其中有个需要考虑的因素是&#xff0c;我们的服务器需要选择多少U?有1U、2U、4U等服务器可以选择&#xff0c;那么这里的U代表是什么意思? 服务器中的 “U” 代表什么意思 ? 服务器里的“U”特指的是服务器机箱的高度&#xff0c…

五次方数(C语言)

解题思路&#xff1a; 本题的难点在于如何判断边界&#xff0c;我们先判断上边界&#xff1a;我们试着以每位数最大单位数9为边界&#xff0c;所以9^559049,有5位数&#xff0c;所以5*59049295245&#xff1b; 下边界&#xff1a;按题目要求&#xff0c;对一个数十进制表示时的…

科学计算机怎么用10次方,一个数怎么用计算器开10次方

2010-10-20 关于使用计算器&#xff1f;谢谢 那个x^y的按键就是x的y次方的意思 不知道您上高中没有&#xff0c;大概是上高中的时候学的&#xff0c;开根号的新的表示方法 比如说根号下3&#xff0c;也就是2次根号下3&#xff0c;就等于3的2分之1次方 再比如3次根号下16&#x…

window如何安装head插件

head插件是给Elasticsearch提供的图形化界面 1&#xff0c;下载地址 head插件下载地址 2&#xff0c;解压 3&#xff0c;安装node js&#xff0c;安装cnpm npm install ‐g cnpm ‐‐registryhttps://registry.npm.taobao.org4&#xff0c;将grunt安装为全局命令 。Grunt是…

用计算机怎么按四分之三次方等于多少,八十一分之十六的负四分之三次方怎么算,要具体过程,答案是多少?...

八十一分之十六的负四分之三次方怎么算&#xff0c;要具体过程&#xff0c;答案是多少&#xff1f;以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01; 八十一分之十六的负四分之三次方怎么算&a…

十次方:机架式服务器和塔式服务器有什么区别?

通过服务器外形的结构,可以把服务器分为塔式、机架式、刀片式服务器三种类型。而目前市场上比较常见的是塔式和机架式服务器两种,那么这两种服务器有什么区别呢? 外形上: 塔式服务器它的外形上跟我们普通电脑的主机差不多,是立的,可以随便放置,无需机柜。只不过个头更…

【十次方】Springboot中使用SpringCache做缓存

Spring全家桶分布式微服务&#xff08;十次方项目学习&#xff09; 十次方学习交流qq群&#xff1a;672373393 其实在sptringboot中本身提供了一个缓存SpringCache&#xff0c;相比redis更加的简单&#xff0c;但是相对的功能也没有redis强大。如果没有其它特别的需求&#xff…

10的几次方 用计算机计算公式,在excel中如何计算10的几次方呢

excel的运算功能我们都知道非常强大&#xff0c;但是在excel中如何计算10的几次方呢&#xff1f;今天小编就通过一个简单的例子来给大家介绍下在excel中10的几次方的输入和运算方法。 第一、excel 10的几次方运算结果。 在excel中如何得到 10的几次方的结果呢&#xff1f;提供两…

【十次方】Springboot中使用Redis做缓存

Spring全家桶分布式微服务&#xff08;十次方项目学习&#xff09; 十次方学习交流qq群&#xff1a;672373393 今天学习十次方项目&#xff0c;其中说到了如何在springboot框架中如何使用redis缓存&#xff0c;写篇博客记录一下。 为什么要用缓存&#xff1f; 在我们平时开发…

python开三次方_python 三次方

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符成员运算符 身份运算符 运算符优先级算术运算符 + — * % **…

十次方微服务全套课程介绍

连接资源地址 一&#xff1a;课程简介 《十次方社交系统》采用目前主流的微服务系统架构SpringBootSpringCloudSpringData进行开发&#xff0c;前端技术采用Vue.js。系统整体分为三大部分&#xff1a;微服务、网站前台、网站管理后台。功能模块包括文章、问答、招聘、活动、吐…

【JVM】jvm简介特点和jvm在整个计算机框架中的位置

本文目录 一、JVM概念二、JVM介绍三、JVM特点四、JVM的位置一、JVM概念 什么是JVM? JVM(Java Virtual Machine的缩写)一般指java虚拟机。 Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之…