R:通过数据框的多列运行预测功能



我使用:

将csv文件读入数据帧
dataxlsx <- read.csv(file.choose(), header = T)

数据帧如下:

Year  Month Period X410     X430     X431
2005  1       1    3467748  4434879  1345638
2005  2       2    3626338  4311150  1167523
  .   .       .      .        .        . 
2015  7       127  2374105  1514540  1399804

我正在尝试运行我创建的称为HWplot的函数来预测输入的数据并运行预测,以及输出预测的图。

我使用了ggplot2, tseries, forecast包。

HWplot <- function(dataxlsx,  n.ahead=12,  CI=.95,  error.ribbon='green', line.size=1) {
hw_object<-HoltWinters(dataxlsx)
forecast<-predict(hw_object,  n.ahead=24,  prediction.interval=T,  level=0.95)

for_values<-data.frame(time=round(time(forecast),  3),  value_forecast=as.data.frame(forecast)$fit,  dev=as.data.frame(forecast)$upr-as.data.frame(forecast)$fit)
fitted_values<-data.frame(time=round(time(hw_object$fitted),  3),  value_fitted=as.data.frame(hw_object$fitted)$xhat)
actual_values<-data.frame(time=round(time(hw_object$x),  3),  Actual=c(hw_object$x))

graphset<-merge(actual_values,  fitted_values,  by='time',  all=TRUE)
graphset<-merge(graphset,  for_values,  all=TRUE,  by='time')
graphset[is.na(graphset$dev),  ]$dev<-0
graphset$Fitted<-c(rep(NA,  NROW(graphset)-(NROW(for_values) + NROW(fitted_values))),  fitted_values$value_fitted,  for_values$value_forecast)

graphset.melt<-melt(graphset[, c('time', 'Actual', 'Fitted')], id='time')
p<-ggplot(graphset.melt,  aes(x=time,  y=value)) + geom_ribbon(data=graphset, aes(x=time, y=Fitted, ymin=Fitted-dev,  ymax=Fitted + dev),  alpha=.2,  fill=error.ribbon) + geom_line(aes(colour=variable), size=line.size) + geom_vline(x=max(actual_values$time),  lty=2) + xlab('Time') + ylab('Value') + theme(legend.position='bottom') + scale_colour_hue('')
return(p)
}

我面临的问题是,我不能分割这个数据帧,以便将HWplot函数应用于数据的单独列(预测X410, X430, X431等)。我将使用在列中具有不同数量的X###代码的数据帧,因此我也需要R脚本来合并动态数量的列。

最终的游戏是从数据框架的不同列运行这些预测,并将预测和图形输出到excel工作簿,其中列的名称作为每个工作表的名称。

旁注:HWplot函数在只有一列指标的数据帧时工作,但是不能与多列指标一起工作。

我尝试过的所有应用函数族都不起作用,拆分函数也不起作用。

希望这有意义-如果有人需要澄清,请告诉我。

R- blogs中的"Batch Forecasting in R"博文很好地解释了如何做到这一点。

http://www.r-bloggers.com/batch-forecasting-in-r-2/

相关内容

  • 没有找到相关文章

最新更新