繁体   English   中英

使用预测包在R中进行预测

[英]Forecasting in R using forecast package

我正在尝试使用Hyndman和Athanasopoulos的“预测原理和实践”进行预测 ,并且在尝试使用自己的数据进行预测(使用forecast包)时遇到了一些烦人的问题。

我的问题是:

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

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

  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"))

在此先感谢您为我提供的任何帮助!

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM