2014-01-20 103 views
0

我试图使用Hyndman and Athana­sopou­los's Forecasting Principles and Practice进行预测,当尝试使用我自己的数据进行预测时(使用forecast软件包),我遇到了一些令人讨厌的问题。使用预测软件包进行R预测

我的问题是:由meanf产生

  1. 预测具有索引1,而不是样品的端部,因此绘制变得有点混乱(因此在x,y的东西,在下面的代码)。这似乎并没有发生用于h &一个在他们的教科书......使用snaivezoo产生

  2. 预测时,我居然有日期的日期(而不是数字)似乎打了一些问题,因为一旦通过预测(bikefit3),数据有6个NA,然后是每周1次,而不是每周的每一天。

  3. 大多数未成年人 - 因为我在这里预测样本不足,当我点击总结时,我会得到特定“训练样本”的预测误差。有什么方法可以确定这个时期是什么?我试图找出手动,但数字看起来很奇怪。

我的R代码里面(这应该是可再现的,因为我从Dropbox的加载数据)是:

no_f <- 21 
bike <-repmis::source_DropboxData("bike_hires.csv","8s4bpjft6zrt4jz",sep = ",",header = TRUE) 
bike$date <- as.Date(bike$Day,format="%d/%m/%Y") 
dat.xts <- xts(bike$Number.of.Bicycle.Hires,order.by=bike$date) 
bike.z <- zoo(dat.xts,order.by=index(dat.xts),frequency=7) 
bikefit1 <- meanf(bike.z,h=no_f) 
bikefit2 <- naive(bike.z, h=no_f) 
bikefit3 <- snaive(bike.z, h=no_f) 
x <- bikefit1$mean 
y <- seq(1251/7,(1251+no_f-1)/7,1/7) 

plot(bike.z[1100:1251],xlim=range(1100/7,(1251+no_f-1)/7),ylim=range(bike.z[1100:1251]),type="l",col=1,main="Forecasts for daily bike hires",xlab="",ylab="") 
par(new=T) 

plot(y,x,xlim=range(1100/7,(1251+no_f-1)/7),ylim=range(bike.z[1100:1251]),type="l",col=4,xaxt="n",yaxt="n",xlab="",ylab="") 
lines(bikefit2$mean,col=2) 
lines(bikefit3$mean,col=3) 
mtext("Day",side=1,line=3,font=2) 
mtext("Number of Bike Hires",side=2,line=3,font=2) 
legend("topright",lty=1,col=c(4,2,3), legend=c("Mean method","Naive method","Seasonal naive method")) 

预先感谢任何帮助你能提供给我!

回答

0

meanf,naivesnaive预测包中的函数被设计为与ts对象一起使用。您正在使用zoo对象。这些功能可能会起作用,但它们可能不会。在调用函数之前将数据转换为ts对象。

培训数据由您在调用功能时使用的所有数据组成。