用预测包预测R.

时间:2014-01-20 14:46:57

标签: r forecasting

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

我的问题是:

  1. meanf生成的预测具有索引1而不是样本的结尾,因此绘图变得有点混乱(因此下面代码中的x,y内容)。 H& A在他们的教科书中似乎没有发生这种情况......

  2. 当我实际将日期作为日期(而不是数字)时,使用snaivezoo生成的预测似乎遇到了一些问题,因为一旦通过预测(bikefit3) )数据有六个NA,然后是一周一次,而不是一周中每一天的条目。

  3. 大多数未成年人 - 鉴于我在这里预测的样本,当我点击摘要时,我会得到特定“训练样本”的预测错误。有没有办法确定这个时期是什么?我试图手动找出,但数字看起来很奇怪。

  4. 我的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"))
    

    提前感谢您提供给我的任何帮助!

1 个答案:

答案 0 :(得分:1)

预测包中的meanfnaivesnaive函数旨在与ts个对象配合使用。您正在使用zoo对象。这些功能可能有效,但可能没有。在调用函数之前,将数据转换为ts个对象。

训练数据包含您在调用函数时使用的所有数据。