时间序列分析Nile案例(基于R)

news/2025/1/15 18:46:33/

时间序列分析Nile案例(基于R)

  • 时间序列分析Nile案例
    • 数据预处理

时间序列分析Nile案例

在 R 的 datasets 包中,包含一个 Nile 的数据集,该数据是一个时间序列数据,主要记录了 1971 年-1970 年尼罗河每年的流量,请对其进行分析:

数据预处理

数据概况:

> Nile
Time Series:
Start = 1871 
End = 1970 
Frequency = 1 [1] 1120 1160  963 1210 1160 1160  813 1230 1370 1140  995  935 1110  994 1020  960 1180  799  958 1140 1100 1210 1150 1250 1260 1220[27] 1030 1100  774  840  874  694  940  833  701  916  692 1020 1050  969  831  726  456  824  702 1120 1100  832  764  821  768  845[53]  864  862  698  845  744  796 1040  759  781  865  845  944  984  897  822 1010  771  676  649  846  812  742  801 1040  860  874[79]  848  890  744  749  838 1050  918  986  797  923  975  815 1020  906  901 1170  912  746  919  718  714  740

该数据集中,数据集包含100个样本数据,时间跨度从1871年到1970年。

  1. 导入需要的包 ,导入需要的包;
library(dplyr)
library(tidyr)
library(zoo)
library(tseries)
library(ggfortify)
library(gridExtra)
library(forecast)
  1. 绘制相应时序图 ,绘制相应时序图,观察序列,以初步判断类型。
#以R自带的时间序列Nile(尼罗河的流量)为例
data(Nile)
Nile=Nile
#画出时序图和自相关图
autoplot(Nile)+ggtitle("尼罗河流量变化趋势")
plot(Nile,type="l",xlab="时间",ylab="尼罗河流量")
Box.test(Nile,type ="Ljung-Box")
## p-value =4.214-07 说明该序列非随机数据,即不为白噪声

运行结果:

> Box.test(Nile,type ="Ljung-Box")Box-Ljung testdata:  Nile
X-squared = 25.594, df = 1, p-value = 4.214e-07

可发现L B检验中P-value=4.214-07<0.05,故该序列非白噪声序列。有值得挖掘的信息。
在这里插入图片描述
3. 绘制自相关图和偏自相关图,以确定模型参数

p1 <- autoplot(acf(Nile,lag.max = 40,plot = F))+ggtitle("Nile序列自相关图")
p2 <- autoplot(pacf(Nile,lag.max = 40,plot = F))+ggtitle("Nile序列偏自相关图")
gridExtra::grid.arrange(p1,p2,nrow=2)

运行结果:
在这里插入图片描述
可发现自相关图快速地收敛,偏自相关图也是1阶截尾,且可发现,存在一定的周期性。可利用auto.arima()函数自动确定最优模型。
4. 利用auto.arima()函数确定模型参数

auto.arima(Nile)#自动创建最优模型

结果如下:

> auto.arima(Nile)#自动创建最优模型
Series: Nile 
ARIMA(1,1,1) Coefficients:ar1      ma10.2544  -0.8741
s.e.  0.1194   0.0605sigma^2 estimated as 20177:  log likelihood=-630.63
AIC=1267.25   AICc=1267.51   BIC=1275.04

可发现,最优模型为ARIMA(1,1,1)。

  1. 对该序列用ARIMA(1,1,1)进行拟合:
ARIMA <- arima(Nile, c(1, 1, 1))
summary(ARIMA)
Box.test(ARIMA$residuals,type ="Ljung-Box")
## p-value = 0.7431,此时,模型的残差已经是白噪声数据,数据中的信息已经充分的提取出来了

结果如下:

