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.pswp.cn/diannao/41649.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/41649.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/41649.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI革命:RAG技術引領未來智能

AI革命:RAG技術引領未來智能 在人工智能的浪潮中,一種名為RAG(Retrieval-Augmented Generation)的技術正在悄然改變我們的世界。這種技術通過整合外部知識庫,極大地增強了大型語言模型(LLM)的性能,為智能助手、聊天機器人等應用帶來了革命性的提升。 1 突破性的RAG技…

【問題記錄】Jenkins Pipeline讀取變量的各種方法

方法一 輸出docker image鏡像標簽給IMAGE_TAG def IMAGE_TAG sh(script: docker images | grep ${SERVER_NAME} | grep $NAME_SPACE | awk {print $2}|grep ${BUILD_NUMBER}, returnStdout: true) 另外&#xff0c;如果想輸出docker image命令執行結果給IMAGE_TAG def IMAG…

【python】PyQt5可視化開發,如何設計鼠標顯示的形狀?

?? 歡迎大家來到景天科技苑?? &#x1f388;&#x1f388; 養成好習慣&#xff0c;先贊后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者簡介&#xff1a;景天科技苑 &#x1f3c6;《頭銜》&#xff1a;大廠架構師&#xff0c;華為云開發者社區專家博主&#xff0c;…

通信施工安全員B類測試題含答案

1.全國人民代表大會常務委員會關于修改<中華人民共和國安全生產法>的決定》由中華人民共和國第十二屆全國人民代表大會常務委員會第十次會議通過&#xff0c;自( )起施行。 A、2002年11月1日 B、2014年8月31日C、2014年12月1日(正確答案) D、2015年1月01日 2.生產經營單…

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;

Shell學習——Shell變量

文章目錄 Shell變量使用變量只讀變量刪除變量變量類型字符串變量&#xff1a; 在 Shell中&#xff0c;變量通常被視為字符串。整數變量&#xff1a; 在一些Shell中&#xff0c;你可以使用 declare 或 typeset 命令來聲明整數變量。數組變量&#xff1a; Shell 也支持數組&#…

平價貓糧新選擇!福派斯鮮肉貓糧,讓貓咪享受美味大餐!

福派斯鮮肉貓糧&#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; 測試連接 環境…

三級_02_網絡系統結構與設計的基本原則

1.下列關于接入技術特征的描述中&#xff0c;錯誤的是()。 無線統一網絡中AC如果發現某個AP出現故障&#xff0c;將自動調高周圍AP的發射功率以覆蓋出現的空洞 ADSL技術具有非對稱帶寬特性 APON是一種無線接入技術 Cable Modem利用頻分復用的方法將信道分為上行信道和下行信…

Linux系統的服務——以Centos7為例

一、Linux系統的服務簡介 服務是向外部提供對應功能的進程&#xff0c;其運行在系統后臺&#xff0c;能夠7*24小時持續不斷的提供外界隨時發來的服務請求&#xff0c;且服務進程常駐在內存中&#xff0c;具有固定的端口號&#xff0c;通過端口號就能找到服務內容。 提供服務的一…

【PB案例學習筆記】-27制作一個控制任務欄顯示與隱藏的小程序

寫在前面 這是PB案例學習筆記系列文章的第27篇&#xff0c;該系列文章適合具有一定PB基礎的讀者。 通過一個個由淺入深的編程實戰案例學習&#xff0c;提高編程技巧&#xff0c;以保證小伙伴們能應付公司的各種開發需求。 文章中設計到的源碼&#xff0c;小凡都上傳到了gite…

柯西施瓦茨不等式證明過程

柯西-施瓦茨不等式&#xff08;Cauchy-Schwarz Inequality&#xff09;是數學分析中的一個重要不等式&#xff0c;它在向量空間、內積空間等多個領域都有廣泛應用。對于實數或復數域上的內積空間&#xff0c;柯西-施瓦茨不等式可以表述為&#xff1a; 對于任意向量 u \mathbf…

Android Gradle 開發與應用 (七): Gradle 插件開發與發布

目錄 一、概述 二、Gradle插件的基礎知識 2.1 Gradle插件的定義 2.2 Gradle插件的種類 2.3 Gradle插件的生命周期 三、開發一個Gradle插件 3.1 創建Gradle插件項目 3.2 編寫插件實現 3.3 配置插件元數據 3.4 構建和測試插件 3.5 在項目中應用插件 四、發布Gradle插…