基于ARMA-GARCH模型探究股价的日历效应和节假日效应【思路+代码】

news2025/1/10 22:23:12

目录

  • 1. 模型定义
    • 1.1 ARMA-GARCH模型
    • 1.2 引入节假日效应的虚拟变量的新模型
    • 1.3 引入日历效应的虚拟变量的新模型
  • 2. 实证部分
    • 2.1 准备工作
    • 2.2 引入节假日效应虚拟变量的模型建立和结果分析
    • 2.3 引入节假日效应和日历效应的虚拟变量的模型建立和结果分析
  • 3. 结语

本文介绍了ARMA-GARCH模型的基本定义和构建方式。随后,提出了引入节假日效应和日历效应的虚拟变量的模型定义,并根据定义进行了建模和结果分析。包含代码和结果展示。包含数据、代码的文件可关注gzh‘finance褪黑素’,在gzh下回复关键词【20240312】获取。更多金融大数据的内容可关注博主。

1. 模型定义

股票数据常常表现出波动性聚焦的特征,选择ARMA-GARCH模型能够捕捉时间序列的波动性,并且能够根据过去的波动性估计未来的波动性,预测效果很优秀,所以这里选择这个模型来拟合深证综指的收盘价数据。

1.1 ARMA-GARCH模型

ARMA-GARCH模型是ARMA模型和GARCH模型的组合,分别包含两个公式,一个是ARMA模型的均值方程,一个是GARCH模型的方差方程,它们组合时首先利用均值方程对收益率进行建模,然后对建模后的残差利用方差方程进一步计算,得到最终的组合模型。以下是ARMA-GARCH模型的基本公式:

  1. ARMA模型(均值方程)
      Y t = μ + ϕ 1 Y t − 1 + ϕ 2 Y t − 2 + … + ϕ p Y t − p + ε t − θ 1 ε t − 1 − θ 2 ε t − 2 − … − θ q ε t − q   \ Y_t = \mu + \phi_1 Y_{t-1} + \phi_2 Y_{t-2} + \ldots + \phi_p Y_{t-p} + \varepsilon_t - \theta_1 \varepsilon_{t-1} - \theta_2 \varepsilon_{t-2} - \ldots - \theta_q \varepsilon_{t-q}\  Yt=μ+ϕ1Yt1+ϕ2Yt2++ϕpYtp+εtθ1εt1θ2εt2θqεtq 
    μ \mu μ是常数项, ϕ i \phi_i ϕi 是自回归系数, θ i \theta_i θi 是移动平均系数, ε t \varepsilon_t εt是白噪声项(均值为0),方差为 σ t 2 \sigma_t^2 σt2

  2. GARCH模型(方差方程)
    σ t 2 = α 0 + α 1 ε t − 1 2 + α 2 ε t − 2 2 + … + α p ε t − p 2 + β 1 σ t − 1 2 + β 2 σ t − 2 2 + … + β q σ t − q 2   \sigma_t^2 = \alpha_0 + \alpha_1 \varepsilon_{t-1}^2 + \alpha_2 \varepsilon_{t-2}^2 + \ldots + \alpha_p \varepsilon_{t-p}^2 + \beta_1 \sigma_{t-1}^2 + \beta_2 \sigma_{t-2}^2 + \ldots + \beta_q \sigma_{t-q}^2\ σt2=α0+α1εt12+α2εt22++αpεtp2+β1σt12+β2σt22++βqσtq2 
    其中, σ t 2 \sigma_t^2 σt2 是条件方差, α i \alpha_i αi 是平方项的ARCH系数, β i \beta_i βi是条件方差项的GARCH系数。