> summary(ARIMA)Call:
arima(x = Nile, order = c(1, 1, 1))Coefficients:ar1      ma10.2544  -0.8741
s.e.  0.1194   0.0605sigma^2 estimated as 19769:  log likelihood = -630.63,  aic = 1267.25Training set error measures:ME     RMSE      MAE       MPE     MAPE     MASE        ACF1
Training set -16.06603 139.8986 109.9998 -4.005967 12.78745 0.825499 -0.03228482
> Box.test(ARIMA$residuals,type ="Ljung-Box")Box-Ljung testdata:  ARIMA$residuals
X-squared = 0.10739, df = 1, p-value = 0.7431

模型拟合后,对残差进行了白噪声检验,可发现P-value=0.7431>0.05,故残差是白噪声,即可说明,模型拟合良好。


http://www.ppmy.cn/news/864904.html

相关文章

我在Blue Nile(蓝色尼罗河)上通过python爬取一百万颗钻石,最终选出心仪的一颗

--------代码在文章最下面---------- 俗话说&#xff1a;钻石恒久远&#xff0c;一颗永流传 先说一下背景&#xff0c;楼主是某小型互联网公司的数据分析师&#xff0c;因为以前有编程的基础&#xff0c;所以略懂一点爬虫相关的技术。由于到了结婚的年龄&#xff0c;所以找到政…

2015年第5本(英文第4本):Death on the Nile尼罗河上的惨案

书名&#xff1a;Death on the Nile 作者&#xff1a; Agatha Christie 单词数&#xff1a;7.9万&#xff08;读完后发现网上还有一个版本&#xff0c;总共2.7万单词&#xff0c;孩子都能读懂&#xff0c;看来是简写版&#xff09; 词汇量&#xff1a;6700 首万词不重复词数&am…

尼罗河上的惨案 - 笔记

20170520 - 20170522 尼罗河上的惨案 所有的小说都是对人性的描述,推动小说情节发展的根本推动因素就是人的本性。 阿加莎.克里斯蒂的尼罗河上的惨案和无人生还比较&#xff1a; 前者的故事情节紧凑性不如后者。前者的故事性好像一条大河&#xff0c;突然出现几个拐角或者瀑布…

尼罗河

尼罗河纵贯非洲大陆东北部&#xff0c;流经布隆迪、卢旺达、坦桑尼亚、乌干达、埃塞俄比亚、苏丹、埃及&#xff0c;跨越世界上面积最大的撒哈拉沙漠&#xff0c;最后注入地中海。流域面积约335万平方公里&#xff0c;占非洲大陆面积的九分之一&#xff0c;全长6650公里&#x…

尼罗河的水我的泪

20180321网络流二分图专题总结 这是一场没有任何不爆0机会的考试&#xff1b; 可怜的蒟蒻瑟瑟发抖在冷冷的冰雨中。没有达到我的预想&#xff0c;失分率太高&#xff0c;说明还是不够熟练&#xff0c;题切得也不够。不过也正常&#xff0c;我比别人切题要慢一些&#xff0c;而…

vuex页面刷新数据丢失的解决办法

app.vue import store from ./storemounted () {// 解决vuex刷新丢失window.addEventListener("beforeunload",()>{ localStorage.setItem("userComMsg",JSON.stringify(store.state))});//在页面加载时读取localStorage里的状态信息if(localStorage.g…

React初学者需要的库从哪里下载?

在react官网下载react.js的方法介绍 1、访问react的github官方页面 访问地址为&#xff1a;Downloads | Reacthttps://react-cn.github.io/react/downloads.html 2、点击Download页面中的"Download Starter Kit"按钮&#xff0c;进行下载 学react的时候用到了babe…

raid5换硬盘显示ready_[原创]戴尔服务器raid5更换硬盘状态foreign怎么改成ready

磁盘阵列中单个硬盘出现问题时&#xff0c;“热备盘”会自动顶替“故障盘”。而“故障盘”不会自动恢复&#xff0c;这时&#xff0c;我们应该手工恢复阵列故障。 1、重新启动服务器&#xff0c;进入RAID卡BIOS设置界面。 2、进入PD Mgmt中查看故障盘的状态(foreign:外来的&…