Parte I: Download dos dados Os dados foram extraídos da página do Prof. Dr. Hedibert Freitas Lopes (www.hedibert.org), em arquivo txt. Uma vez que siglas de Estados são representadas em letras maiúsculas e na base de dados não assim o estão, o cabeçalho foi dessa forma ajustado.
consumo<-read.table("http://hedibert.org/wp-content/uploads/2020/03/consumo-energia-sudeste-sul.txt",
header=TRUE)
names(consumo)<-toupper(colnames(consumo))
Parte II: Análise exploratória dos dados Trata-se de uma base de dados em formato data.frame com 50 observações anuais do consumo de energia elétrica industrial, cuja unidade de medida é apresentada em MWh. A série tem início em 1968 e término em 2018 com observações de 7 Estados brasileiros: SP, RJ, MG, ES, RS, SC e PR. Os valores são apresentados em números inteiros e não há existência de valores em branco (“NaS”).
meltcons<-melt(consumo,id="ANO")
gg1<-ggplot(meltcons,aes(x=ANO,y=log(value),colour=variable,group=variable))+
geom_line(size=1.2)+
theme_minimal()+
theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank(),
axis.line = element_line(color="black",size=1),
panel.border=element_rect(colour="black",fill=NA,size=0.1),
legend.background = element_blank(),
legend.box.background = element_rect(colour="black",size=1),
strip.text = element_text(size = 16, color = "black"),
axis.title = element_text(color = "black", hjust = 0, face = "italic"),
axis.text = element_text(color = "black"),
plot.title = element_text(face = "bold", size = (10)),
plot.subtitle = element_text(face = "italic", size = (8)))+
labs(y="Log do Consumo (Mhw)",x="Tempo (anos)",title="Gráfico 1: Consumo anual de energia elétrica industrial (em log)",subtitle = "Dados obtidos em http://hedibert.org/wp-content/uploads/2020/03/consumo-energia-sudeste-sul.txt ")
gg1
str(consumo)
## 'data.frame': 50 obs. of 8 variables:
## $ ANO: int 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 ...
## $ SP : int 8087543 8724441 9794908 11003991 12506604 14466643 15526292 17011464 17465425 19185211 ...
## $ RJ : int 1794463 2115197 2303695 2644653 2806425 3128953 2901639 3571186 3893045 4594765 ...
## $ MG : int 2973205 3266916 3625783 4234186 4676434 5139979 5751954 6456913 7001976 8189171 ...
## $ ES : int 96254 116410 192777 280442 313753 462533 532392 601759 661468 806855 ...
## $ RS : int 546688 628410 736348 817714 974327 1088107 1329899 1493843 1673819 1873509 ...
## $ SC : int 331780 378311 417531 447319 549696 644989 824801 917082 1048576 1236320 ...
## $ PR : int 535173 625054 662478 701774 845109 1017270 1139102 1279325 1211924 1491855 ...
any(is.na(consumo))
## [1] FALSE
Abaixo foi gerada a Tabela 1, apresentando um sumário da base de dados, porém as estatísticas nela apresentada são pouco informativas uma vez que tratam-se de séries de dados não-estacionárias e uma vez que as características de cada Estado diferem, não é possível extrair conclusões relevantes delas.
sumario<-function(x){
c(mínimo=min(x),média=mean(x),máximo=max(x),mediana=median(x),desvpad=sd(x))
}
tabela1<-sapply(consumo[2:(ncol(consumo))],sumario)
knitr::kable(caption="Tabela 1: Sumário da Base de Dados",align ="c" ,tabela1,digits=3, format.args = list(big.mark=",",scientific=FALSE)) %>%
kable_styling(bootstrap_options = c("striped","hover","condensed"),
full_width = TRUE,position = "float_right")
| SP | RJ | MG | ES | RS | SC | PR | |
|---|---|---|---|---|---|---|---|
| mínimo | 8,087,543 | 1,794,463 | 2,973,205 | 96,254 | 546,688 | 331,780 | 535,173 |
| média | 34,612,360 | 7,445,830 | 18,797,469 | 2,642,368 | 5,535,200 | 4,551,865 | 5,637,808 |
| máximo | 55,989,265 | 10,027,689 | 32,610,430 | 5,118,085 | 10,665,149 | 10,251,563 | 12,725,163 |
| mediana | 35,316,102 | 8,598,309 | 18,957,508 | 2,587,109 | 4,948,364 | 3,641,825 | 4,522,736 |
| desvpad | 14,236,894 | 2,555,147 | 9,305,433 | 1,495,769 | 3,389,290 | 3,228,912 | 4,004,199 |
Parte III: Tratamento e Normalização dos Dados
A primeira etapa do tratamento dos dados para as futuras análises consiste na elaboração de duas matrizes: uma contendo o consumo de energia elétrica industrial em MWh per capita e outra com as taxas de crescimento dessa variável. Ademais, cria-se um vetor com os anos.
Obtiveram-se as estimativas populacionais dos Estados em análise disponibilizadas no texto do exercício. Na Tabela 1 é possível consultá-las.
Para a normalização do consumo de energia elétrica, dividiu-se o consumo pela população do estado. Para o cálculo da variação do crescimento do consumo da energia elétrica, aplicou-se o log da diferença entre os instantes t e t-1.
#Elaborando as matrizes e vetores
anos<-consumo[,1]
y<-as.matrix(consumo[2:ncol(consumo)])
populacao<- c(45919049,17264943,21168791,4018650,11377239,7164788,11433957)
estados<-colnames(consumo[2:ncol(consumo)])
#Normalizando o consumo pela população
for (i in 1:ncol(y)) {
y[,i]<-y[,i]/populacao[i]
}
#Taxa de crescimento do consumo de energia elétrica Industrial por Estado
ano1 = consumo[2:nrow(consumo),1]
y1 = apply(log(y),2,diff)
Foi gerada uma tabela (Tabela 2) contendo a população de cada Estado, informação utilizada para o cálculo do consumo per capita.
#Tabela com a População dos Estados
tabela2<-data.frame(cbind(estados,populacao))
tabela2$populacao<-as.numeric(as.character(tabela2$populacao))
knitr::kable(tabela2,caption="Tabela 2: População dos Estados",digits=3,align ="c", format.args = list(big.mark=",",scientific=FALSE)) %>%
kable_styling(bootstrap_options = c("striped","hover","condensed"),
full_width = FALSE,position = "float_right")
| estados | populacao |
|---|---|
| SP | 45,919,049 |
| RJ | 17,264,943 |
| MG | 21,168,791 |
| ES | 4,018,650 |
| RS | 11,377,239 |
| SC | 7,164,788 |
| PR | 11,433,957 |
Parte IV: Análise Gráfica dos Dados Percebe-se através do Gráfico 2 abaixo que todos os Estados em análise apresentaram crescimento do conusmo de energia elétrica industrial per capita no período analisado, entre 1968 e 2018. Destacam-se o estado do Rio de Janeiro, pelo crescimento mais estável que dos outros Estados, a alta volatilidade constatada no Espírito Santo e o crescimento sem grandes intercorrências nos Estados do Paraná e Santa Catarina.
per_capita<-as.data.frame(cbind(anos,y))
meltpercapita<-melt(per_capita,id="anos")
gg2<-ggplot(meltpercapita,aes(x=anos,y=value,colour=variable,group=variable))+
geom_line(size=1.2)+
theme_minimal()+
theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank(),
axis.line = element_line(color="black",size=1),
panel.border=element_rect(colour="black",fill=NA,size=0.1),
legend.background = element_blank(),
legend.box.background = element_rect(colour="black",size=1),
strip.text = element_text(size = 16, color = "black"),
axis.title = element_text(color = "black", hjust = 0, face = "italic"),
axis.text = element_text(color = "black"),
plot.title = element_text(face = "bold", size = (10)),
plot.subtitle = element_text(face = "italic", size = (8)))+
labs(y="Consumo per Capita (Mhw)",x="Tempo (anos)",title="Gráfico 2: Consumo anual de energia elétrica industrial per capita",subtitle = "Dados obtidos em http://hedibert.org/wp-content/uploads/2020/03/consumo-energia-sudeste-sul.txt ")
gg2
Tais observações gráficas podem também ser constatadas na Tabela 3, abaixo, que sumariza os dados do Consumo per Capita por Estado.
tabela3<-sapply(per_capita[2:(ncol(per_capita))],sumario)
knitr::kable(tabela3,caption="Tabela 3: Sumário do Consumo de Energia Elétrica per Capita",digits=3,align="c", format.args = list(big.mark=",",scientific=FALSE)) %>%
kable_styling(bootstrap_options = c("striped","hover","condensed"),
full_width =TRUE,position = "center")
| SP | RJ | MG | ES | RS | SC | PR | |
|---|---|---|---|---|---|---|---|
| mínimo | 0.176 | 0.104 | 0.140 | 0.024 | 0.048 | 0.046 | 0.047 |
| média | 0.754 | 0.431 | 0.888 | 0.658 | 0.487 | 0.635 | 0.493 |
| máximo | 1.219 | 0.581 | 1.540 | 1.274 | 0.937 | 1.431 | 1.113 |
| mediana | 0.769 | 0.498 | 0.896 | 0.644 | 0.435 | 0.508 | 0.396 |
| desvpad | 0.310 | 0.148 | 0.440 | 0.372 | 0.298 | 0.451 | 0.350 |
Notam-se, no gráfico 3, o qual apresenta a variação anual do consumo de energia elétrica per capita dos Estados, os picos de crescimento de consumo entre as décadas de 70 e 80 no Espírito Santo e, mais a frente na primeira e segunda décadada de 2000, picos de crescimento de consumo nos Estados de São Paulo, Minas Gerais e Espírito Santo.
y1<-as.data.frame(y1)
cresc<-as.data.frame(cbind(anos[-1],y1))
names(cresc)<-c("anos",estados)
meltcresc<-melt(cresc,id="anos")
gg3<-ggplot(meltcresc,aes(x=anos,y=value,colour=variable,group=variable))+
geom_line(size=1.2)+
theme_minimal()+
theme(panel.grid.major = element_blank(),panel.grid.minor = element_blank(),
axis.line = element_line(color="black",size=1),
panel.border=element_rect(colour="black",fill=NA,size=0.1),
legend.background = element_blank(),
legend.box.background = element_rect(colour="black",size=1),
strip.text = element_text(size = 16, color = "black"),
axis.title = element_text(color = "black", hjust = 0, face = "italic"),
axis.text = element_text(color = "black"),
plot.title = element_text(face = "bold", size = (10)),
plot.subtitle = element_text(face = "italic", size = (8)))+
labs(y="Crescimento do Consumo per Capita (Mhw)",x="Tempo (anos)",title="Gráfifo 3: Crescimento anual de energia elétrica industrial per capita",subtitle = "Dados obtidos em http://hedibert.org/wp-content/uploads/2020/03/consumo-energia-sudeste-sul.txt ")
gg3
Tais observações gráficas podem também ser constatadas na Tabela 4, abaixo, que sumariza os dados da variação do Consumo per Capita por Estado.
tabela4<-sapply(y1[1:(ncol(y1))],sumario)
knitr::kable(tabela4,caption="Tabela 4: Sumário da Variação do Consumo de Energia Elétrica per Capita",align="c",digits=3, format.args = list(big.mark=",",scientific=FALSE)) %>%
kable_styling(bootstrap_options = c("striped","hover","condensed"),
full_width = TRUE,position = "float_right")
| SP | RJ | MG | ES | RS | SC | PR | |
|---|---|---|---|---|---|---|---|
| mínimo | -0.066 | -0.163 | -0.155 | -0.246 | -0.088 | -0.053 | -0.062 |
| média | 0.037 | 0.031 | 0.048 | 0.077 | 0.059 | 0.070 | 0.065 |
| máximo | 0.146 | 0.292 | 0.325 | 0.504 | 0.201 | 0.246 | 0.208 |
| mediana | 0.031 | 0.023 | 0.039 | 0.055 | 0.063 | 0.060 | 0.051 |
| desvpad | 0.056 | 0.089 | 0.082 | 0.156 | 0.063 | 0.060 | 0.065 |
Parte V: PCA, Principal Component Analysis
A PCA tem como objetivo prover uma análise dos dados através da redução da dimensão do espaço, de forma a obter menos relações entre os dados disponíveis. Através da PCA, é possível eliminar variáveis, simplificando modelos e o risco de “overfit”. Ao mesmo tempo, a PCA permite gerar novas variáveis através de combinações de variáveis já existentes.
Ao utilizar a função prcomp com a matriz y1 (contendo a variação do consumo de energia elétrica per capita por Estado por Estado), constata-se que a PC1 (Principal Compnentn 1) é responsável por explicar 71.30% da variação dos dados.Também nota-se que 95% da variação dos dados pode ser explicada através dos PC1,PC2,PC3 e PC4.
cons.pca<-princomp(y1)
cons.pca
## Call:
## princomp(x = y1)
##
## Standard deviations:
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5 Comp.6 Comp.7
## 0.19408163 0.08192814 0.06228365 0.04361420 0.03930322 0.02669161 0.02028581
##
## 7 variables and 49 observations.
summary(cons.pca)
## Importance of components:
## Comp.1 Comp.2 Comp.3 Comp.4 Comp.5
## Standard deviation 0.1940816 0.08192814 0.06228365 0.04361420 0.03930322
## Proportion of Variance 0.7129972 0.12705306 0.07342892 0.03600599 0.02923986
## Cumulative Proportion 0.7129972 0.84005029 0.91347921 0.94948520 0.97872506
## Comp.6 Comp.7
## Standard deviation 0.02669161 0.020285809
## Proportion of Variance 0.01348554 0.007789393
## Cumulative Proportion 0.99221061 1.000000000
Através do correlograma abaixo, é perceptível a forte correlação entre a primeira componente e a variação do consumo de energia elétrica em todos os Estados. A segunda componente apresenta correlação mais significativa com os Estados de RJ, MG e ES, indicando uma possível particularidade da região Sudeste, embora não seja de magnitude tão significativa com SP. Já a terceira componente possui correlações fortes com os Estados do Sul: RS, SC e PR. A quarta componente apresenta correlação mais significativa apenas com o Paraná, indicando que representa fatores específicos desse Estado. Essas 4 componentes explicam ~95% da variância total dos dados, conforme explicitam os dois gráficos abaixo do correlograma.
tabela5<-cor(y1,cons.pca$scores)
corrplot(tabela5, method = "number")
par(mfrow=c(1,2))
plot(cons.pca$sdev^2/sum(cons.pca$sdev^2),xlab="Componente Principal",ylab="% explicada da variância",type=
"b")
plot(cumsum(cons.pca$sdev^2/sum(cons.pca$sdev^2)),xlab="Componente Principal",ylab="% da variância explicada (cumulativo)",type="b")
abline(h=0.95,lty=2)
abline(h=0.75,lty=2)
Análise dos Fatores
Através da função factanal, a qual performa uma análise fatorial de uma matriz de covariância via máxima verossimilhança, constata-se, com 95% de confiança, que a seleção de 3 fatores é suficiente para explicar a variância dos dados originais. Ademais, de acordo com os loadings apresentados, todos os 3 fatores explicam de certa forma a variação do consumo de energia elétrica nos Estados. Nota-se, porém, que o F1 representa mais a região Sul, o F2 a região Sudeste e o F3 apenas SP e ES.
cons.fac <- factanal(y1,factors=3,scores="regression")
cons.fac
##
## Call:
## factanal(x = y1, factors = 3, scores = "regression")
##
## Uniquenesses:
## SP RJ MG ES RS SC PR
## 0.091 0.404 0.005 0.407 0.173 0.005 0.509
##
## Loadings:
## Factor1 Factor2 Factor3
## SP 0.456 0.383 0.744
## RJ 0.192 0.642 0.384
## MG 0.350 0.897 0.261
## ES 0.336 0.385 0.576
## RS 0.715 0.333 0.452
## SC 0.929 0.244 0.267
## PR 0.478 0.319 0.401
##
## Factor1 Factor2 Factor3
## SS loadings 2.083 1.784 1.538
## Proportion Var 0.298 0.255 0.220
## Cumulative Var 0.298 0.553 0.772
##
## Test of the hypothesis that 3 factors are sufficient.
## The chi square statistic is 1.12 on 3 degrees of freedom.
## The p-value is 0.772
Como pode ser constatado através do correlograma abaixo, há uma evidente correlação entre o primeiro componente e os três fatores, embora mais correlacionado com o terceiro fator. O segundo componente está correlacionado com o segundo fator enquanto o terceiro componente é mais correlacionado com o primeiro fator.
tabela6<-cor(cons.pca$scores, cons.fac$scores)
corrplot(tabela6,method="number")
A Tabela 7, abaixo, apresenta o percentual da variância da variação do consumo per capita de energia elétrica de cada estado explicada pelos fatores. Percebe-se que a variância dos Estados de SP,MG,RS e SC são bem explicadas pelos fatores, enquanto o mesmo não ocorre para RJ, ES e Paraná.
tabela7<-as.data.frame(1 - cons.fac$uniquenesses)
knitr::kable(tabela7,caption="Tabela 7: Percentual da Variância de Cada Estado Explicada pelos Fatores",align="c",digits=3, format.args = list(big.mark=",",scientific=FALSE)) %>%
kable_styling(bootstrap_options = c("striped","hover","condensed"),
full_width = TRUE,position = "center")
| 1 - cons.fac$uniquenesses | |
|---|---|
| SP | 0.909 |
| RJ | 0.596 |
| MG | 0.995 |
| ES | 0.593 |
| RS | 0.827 |
| SC | 0.995 |
| PR | 0.491 |