如何用r语言预测序列时间序列预测样本量需要多少

时间序列分析,报告r(共6篇)
您现在的位置:&&
时间序列分析,报告r(共6篇)
相关热词搜索:
篇一:时间序列实验-R
课程名称时间序列分析
实验项目名称
ARCH建模 班级与班级代码 1125040实验室名称(或课室)
北4-602 专 业
统计学任课教师
学 号: 姓 名:柯跃
实验日期:
广东财经大学教务处
制 姓名实验报告成绩
评语: 指导教师(签名)
年月日 说明:指导教师评分后,实验报告交院(系)办公室保存。一.实验目的: 将Merck股票从1946年6月到2008年12月的月简单收益变换成对数收益率,并解决下列问题: (a) 对数收益率中有没有明显的相关性?用自相关系数和5%的显著性水平来回答该问题。如果有,则移除序列相关性。 (b) 此对数收益率存在ARCH效应么?如果(a)部分中有序列相关性,则该部分用其残差序列。用Ljung-Box统计量,对收益率平方(或残差的平方)的6个间隔和12个间隔的自相关系数,在5%的显著性水平下回答该问题。 (c) 对数据识别一个ARCH模型,然后给数据拟合被识别的模型,写出所拟合的模型。 二.实验设备: 计算机、R-3.0.3 三.实验过程及得出的结论: 1.加载安装包并引入实验数据
2.按实验目的输入实验代码,从运行结果得出结论
(a)①对数收益率中有显著的序列相关性。 通过自相关系数和5%的显著性水平解答:
lmrk 1.0ACF 0.00.20.40.60.8 02040 Lag 6080100
图1Merck股票对数收益率的自相关系数
样本ACF的值并没有在两个标准差之内,说明5%水平下它们与0有显著差别,对于对数收益率,Ljung-Box统计量为Q(12)= 27.2364,对应的p值为0.007144,p&a=0.05,拒绝原假设,即证实了Merck股票对数收益率有显著的序列相关性。 ②移除序列相关性 I.使用ar()函数对对数收益率序列识别得一个阶数为8的AR模型:
II.月对数收益率拟合AR(8)模型得出残差序列: 算得Q(12)=8.2078,并且基于自由度为4的Χ2分布的p值为0.084. 然而,延迟为2、3、5、6的AR系数在5%水平下是不显著的,所以改进模型见第三步。
III.改进模型如下所示:模型改进为: r t ?0.6rt-1?0.0699rt-4?0.0474rt-7?0.1082rt-8?at , ? ^ a ?0.0698
其中所有的估计在5%水平下都是显著的。残差序列给出Q(12)=8.779,其p 2?8值为0.361(基于分布)。该模型对数据的动态线性依赖性的建模是充分的。篇二:应用时间序列分析实验报告
应用时间序列分析实验报告 实验名称: 指导老师: 成绩: 一、 实验目的 1.利用MATLAB操作程序,得出结果; 2.解释每一个步骤的含义; 3.了解步骤的含义,把握实验的含义及操作每一步的具体意义; 二、 实验理论依据 在MATLAB中所有的变量名的解释都是让学员更好的把握定义,明确每一步的含义,客观的、直接的掌握重点,进而为后续解释结果作出更好的准备,以至于作出更好的实验报告,精准的把握主旨。 三、实验步骤 clear,clc close all data=xlsread('appl_14.xls',1,'B2:B38');
x=zeros(10,1); std_x=x; x(1)=4.99661+data(end)+0.3625; sigama=56.4763; std_x(1)=sqrt(sigama); inf_sup=zeros(10,2); inf_sup(1,:)=[x(1)-1.96*std_x(1),x(1)+1.96*std_x(1)]; for i=2:10 x(i)=x(i-1)+4.99661; std_x(i)=sqrt(sigama*((i-1)*1.)); inf_sup(i,:)=[x(i)-1.96*std_x(i),x(i)+1.96*std_x(i)]; end t1=; t2=; datal=[data-sqrt(56.48763),data+sqrt(56.47863)]; hold on plot(t1,data,'*b-',t1,datal(:,1),'r-',t1,datal(:,2),'r-') plot(t2,x,'*b-',t2,inf_sup(:,1),'r-',t2,inf_sup(:,2),'r-')hold on 四、结果分析 Clear:%清空变量 clc::%晴空命令空间 close all:%关闭图形窗口 data=xlsread('appl_14.xls',1,'B2:B38'); :%引入数据源 x=zeros(10,1); :%创建十行一列的零矩阵 std_x=x; :% std函数是用来计算x的标准偏差的函数 x(1)=4.99661+data(end)+0.3625; :%x的第一个值 sigama=56.4763; :%主函数变量值 std_x(1)=sqrt(sigama); :%算出x(1)的标准偏差等于求主函数变量值的平方根 inf_sup=zeros(10,2); :%算出的结果大于某个数的上确界值为一个十行二列的零矩阵 inf_sup(1,:)=[x(1)-1.96*std_x(1),x(1)+1.96*std_x(1)]; :% 算出(1,:)的结果大于某个数的上确界值等于一个具体值 for i=2:10:%2到10循环的变量大小 x(i)=x(i-1)+4.99661; :%x(i)的一个值 std_x(i)=sqrt(sigama*((i-1)*1.)); :% x的标准偏差的函数等于主函数变量乘以一个具体值后平方根 inf_sup(i,:)=[x(i)-1.96*std_x(i),x(i)+1.96*std_x(i)]; :%算出(i,:)的结果大于某个值后的上确界等于一个具体值 end:% 是指不等於/结尾 t1=; :%t1的具体值 t2=; :%t2具体值 datal=[data-sqrt(56.48763),data+sqrt(56.47863)]; :%data定义的一个值 hold on:%启动图形保持功能 plot(t1,data,'*b-',t1,datal(:,1),'r-',t1,datal(:,2),'r-') :%画一条t1横坐标,data为纵坐标,*b为蓝色线条,r-为紫色线条,分别位于蓝色线条的上下部分 plot(t2,x,'*b-',t2,inf_sup(:,1),'r-',t2,inf_sup(:,2),'r-') :% 画一条t2横坐标,x为纵坐标,*b为蓝色线条,r-为紫色线条,分别位于蓝色线条的上下部分
hold off:%关闭图形保持功能 篇三:时间序列分析
第3页共11页
第4页共11页第5页共11页
篇四:时间序列分析 时间序列分析 AR模型: 一 定义:P阶自回归模型AR(p): Xt??0??1xt?1??2xt?2?...??pxt?p??t 条件一: 条件二: ?p?0(保证模型的最高阶数为p) E(?t)?0,Var(?t)???2,E(?x?s)=0,s?t(随机干扰序列低于为零均值白噪声序列) 条件三:
二 引入延迟算子B, Exs?t=0,?s?t (说明当期的随机干扰与过去无关) 序列 ?0?0,{x}为中心化AR(p) ?0?0,可通过平移得到中心化AR(p)序列。 BXt?Xt?1 ?(B)?1??1B??2B2?...??pBp?pAR(p)则:中心化模型可记为:阶自回归多项式 模型可简记为: 三 平稳性 平稳条件:平稳域: ?(B)xt??t
?(B)?0 的根均大于1, x??xt?1??t,平稳域:{?1|?1??1?1} AR(1)模型:t x??1xt?1??2xt?2??t 平稳域 : {?1,?2||?1|?1,且?2??1?1} AR(2)模型:t
四 自协方差函数: 递推公式: rk??1xt?1??2rt?2?...??prk?p
22 r??/(1???1)
0五:自相关系数 公式: pk??1pk?1??2pk?2?...??ppk?p
性质:1.拖尾性( pk始终有非零取值不会在k大于某个常数后就恒等于零) xt,xt?1,...,xt?k 之间的相关关系 2.呈指数衰减 p
k用来度量构成时间序列的每个序列值 k AR(1)模型的自相关系数的递推公式:pk??1,k?0 AR(2)模型: 例:(1)
(2) 六:偏自相关系数:
指对时间序列偏相关系数 ? 1,k?0? pk???1,k?1 ?1??2 ??1pk?1??2pk?2,k?2 xt?0.8xt?1??t xt?xt?1?0.5xt?2??t xt,在给定xt?1,xt?2,...,xt?k?1的条件下,xt与xt?k之间的相互关系用 ?kk xt?1,xt?2,...,xt?k?1的干扰后,xt对xt?k相关影响 或者说,在剔除了中间k-1个随机变量度量 ?kk? E[(xt?Ext)(xt?k?Ext?k)] E[(xt?k?Ext?k)2] , Ext?E[xt|xt?1,...,xt?k?1]Ext?R?E[xt?R|xt?1,...,xt?R?1]
性质:具有p步截尾性。( ?kk=0 ?R?P) p1 1pk?2 ...... p1??p2??? pk?Dk?0 ,即 ?1 ?p1 Dk?? ?? k?p?pk?1 定理:证明p步截尾,只需证明时, 可。?1?p1?Dk????pk?1 p11pk?2 ...... p1??p2?? Dk ???kkpk?D , 例: xt?0.8xt?1??t
xt?xt?1?0.5xt?2??t??0.8,k?1 kk?0.k?2
??2 3,k?1??? kk??0.5,k?2 ?? 0,k?3
?篇五:R语言常用上机命令分功能整理——时间序列分析为主 R语言常用上机命令分功能整理——时间序列分析为主
第一讲 应用实例 ? R的基本界面是一个交互式命令窗口,命令提示符是一个大于号,命令的结果马上显示在命令下面。 ? S命令主要有两种形式:表达式或赋值运算(用’&-’或者’=’表示)。在命令提示符后键入一个表达式表示计算此表达式并显示结果。赋值运算把赋值号右边的值计算出来赋给左边的变量。 ? 可以用向上光标键来找回以前运行的命令再次运行或修改后再运行。 ? S是区分大小写的,所以x和X是不同的名字。 我们用一些例子来看R软件的特点。假设我们已经进入了R的交互式窗口。如果没有打开的图形窗口,在R中,用:& x11() 可以打开一个作图窗口。然后,输入以下语句:
x1 = 0:100 x2 = x1*2*pi/100 y = sin(x2) plot(x2,y,type=&l&) 这些语句可以绘制正弦曲线图。其中,“=”是赋值运算符。0:100表示一个从0到100 的等差数列向量。第二个语句可以看出,我们可以对向量直接进行四则运算,计算得到的x2 是向量x1的所有元素乘以常数2*pi/100的结果。从第三个语句可看到函数可以以向量为输入,并可以输出一个向量,结果向量y的每一个分量是自变量x2的每一个分量的正弦函数值。 plot(x2,y, type=&l&,main=&画图练习&,sub=&好好练&, xlab=&x轴&,ylab='y轴') 有关作图命令plot的详细介绍可以在R中输入help(plot)
数学函数 abs,sqrt:绝对值,平方根 log, log10, log2 , exp:对数与指数函数 sin,cos,tan,asin,acos,atan,atan2:三角函数 sinh,cosh,tanh,asinh,acosh,atanh:双曲函数 简单统计量 sum, mean, var, sd, min, max, range, median, IQR(四分位间距)等为统计量,sort,order,rank与排序有关,其它还有ave,fivenum,mad,quantile,stem等。
下面我们看一看S的统计功能: & marks &- c(10, 6, 4, 7, 8) & mean(marks) & sd(marks) & min(marks) & max(marks) 第一个语句输入若干数据到一个向量,函c()用来把数据组合为一个向量。后面用了几个函数来计算数据的均值、标准差、最小值、最大值。
可以把若干行命令保存在一个文本文件中,然后用source函数来运行整个文件: & source(&C:/l.R&) 注意字符串中的反斜杠。 例:计算6, 4, 7, 8,10的均值和标准差,把若干行命令保存在一个文本文件(比如C:\1.R)中,然后用source函数来运行整个文件。 a&- c(10, 6, 4, 7, 8) b&-mean(a) c&-sd(a) source(&C:/1.R&)
时间序列数据的输入 使用函数ts ts(1:10, frequency = 4, start = c(1959, 2)) print( ts(1:10, frequency = 7, start = c(12, 2)), calendar = TRUE) a&-ts(1:10, frequency = 4, start = c(1959, 2)) plot(a)
将外部数据读入R read.csv 默认header = TRUE,也就是第一行是标签,不是数据。 read.table 默认header = FALSE
将R中的数据输出write write.table write.csv
第二讲 1. 绘制时序图、自相关图 例题2.1 d=scan(&sha.csv&) sha=ts(d,start=1964,freq=1) plot.ts(sha)#绘制时序图 acf(sha,22)#绘制自相关图,滞后期数22 pacf(sha,22)
#绘制偏自相关图,滞后期数22 corr=acf(sha,22)#保存相关系数 cov=acf(sha,22,type = &covariance&)#保存协方差 图的保存,单击选中图,在菜单栏选中“文件”,再选“另存为”。 同时显示多个图:用x11()命令生成一个空白图,再输入作图命令。
2. 同时绘制两组数据的时序图 d=read.csv(&double.csv&,header=F) double=ts(d,start=1964,freq=1) plot(double, plot.type = &multiple&)#两组数据两个图 plot(double, plot.type = &single&)
#两组数据一个图 plot(double, plot.type = &single&,col=c(&red&,&green&),lty=c(1,2)) #设置每组数据图的颜色、曲线类型)
3.产生服从正态分布的随机观察值 例题2.4 随机产生1000白噪声序列观察值 d=rnorm()#个数1000 均值0 方差1 plot.ts(d)
4.纯随机性检验 例题2.3续 d=scan(&temp.csv&) temp=ts(d,freq=1,start=c(1949)) Box.test(temp, type=&Ljung-Box&,lag=6)
5.差分计算 x=1:10 y=diff(x) k步差分?kxt?xt?xt?k 加入参数 lag=k 如计算x的3步差分为 y=diff(x, lag = 3) pp?1p?1?x??x??xt?1加入参数differences = p ttp阶差分2?xt??xt??xt?1 如2阶差分 y=diff(x,differences = 2) 第三讲 例题3.1 plot.ts(arima.sim(n = 100, list(ar = 0.8))) #模拟AR(1)模型,并作时序图。 plot.ts(arima.sim(n = 100, list(ar = -1.1))) #非平稳,无法得到时序图。 plot.ts(arima.sim(n = 100, list(ar = c(1,-0.5)))) plot.ts(arima.sim(n = 100, list(ar = c(1,0.5))))
例题3.5 acf(arima.sim(n = 100, list(ar = 0.8))) acf (arima.sim(n = 100, list(ar = -1.1))) acf (arima.sim(n = 100, list(ar = c(1,-0.5)))) acf (arima.sim(n = 100, list(ar = c(1,0.5))))
例题3.7 arima.sim(n = 1000, list(ar = 0.5, ma = -0.8)) acf(arima.sim(n = 1000, list(ar = 0.5, ma = -0.8)),20) pacf(arima.sim(n = 1000, list(ar = 0.5, ma = -0.8)),20)
例题2.5 d=scan(&a1.5.txt&)#导入数据 prop=ts(d,start=1950,freq=1)#转化为时间序列数据 plot(prop) #作时序图 acf(prop,12)
#作自相关图,拖尾 pacf(prop,12) #作偏自相关图,1阶截尾 Box.test(prop, type=&Ljung-Box&,lag=6) #纯随机性检验,p值小于5%,序列为非白噪声 Box.test(prop, type=&Ljung-Box&,lag=12) arima(prop, order = c(1,0,0),method=&ML&) #用AR(1)模型拟合,如参数method=&CSS&,估计方法为条件最小二乘法,用条件最小二乘法时,不显示AIC。 arima(prop, order = c(1,0,0),method=&ML&, include.mean = F) #用AR(1)模型拟合,不含截距项。 tsdiag(arima(prop, order = c(1,0,0),method=&ML&)) #对估计进行诊断,判断残差是否为白噪声 summary(arima(prop, order = c(1,0,0),method=&ML&)) a=arima(prop, order = c(1,0,0),method=&ML&) r=a$residuals#用r来保存残差 Box.test(r,type=&Ljung-Box&,lag=6)#对残差进行纯随机性检验 predict(arima(prop, order = c(1,0,0)), n.ahead =5)#预测未来5期 prop.fore = predict(arima(prop, order = c(1,0,0)), n.ahead =5)#将未来5期预测值保存在prop.fore变量中 U = prop.fore$pred + 1.96* prop.fore$se L = prop.fore$pred – 1.96* prop.fore$se#算出95%置信区间 ts.plot(prop, prop.fore$pred,col=1:2)#作时序图,含预测。 lines(U, col=&blue&, lty=&dashed&) lines(L, col=&blue&, lty=&dashed&)#在时序图中作出95%置信区间
例题3.9 d=scan(&a1.22.txt&) x=diff(d) arima(x, order = c(1,0,1),method=&CSS&) tsdiag(arima(x, order = c(1,0,1),method=&CSS&))
第一点: 对于第三讲中的例2.5,运行命令arima(prop, order = c(1,0,0),method=&ML&)之后,显示: Call: arima(x = prop, order = c(1, 0, 0), method = &ML&) Coefficients: ar1 intercept 0.9 s.e.0.3 sigma^2 estimated as 15.51:
log likelihood = -137.02,
aic = 280.05 注意:intercept下面的81.5509是均值,而不是截距!虽然intercept是截距的意思,这里如果用mean会更好。(the(转载于: 写论文 网:) mean and the intercept are the same only when there is no AR term,均值和截距是相同的,只有在没有AR项的时候) 如果想得到截距,利用公式计算。int=(1-0.9= 25.16661。课本P81的例2.5续中的截距25.17是正确的。
第二点: 如需计算参数的t统计量值和p值,利用下面的公式。 ar的t统计量值=0.9= 6.9909 (注:数值与课本略有不同,因为课本用sas算的se= 0.1029,R计算的se=0.0989) p值=pt(6.9909,df=48,lower.tail = F)*2 pt()为求t分布求p值的函数,6.99为t统计量的绝对值,df为自由度=数据个数-参数个数,lower.tail = F表示所求p值为P[T & t],如不加入这个参数表示所求p值为P[T &=t]。 乘2表示p值是双侧的(课本上的p值由sas算出,是双侧的)
均值的t统计量值和p值同理。
在时间序列中对参数显著性的要求与回归模型不同,我们更多的是考察模型整体的好坏,而不是参数。所以,R中的arima拟合结果中没有给出参数的t统计量值和p值,如果题目没有特别要求,一般不需要手动计算。篇六:时间序列分析课程设计报告 (1)
中国铁路客运量的时间序列分析 辜予薇
统计0502摘要 首先,本文对中国铁路客运的现状及影响客运量的因素作了简要的分析,并说明了运用时间序列分析方法对中国铁路客运量作预测的现实意义。 接下来,文中收集到了从2002年1月至2008年10月中国铁路客运量的数据,经过一系列分析,对野值进行了相应的替换,并通过平稳化和零均值化将原序列转化为适宜建立时间序列模型的新序列X。 然后,本文用Box-Jekins方法对序列X进行初步识别,拟合出基本模型,并使用F检验定阶法和最佳准则函数定阶法确定模型的阶数,建立了AR(1)模型。 其后,本文还使用Pandit-Wu方法建立起了ARMA(4,3)模型,并将此模型与之前的AR(1)模型作了简单的对比。 在模型建立后,本文分别用两个模型进行了内插和外推预测,比较了它们的预测误差,最后肯定了ARMA(4,3)模型的优越性,并对预测结果进行了简单的分析,提出了自己的建议。 关键词
平稳化 Box-Jekins
最佳准则函数
预测1 引言 铁路由于具有运距长、全天候、安全性强、运能大、受自然铁条件影响小的优点,在众多的交通工具中具有得天独厚的优势,无论在货运和客运上,都受到社会公众的亲睐。[1]而铁路客运又是我国交通运输体系中与老百姓联系最紧密的运输方式,无论远赴他乡的学子,还是行色匆匆的打工仔,都于长长的列车有着不解之缘。 而我们知道,在高峰时期购票难的问题一直困扰着广大的出行者,现时值春运,国家和有关部门及时获取信息,有效地统筹安排铁道和列车资源就显得尤为重要。 我们认为,在众多的信息中,打算乘火车出行的人数是一个关键,它直接关系着有关部门需要开派多少车的问题。如果车派少了,必然有部分的出行者由于无法买到车票而耽误行程,造成社会公众的不满;但另一方面,如果开派的列车数超过了实际需要,就会有过度“不满员”的情况,不仅加大了列车的运行成本,还造成了资源的浪费。 但由于有关部门也不可能精确地知道未来究竟有多少人打算乘火车出行, 所以只有根据历史的规律结合当下的实际情况进行预测。时间序列分析正是这样一种立足于历史,以预测和控制未来现象的方法,在处理这个问题上是有一定的的。 2 问题分析 从理论上来讲,影响一个时期铁路客运量的因素有很多,我认为最重要的应该有下面几个: A:节假日分布。一般来讲,节假日分布密集的时期的出行的人数会较一般时段有所增加,如前后主要是农民工和学生构成强大的客流,而“五一”和“十一”黄金周外出旅游的人也会大大增加铁路客运压力。 B:外部竞争因素。这主要是指飞机和汽车等交通工具的票价高低。如果某一时段飞机票价居高不下,而一些时间较充裕或购买力不够强的旅客则会选择乘火车出行;另一方面,一般短途旅客都偏好于乘坐汽车,因为较方便。但如果此时的火车票价远低于汽车票价,使旅客感觉到乘坐火车的期望效用较高,便会舍弃汽车这种交通方式。 C:整个宏观经济环境。虽然这不是一个关键的因素,但是也在很大程度上影响了客流量。举例来说,在经济不景气的时期,各行各业会缩减其业务量,那么外出公干的人员自然会减少,而这一部份人也是构成客流量的因素,即铁路客流量也会较往常减少。 当然,还有很多的因素会影响铁路客流量,如个人偏好,天气状况等,但它们对铁路客运量的影响较之前的三个因素就较小,这里便不再作具体的分析。 而我们可以看到,因素A即节假日分布对客运量的影响相对稳定,也是具有一定周期性的。对此,我们可以了解它的周期,并且建立ARMA模型对客运状况进行分析,对未来的客运量进行预测,解决我们在前面提到的问题。 3 数据的收集 为了增加分析的准确性,我们需要将数据的统计时期精准到月。在中华人民共和国统计局网站[2]上,我们可以找到2002年1月至2008年10月的中国全社会客货运输量的月度报表,而其中就有一项就是铁路客运量。经过整理,可以得到中国铁路客运量的月度时间序列数据(见附录1)。 4 数据预处理 4.1 数据的录入 (1)创建Workfile:点击File/New/Workfile,输入起始年2002年,终止年2008年,并选择Frequency下拉菜单中的Monthly。 (2)建立object输入数据:点击object/new object,定义数据文件名Y并逐个录入数据。 4.2 画时序数据图:将序列Y(单位为亿人)1打开为列表,点击Workfile中的1 以后无如特别说明,所有序列单位都为亿人View/line graph,可以得到下面的图形图4.1 客运量的时间序列图 观察上图,我们看到2003年5月的Y值偏离其它点的距离较大,初步怀疑它为离群点。下面计算Y序列的均值和方差:
Y序列的均值与方差 从图4.2中可以得到?0.98,S(Y)??0.19,而2003年5月这个本&&篇:《》来源于:
优秀范文,论文网站
本篇网址:/2016/gongzuobaogao_.html
好文大家读
Copyright &
All Rights Reserved. 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
R语言时间序列分析
下载积分:2000
内容提示:R语言时间序列分析——均是精品资料!
文档格式:PDF|
浏览次数:60|
上传日期: 13:42:50|
文档星级:
该用户还上传了这些文档
R语言时间序列分析
官方公共微信苹果/安卓/wp
积分 44, 距离下一级还需 1 积分
道具: 彩虹炫, 涂鸦板, 雷达卡, 热点灯, 金钱卡下一级可获得
道具: 显身卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 彩虹炫, 雷达卡, 热点灯, 涂鸦板
做时间序列预测的时候出现了错误,想问一下这个到底是怎么回事?
& diffarima
Series: diff
ARIMA(3,1,1)& && && && && && &&&
Coefficients:
& && && & ar1& && &ar2& && &ar3& && &ma1
& && &-0.8589&&-0.5830&&-0.3410&&-1.0000
s.e.& &0.1021& &0.1239& &0.1025& &0.0318
sigma^2 estimated as 1832156:&&log likelihood=-728.59
AIC=1467.19& &AICc=1467.96& &BIC=1479.34
& diffforecasts&-forecast.Arima(diffarima,h=3)
Error in ts(x) : object is not a matrix
支持楼主:、
购买后,论坛将把您花费的资金全部奖励给楼主,以表示您对TA发好贴的支持
载入中......
同学,试过用predict么?
vincenhe 发表于
同学,试过用predict么?没有哎,我是新手,都是照着网上是资料扒的,之前用过这个,大神能帮帮忙嘛。。
predict(diffarima, h=3)
无限扩大经管职场人脉圈!每天抽选10位免费名额,现在就扫& 论坛VIP& 贵宾会员& 可免费加入
加入我们,立即就学扫码下载「就学」app& Join us!& JoinLearn&
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
&nbsp&nbsp|
如有投资本站或合作意向,请联系(010-);
邮箱:service@pinggu.org
投诉或不良信息处理:(010-)
京ICP证090565号
京公网安备号
论坛法律顾问:王进律师时间序列分析之ARIMA模型预测__R篇
相关文章:时间序列分析之ARIMA模型预测__SAS篇
之前一直用SAS做ARIMA模型预测,今天尝试用了一下R,发现灵活度更高,结果输出也更直观。现在记录一下如何用R分析ARIMA模型。
1. 处理数据
1.1. 导入forecast包
forecast包是一个封装的ARIMA统计软件包,在默认情况下,R没有预装forecast包,因此需要先安装该包
& install.packages("forecast')
导入依赖包zoo,再导入forecast包
& library("zoo")
& library("forecast")
1.2. 导入数据
博主使用的数据是一组航空公司的销售数据,可在此下载数据:,共有132条数据,是以月为单位的销售数据。
& airline &- read.table("airline.txt")& airline
    V1 V2  1
1 112  2
2 118  3
3 132  4
4 129  5
5 121  6
6 135  7
7 148  8
8 148  9
9 136  10
(........)
1.3. 将数据转化为时间序列格式(ts)
&由于将数据转化为时间序列格式,我们并不需要时间字段,因此只取airline数据的第二列,即销售数据,又因为该数据是以月为单位的,因此Period是12。
& airline2 &- ariline[2]
& airts &- ts(airline2,start=1,frequency=12)
2. 识别模型
2.1. 查看趋势图
& plot.ts(airts)
由图可见,该序列还不平稳,先做一次Log平滑,再做一次差分:
& airlog &- log(airts)& airdiff &- diff(airlog, differences=1)& plot.ts(airdiff)
这次看上去就比较平稳了,现在看看ACF和PACF的结果
2.2. 查看ACF和PACF
& acf(airdff, lag.max=30)
& acf(airdff, lag.max=30,plot=FALSE)
Autocorrelations of series &airdiff&, by lag
0.0 0.0833 0.1667 0.2500 0.3 0.4167 0.5 0.5833 0.7 0.7500 0.8
1. 0.188 -0.127 -0.154 -0.326 -0.066 0.041 -0.098 -0.343 -0.109 -0.120
0.9167 1.0 1.0833 1.1667 1.2500 1.3 1.4167 1.5 1.5833 1.7 1.7500
0.199 0.833 0.198 -0.143 -0.110 -0.288 -0.046 0.036 -0.104 -0.313 -0.106
1.8 1.9167 2.0 2.0833 2.1667 2.2500 2.3 2.4167 2.5
-0.085 0.185 0.714 0.175 -0.126 -0.077 -0.214 -0.046 0.029
& pacf(airdff, lag.max=30)
& pacf(airdff, lag.max=30,plot=FALSE)
Partial autocorrelations of series &airdiff&, by lag
0.0833 0.1667 0.2500 0.3 0.4167 0.5 0.5833 0.7 0.7500 0.8 0.9167
0.188 -0.169 -0.101 -0.317 0.018 -0.072 -0.199 -0.509 -0.171 -0.553 -0.300
1.0 1.0833 1.1667 1.2500 1.3 1.4167 1.5 1.5833 1.7 1.7500 1.8
0.551 0.010 -0.200 0.164 -0.052 -0.037 -0.108 0.094 0.005 -0.095 -0.001
1.9167 2.0 2.0833 2.1667 2.2500 2.3 2.4167 2.5
0.057 -0.074 -0.048 0.024 0.073 0.047 0.010 0.033
从ACF和PACF可以看出来,该序列在lag=12和lag=24处有明显的spike,说明该序列需要再做一次diff=12的差分。且PACF比ACF呈现更明显的指数平滑的趋势,因此先猜测ARIMA模型为:ARIMA(0,1,1)(0,1,1)[12].
2.3. 利用auto.arima
& auto.arima(airlog,trace=T)
ARIMA(2,1,2)(1,1,1)[12]
: -354.4719
ARIMA(0,1,0)(0,1,0)[12]
: -316.8213
ARIMA(1,1,0)(1,1,0)[12]
: -356.4353
ARIMA(0,1,1)(0,1,1)[12]
: -359.7679
ARIMA(0,1,1)(1,1,1)[12]
: -354.9069
ARIMA(0,1,1)(0,1,0)[12]
: -327.5759
ARIMA(0,1,1)(0,1,2)[12]
: -357.6861
ARIMA(0,1,1)(1,1,2)[12]
: -363.2418
ARIMA(1,1,1)(1,1,2)[12]
: -359.6535
ARIMA(0,1,0)(1,1,2)[12]
: -346.1537
ARIMA(0,1,2)(1,1,2)[12]
: -361.1765
ARIMA(1,1,2)(1,1,2)[12]
ARIMA(0,1,1)(1,1,2)[12]
: -363.2418
ARIMA(0,1,1)(2,1,2)[12]
: -368.8244
ARIMA(0,1,1)(2,1,1)[12]
: -368.1761
ARIMA(1,1,1)(2,1,2)[12]
: -367.0903
ARIMA(0,1,0)(2,1,2)[12]
: -363.7024
ARIMA(0,1,2)(2,1,2)[12]
: -366.6877
ARIMA(1,1,2)(2,1,2)[12]
ARIMA(0,1,1)(2,1,2)[12]
: -368.8244
Best model: ARIMA(0,1,1)(2,1,2)[12]
Series: airlog
ARIMA(0,1,1)(2,1,2)[12]
Coefficients:
sigma^2 estimated as 0.001188:
log likelihood=231.88
AIC=-369.57
AICc=-368.82
BIC=-352.9
auto.arima提供的最佳模型为ARIMA(0,1,1)(2,1,2)[12],我们可以同时测试两个模型,看看哪个更适合。
3. 参数估计
& airarima1 &- arima(airlog,order=c(0,1,1),seasonal=list(order=c(0,1,1),period=12),method="ML")& airarima1
Series: airlog
ARIMA(0,1,1)(0,1,1)[12]
Coefficients:
sigma^2 estimated as 0.001313:
log likelihood=223.63
AIC=-441.26
AICc=-441.05
BIC=-432.92
& airarima2 &- arima(airlog,order=c(0,1,1),seasonal=list(order=c(2,1,2),period=12),method="ML")& airarima2
Series: airlog
ARIMA(0,1,1)(2,1,2)[12]
Coefficients:
sigma^2 estimated as 0.9811:
log likelihood=225.56
AIC=-439.12
AICc=-438.37
BIC=-422.44
两个ARIMA模型都采用极大似然方法估计,计算系数对应的t值:
ARIMA(0,1,1)(0,1,1)[12] :t(ma1)=-39.1791,&t(sma1)=-93.8445
ARIMA(0,1,1)(2,1,2)[12] : t(ma1)=-35.8173,t(sar1)=88.68383,t(sar2)=-3.56141,t(sma1)=-12.6615,t(sma2)= 6.826
可见两个模型的系数都是显著的,而ARIMA(0,1,1)(0,1,1)[12]的AIC和BIC比ARIMA(0,1,1)(2,1,2)[12]的要小,因此选择模型ARIMA(0,1,1)(0,1,1)[12]。
&预测五年后航空公司的销售额:
& airforecast &- forecast.Arima(airarima1,h=5,level=c(99.5))
& airforecast
Point Forecast Lo 99.5 Hi 99.5
Jan 12 6.038649 5.936951 6.140348
Feb 12 5.988762 5.867380 6.110143
Mar 12 6.145428 6.007137 6.283719
Apr 12 6.118993 5.965646 6.272340
May 12 6.159657 5.992605 6.326709& plot.forecast(airforecast)
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
最近要用ARIMA模型预测用户的数量变化,所以调研了一下ARIMA模型,最后用JAVA实现了ARIMA算法. 一.ARIMA原理 ARIMA的原理主要参考的是ARIMA原理. 二.JAVA实现 弄懂了原理,用JAVA进行了实现,主要参考的步骤是ARIMA实现步骤,JAVA代码如下 (1)AR类,用于构建AR模型 import j ...
请见Github博客:http://wuxichen.github.io/Myblog/timeseries//RJavaonLinux.html
昨天用R折腾了一个简单的时间序列数据Arima自动拟合与预测.过程不复杂,但由于用得不多,为了防止忘记,撰文记录. 打开R,安装一个叫做&Forecast&的包.每次开启R后,使用之前用
library('forecast')
加载该包. 这里我用传说中的Airline Model数据.载入数据,转换成TS格式
airdata&lt ...
时间序列分析必须建立在预处理的基础上…… 今天看了一条新闻体会到了网络日志的重要性…… 指数平滑法(Exponential Smoothing,ES)是布朗(Robert G..Brown)所提出,布朗.认为时间序列的态势具有稳定性或规则性,所以时间序列可被合理地顺势推延:他认为最近的过去态势,在某种程度上会持续的未来,所以将较大的权数放在最近的资料. AR ...
时间序列分析分为两大类:频域分析和时域分析.频域分析也称为谱分析,是一种非常有用的纵向数据分析方法.时域分析主要关心从序列值之间的相关关系对时间序列发展规律. 在时域分析里,生成时间序列数据的随机过程按照统计规律的特征是否随着时间变化而变化分为两类,如果随机过程的特征随着时间变化,如GDP的时间序列一般随着时间稳定增长,则此过程是非平稳的:相反,如果随机过程 ...
在生产和科学研究中,对某一个或一组变量x(t)进行观察测量,将在一系列时刻t1, t2, -, tn (t为自变量且t1&t2&-& tn ) 所得到的离散数字组成序列集合x(t1), x(t2), -, x(tn),我们称之为时间序列,这种有时间意义的序列也称为动态数据.这样的动态数据在自然.经济及社会等领域都是很常见的.如在一定生态 ...
文档1:&R与金融时间序列分析常见问题集& library(zoo)
#时间格式预处理 library(xts)
#同上 library(timeSeires)
#同上 library(urca)
#进行单位根检验 library(tseries)
本文原文连接: http://blog.csdn.net/freewebsys/article/details/ 转载请注明出处! 1,关于时间序列 时间序列分析(Time series analysis)是一种动态数据处理的统计方法.该方法基于随机过程理论和数理统计学方法,研究随机数据序列所遵从的统计规律,以用于解决实际问题. 关于R环境搭 ...}

我要回帖

更多关于 r语言时间序列 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信