整个ARMA-GARCH模型的形式是将均值方程和方差方程结合起来。可以表示为:
  Y t = μ + ϕ 1 Y t − 1 + ϕ 2 Y t − 2 + … + ϕ p Y t − p + ε t − θ 1 ε t − 1 − θ 2 ε t − 2 − … − θ q ε t − q   \ Y_t = \mu + \phi_1 Y_{t-1} + \phi_2 Y_{t-2} + \ldots + \phi_p Y_{t-p} + \varepsilon_t - \theta_1 \varepsilon_{t-1} - \theta_2 \varepsilon_{t-2} - \ldots - \theta_q \varepsilon_{t-q}\  Yt=μ+ϕ1Yt1+ϕ2Yt2++ϕpYtp+εtθ1εt1θ2εt2θqεtq 
  s i g m a t 2 = α 0 + α 1 ε t − 1 2 + α 2 ε t − 2 2 + … + α p ε t − p 2 + β 1 σ t − 1 2 + β 2 σ t − 2 2 + … + β q σ t − q 2   \ sigma_t^2 = \alpha_0 + \alpha_1 \varepsilon_{t-1}^2 + \alpha_2 \varepsilon_{t-2}^2 + \ldots + \alpha_p \varepsilon_{t-p}^2 + \beta_1 \sigma_{t-1}^2 + \beta_2 \sigma_{t-2}^2 + \ldots + \beta_q \sigma_{t-q}^2\  sigmat2=α0+α1εt12+α2εt22++αpεtp2+β1σt12+β2σt22++βqσtq2 
最终得到的模型可以用于对未来值的预测和波动性的估计。

1.2 引入节假日效应的虚拟变量的新模型

在均值模型的基础上,加入新的虚拟变量,代表日历效应或节假日效应,将虚拟变量乘以一个系数,然后将其添加到均值方程的常数项上。
例如,假设虚拟变量为   D t \ D_t  Dt,表示第t个观测是否处于节前,处于节前为1,处于节后为0,来探究节前效应。

一般认为节前和节后具有不同的效应,需要分开进行对比,因此赋予虚拟变量不同的值可以检验节前和节后,比如检验节前效应时,对节日前的日期赋予   D t \ D_t  Dt为1,节日后的日期赋予   D t \ D_t  Dt为0,而在检验节后效应时,可以对节日前的日期赋予   D t \ D_t  Dt为0,对节日后的赋予   D t \ D_t  Dt为1.本文探讨的是节前效应,下文会附带代码,需要检验节后效应可以在作者指定的位置修改即可。

加入节日效应的虚拟变量后的均值方程可以表示为:
  Y t = μ + β D t + ϕ 1 Y t − 1 + ϕ 2 Y t − 2 + … + ϕ p Y t − p + ε t − θ 1 ε t − 1 − θ 2 ε t − 2 − … − θ q ε t − q   \ Y_t = \mu + \beta D_t + \phi_1 Y_{t-1} + \phi_2 Y_{t-2} + \ldots + \phi_p Y_{t-p} + \varepsilon_t - \theta_1 \varepsilon_{t-1} - \theta_2 \varepsilon_{t-2} - \ldots - \theta_q \varepsilon_{t-q}\  Yt=μ+βDt+ϕ1Yt1+ϕ2Yt2++ϕpYtp+εtθ1εt1θ2εt2θqεtq 
其中:

  •   Y t \ Y_t  Yt 是时间序列的观测值。
  • μ \mu μ 是常数项。
  • D t D_t Dt 是虚拟变量,表示在时间 (t) 是否存在某个效应。
  • β \beta β 是虚拟变量的系数。
  • ϕ 1 , ϕ 2 , … , ϕ p \phi_1, \phi_2, \ldots, \phi_p ϕ1,ϕ2,,ϕp 是自回归项的系数。
  • ε t \varepsilon_t εt 是白噪声项。
  • θ 1 , θ 2 , … , θ q \theta_1, \theta_2, \ldots, \theta_q θ1,θ2,,θq 是移动平均项的系数。

1.3 引入日历效应的虚拟变量的新模型

同样的,仿照上面节假日效应的检验思路,如果需要探究日历效应的影响,那么可以引入日历效应的虚拟变量的新模型。类似 D t D_t Dt,可以令 K t K_t Kt为新的虚拟变量,对月份结束前的日期赋予   K t \ K_t  Kt为1,月份结束后的日期赋予   K t \ K_t  Kt为0。
方程和上面的一样。

