2016-07-23 3 views
0

환율을 예측하기 위해 R의 시계열 예측에 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

이것은 매우 광범위한 질문입니다. 나는 당신이 약간의 연구를 통해 많은 해답을 발견 할 수 있었다고 생각합니다. 여기에 하나 :

시도 Shiny. 다음은 간단한 작업으로 gallery입니다. 반짝이는이 사이트에는 훌륭한 자습서와 게시물이 있습니다.

ui.R 스크립트에 날짜 범위 선택 입력이있는 server.R 스크립트에 함수가있을 수 있습니다. 특정 예측 값을 포함하도록 출력을 사용자 정의 할 수 있으며 심지어 예측의 graph을 포함 할 수 있습니다.

편집 : 권장 funggcastfunction 포함. 예측 개체에 적용하여 날짜 및 예측이 포함 된 데이터 프레임을 가져옵니다. 귀하의 날짜 입력 슬라이더는이 표를 참조 할 수 있습니다.

+0

죄송합니다. 이전에 두 개의 R 파일을 명시 적으로 언급하지 않았습니다. 지금 내 질문을 편집했습니다. server.R에서 예측 기능을 수정하여 ui.R에 입력 한 날짜를 사용하려면 어떻게해야합니까? – BRS

+0

'funggcast' 함수를'forecast (fit)'객체에서 사용할 것을 권장합니다. 'funggcast'는 제가 제 게시물에 포함시킨 세 번째 링크입니다. 그러면 날짜와 예측을 포함하는 예측 개체에서 테이블이 생성됩니다. 'dateRangeInput'은이 테이블을 참조 할 수 있습니다. – Warner

+0

나는 이것을 내 코드에 포함시킬 것이다. 고마워요 :) – BRS