rm(list = ls())
library(readxl)
bebida <- read_excel("C:/Users/Clevia/Documents/series temporais/Conjuntos de dados.XLS",
sheet = "M-Bebida")
head(bebida)
## # A tibble: 6 × 2
## Meses Bebida
## <dttm> <chr>
## 1 1985-01-01 00:00:00 56.92
## 2 1985-02-01 00:00:00 49.67
## 3 1985-03-01 00:00:00 49.63
## 4 1985-04-01 00:00:00 53.84
## 5 1985-05-01 00:00:00 57.49
## 6 1985-06-01 00:00:00 59.94
energia <- read_excel("C:/Users/Clevia/Documents/series temporais/Conjuntos de dados.XLS",
sheet = "M-Energia")
head(energia)
## # A tibble: 6 × 3
## Ano Mes Energia
## <dbl> <dbl> <dbl>
## 1 1968 1 10951
## 2 NA 2 10671
## 3 NA 3 13643
## 4 NA 4 15109
## 5 NA 5 12602
## 6 NA 6 12295
IPI <- read_excel("C:/Users/Clevia/Documents/series temporais/Conjuntos de dados.XLS",
sheet = "M-IPI")
head(IPI)
## # A tibble: 6 × 2
## `mês/ano` ipialiment
## <dttm> <dbl>
## 1 1985-01-01 00:00:00 84.2
## 2 1985-02-01 00:00:00 71.5
## 3 1985-03-01 00:00:00 72.6
## 4 1985-04-01 00:00:00 67.0
## 5 1985-05-01 00:00:00 72.6
## 6 1985-06-01 00:00:00 95.6
library(tidyverse)
library(TTR)
library(forecast)
Considerando os dados (M-Energia) do anos de janeiro de 1968 à dezembro de 1969 sobre consumo de energia elétrica no estado do Espírito Santo:
letra a - Faça um gráfico das observações.
letra b - Estime a tendência por meio da utilização de um polinômio de
primeira ordem.
letra c - Calcule as médias móveis por trimestre e por quadrimestre. Em
seguida, adicione essas informações ao gráco das observações obtido no
item a).
energia2 <- energia[1:24,3]
energia_serie <- ts(energia2, start=1968, freq=12)
N <- nrow(energia_serie)
Tempo <- 1:N
X.lm <- lm(energia_serie ~ Tempo)
X.pred <- predict(X.lm) ## Previsão da série observada
M <- seq(as.Date("1968/1/1"),as.Date("1969/12/1"),"months")
plot(M, energia_serie, type="l")
lines(M, X.pred, col= "red", lwd=2,lty=2)
energiaM3<- SMA(energia_serie, n=3)
plot(energia_serie)
points(energiaM3, pch=20, col="darkgreen")
energiaM4<- SMA(energia_serie, n=4)
plot(energia_serie)
points(energiaM4, pch=20, col="darkgreen")
Analise cada um dos conjuntos de dados abaixo e ajuste um modelo para tendências, sazonalidade ou contendo ambas de acordo com o que for adequado a cada problema.
##letra a
bebida_serie <- ts(bebida[,2], start=1985, freq=12)
bebida_adt <- decompose(bebida_serie)
plot(bebida_adt, col= "darkgreen" )
bebida_mult =decompose(bebida_serie,type = "mult")
plot(bebida_mult, col= "darkgreen" )
bebida_trend <- bebida_mult$trend
plot(bebida_trend, col= "darkgreen" )
IPI_serie <- ts(IPI[,2], start=1985, freq=12)
IPI_adt <- decompose(IPI_serie)
plot(IPI_adt, col= "darkblue" )
IPI_mult =decompose(IPI_serie,type = "mult")
plot(IPI_mult, col= "darkblue")
IPI_trend <- IPI_mult$trend
plot(IPI_trend, col= "darkblue")
energia2_serie <- ts(energia[,2], start=1968, freq=12)
energia2_adt <- decompose(energia2_serie)
plot(energia2_adt, col= "purple")
energia2_mult =decompose(energia2_serie,type = "mult")
plot(energia2_mult, col= "purple")
energia2_trend <- energia2_mult$trend
plot(energia2_trend, col= "purple")
Analise cada um dos conjuntos de dados abaixo e ajuste um modelo de suavização exponencial de acordo com o que for adequado a cada problema.
bebida_serie <- ts(bebida[,2], start=1985, freq=12)
plot(bebida_serie)
N2 <- nrow(bebida_serie)
Tempo <- 1:N2
X.lm2 <- lm(bebida_serie ~ Tempo)
X.pred2 <- predict(X.lm2) ## Previsão da série observada
M2 <- seq(as.Date("1985/1/1"),as.Date("2000/7/1"),"months")
plot(M2, bebida_serie, type="l")
lines(M2, X.pred2, col= "red", lwd=2,lty=2)
modelo_bebida <- HoltWinters(bebida_serie, gamma = FALSE)
head (modelo_bebida$fitted)
## xhat level trend
## Mar 1985 67.00000 71.00000 -4.000000
## Apr 1985 64.24532 68.23172 -3.986405
## May 1985 63.47793 67.42920 -3.951264
## Jun 1985 65.13977 69.02975 -3.889986
## Jul 1985 67.41836 71.24100 -3.822645
## Aug 1985 65.91269 69.71004 -3.797351
plot(bebida_serie)
lines(modelo_bebida$fitted[,1],pch = 18, col = "red", type = "b",
lty = 2, lwd = 1)
#letra b
IPI_serie <- ts(IPI[,2], start=1985, freq=12)
##Gráfico
plot(IPI_serie)
N3 <- nrow(IPI_serie)
Tempo <- 1:N3
X.lm3 <- lm(IPI_serie ~ Tempo)
X.pred3 <- predict(X.lm3) ## Previsão da série observada
M3 <- seq(as.Date("1985/1/1"),as.Date("2000/7/1"),"months")
plot(M3, IPI_serie, type="l")
lines(M3, X.pred3, col= "red", lwd=2,lty=2)
modelo_IPI <- HoltWinters(IPI_serie)
head(modelo_IPI$fitted)
## xhat level trend season
## Jan 1986 92.85683 90.31837 -0.06821096 2.6066667
## Feb 1986 77.78533 90.02896 -0.06821096 -12.1754167
## Mar 1986 67.18462 89.60283 -0.06821096 -22.3500000
## Apr 1986 69.42130 89.32868 -0.06821096 -19.8391667
## May 1986 72.48061 89.44465 -0.06821096 -16.8958333
## Jun 1986 89.77116 89.62729 -0.06821096 0.2120833
plot(IPI_serie)
lines(modelo_IPI$fitted[,1],pch = 18, col = "red", type = "b",
lty = 2, lwd = 1)
#letra c
energia2_serie <- ts(energia[,2], start=1968, freq=12)
plot(energia2_serie)
N4 <- nrow(energia2_serie)
Tempo <- 1:N4
X.lm4 <- lm(energia2_serie ~ Tempo)
X.pred4 <- predict(X.lm4) ## Previsão da série observada
M4 <- seq(as.Date("1968/1/1"),as.Date("1979/9/1"),"months")
plot(M4, energia2_serie, type="l")
lines(M4, X.pred4, col= "red", lwd=2,lty=2)
modelo_energia2 <- HoltWinters(energia2_serie, beta = F,gamma = F)
head(modelo_energia2$fitted)
## xhat level
## Feb 1968 1.000000 1.000000
## Mar 1968 1.890777 1.890777
## Apr 1968 2.878847 2.878847
## May 1968 3.877544 3.877544
## Jun 1968 4.877402 4.877402
## Jul 1968 5.877387 5.877387
plot(energia2_serie)
lines(modelo_energia2$fitted[,1],pch = 18, col = "red", type = "b",
lty = 2, lwd = 1)