R语言数据分析案例42-基于时间序列模型对股票预测分析和研究

一、研究背景和意义

随着全球经济的不断发展和数字化转型的加速推进,科技公司在全球市场中扮演着日益重要的角色。其中,中国的阿里巴巴集团作为全球最大的电子商务公司之一,其业务范围覆盖电子商务、云计算、金融科技等多个领域。由于其在中国及全球市场的影响力和市值巨大,阿里巴巴的股票价格不仅关乎公司自身的发展状况,也反映了中国和全球经济的整体走势。股票价格是金融市场最直观、最重要的指标之一,对于投资者、分析师和政策制定者来说,了解和预测股票价格的波动具有重要的意义。时间序列分析作为一种经典的统计方法,可以帮助我们深入理解阿里巴巴股票价格的走势规律,为投资决策和风险管理提供可靠的依据。。。。

二、研究综述

在国内研究方面,翁紫霞为提供可参考的投资建议,提高投资者在股票市场的收益,基于建设银行 2019 年 1 月 2 日—2022 年11 月 14 日每个交易日共计 939 组收盘价数据,应用 ARIMA 模型对股价进行预测和分析。结果显示,应用 ARIMA 模型可对短期内股价进行很好的预测,但因股票市场受多种多重因素的影响,进行长期预测时可能存在较大误差,需要深入探索更为准确的股价预测模型[1]。。。。姚金海通过构建一个基于ARIMA与信息粒化SVR的组合预测模型,对股票市场指数价格和收益变化的趋势进行预测。实证研究结果表明:基于ARIMA与信息粒化SVR组合的股指预测模型相较于传统时间序列模型而言,在预测精度和效度方面有较大提升,能够在一定时间周期内对股票等风险资产的价格波动区间进行较为可靠地预测[7]。。。。

三、理论部分

ARIMA模型为自回归移动平均模型,这是一个当选取的序列是非平稳序列时,能够通过差分、季节分解等一系列方法后将该序列变为平稳序列,随后继续建模的一个模型

指数平滑法是一种常用于时间序列预测的简单但有效的方法之一。它的核心思想是利用过去观测值的加权平均来预测未来的值,其中过去观测值的权重随时间指数级衰减。

季节性自回归整合移动平均模型(Seasonal Autoregressive Integrated Moving Average,sARIMA)是一种用于处理具有季节性的时间序列数据的方法。它是ARIMA模型的扩展,专门设计用于捕捉数据中的季节性变化。。。。

四、实证分析

本研究使用的数据来自阿里巴巴(股票代码:SW9988)的股票市场交易数据,涵盖了从 2022 年 1 月 1 日到 2024 年 3 月 12 日的时间范围。这段时间内的交易数据记录了阿里巴巴股票在市场中的各种表现和变化。

数据和代码

报告代码数据

首先读取数据并且查看数据和其特征格式:

library(ggplot2)
library(vars)
library(readxl)
# 导入所需的库
library(readr)
# 读取CSV文件
data <- read_csv('C:/Users/DWW/Desktop/ALBB-SW9988.csv')
data
# 显示数据的前几行
head(data)

 从上图可以看见,其中包含了538个数据点,每个数据点有7个变量,主要是数值型和字符串形式。接下来转换日期格式并且画出时间序列图:

data$date
# 绘制时间序列图
ggplot(data, aes(x = data$date, y = ts_data)) +geom_line() +labs(x = "日期", y = "收盘价") +ggtitle("收盘价时间序列") +theme_minimal() +theme(plot.title = element_text(hjust = 0.5))

从图中可以看出几个特点,在波动性上,股票价格波动非常显著,其中在2022年中到2023年初出现较大的波峰和波谷,这意味着在这段时间内股票价格的波动幅度较大。

接下来进行平稳性检验

拒绝了原假设,这意味着我们有足够的证据来支持备择假设,即时间序列数据是平稳的。接下来画出ACF和PACF图。

# 绘制ACF图
acf(ts_data, main = "ACF Plot for ts_data")
# 绘制PACF图
pacf(ts_data, main = "PACF Plot for ts_data")

 ACF图显示了时间序列与其自身过去值的相关程度。这幅图显示了在多个时间滞后(Lag)下,ACF值逐渐减小。在这里,几乎所有的ACF条都是正值,并且逐渐减小到零,这通常是一个非平稳时间序列的指标。

