首页 文章

R中的时间序列预测 - 提及预测日期的范围

提问于
浏览
0

我使用arima stl模型进行R中的时间序列预测来预测汇率 .

ui.R
shinyUI(
sidebarLayout(   
headerPanel("Time Series forecasting with arima+stl"),
sidebarPanel(

  dateRangeInput('dateRange',
                 label = paste('Date range selection'),
                 start = textOutput("text1"),
                 end = textOutput("text2"), 
                 separator = " - ", 
                 weekstart = 1
  )
),
mainPanel(
  textOutput("text1"),
  textOutput("text2"),
  textOutput('forecast')   
) 
)
)

server.R

library(forecast)
parameters <- read.csv("~/RWD/stl+arima/data/parameters.csv")
shinyServer(
function(input, output, session){

      predictVariable <- ts(parameters[,2],start=c(2000,1),end=c(2009,12),frequency=12)
      fit.stl <- stl(predictVariable, s.window = "periodic")
      factors <- ts(as.data.frame(parameters[,3:8]),start=c(2000,1),end=c(2009,12),frequency=12)
      outfactors <- ts(parameters[,3:8],start=c(2010,1),end=c(2012,12),frequency = 12)
      output$forecast <- renderPrint({ forecast(fit.stl,h=10,
          forecastfunction=function(x,h,level=95){
              fit <- Arima(x,xreg=factors)
              return(forecast(fit,xreg=outfactors))})
   })
})

上面的代码工作正常 . 2000 - 2009年的数据用于预测未来3年的汇率 . 我的数据是参数 . 但我想创建一个用户界面,用户可以在其中提及他/她需要汇率预测的开始和结束日期 . 在server.R中,在预测函数中,如何使用ui.R中输入的日期来提及我需要预测的开始日期和结束日期 .

1 回答

  • -1

    这是一个非常广泛的问题 . 我想你可以通过一些研究找到很多答案 . 这是一个:

    试试Shiny . 这是你可以用它做的简单事情 . 关于Shiny,这个网站上有很棒的教程和帖子 .

    您的函数可以在server.R脚本上,在ui.R脚本上有日期范围选择输入 . 您可以自定义输出以包含特定的预测值,甚至可以包含预测的graph .

    Edit: 包括推荐的 funggcast function . 将其应用于预测对象以获取包含日期和预测的数据框 . 您的日期输入滑块可以参考此表 .

相关问题