2016-07-23 71 views
0

我已經使用arima + stl模型來預測R中的時間序列預測匯率。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

這是一個非常廣泛的問題。我認爲你可以通過一些研究找到許多答案。這裏有一個:

嘗試Shiny。這是一個你可以用它做的簡單事情的gallery。在這個網站上有關於Shiny的很棒的教程和貼子。

您的函數可以在ui.R腳本上帶有日期範圍選擇輸入的server.R腳本上。您可以自定義輸出以包含特定的預測值,甚至包括預測的graph

編輯:包括推薦的funggcastfunction。將其應用於預測對象以獲取包含日期和預測的數據框。您的日期輸入滑塊可以引用此表。

+0

對不起,我之前沒有明確提到兩個R文件。我現在編輯了我的問題。如何修改server.R中的預測函數以使用在ui.R中輸入的日期? – BRS

+0

我建議在'forecast(fit)'對象上使用'funggcast'函數。 'funggcast'被提到我的帖子中包含的第三個鏈接。這將從包含日期和預測的預測對象中創建一張表格。你的'dateRangeInput'可以引用這個表。 – Warner

+0

我會將它合併到我的代碼中。非常感謝:) – BRS