我的编程空间,编程开发者的网络收藏夹
学习永远不晚

R语言ARMA模型的参数选择说明

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

R语言ARMA模型的参数选择说明

AR(p)模型与MA(q)实际上是ARMA(p,q)模型的特例。它们都统称为ARMA模型,而ARMA(p,q)模型的统计性质也是AR(p)与MA(q)模型的统计性质的有机组合。

平稳系列建模

假如某个观察值序列通过序列预处理可以判定为平稳非白噪声序列,就可以利用ARMA模型对序列建模。

1.求出该观察值序列的样本自相关系数(ACF)与偏相关系数(PACF的值。

2.根据根样本自相关系数和偏自相关系数的性质,选择阶数适当的ARMA(p,q)模型进行拟合。

3.估计模型中未知参数的值

4.检验模型的有效性。如果拟合模型未通过检验,回到步骤(2),重新选择模型拟合。

5.模型优化。如果拟合模型通过检验,仍然回到步骤(2),充分考虑各种可能,建立多个拟合模型,从所有通过检验的拟合的模型中选择最优模型。

6.利用拟合模型,预测序列将来的走势。

选择合适的模型拟合1950-2008年我国邮路及农村投递线路每年新增里程数序列:

白噪声检验:


 for(i in 1:2) print(Box.test(x,type = "Ljung-Box",lag=6*i))
    Box-Ljung test
data:  x
X-squared = 37.754, df = 6, p-value = 1.255e-06
    Box-Ljung test
data:  x
X-squared = 44.62, df = 12, p-value = 1.197e-05

绘制自相关图和偏自相关图


acf(x)
pacf(x)

补充:关于ARMA模型的R语言实现

新手一枚,和大家一起学习R,以后基本每周都会更新1到2篇关于数据预测处理的模型和方法,希望和大家一起学习,一起成长。

本周首先更新的是用R来实现ARMA模型。

时间序列的模型,基本上都要建立在平稳的序列上,这里我们将来了解下ARMA模型,以及其实现的R代码。

ARMA(p,q)模型,全称移动平均自回归模型,它是由自回归(AR)部分和移动平均(MA)部分组成的,所以称之为ARMA模型。进行ARMA模型的话,要求时间序列一定要是平稳的才行,否则建模无效。

1.ARMA模型具有如下形式:

ARMA模型的基本定义

2.ARMA模型建模步骤

(1)画出时序图,求出样本的相关系数,偏自相关系数值

(2)根据样本的相关系数和偏自相关系数,选择适当的阶数,由于这具有一定的主观性,所以这里我们选用的是最小AIC准则来定阶

(3)估计模型中的参数值

(4)检验模型的有效性,一般分为残差的白噪声检验和参数的显著性检验。

(5)利用模型进行预测。

3.建模

我们利用美国科罗拉多州某一加油站连续57天的OVERSHOOT序列,来进行本次建模。

(1)首先

读入数据,画出其时序图,检验其平稳性。


library(zoo)
library(tseries)
library(forecast)
overshort=read.table("C:/Users/MrDavid/data_TS/A1.9.csv",sep=",",header=T)
overshort=ts(overshort)
plot(overshort,col=4,lwd=2,pch=8,type="o")

结果如下:

从这里我们看到,这个时序图应该是平稳的,但是为了以防万一,我们进行单位根检验

进行一次单位根检验,测试该序列的平稳性:

代码:adf.test(overshort)

结果如下图所示:

单位根检验

由以上单位根检验,我们看到P值为0.01小于0.05,所以该序列平稳

(2)对于平稳的时间序列

我们需要进行白噪声检验,因为白噪声是纯随机序列,对白噪声序列进行建模毫无意义。


for(i in 1:3) print(Box.test(overshort,type="Ljung-Box",lag=6*i))

结果如下图:

一般我们进行白噪声检验只要检验到18到24项即可

可以看出,该序列非白噪声序列,可以进行建模。

(3)模型的拟合

模型的拟合,我们可以画出自相关图,和偏自相关图,对时间序列进行定阶


acf(overshort,col=4,lwd=2)
pacf(overshort,col=4,lwd=2)

结果如下:

在这里插入图片描述在这里插入图片描述

自相关图除了显示1阶延迟在两倍标准差之外,其他自相关系数都在两倍标准差之内,可以认为该序列自相关系数1阶截尾,骗子相关系数显示出非截尾性质,可以拟合模型为ARMA(0,1),即MA(1)模型。

该模型除了自相关,偏自相关系数定阶以外,还可以根据自动定阶函数auto.arima来对该序列进行定阶结果如下:


auto.arima(overshort)

在这里插入图片描述

也显示出该序列的模型为MA(1)模型

接下来进行建模,找出模型的系数:


a=arima(overshort,order=c(0,0,1),include.mean=T)
a

得出结果:

在这里插入图片描述

该模型为:

在这里插入图片描述

对模型进行显著性检验:


for(i in 1:3) print(Box.test(a$residual,type="Ljung-Box",lag=6*i))

在这里插入图片描述

残差的白噪声检验,反映出,该残差是白噪声序列,所以残差白噪声检验通过。

对参数进行显著性检验:


t1=-0.8477/0.1206
pt(t1,df=12,lower.tail=T)
t2=-4.7945/1.0252
pt(t2,df=12,lower.tail=T)

在这里插入图片描述

参数的显著性检验也通过,说明该序列建模成功。

(4)利用该模型预测未来5期值。


a.fore=forecast(a,h=5)
a.fore

在这里插入图片描述

(5)画出预测图:


L1=a.fore$fitted-1.96*sqrt(a$sigma2)
U1=a.fore$fitted+1.96*sqrt(a$sigma2)
L2=ts(a.fore$lower[,2])
U2=ts(a.fore$upper[,2])
c1=min(overshort,L1,L2)
c2=max(overshort,L2,U2)
plot(overshort,type="p",pch=8,ylim=c(c1,c2))
lines(a.fore$fitted,col=2,lwd=2)
lines(a.fore$mean,col=2,lwd=2)
lines(L1,col=4,lty=2)
lines(U1,col=4,lty=2)
lines(L2,col=4,lty=2)
lines(U2,col=4,lty=2)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

R语言ARMA模型的参数选择说明

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

R语言ARMA模型中参数选择的示例分析

这篇文章将为大家详细讲解有关R语言ARMA模型中参数选择的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。AR(p)模型与MA(q)实际上是ARMA(p,q)模型的特例。它们都统称为ARMA模型,而
2023-06-14

为NLP选择正确的语言模型

本文解释了LLMs背后的主要概念和原则。其目的是为非技术性的利益相关者提供一个直观的理解,以及一种与开发者和人工智能专家高效互动的语言。
NLP语言模型2024-12-01

Meta 推出 AI 语言模型 LLaMA,一个有着 650 亿参数的大型语言模型

Meta将推出一种针对研究社区的基于人工智能 (AI) 的新型大型语言模型,与微软、谷歌等一众受到 ChatGPT 刺激的公司一同加入人工智能竞赛。

R语言将变量分组的3种方法实例(含cut函数说明)

在数据处理分析过程中,变量分组是经常遇到的,下面这篇文章主要给大家介绍了关于R语言将变量分组的3种方法,其中含cut函数说明的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-13

如何选择适合企业需求的大语言模型

如今市面上有大量的LLM可供选择,这意味着企业更有可能找到适合自己特定需求的LLM,而不是求助于一应俱全的LLM。这可以加速创新,不过从数百种模型中选择合适的模型可能很复杂。

人人都能用的多语种大语言模型来了!支持59种语言,参数1760亿

由近1000名科学家联合发起的一个志愿项目,耗时一年多炼出了一个号称和GPT-3一样强大的语言模型。
模型AI2024-12-01

选择最适合数据的嵌入模型:OpenAI 和开源多语言嵌入的对比测试

OpenAI最近发布了他们的新一代嵌入模型embedding v3,他们将其描述为性能最好的嵌入模型,具有更高的多语言性能。这些模型分为两类:较小的称为text- embeddings -3-small,较大且功能更强大的称为text- e

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录