1 1. Introdução

Este projeto explora dados públicos do setor energético com o objetivo de aplicar técnicas de ciência de dados e inteligência artificial (IA). Utilizamos algoritmos de agrupamento, modelagem preditiva e detecção de anomalias para identificar padrões ocultos e apoiar decisões estratégicas.

2 2. Pacotes e Dados Utilizados

library(tidyverse)
library(readxl)
library(cluster)
library(factoextra)
library(randomForest)
library(anomalize)
library(janitor)
library(kableExtra)

3 3. Importação e Preparação dos Dados

# Dados simulados de energia
set.seed(123)
ufs <- state.abb[1:20]
dados <- tibble(
  UF = ufs,
  capacidade_total_mw = runif(20, 100, 1500),
  DEC = runif(20, 5, 40),
  FEC = runif(20, 2, 20)
)
dados %>%
  kable("html", caption = "Dados simulados por UF") %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed"))
Dados simulados por UF
UF capacidade_total_mw DEC FEC
AL 502.6085 36.133876 4.570400
AK 1203.6272 29.248119 9.461834
AZ 672.5677 27.417738 9.447038
AR 1336.2244 39.799442 8.639218
CA 1416.6542 27.949703 4.744006
CO 163.7791 29.798566 4.498509
CT 839.3477 24.042311 6.194614
DE 1349.3867 25.794971 10.387324
FL 872.0090 15.120591 6.787508
GA 739.2606 10.148978 17.440899
HI 1439.5667 38.705848 2.824961
ID 734.6678 36.580467 9.959601
IL 1048.5989 29.174685 16.380647
IN 901.6868 32.841360 4.194187
IA 244.0946 5.861479 12.097064
KS 1359.7550 21.722859 5.717565
KY 444.5228 31.546084 4.295570
LA 158.8833 12.574278 15.559542
ME 559.0890 16.136335 18.110816
MD 1436.3051 13.106903 8.740330

4 4. Análise Exploratória

ggplot(dados, aes(x = capacidade_total_mw, y = DEC)) +
  geom_point(color = "darkgreen", size = 3) +
  geom_smooth(method = "lm", se = FALSE, color = "blue") +
  labs(title = "Correlação entre Capacidade Instalada e DEC", x = "Capacidade (MW)", y = "DEC (h)") +
  theme_minimal()

5 5. Clustering (K-Means)

matriz <- scale(dados[, c("capacidade_total_mw", "DEC", "FEC")])
k3 <- kmeans(matriz, centers = 3, nstart = 25)
dados$cluster <- as.factor(k3$cluster)

fviz_cluster(k3, data = matriz, geom = "point", palette = "jco", ggtheme = theme_minimal())

6 6. Modelagem com Random Forest

modelo_rf <- randomForest(DEC ~ capacidade_total_mw + FEC, data = dados, importance = TRUE)
print(modelo_rf)
## 
## Call:
##  randomForest(formula = DEC ~ capacidade_total_mw + FEC, data = dados,      importance = TRUE) 
##                Type of random forest: regression
##                      Number of trees: 500
## No. of variables tried at each split: 1
## 
##           Mean of squared residuals: 104.416
##                     % Var explained: -9.18
varImpPlot(modelo_rf)

7 7. Detecção de Anomalias

q1 <- quantile(dados$DEC, 0.25)
q3 <- quantile(dados$DEC, 0.75)
iqr <- q3 - q1
limite_sup <- q3 + 1.5 * iqr
anomalias <- dados %>% filter(DEC > limite_sup)

anomalias %>%
  kable("html", caption = "Anomalias de DEC identificadas (método IQR)") %>%
  kable_styling(full_width = F)
Anomalias de DEC identificadas (método IQR)
UF capacidade_total_mw DEC FEC cluster

8 8. Conclusão

Aplicando técnicas de IA como K-Means, Random Forest e IQR, foi possível demonstrar como dados energéticos podem revelar padrões relevantes para estratégias de eficiência. Mesmo em um cenário simulado, os métodos aplicados se mostram úteis para aplicações reais no setor.

9 9. Referências

  • ANEEL. (2024). SIGA - Sistema de Informações de Geração.
  • ANEEL. (2024). Indicadores de Continuidade (DEC/FEC).