IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习——时间序列ARIMA模型(三):AR、MA、ARMA、ARIMA模型定义及公式介绍及股价预测案例代码 -> 正文阅读

[人工智能]机器学习——时间序列ARIMA模型(三):AR、MA、ARMA、ARIMA模型定义及公式介绍及股价预测案例代码

作者:recommend-item-box type_blog clearfix

ARIMA模型

1、自回归模型(AR)

使用自身的数据进行预测,且只适用于预测与自身前期相关的现象。

注意:需满足具有平稳性的要求,需满足自相关性,自相关系数需大于0.5。

p阶自回归公式:
y t = μ + ∑ i = 1 p γ i y t ? i + e t y_{t}=μ+\sum_{i=1}^p\gamma_{i}y_{t-i}+e_{t} yt?=μ+i=1p?γi?yt?i?+et?
? 其中yt为当前值,p为阶数(时间间隔,比如按天统计1号与2号为1阶,1号与3号为2阶), γ i \gamma_{i} γi?为自相关系数,et为误差项,i表示当前值与前多少个历史值有关。

2、移动平均模型(MA):

自回归模型中的误差项累加,能有效消除预测中的随机波动

q阶自回归公式:
y t = μ + ∑ i = 1 q θ i e t ? i + e t y_{t}=μ+\sum_{i=1}^q\theta_{i}e_{t-i}+e_{t} yt?=μ+i=1q?θi?et?i?+et?

3、自回归移动平均模型(ARMA)

将二者结合就可以得到ARMA,其中p,q需要自己指定。指定p、q需根据ACF、PACF以及BIC和AIC准则确定最优解(后续介绍)。
y t = μ + ∑ i = 1 p γ i y t ? i + e t + ∑ i = 1 q θ i e t ? i y_{t}=μ+\sum_{i=1}^p\gamma_{i}y_{t-i}+e_{t}+\sum_{i=1}^q\theta_{i}e_{t-i} yt?=μ+i=1p?γi?yt?i?+et?+i=1q?θi?et?i?
需求解的项为
γ i 和 θ i \gamma_{i}和\theta_{i} γi?θi?

4、ARIMA模型

ARIMA(p,d,q)全称差分自回归移动平均模型,无疑是在ARMA的基础上做了差分。

差分法详解之前写过了一篇文章

机器学习——时间序列ARIMA模型(一):差分法详解_天海一直在的博客-CSDN博客_arima 差分

总结一下

ARIMA原理其实就是将非平稳的时间序列,转化为平稳的时间序列

然后将因变量仅对其滞后值和随机误差项的现值和滞后值进行回归(ARMA公式)所建立的模型

5、代码实现

1、导包

pandas做数据处理,matplotlib和seaborn做可视化,statsmodels中的arima来对数据进行建模

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from statsmodels.tsa.arima.model import ARIMA

2、数据预处理

这里我选择2000年至2021年道琼斯股市的部分指数作为训练数据集

data = pd.read_csv('data2000_2021.csv',index_col=0,parse_dates=[0])
data

image-20220510215854469

纵向切割:仅选择close列,并对数据进行以月为单位的分割,

stock_month = data['close'].resample("M").mean()
stock_month

横向切割:选择2000年至2019年的数据

stock_train = stock_month['2000':'2019']
stock_train

3、做一阶差分

stock_diff = stock_train.diff()
stock_diff = stock_diff.dropna()
plt.figure()
plt.plot(stock_diff)
plt.title('first difference')
plt.show()

绘图

stock_train.plot(figsize=(12,8))

4、使用模型

其中order中的参数分别为p、d、q

model = ARIMA(stock_train, order=(1,0,8))
result = model.fit()

5、预测值

注意预测值的开始要在所给出数据的范围内,结束值不做要求

pred = result.predict(250,288,dynamic = True)
pred

绘图

plt.figure(figsize=(5,5))
plt.plot(pred)
plt.plot(stock_month)
plt.show()

最后结果:

image-20220510220447984

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-05-12 16:27:40  更:2022-05-12 16:28:33 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:32:52-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码