在这里我们选取了arima (2, 0, 1)和自动定阶的模型来比较,模型信息如下:

# 拟合模型
manual_arima_model <- arima(ts_data, order = c(2, 0, 1))
# 显示手动选择的ARIMA模型信息
print(manual_arima_model)
# 模型评价
accuracy(manual_arima_model)

模型参数:ARIMA(0,1,0)表示你选择了一个差分阶数为1的一阶差分自回归移动平均模型。这个模型没有自回归项(AR)和移动平均项(MA),只有一个一阶差分(差分阶数为1)。

ARIMA(2,0,1)模型的参数为:ar1 = 1.3046, ar2 = -0.3185, ma1 = -0.3804,同时还有一个截距项(intercept)为90.3917。参数的标准误差分别为:ar1的标准误差为0.4346,ar2的标准误差为0.4245,,,

综合来看,虽然ARIMA(2,0,1)模型在参数较多的情况下拟合了数据。可以通过图来直观比较两模型的误差:

在MAE指标上,手动定阶的模型性能低于自动定阶模型,但是在RMSE和MAPE指标上,手动定阶的模型性能显著优于自动定阶模型,

接下来展示一下ARIMA(2,0,1)的预测结果:

# 绘制图表
ggplot(combined_data, aes(x=Date, y=Value, color=Data)) +geom_line() +labs(title="Time Series Forecast", x="Date", y="Closing Price") +theme_minimal()+theme(plot.title = element_text(hjust = 0.5))

其中,蓝色线显示了2022年1月至2023年底的价格走势。可以看到价格有明显的波动,其中有几个尖峰和深谷,这表明了该期间内的高波动性。。。。

接下来对模型进行残差分析:

# 残差分析
checkresiduals(manual_arima_model)

综合这些图表,我们可以得出结论,ARIMA(2,0,1)模型对数据进行了相对合理的拟合。

ETS模型

从上面结果可以得到,Smoothing parameters(平滑参数),alpha = 0.9422,这是平滑参数,它控制着对观察值的权重。较高的alpha值意味着更多的权重被分配给最近的观察值,。。

accuracy_ets <- accuracy(forecast_ets)
accuracy_ets
# 查看预测结果
plot(forecast_ets)

数据显示了显著的波动性和一个整体的下降趋势。从大约2023年初开始,图表以灰色区域显示了12个时间周期的预测。。。。

 Prophet模型

接下来使用Prophet模型来对数据做12期的预测:

# 构建未来数据框架
future <- make_future_dataframe(m, periods=12, freq = 'day')
# 进行预测
forecast_prophet <- predict(m, future)
forecast_prophet
# 查看预测结果
plot(m, forecast_prophet)
prophet_plot_components(m, forecast_prophet)

Prophet是Facebook开发的一个开源工具,它适用于时间序列数据的预测,特别是对于具有强季节性模式和多个季节性周期的数据。 特别的,该模型的指标情况为:MAE为5.2771,RMSE:为6.7873,MAPE: 0.0612。

SARIMA模型以及混合模型ARIMA-ETS

首先看一下SARIMA模型

fit_sarima <- auto.arima(data_ts, seasonal=TRUE)
# 概览模型
summary(fit_sarima)
# 进行预测
forecast_sarima <- forecast(fit_sarima, h=12)
# 查看预测结果
plot(forecast_prophet)

从上述模型参数可以知道,每个参数的标准误差(s.e.)分别为:ar1的标准误差为0.0686,ar2的标准误差为0.0658,。。

接下来进行混合模型的预测实验:

# 可视化预测结果
plot(forecast_arima, col="blue")
lines(forecast_ets$mean, col="red")
lines(combined_forecast, col="green")
legend("topright", legend=c("ARIMA", "ETS", "Combined"), col=c("blue", "red", "green"), lty=1)

从上图可以看出,ETS的预测是一条直线,说明预测未来股价会一直平稳,但是这可能性很小,从混合模型ARIMA-ETS和ARIMA模型对比来看,并不是模型通过混合之后其预测效果会变得更好,反之,有可能不如单一的时间序列模型。

五、结论和政策建议

