Я использовал модель 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, в функции прогноза, как использовать даты, принятые как входные данные в u.R, чтобы указать даты начала и окончания, для которых мне нужен прогноз.
Извините, я не упоминал ранее два файла R до этого. Я сейчас редактировал свой вопрос. Как изменить функцию прогноза на сервере.R, чтобы использовать даты, введенные в ui.R? – BRS
Я рекомендую использовать функцию 'funggcast' на вашем объекте' project (fit) '. «funggcast» упоминается 3-я ссылка, включенная в мой пост. Это создаст таблицу из вашего прогнозируемого объекта, содержащего даты и прогнозы. Ваш 'dateRangeInput' может ссылаться на эту таблицу. – Warner
Я включу это в свой код. Спасибо большое :) – BRS