-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtransforma_as_variaveis.R
51 lines (26 loc) · 1.49 KB
/
transforma_as_variaveis.R
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
41
42
43
44
45
46
47
48
49
50
51
comeco <- Sys.time()
# Transformação das variaveis
# selecionando apenas os dados de 2003 a diante
dados <- df.final['2003/',]
# Transformando variação dos IPCA's e suas prevções do simples para diferença dos logs
dados[,grep('ipca',colnames(dados),ignore.case = TRUE) ][,-c(15:19)] <- log(dados[,grep('ipca',colnames(dados),ignore.case = TRUE) ][,-c(15:19)]+1)
dados.transformados <- dados
# Testando estacionariedade das séries e aplicando diff para as series nao estacionarias
for (coluna in 5:ncol(dados.transformados)) {
# teste de estacionariedade
# parece que tem algum erro quando o objeto é xts !
teste <- aTSA::adf.test(as.ts(dados.transformados[,coluna]) ,output = FALSE)
# transformando as variaveis não estacionarias
if (any(teste$type3[,3] > .01) & !any(dados.transformados[,coluna] < 0, na.rm = TRUE) ){
print(paste0('a serie ', colnames(dados.transformados)[coluna], ' NÃO é estacionária'))
dados.transformados[,coluna] <- diff(log(dados.transformados[,coluna]) )
} else {
print(paste0('a serie ', colnames(dados.transformados)[coluna], ' é estacionária'))
}
}
# para medir o tempo que rodou
fim <- Sys.time()
total <- (fim - comeco)
print(paste0('tempo total transformando os dados : ',format(total, digits = 3)) )
rm(list = ls()[-c(grep('dados.transformados',ls()), grep('df.final',ls()))])
saveRDS(dados.transformados,file = 'dados.transformados')