在建模方面,我们尝试了多种时间序列模型,包括ARIMA、ETS、Prophet和SARIMA等。经过比较,我们发现ARIMA(2,0,1)模型在拟合数据和预测效果上表现较好,具有较低的预测误差和较高的拟合优度指标。。。。

参考文献

  1. 翁紫霞.基于ARIMA模型的股价分析与预测——以建设银行为例[J].现代信息科技,2023,7(14):137-141.DOI:10.19850/j.cnki.2096-4706.2023.14.029.
  2. 万文娣. 机器学习在股票价格混合预测模型中的研究与应用[D].西北师范大学,2023.DOI:10.27410/d.cnki.gxbfu.2023.002345.
  3. 刘祺,施三支,娄磊等.基于ARIAM-GARCH深度学习的股价预测与决策[J].长春理工大学学报(自然科学版),2024,47(01):119-130.、

创作不易,希望大家多点赞关注评论!!!(类似代码或报告定制可以私信)

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

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

相关文章

AI革命:RAG技术引领未来智能

AI革命:RAG技术引领未来智能 在人工智能的浪潮中,一种名为RAG(Retrieval-Augmented Generation)的技术正在悄然改变我们的世界。这种技术通过整合外部知识库,极大地增强了大型语言模型(LLM)的性能,为智能助手、聊天机器人等应用带来了革命性的提升。 1 突破性的RAG技…

【python】PyQt5可视化开发,如何设计鼠标显示的形状?

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

JMeter:循环控制器While Controller的用法小结

前言 在之前的博文“JMeter案例优化&#xff1a;测试执行结束后&#xff0c;实现tearDown的几种方式”中&#xff0c;尝试了JMeter的循环控制器While Controller&#xff0c;发现还有点小复杂&#xff0c;将学习过程记录下来&#xff0c;免得遗忘。 注&#xff1a;我使用的是…

《C++20设计模式》外观模式

文章目录 一、前言二、实现1、UML类图2、实现 一、前言 一句话总结外观模式&#xff1a;简化接口&#xff0c;或者简化流程。&#x1f642; 相关代码可以在这里&#xff0c;如有帮助给个star&#xff01;AidenYuanDev/design_patterns_in_modern_Cpp_20 二、实现 原来需要很…

动手学深度学习(Pytorch版)代码实践 -循环神经网络-54~55循环神经网络的从零开始实现和简洁实现

54循环神经网络的从零开始实现 import math import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l import matplotlib.pyplot as plt import liliPytorch as lp# 读取H.G.Wells的时光机器数据集 batch_size, num_steps 32, …

多特征线性回归

目录 一、多特征符号意义说明&#xff1a;二、多特征模型表示&#xff1a;三、Numpy向量表示、内积计算&#xff1a;1.向量表示&#xff1a;2.内积计算&#xff1a; 四、多元线性回归梯度下降算法&#xff1a; 一、多特征符号意义说明&#xff1a; x下标j&#xff1a;表示第j个…

怎么做外贸推广:10个详细教程和工具

1. 介绍 1.1 什么是外贸推广 外贸推广指的是将产品或服务推广到国际市场的过程。它的主要目的是吸引海外客户&#xff0c;增加销售额&#xff0c;并扩大企业的全球影响力。外贸推广不仅仅是销售产品&#xff0c;它还包括品牌建设、市场研究和客户关系管理。 谷歌外贸推广案例…

机器学习---线性回归

1、线性回归 例如&#xff1a;对于一个房子的价格&#xff0c;其影响因素有很多&#xff0c;例如房子的面积、房子的卧室数量、房子的卫生间数量等等都会影响房子的价格。这些影响因子不妨用 x i x_{i} xi​表示&#xff0c;那么房价 y y y可以用如下公式表示&#xff1a; y …

吴恩达机器学习 第三课 week3 强化学习(月球着陆器自动着陆)

目录 01 学习目标 02 概念 2.1 强化学习 2.2 深度Q学习&#xff08;Deep Q-Learning &#xff09; 03 问题描述 04 算法中的概念及原理 05 月球着陆器自动着陆的算法实现 06 拓展&#xff1a;基于pytorch实现月球着陆器着陆 07 总结 写在最前&#xff1a;关于强化学习…

python conda查看源,修改源