在某些时候,不能单独考虑节假日效应或是日历效应的影响,因为某些日期重合,发生影响的部分可能是另一种效应,因此最好是添加两个效应的虚拟变量一同列举模型,只有在参数都显著的情况下,才能确定存在该效应。比方说前文只探究了节假日效应,就不能完全确定这是由节假日引起的,参数的显著可能是因为日历效应,所以当引入两个虚拟变量,且在这种时候节假日效应的虚拟变量参数显著时,才能说存在节假日效应。
下面会列举如何在模型中添加一个和两个虚拟变量。

2. 实证部分

2.1 准备工作

首先导入股票数据:
在这里插入图片描述
本文实证部分针对2023年一年的数据进行研究。
对股价收盘价做趋势图,标注出几个重要节日的日期:
在这里插入图片描述
看了一些文献,还可以计算不同节日前节日后股价的收盘价平均值、方差、波动性等进行对比,此处没有计算,直接进入实证模型。

计算2023年春节节前效应的虚拟变量:(如果是节后效应,将第二行和第四行的0改为1即可,代码比较简单)

before_date = '2023-01-22'
df['新列'] = 0  
df.loc[df['日期'] < pd.to_datetime(before_date), '新列'] = 1  
before_df = df[df['新列'] == 0]

2.2 引入节假日效应虚拟变量的模型建立和结果分析

from statsmodels.tsa.arima.model import ARIMA
from arch import arch_model
arma_model = ARIMA(df['收盘'], order=(1, 0, 1), exog=df['新列'])
arma_result = arma_model.fit()
print(arma_result.summary())

在这里插入图片描述

解释结果:
新列 (虚拟变量): 虚拟变量的系数。在这个例子中,虚拟变量的系数为-115.3200。由于该系数的P值很大(0.900),说明虚拟变量的系数不显著,可能不具备统计学意义,说明2023年春节对该年收益变动不具有节假日效应。
ar.L1 (自回归项): ARIMA模型中的自回归项的系数。在这个例子中,自回归项的系数为0.9924。由于P值很小(0.000),我们可以拒绝虚无假设,说明该自回归项是显著的。
ma.L1 (滑动平均项): ARIMA模型中的滑动平均项的系数。在这个例子中,滑动平均项的系数为0.0498。由于P值较大(0.481),我们不能拒绝虚无假设,说明该滑动平均项可能不显著。

对上面的均值方程的结果提取出resid代入方差方程,也就是garch模型:

garch_model = arch_model(arma_result.resid, vol='Garch', p=1, q=1)
garch_result = garch_model.fit()
print(garch_result.summary())

在这里插入图片描述

注意上面建立的过程没有参数选取,直接建立的ARMA(1,1)-GARCH(1,1)模型,具体步骤可以根据自己需要添加,模型参数可以在上面修改

根据模型得到的参数结果:
Mean Model (均值模型) Coefficients:
mu (常数项): -5.6987 (常数项的系数)
std err (标准误差): 10.376 (系数的标准误差)
t (t统计量): -0.549 (t统计量,用于检验系数是否显著)
P>|t| (P值): 0.583 (P值,用于判断系数是否显著)
Conf. Int. (置信区间): [-26.035, 14.637] (95%的置信区间)

Volatility Model (波动性模型) Coefficients:
omega (常数项): 3315.3689 (GARCH模型的常数项)
std err (标准误差): 2.595e+04 (系数的标准误差)
t (t统计量): 0.128 (t统计量,用于检验系数是否显著)
P>|t| (P值): 0.898 (P值,用于判断系数是否显著)
Conf. Int. (置信区间): [-4.755e+04, 5.418e+04] (95%的置信区间)
alpha[1] (ARCH项系数): 0.0000 (ARCH项的系数)
beta[1] (GARCH项系数): 0.6751 (GARCH项的系数)

2.3 引入节假日效应和日历效应的虚拟变量的模型建立和结果分析

# 如果要引入二月效应的影响
before_date = '2023-03-01'
df['月份效应'] = 0  # 默认全部为0
df.loc[df['日期'] < pd.to_datetime(before_date), '月份效应'] = 1

建立ARMA模型:

arma_model = ARIMA(df['收盘'], order=(1, 0, 1), exog=df[['新列', '月份效应']])
arma_result = arma_model.fit()
print(arma_result.summary())

在这里插入图片描述
根据P值,节假日效应和日历效应都不显著。(可能是日期选取在一年内太少造成的)

进一步建立ARMA-GARCH模型:

garch_model = arch_model(arma_result.resid, vol='Garch', p=1, q=1)
garch_result = garch_model.fit()
print(garch_result.summary())

在这里插入图片描述

3. 结语

其他文章有进一步预测未来波动率的,也有关于结果检验、误差检验的相关文章。不当之处敬请斧正。
原文代码可关注gzh‘finance褪黑素’,在gzh下回复关键字【20240312】获取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1511773.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu18.04 安装搜狗输入法

一. 概述 自己的Ubuntu 18.04系统配置中文搜狗输入法&#xff0c;安装步骤&#xff0c;亲测可用 二. 安装步骤 2.1 确认系统版本和CPU架构 查看Ubuntu系统版本号&#xff0c;通过命令 lsb_release -a wuubuntume:~$ lsb_release -a No LSB modules are available. Distr…

【全志H616】-2 写一个自己的串口

【全志H616】-2 写一个自己的串口 1、基本命令 重启 sudo rebootLinux系统下一个文件夹的文件复制到另一个文件夹下 cp flags.c /home/user05/lab09/flags_revised.c //复制当前文件夹下的 flags.c 文件到 lab09 文件夹下flags_recised.c 文件cp oled_demo.c /home/orangep…

【网络安全】专栏文章索引

为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 网络安全 目录&#xff1a; &#xff08;一&#xff09; &#xff08;二&#xff09; &#xff08;三&#xff09; &#xff08;四&#xff09;

苍穹外卖中新增员工的功能是如何实现的?再复习下项目结构

一、Common、Pojo、Server分别都是干啥的&#xff1f; 在一个典型的Java应用程序中&#xff0c;通常会使用模块化的方式来组织代码&#xff0c;以提高代码的可维护性和可扩展性。常见的模块包括Common模块、POJO模块和Server模块&#xff0c;它们通常各自负责不同的功能。 Com…

Java项目源码基于springboot的家政服务平台的设计与实现

大家好我是程序员阿存&#xff0c;在java圈的辛苦码农。辛辛苦苦板砖&#xff0c;今天要和大家聊的是一款Java项目源码基于springboot的家政服务平台的设计与实现&#xff0c;项目源码以及部署相关请联系存哥&#xff0c;文末附上联系信息 。 项目源码&#xff1a;Java基于spr…

北京市行政村边界shp数据/北京市乡镇边界/北京市土地利用分类数据

北京是一座有着三千多年历史的古都&#xff0c;在不同的朝代有着不同的称谓&#xff0c;大致算起来有二十多个别称。北京地势西北高、东南低。西部、北部和东北部三面环山&#xff0c;东南部是一片缓缓向渤海倾斜的平原。境内流经的主要河流有&#xff1a;永定河、潮白河、北运…

JavaWeb-Maven

一、Maven概述 Maven是专门用于管理和构建Java项目的工具&#xff0c;它的主要功能有&#xff1a; 提供一套标准化的项目结构提供一套标准化的构建流程&#xff08;编译&#xff0c;测试&#xff0c;打包&#xff0c;发布......&#xff09;提供一套依赖管理机制 二、Maven简…

Window部署Oracle并实现公网环境远程访问本地数据库

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 前言 Oracle&#xff0c;是甲骨文公司的一款关系…

闭包表(Closure Table)存储和查询树形数据结构

闭包表通过在关系表中记录树节点之间的直接和间接关系来表示节点之间的层次结构&#xff0c;目的是支持高效的树遍历和查询操作。 一、创建闭包表 CREATE TABLE departments (id int NOT NULL COMMENT ID,name varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_…

Centos7安装postgresql14步骤

1、进入网址 https://www.postgresql.org/download/ 2、按步骤执行 # Install the repository RPM: sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# Install PostgreSQL: sudo yum install -y…

由于 Positive Technologies 的专业知识,Moxa 消除了工业无线转换器中的一个漏洞。

