cmis_dynamic_reg_forecast: Ajusta regressao dinamica com CrossValidation via ARIMA...

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/CMISDynamicRegForecast.R

Description

Realiza ajuste de modelos de regressao dinamica utilizando ARIMA com reducaoo de vari<c3><a1>veis via Elastic Net, Wald ou STEPWISE com escolha de modelos por CorssValidation de forma automatica.

Usage

1
2
cmis_dynamic_reg_forecast(dados, vresposta, explicativas,  n_passos_frente, freq,
				nfolds = 10, nivel=95, p_aumento=NULL, trace = FALSE, ...)

Arguments

dados

Objeto mts ou data.frame com as variaveis de interesse

vresposta

Variavel resposta

explicativas

Vetor de vari<c3><a1>veis explicativas

n_passos_frente

Horizonte de forecast, quantos pontos <c3><a0> frente deseja estimar

nfolds

N<c3><ba>mero m<c3><a1>ximo de reamostragens para redu<c3><a7><c3><a3>o elastic net.

sig

Valor m<c3><ad>nimo (p.valor) para elimina<c3><a7><c3><a3>o de vari<c3><a1>veis por Wald ou STEPWISE

nivel

N<c3><ad>vel de signific<c3><a2>ncia para os limites de predi<c3><a7><c3><a3>o do forecast. Padr<c3><a3>o <c3><a9> 0.95

p_aumento

Permite simular cen<c3><a1>rios de crescimento para as vari<c3><a1>veis explicativas e seu efeito sovre a resposta. Aceita valores decimais. Exemplo: 50 por cento de aumento implica em 0.50

trace

Se TRUE, exibe informa<c3><a7><c3><b5>es do processo de estima<c3><a7><c3><a3>o

automatic

Se TRUE, a escolha das covari<c3><a1>veis <c3><a9> feita automaticamente. Caso contr<c3><a1>rio, tenta ajustar um modelo saturado com todas as covari<c3><a1>veis de entrada. Padr<c3><a3>o <c3><a9> TRUE.

freq

Frequencia da s<c3><a9>rie. Di<c3><a1>rio - 7, mensal - 12 e hor<c3><a1>rio - 24 pontos.

nvif

Fator de Infla<c3><a7><c3><a3>o de Vari<c3><a2>ncia, utilizado para verificar multicolinearidade.

...

Passagem de argumentos.

Details

Esta fun<c3><a7><c3><a3>o permite ajustes de regress<c3><a3>o din<c3><a2>mica utilizando ARIMA que por sua vez utiliza a t<c3><a9>nica de Box-Jenkins para ajustes e forecast. Esta fun<c3><a7><c3><a3>o <c3><a9> baseada na fun<c3><a7><c3><a3>o auto.arima e antes do ajuste <c3><a9> feita uma elimina<c3><a7><c3><a3>o automatizada de covari<c3><a1>veis fracas pela t<c3><a9>cnica de CrossValidation atrav<c3><a9>s da metodologia Elastic Net, que por sua vez utiliza algoritimos de redu<c3><a3>o via LASSO e Ridge regression. O resultado <c3><a9> um forecast coerente e assertivo para os dados. <c3><89> permitido ainda simula<c3><a7><c3><a3>o de cen<c3><a1>rios de crescimento para as covari<c3><a1>veis adicionando percentual de crescimentos desejados a fim de medir este impacto na explicativa.

Value

A sa<c3><ad>da <c3><a9> uma lista aninhada com v<c3><a1>rias entradas conforme abaixo.

models

Objeto dos dois modelos escolhidos automaticamente, sendo um simples e outro com o efeito das covari<c3><a1>veis e do aumento, caso seja definido

forecasts

Forecast dos dois modelos escolhidos automaticamente, sendo um simples e outro com o efeito das covari<c3><a1>veis e do aumento, caso seja definido

acuracia

Estat<c3><ad>sticas dos modelos

Author(s)

LOPES, J. E.

References

Hyndman, R.J. and Khandakar, Y. (2008) "Automatic time series forecasting: The forecast package for R", Journal of Statistical Software, 26(3).

See Also

Mais informa<c3><a7><c3><b5>es sobre a metodologia de forecast para modelos ARIMA auto.arima e para redu<c3><a7><c3><a3>o por Elastic Net cv.glmnet. model.select para redu<c3><a7><c3><a3>o Stepwise e fastbw para elimina<c3><a7><c3><a3>o por Wald

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  data(diario)
  da <- dataframe.outlier(diario, n_passos_frente=10, freq=7)$dados_ts
  nm <- dimnames(da)[[2]]
  vresposta <- explicativas <- c()
  
  for(i in 1:length(nm)){
  	if (substr(nm[i], 1, 3) == "NEG") explicativas[i] <- nm[i]
  	if (substr(nm[i], 1, 3) == "HDW") vresposta[i] <- nm[i]
  }
  
  vresposta <- as.character(na.omit(vresposta))
  explicativas <- as.character(na.omit(explicativas))
  
  fit <- cmis_dynamic_reg_forecast(da, vresposta[1], explicativas, 20, 7, 
				nfolds = 10, p_aumento = 1, nivel = 95, trace = TRUE)
  plot(fit)
  summary(fit)
  
  ## Exemplo de looping varrendo uma base de dados.
  ## Pode demorar muito!!! ##
  data(diario)
  da <- dataframe.outlier(diario, n_passos_frente=10, freq=7)$dados_ts
  nm <- dimnames(da)[[2]]
  vresposta <- explicativas <- c()
  
  for(i in 1:length(nm)){
    if (substr(nm[i], 1, 3) == "NEG") explicativas[i] <- nm[i]
    if (substr(nm[i], 1, 3) == "HDW") vresposta[i] <- nm[i]
  }
  
  vresposta <- as.character(na.omit(vresposta))
  explicativas <- as.character(na.omit(explicativas))
  
  out <- c()
  for (i in 1:length(vresposta[1:10])) {
    temp <- try(cmis_dynamic_reg_forecast(da, vresposta[i], explicativas, 20, 12,
				nfolds = 5, p_aumento = 0.05, nivel = 95, trace = TRUE, sig = 0.10))
    if(class(temp)!="try-error") out[[i]] <- temp
    try(plot(temp))
  }

evandeilton/RTFC documentation built on May 29, 2019, 10:37 a.m.