查看源 conda config --show-sources 修改源 可以直接vim .condarc修改源&#xff0c;

平价猫粮新选择!福派斯鲜肉猫粮,让猫咪享受美味大餐!

福派斯鲜肉猫粮&#xff0c;作为一款备受铲屎官们青睐的猫粮品牌&#xff0c;凭借其卓越的品质和高性价比&#xff0c;为众多猫主带来了健康与美味的双重享受。接下来&#xff0c;我们将从多个维度对这款猫粮进行解析&#xff0c;让各位铲屎官更加全面地了解它的魅力所在。 1️…

【三】ubuntu24虚拟机集群配置免密登陆

文章目录 环境背景1. 配置域名映射2. 配置免密登录2.1 在每台机器上生成SSH密钥对&#xff1a;2.2 将公钥分发到其他机器&#xff1a;2.2.1 报错问题2.2.2 修复方法 3. 验证免密登录在 ubuntu1 上&#xff1a;在 ubuntu2 上&#xff1a;在 ubuntu3 上&#xff1a; 测试连接 环境…

Linux系统的服务——以Centos7为例

一、Linux系统的服务简介 服务是向外部提供对应功能的进程&#xff0c;其运行在系统后台&#xff0c;能够7*24小时持续不断的提供外界随时发来的服务请求&#xff0c;且服务进程常驻在内存中&#xff0c;具有固定的端口号&#xff0c;通过端口号就能找到服务内容。 提供服务的一…

【PB案例学习笔记】-27制作一个控制任务栏显示与隐藏的小程序

写在前面 这是PB案例学习笔记系列文章的第27篇&#xff0c;该系列文章适合具有一定PB基础的读者。 通过一个个由浅入深的编程实战案例学习&#xff0c;提高编程技巧&#xff0c;以保证小伙伴们能应付公司的各种开发需求。 文章中设计到的源码&#xff0c;小凡都上传到了gite…

C语言结构体的相关知识

前言 从0开始记录我的学习历程&#xff0c;我会尽我所能&#xff0c;写出最最大白话的文章&#xff0c;希望能够帮到你&#xff0c;谢谢。 1.结构体类型的概念及定义 1.1、概念&#xff1a; 结构体是一种构造类型的数据结构&#xff0c; 是一种或多种基本类型或构造类型的数…

第11章 规划过程组(二)(11.8排列活动顺序)

第11章 规划过程组&#xff08;二&#xff09;11.8排列活动顺序&#xff0c;在第三版教材第390~391页&#xff1b; 文字图片音频方式 第一个知识点&#xff1a;主要工具与技术&#xff08;重要知识点&#xff09; 1、箭线图法(ADM) &#xff08;双代号网络图或活动箭线图&am…

windows USB 设备驱动开发- 不同模型下的控制传输

在不同的模型下&#xff0c;USB控制传输会有不同的特点&#xff0c;但是任何控制传输的目标都始终是默认端点。 接收者是设备的实体&#xff0c;其信息&#xff08;描述符、状态等&#xff09;是主机感兴趣的。请求可进一步分为&#xff1a;配置请求、功能请求和状态请求。 发…

leetcode力扣_双指针问题

141. 环形链表 思路&#xff1a;判断链表中是否有环是经典的算法问题之一。常见的解决方案有多种&#xff0c;其中最经典、有效的一种方法是使用 快慢指针&#xff08;Floyd’s Cycle-Finding Algorithm&#xff09;。 初始化两个指针&#xff1a;一个快指针&#xff08;fast&…

uni-app 使用Pinia进行全局状态管理并持久化数据

1.引言 最近在学习移动端的开发&#xff0c;使用uni-app前端应用框架&#xff0c;通过学习B站的视频以及找了一个开发模板&#xff0c;终于是有了一些心得体会。 B站视频1&#xff1a;Day1-01-uni-app小兔鲜儿导学视频_哔哩哔哩_bilibili B站视频2&#xff1a;01-课程和uni的…

[FFmpeg] windows下安装带gpu加速的ffmpeg

1.显卡能力排查 目前只有 NIVIDIA 支持 ffmpeg 的 gpu加速(AMD貌似也陆续开始支持)。 在下述网站中查找自己的显卡能够支持的编解码格式。https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-newhttps://developer.nvidia.com/video-encode-and-decod…