弗兰克达文波特用ggplot2预测情节

时间:2016-09-11 19:42:32

标签: r plot ggplot2 time-series

我试图用ggplot2复制Davenport的时间序列图。我从他的博客中复制了代码,并在这里做了我从别人那里得到的修改。代码如下,

set.seed(1234)  
y<-arima.sim(model=list(order=c(2,1,1),ar=c(0.5,.3),ma=0.3),n=144)
y<-ts(y,freq=12,start=c(2000,1))


yt<-window(y,end=2009.99)

yfit<-Arima(yt,order=c(1,0,1))

yfor<-forecast(yfit)


pd<-funggcast(y,yfor)


library(ggplot2)
library(scales)


p1a<-ggplot(data=pd,aes(x=date,y=observed)) 
p1a<-p1a+geom_line(col='red')

p1a<-p1a+geom_line(aes(y=fitted),col='blue')

p1a<-1a+geom_line(aes(y=forecast))+geom_ribbon(aes(ymin=lo95,ymax=hi95),
alpha=.25)

p1a<-p1a+scale_x_date(name='',date_breaks='1 year',minor_breaks='1  month',labels=date_format("%b-%y"),expand=c(0,0))

p1a<-p1a+scale_y_continuous(name='Units of Y')

p1a<-p1a+opts(axis.text.x=theme_text(size=10),title='Arima Fit to Simulated Data\n (black=forecast, blue=fitted, red=data, shadow=95% conf. interval)')
p1a

直到

p1a<-p1a+geom_line(aes(y=fitted),col='blue')

一切都是它的存在方式。但是当我运行下一行时,即

p1a<-p1a+geom_line(aes(y=forecast))+geom_ribbon(aes(ymin=lo95,ymax=hi95),alpha=.25)
p1a

结果如下,

https://drive.google.com/file/d/0B8G9nOe-HLIjczk1VGFNLUYyUGM/view

如果我继续运行剩下的代码,我会得到“strsplit中的错误(unitspec,”“):代码行的非字符参数

p1a<-p1a+scale_x_date(name='',date_breaks='1 year',minor_breaks='1    month',labels=date_format("%b-%y"),expand=c(0,0))
p1a

最后R找不到“opts”功能。所以我想知道我做错了什么或如何解决它。提前谢谢!

0 个答案:

没有答案