Escolar Documentos
Profissional Documentos
Cultura Documentos
library(knitr)
library(tseries)
library(forecast)
library(ggplot2)
library(ggfortify)
library(plotly)
library(magrittr)
library(ggseas)
library(lmtest)
library(ggpubr)
library(fma)
library(tsdl)
library(outliers)
library(readxl)
A energia elétrica é a base para o funcionamento de diversos setores do país. Todavia, nos últimos anos,
tem ocorrido um aumento do consumo de energia muito significativo em razão do consumo acelerado. Assim,
o aumento do consumo de energia no comércio está em constante crescimento, a importância é tanta, que
alguns ramos comerciais, necessitam de geradores de energia para garantir o fornecimento de eletricidade
durante todo o tempo, já que dependem do consumo constante. Atualmente, é impossível citar um ramo de
negócio, comércio ou indústria que consiga manter uma rotina de produção sem eletricidade (ANEEL, 2010).
O relatório encontra-se dividido em 3 seções, sendo a primeira esta introdução, a segunda, a análise e
discussão dos resultados e a terceira, conclusão.
1.1. Objetivos
1.1.1 Objetivo Geral
Encontrar um modelo ARMA (p,q), analisar, e fazer previsões, para a série temporal da Tarifa média (MWh)
do consumo de energia elétrica no setor comércio, no Brasil, de janeiro de 1991 à abril de 2020.
Min. 12.0155
Median 271.2853
Mean 327.1968
Max. 4936.8170
Na Tabela 1, vista acima, apresenta-se algumas estatísticas descritivas da série em questão. Portanto,
ressaltamos, a tarifa média do consumo de energia elétrica no setor comércio, no Brasil, de janeiro de 1991 à
abril de 2020, tem média geral de R$ 327,20. Tem-se também que, a tarifa média, mínima e máxima, é de
R$12,02 e R$4.936,82, respectivamente.
dados.ts<-ts(dados,start=c(1991,1),frequency = 12)
Por inspeção visual da série original, no gráfico 1, percebe-se que a série “Tarifa média do consumo de
energia elétrica no setor comércio”, possui algum tipo de tendência determinística e por causa da presença de
outliers, apresenta um pico nos valores iniciais.
Assim, a FAC amostral possui uma correlação positiva até o lag 12, depois a correlação passa a ser
negativa. Observa-se também, que vários lags apresentam-se fora do intervalo de confiança (IC). Na FACP
amostral, tem-se que a maioria das observações encontram-se dentro do IC. Assim, para que tenhamos todos
os lags dentro do IC, será ajustado um modelo que melhor represente o comportamento da série em questão.
dados2.ts<-ts(dados2,start=c(1991,1),frequency = 12)
##
## Augmented Dickey-Fuller Test
##
## data: dados2.ts
## Dickey-Fuller = -3.2632, Lag order = 6, p-value = 0.07754
## alternative hypothesis: stationary
##
## Phillips-Perron Unit Root Test
##
## data: dados2.ts
## Dickey-Fuller Z(alpha) = -40.199, Truncation lag parameter = 5,
## p-value = 0.01
## alternative hypothesis: stationary
No gráfico 4, percebe-se que a série possui alguns outliers, correspondentes aos meses de novembro de
1992 à dezembro de 1993, ou seja, essas quantidades foram bem superiores à média geral da tarifa média do
consumo dessa energia. Isso se deve, que no início de 1990, o setor elétrico estava em uma situação muito
delicada. O Estado alegava que não tinha condições de investir, as empresas estavam endividadas e a
privatização se apresentava como uma das soluções. Essas questões se agravaram no governo Collor e, no
final de 1992, chegou-se ao ápice dessa crise, com tarifas altas, e isto apenas começou a se normalizar nos
anos seguintes com o governo de Itamar Franco (GOMES; VIEIRA, 2009). Portanto, a série “Tarifa média do
consumo de energia elétrica no setor comércio”, está sem outliers no gráfico acima, e percebe-se que ocorre
mudanças significativas na série original. Dessa forma, as análises foram feitas com a série sem a os outliers,
mas os resultados não foram satisfatórios em relação aos resultados obtidos com a série completa. Além de
que, a série sem os outliers não passou pelo teste de raiz unitária Augmented Dickey-Fuller (ADF), apenas
pelo teste Phillips-Peron (PP), como podemos ver na rotina acima. Com isso, as análises serão feitas com os
outliers presentes na série.
shapiro.test(dados.ts)
##
## Shapiro-Wilk normality test
##
## data: dados.ts
## W = 0.39284, p-value < 2.2e-16
jarque.bera.test(dados.ts)
##
## Jarque Bera Test
##
## data: dados.ts
## X-squared = 43144, df = 2, p-value < 2.2e-16
é
H0 = A s rie segue distribui ção normal
é ã
H1 = A s rie n o segue distribui ção normal
Logo, para os 2 testes, em ambas as ocasiões, rejeita-se a hipótese nula de que a série segue uma
distribuição normal, visto que os p-valores são menores que o nível de significância de 0,05. O p-valor obtido
foi de 2,2e-16, para ambos os testes.
No gráfico 5, podemos comparar os quantis amostrais com os quantis teóricos, ou seja, os quantis da
distribuição normal, como os mesmos não se dispõem em uma reta linear, concluímos que a série não possui
normalidade nos dados.
Com base nos testes de normalidade de Shapiro-Wilk e Jarque-Bera e pelo qqplot, a série temporal em
análise não apresenta normalidade. Utilizando o pacote forecast, do R Core Team (2019), a rotina
BoxCox.lambda() forneceu resultados insastifatórios, sendo impossível normalizar a série, logo foi ajustado o
modelo ARMA na série não normalizada. Cabe ressaltar que, foi possível a normalização da série sem os
outliers que a mesma possui, porém mesmo com essa técnica aplicada, o modelo ARMA ajustado não foi
bom, já que os lags na FAC e FACP ficaram muitos para fora do IC, diferentemente do que aconteceu ao
gerar um modelo ARMA para a série sem normalizar e com outliers, a qual gerou todos os lags dentro do IC,
na FAC e FACP, e isto poderá ser visto em seguida. Ressalta-se apenas que, em caso de querermos calcular
os EMVs, não será possível o cálculo, já que é necessário a suposição de normalidade.
Assim, foram seguidas as etapas propostas por Box et al. (1970) para a modelagem ARMA, sendo elas:
ã
H1 = n o possui raiz unit ria ( á é á
estacion ria)
##
## Augmented Dickey-Fuller Test
##
## data: dados.ts
## Dickey-Fuller = -5.6794, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
##
## Phillips-Perron Unit Root Test
##
## data: dados.ts
## Dickey-Fuller Z(alpha) = -72.372, Truncation lag parameter = 5,
## p-value = 0.01
## alternative hypothesis: stationary
Para os 2 testes, teve-se o p-valor = 0,01 < α = 0,05. Assim, rejeita-se a hipótese nula, e a série temporal é
estacionária, ou seja, não possui raiz unitária.
summary(fit)
##
## Call:
## arima(x = dados.ts, order = c(1, 0, 2))
##
## Coefficients:
## ar1 ma1 ma2 intercept
## -0.2201 1.3441 0.9631 327.1359
## s.e. 0.0564 0.0218 0.0187 37.6827
##
## sigma^2 estimated as 68344: log likelihood = -2461.43, aic = 4932.86
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.2897935 261.4277 95.49061 -38.48033 60.14581 1.985048
## ACF1
## Training set 0.03904614
coeftest(fit)
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 -0.220128 0.056444 -3.8999 9.621e-05 ***
## ma1 1.344133 0.021811 61.6266 < 2.2e-16 ***
## ma2 0.963062 0.018731 51.4165 < 2.2e-16 ***
## intercept 327.135893 37.682736 8.6813 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Nos resultados acima, tem-se o resumo do modelo ARMA(1,2) ajustado a série, na qual apresenta todos os
coeficientes significativos ao nível de 5% de significância.
summary(fit1)
##
## Call:
## arima(x = dados.ts, order = c(1, 0, 4))
##
## Coefficients:
## ar1 ma1 ma2 ma3 ma4 intercept
## 0.7472 0.1533 0.0208 -0.2367 0.6746 326.2740
## s.e. 0.0485 0.0454 0.0498 0.0505 0.0456 75.7592
##
## sigma^2 estimated as 50908: log likelihood = -2410.17, aic = 4834.33
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.8589715 225.6278 78.13897 -29.90457 56.02004 1.624344
## ACF1
## Training set 0.03591385
coeftest(fit1)
##
## z test of coefficients:
##
## Estimate Std. Error z value Pr(>|z|)
## ar1 0.747196 0.048451 15.4217 < 2.2e-16 ***
## ma1 0.153277 0.045360 3.3791 0.0007272 ***
## ma2 0.020782 0.049833 0.4170 0.6766627
## ma3 -0.236688 0.050542 -4.6830 2.827e-06 ***
## ma4 0.674554 0.045642 14.7793 < 2.2e-16 ***
## intercept 326.273969 75.759194 4.3067 1.657e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Nos resultados acima, tem-se o resumo do modelo ARMA(1,4) ajustado a série, na qual apresenta todos
coeficientes significativos ao nível de 5% de significância, exceto o coeficiente θ2 = 0, 0208 .
file:///C:/Users/fernando/Desktop/Faculdade/7ºSemestre/Séries Temporais/Tarefa 3/Atividade_3.html 9/16
22/07/2020 Aplicação do Modelo ARMA(p,q)
tabela<-matrix(rep(NA,4),2)
tabela[1,]<-c(AIC(fit),BIC(fit))
tabela[2,]<-c(AIC(fit1),BIC(fit1))
row.names(tabela)<-c("ARMA(1,2)","ARMA(1,4)")
colnames(tabela)<-c("AIC","BIC")
kable(tabela)
AIC BIC
Conforme a tabela acima, temos os critérios de informação AIC e BIC dos modelos concorrentes. Portanto,
o modelo ARMA(1,4) minimiza os critérios de informação, logo o mesmo é escolhido para as análises
posteriores.
Medidas de acurácia:
Assim, algumas medidas de acurácia foram calculadas para os modelos concorrentes.
a<-accuracy(fitted(fit),dados.ts)
b<-accuracy(fitted(fit1),dados.ts)
# Comparando medidas de acurácia dos métodos
a1<-c(261.4277, 95.4906, 60.1458)
b1<-c(225.6278, 78.1390, 56.0200)
medidas1<-matrix(rep(NA,6),nrow = 2)
colnames(medidas1)<-c("RMSE","MAE","MAPE")
row.names(medidas1)<-c("ARMA (1,2)","ARMA (1,4)")
medidas1[1,]<-a1
medidas1[2,]<-b1
kable(medidas1)
Analisando a tabela acima, temos que o modelo ARMA(1,4) possui as menores medidas de acurácia,
quando comparado ao modelo ARMA(1,2).
Desta forma, o modelo selecionado apresenta o polinômio AR de ordem 1, com um fator de influência
positivo (0.7472) e o polinômio MA de ordem 4, com os filtros de médias móveis significativos, sendo dois
parâmetros positivos e um negativo (0.1533, 0.6745 e -0.2367).
No gráfico 6, percebe-se que no círculo unitário à esquerda temos a raiz do polinômio AR e no gráfico à
direita temos as quatro raizes do polinômio MA. Logo, comprova-se que o modelo não possui raiz unitária, ou
seja, é estacionário.
res.mod<-fit1$residuals
ggtsdisplay(res.mod,main="Gráfico 7 - Análise gráfica dos resíduos")
Logo, analisando os resíduos do ARMA(1,4), pelo gráfico 7, nota-se que todos os lags estão dispostos
dentro do IC, assim temos um ruído branco. Portanto, todos os efeitos foram capturados pelos parâmetros
estimados no modelo ARMA.
Teste de Ljung-Box:
í ã ã
H0 : os res duos n o s o autocorrelacionados
í ã
H1 : os res duos s o autocorrelacionados
##
## Box-Ljung test
##
## data: res.mod
## X-squared = 4.5355, df = 15, p-value = 0.9954
Assim, como o p-valor foi maior que o nível de significância de 5%, não se rejeita H0 , ou seja, os resíduos
não são autocorrelacionados, o que é o ideal, e com isso o modelo ARMA(1,4) é adequado.
shapiro.test(res.mod)
##
## Shapiro-Wilk normality test
##
## data: res.mod
## W = 0.44978, p-value < 2.2e-16
jarque.bera.test(res.mod)
##
## Jarque Bera Test
##
## data: res.mod
## X-squared = 22653, df = 2, p-value < 2.2e-16
Logo, para os 2 testes, em ambas as ocasiões, rejeita-se a hipótese de que os resíduos seguem uma
distribuição normal, visto que os p-valores são menores que o nível de significância de 0,05. O p-valor obtido
foi de 2,2e-16, para os testes de Shapiro-Wilk e Jarque-Bera.
No gráfico 8, também podemos comparar os quantis amostrais com os quantis teóricos, ou seja, os quantis
da distribuição normal, como os mesmos não se dispõem em uma reta linear, concluímos que os resíduos da
série não possuem normalidade.
##
## Augmented Dickey-Fuller Test
##
## data: res.mod
## Dickey-Fuller = -6.5642, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
##
## Phillips-Perron Unit Root Test
##
## data: res.mod
## Dickey-Fuller Z(alpha) = -330.13, Truncation lag parameter = 5,
## p-value = 0.01
## alternative hypothesis: stationary
Os 2 testes, rejeitaram a hipótese nula ao nível de 5%. Assim, os resíduos são estacionários, ou seja, não
possuem raízes unitárias.
Desta maneira, o modelo ARMA(1,4), atende a todos os pressupostos da metodologia adotada, portanto, é
possível realizar a previsão da série.
2.6.5. Previsão
Após a estimação dos parâmetros do modelo ARMA(1,4), e a validaçãodo mesmo, é feita a previsão. A
previsão é feita fora da amostra (out-of-sample) e para os próximos 12 meses.
predict.mod<-forecast(fit1,h=12)
kable(predict.mod)
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
Na Tabela acima, temos as observações previstas 12 passos à frente. Nota-se que a primeira coluna, são
os meses que estão sendo previstos, a segunda coluna, são as previsões dadas pelo modelo ARMA(1,4) e as
outras colunas, correspondem aos limites inferiores e superiores do IC, considerando os níveis de confiança
de 80% e 95%, respectivamente.
No Gráfico 9, observa-se a série original, em preto, as previsões do modelo ajustado, em azul, e assim
temos as observações previstas para os próximos 12 meses.
tmp.df<-cbind(dados.ts,predict.mod$mean,predict.mod$upper[,2], predict.mod$lower[,2],fitted(f
it1))
colnames(tmp.df)<-c("dados.ts","predict","upper","lower","fitted")
predict.df<-data.frame(Time=c(time(c(dados.ts,predict.mod$upper[,2]))),tmp.df)
# tail(predict.df)
fig<-ggplot(data = predict.df, aes(x=Time, y=value, continuous=FALSE,color=variable ))+
ylab('Valores R$')+ggtitle("Gráfico 10 - Predição e previsão da série")+
geom_line(aes(y=dados.ts , col='Dados Reais'))+
geom_line(aes(y=predict, col='Previsão'))+
geom_line(aes(y=fitted, col='Predição'))+
geom_line(aes(y=upper, col='Limite Superior'))+
geom_line(aes(y=lower, col='Limite Inferior'))+theme_minimal()
fig
O gráfico 10, mostra a previsão da série “Tarifa média do consumo de energia elétrica no setor comercial”.
A série orginal está em vermelho e a ajustada em azul. Observa-se que, é uma previsão out-of- sample, ou
seja, uma previsão fora da amostra, na qual prevê passos à frente para as próximas 12 observações
indexadas no tempo, que nesse caso são os 12 meses à frente, que está indicado pela cor rosa. Tem-se
também, os limites inferiores e superiores representados pelas cores verde escuro e verde claro,
respectivamente.
3. Conclusão
O processo gerador da série Tarifa média (MWh) do consumo de energia elétrica no setor comercial teve o
polinômio AR de ordem 1 e o polinômio MA de ordem 4, ou seja, um modelo ARMA (1,4). A partir do modelo
ajustado, tornou-se possível a realização de previsão out-of-sample, a qual previu os próximos 12 meses,
mostrando que os preços da tarifa média do consumo de energia no setor comercial, ficará em torno da média
geral, exceto para os meses de maio e junho de 2020, que apresentaram valores mais altos do que a média
geral. Portanto, o modelo escolhido foi capaz de capturar os movimentos e características da série em
questão, apontando que a mesma é influenciada pelo mês anterior, bem como, pela média da tarifa média do
consumo de energia elétrica no setor comércio dos últimos quatro períodos.
REFERÊNCIAS
Oliveira, N.(2014). Consumo de energia no setor do comércio e serviço cresce 5,7%. Agência Brasil, Rio de
Janeiro-RJ.
Gomes, J. P. P. e Vieira, M. M. F. (2009). O campo da energia elétrica no Brasil de 1880 a 2002. Revista de
Administração Pública, 43(2), 295-321.
Souza, L. V. (2016). Programação genética e combinação de preditores para previsão de séries temporais.
Box, G. E., Jenkins, G. M., Reinsel, G.(1970). Time series analysis: forecasting and control holden-day san
francisco. BoxTime Series Analysis: Forecasting and Control Holden Day1970.