我们的专家在 NPort W2150A 和 W2250A 转换器中发现了该漏洞 - 这些设备可将工业控制器、仪表和传感器连接到本地 Wi-Fi 网络。Moxa 已根据负责任的披露政策通知了该威胁&#xff0c;并发布了软件更新。 &#x1f977; 攻击者可以完全访问这些设备。 Positive Technologies 公…

psutil, 一个超级有用的Python库

Python的psutil是一个跨平台的库&#xff0c;可以用于获取系统运行时的各种信息&#xff0c;包括CPU使用率、内存使用情况、磁盘和网络信息等。它主要用来做系统监控&#xff0c;性能分析&#xff0c;进程管理。它实现了同等命令行工具提供的功能&#xff0c;如ps、top、lsof、…

【前端】静态个人网站页面布局模板(附源码)

效果图 源码 <!DOCTYPE html> <html><head><style>* {box-sizing: border-box;}body {font-family: Arial;padding: 10px;background: #f1f1f1;}/* 页眉/Blog 标题 */.header {padding: 30px;text-align: center;background: white;}.header h1 {font…

【AnimateAnyone】定制化角色动画工具,让图片里的人物动起来!

论文地址&#xff1a;https://arxiv.org/pdf/2311.17117.pdf 项目地址&#xff1a;MooreThreads/Moore-AnimateAnyone (github.com) HumanAIGC/AnimateAnyone&#xff1a;Animate Anyone&#xff1a;用于角色动画的一致且可控的图像到视频合成 (github.com) 1. 模…

Docker容器常用命令笔记分享

Docker简介 Docker是一个开源的应用容器引擎&#xff0c;可以让开发者将应用程序及其依赖打包成一个可移植的容器&#xff0c;然后发布到任何支持Docker的机器上&#xff0c;实现应用程序在不同环境中的一致性运行。相比传统的虚拟化技术&#xff0c;Docker具有更轻量级、更快速…

【李沐论文精读】GPT、GPT-2和GPT-3论文精读

论文&#xff1a; GPT&#xff1a;Improving Language Understanding by Generative Pre-Training GTP-2&#xff1a;Language Models are Unsupervised Multitask Learners GPT-3&#xff1a;Language Models are Few-Shot Learners 参考&#xff1a;GPT、GPT-2、GPT-3论文精读…

计算机毕业设计 | SSM 在线毕业论文管理 线上考试成绩教务管理系统(附源码)

1&#xff0c; 绪论 研究背景 系统管理也都将通过计算机进行整体智能化操作&#xff0c;对于论文管理系统所牵扯的管理及数据保存都是非常多的&#xff0c;例如管理员&#xff1b;首页、系统用户&#xff08;管理员、学生、老师&#xff09;模块管理&#xff08;指导教师、课…

LLM预备知识、工具篇——LLM+LangChain+web UI的架构解析

目录 【常见名词】一、LLM的低资源模型微调二、向量数据库1、Milvus(v2.1.4)&#xff1a;云原生自托管向量数据库&#xff08;Ubuntu下&#xff09;1&#xff09;安装&#xff08;Docker Compose方式&#xff09;&#xff1a;2&#xff09;管理工具&#xff08;仅支持Milvus 2.…

在家不无聊,赚钱有门道:5个正规线上赚钱平台,轻松开启副业

随着网络技术的快速发展&#xff0c;越来越多的人开始寻求通过网络来探索兼职副业的可能性&#xff0c;期望实现额外的收入。在这个过程中&#xff0c;选择一个正规且可靠的线上兼职平台显得尤为关键。 为此小编精心网上盘点了5个正规且靠谱的线上兼职副业平台。这些平台不仅安…

数字证书在网络安全中的重要性与实际应用

数字证书作为一种“电子身份证”&#xff0c;在当今数字化的商业环境中有着广泛的实际应用。它主要用于身份认证、加密通信、电子签名和安全访问控制等方面&#xff0c;为各行各业提供了安全可靠的数字化解决方案。 网络安全领域 在网络通信中&#xff0c;数字证书被广泛应用…