library(readxl)
Mensagen de aviso:
In file.info(path, extra_cols = FALSE) :
  não é possível abrir o arquivo 'C:/Users/thiago.gardin/AppData/Local/Microsoft/WindowsApps/PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0/python.exe': Não é possível o acesso ao arquivo pelo sistema
library(tidyverse)
Aviso: pacote ‘ggplot2’ foi compilado no R versão 4.4.3
Aviso: pacote ‘purrr’ foi compilado no R versão 4.4.3
── Attaching core tidyverse packages ────────────────────────────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.4     ✔ readr     2.1.5
✔ forcats   1.0.0     ✔ stringr   1.5.1
✔ ggplot2   3.5.2     ✔ tibble    3.2.1
✔ lubridate 1.9.3     ✔ tidyr     1.3.1
✔ purrr     1.0.4     
── Conflicts ──────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(zoo)

Anexando pacote: ‘zoo’

Os seguintes objetos são mascarados por ‘package:base’:

    as.Date, as.Date.numeric
prc_energia <- read_excel("Historico_do_Preco_Horario_-_17_de_abril_de_2018_a_3_de_junho_de_2025.xlsx")

prc_energia %>% gather("dia","Valor",-Hora,-Submercado) %>% mutate(dia=as.Date(as.integer(dia), origin = "1899-12-30")) ->p_ene
p_ene$Submercado %>% table
.
NORDESTE    NORTE  SUDESTE      SUL 
   64825    64825    64825    64825 
p_ene %>% #spread(Submercado,Valor)->p_ene
Erro: Incomplete expression: p_ene %>% #spread(Submercado,Valor)->p_ene
summary(p_ene)
     Hora            Submercado             dia                 Valor        
 Length:264486      Length:264486      Min.   :2018-04-17   Min.   :  39.68  
 Class :character   Class :character   1st Qu.:2020-02-06   1st Qu.:  61.07  
 Mode  :character   Mode  :character   Median :2021-11-15   Median :  72.56  
                                       Mean   :2021-11-14   Mean   : 169.92  
                                       3rd Qu.:2023-08-25   3rd Qu.: 249.23  
                                       Max.   :2025-06-03   Max.   :1470.57  
                                                            NA's   :15558    
p_ene$Hora %>% unique
 [1] "0"                                                                                                                          
 [2] "1"                                                                                                                          
 [3] "2"                                                                                                                          
 [4] "3"                                                                                                                          
 [5] "4"                                                                                                                          
 [6] "5"                                                                                                                          
 [7] "6"                                                                                                                          
 [8] "7"                                                                                                                          
 [9] "8"                                                                                                                          
[10] "9"                                                                                                                          
[11] "10"                                                                                                                         
[12] "11"                                                                                                                         
[13] "12"                                                                                                                         
[14] "13"                                                                                                                         
[15] "14"                                                                                                                         
[16] "15"                                                                                                                         
[17] "16"                                                                                                                         
[18] "17"                                                                                                                         
[19] "18"                                                                                                                         
[20] "19"                                                                                                                         
[21] "20"                                                                                                                         
[22] "21"                                                                                                                         
[23] "22"                                                                                                                         
[24] "23"                                                                                                                         
[25] NA                                                                                                                           
[26] "Observação: As linhas 98 a 101 são referentes a segunda hora 23h as 23h59 no dia 16/02/2019 considerando o horário de verão"
p_ene %>% group_by(dia,Submercado) %>% summarise(n=n(),na=sum(is.na(Valor)),
                                                 max=max(Valor,na.rm=T),
                                                 min=min(Valor,na.rm=T),
                                                 mean=mean(Valor,na.rm=T))
Aviso: There were 5186 warnings in `summarise()`.
The first warning was:
ℹ In argument: `max = max(Valor, na.rm = T)`.
ℹ In group 5: `dia = 2018-04-17` `Submercado = NA`.
Caused by warning in `max()`:
! nenhum argumento não faltante para max; retornando -Inf
ℹ Run ]8;;ide:run:dplyr::last_dplyr_warnings()dplyr::last_dplyr_warnings()]8;; to see the 5185 remaining warnings.
`summarise()` has grouped output by 'dia'. You can override using the `.groups` argument.
p_ene %>% drop_na() %>% mutate(data_hora=ymd_hms(paste0(dia,"-",as.integer(Hora),"-00-0"))) %>% 
  group_by(dia,Submercado) %>% summarise(Valor=mean(Valor)) %>% 
  group_by(Submercado) %>% 
  mutate(Valor=rollmean(Valor,24,fill = NA)) %>% 
  ggplot(aes(dia,Valor,col=Submercado))+geom_line() +facet_grid(Submercado~"Submercado")
`summarise()` has grouped output by 'dia'. You can override using the `.groups` argument.
Aviso: Removed 92 rows containing missing values or values outside the scale range (`geom_line()`).

library(readxl)library(readxl)
pc_semana <- read_excel("Historico_do_Preco_Medio_Semanal_-_30_de_junho_de_2001_a_30_de_maio_de_2025.xls")
View(pc_semana)
pc_semana <- read_excel("Historico_do_Preco_Medio_Semanal_-_30_de_junho_de_2001_a_30_de_maio_de_2025.xls")
pc_semana %>% ggplot(aes(DATA_INICIO))+
  geom_line(aes(y=rollmean(SUDESTE,3*4*4,fill = NA)
                  ),col="blue")+
    geom_line(aes(y=rollmean(SUL,3*4*4,fill = NA)
                  ),col="red")+
    geom_line(aes(y=rollmean(NORDESTE,3*4*4,fill = NA)
                  ),col="green")+
    geom_line(aes(y=rollmean(NORTE,3*4*4,fill = NA)
                  ),col="grey")+theme_minimal()
Aviso: Removed 47 rows containing missing values or values outside the scale range (`geom_line()`).
Aviso: Removed 47 rows containing missing values or values outside the scale range (`geom_line()`).
Aviso: Removed 47 rows containing missing values or values outside the scale range (`geom_line()`).
Aviso: Removed 47 rows containing missing values or values outside the scale range (`geom_line()`).

p_semana
daas_completas
ena_ear_hidr_ceg_amb %>% left_join(daas_completas,by = c("ena_data"="datas")) %>% 
  mutate(preco=case_when(nom_subsistema.x=="SUDESTE"~SUDESTE,
                         nom_subsistema.x=="SUL"~SUL,
                         nom_subsistema.x=="NORDESTE"~NORDESTE,
                         nom_subsistema.x=="NORTE"~NORTE,TRUE~NA
                         ))->hidr_amb_prec
Erro: objeto 'ena_ear_hidr_ceg_amb' não encontrado
hidr_amb_prec$preco %>%  summary
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
   4.00   25.31  101.24  177.25  247.01  822.83   45390 
hidr_amb_prec %>% filter(ena_data>inicio-1) ->hidr_amb_prec
hidr_amb_prec %>% group_by(ena_data,nom_subsistema.x,ANO,MES) %>% 
  summarise(preco=mean(preco,na.rm = T),
            temperature=mean(temperature,na.rm = T),
            preciptation=sum(preciptation,na.rm = T),
            humidity=mean(humidity,na.rm = T),
            wind_speed=mean(wind_speed,na.rm = T),
            ear_reservatorio_subsistema_proprio_mwmes=sum(ear_reservatorio_subsistema_proprio_mwmes,na.rm = T),
            ena_bruta_res_mwmed=sum(ena_bruta_res_mwmed,na.rm = T),
            val_geracao=sum(val_geracao,na.rm = T),
            val_geracao_day_subsistema=mean(val_geracao_day_subsistema,na.rm = T))->df
`summarise()` has grouped output by 'ena_data', 'nom_subsistema.x', 'ANO'. You can override using the `.groups` argument.
lm(log(preco)~trend+log(val_geracao_day_subsistema)+log(ear_reservatorio_subsistema_proprio_mwmes)+nom_subsistema.x+0,df) %>% summary

Call:
lm(formula = log(preco) ~ trend + log(val_geracao_day_subsistema) + 
    log(ear_reservatorio_subsistema_proprio_mwmes) + nom_subsistema.x + 
    0, data = df)

Residuals:
    Min      1Q  Median      3Q     Max 
-2.9879 -0.7228 -0.0397  0.6442  4.1871 

Coefficients:
                                                Estimate Std. Error t value Pr(>|t|)    
trend                                           0.163419   0.001746  93.622   <2e-16 ***
log(val_geracao_day_subsistema)                -0.052492   0.025951  -2.023   0.0431 *  
log(ear_reservatorio_subsistema_proprio_mwmes) -0.626629   0.012498 -50.139   <2e-16 ***
nom_subsistema.xNORDESTE                        9.097699   0.201835  45.075   <2e-16 ***
nom_subsistema.xNORTE                           8.220124   0.192135  42.783   <2e-16 ***
nom_subsistema.xSUDESTE                        10.454692   0.237149  44.085   <2e-16 ***
nom_subsistema.xSUL                             8.952210   0.206150  43.426   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 1.031 on 25517 degrees of freedom
Multiple R-squared:  0.9467,    Adjusted R-squared:  0.9467 
F-statistic: 6.477e+04 on 7 and 25517 DF,  p-value: < 2.2e-16
options(scipen = 9)
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IA0KICBodG1sX25vdGVib29rOiANCiAgICB0b2M6IHllcw0KLS0tDQoNCmBgYHtyfQ0KbGlicmFyeShyZWFkeGwpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoem9vKQ0KDQpgYGANCg0KYGBge3J9DQpwcmNfZW5lcmdpYSA8LSByZWFkX2V4Y2VsKCJIaXN0b3JpY29fZG9fUHJlY29fSG9yYXJpb18tXzE3X2RlX2FicmlsX2RlXzIwMThfYV8zX2RlX2p1bmhvX2RlXzIwMjUueGxzeCIpDQpgYGANCg0KYGBge3J9DQoNCnByY19lbmVyZ2lhICU+JSBnYXRoZXIoImRpYSIsIlZhbG9yIiwtSG9yYSwtU3VibWVyY2FkbykgJT4lIG11dGF0ZShkaWE9YXMuRGF0ZShhcy5pbnRlZ2VyKGRpYSksIG9yaWdpbiA9ICIxODk5LTEyLTMwIikpIC0+cF9lbmUNCnBfZW5lJFN1Ym1lcmNhZG8gJT4lIHRhYmxlDQpwX2VuZSAlPiUgI3NwcmVhZChTdWJtZXJjYWRvLFZhbG9yKS0+cF9lbmUNCg0KDQpgYGANCg0KYGBge3IgZmlnLmhlaWdodD0xMiwgZmlnLndpZHRoPTE2fQ0Kc3VtbWFyeShwX2VuZSkNCnBfZW5lJEhvcmEgJT4lIHVuaXF1ZQ0KDQpwX2VuZSAlPiUgZ3JvdXBfYnkoZGlhLFN1Ym1lcmNhZG8pICU+JSBzdW1tYXJpc2Uobj1uKCksbmE9c3VtKGlzLm5hKFZhbG9yKSksDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4PW1heChWYWxvcixuYS5ybT1UKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49bWluKFZhbG9yLG5hLnJtPVQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lYW49bWVhbihWYWxvcixuYS5ybT1UKSkNCnBfZW5lICU+JSBkcm9wX25hKCkgJT4lIG11dGF0ZShkYXRhX2hvcmE9eW1kX2htcyhwYXN0ZTAoZGlhLCItIixhcy5pbnRlZ2VyKEhvcmEpLCItMDAtMCIpKSkgJT4lIA0KICBncm91cF9ieShkaWEsU3VibWVyY2FkbykgJT4lIHN1bW1hcmlzZShWYWxvcj1tZWFuKFZhbG9yKSkgJT4lIA0KICBncm91cF9ieShTdWJtZXJjYWRvKSAlPiUgDQogIG11dGF0ZShWYWxvcj1yb2xsbWVhbihWYWxvciwyNCxmaWxsID0gTkEpKSAlPiUgDQogIGdncGxvdChhZXMoZGlhLFZhbG9yLGNvbD1TdWJtZXJjYWRvKSkrZ2VvbV9saW5lKCkgK2ZhY2V0X2dyaWQoU3VibWVyY2Fkb34iU3VibWVyY2FkbyIpDQpgYGANCg0KDQpgYGB7cn0NCmxpYnJhcnkocmVhZHhsKWxpYnJhcnkocmVhZHhsKQ0KcGNfc2VtYW5hIDwtIHJlYWRfZXhjZWwoIkhpc3Rvcmljb19kb19QcmVjb19NZWRpb19TZW1hbmFsXy1fMzBfZGVfanVuaG9fZGVfMjAwMV9hXzMwX2RlX21haW9fZGVfMjAyNS54bHMiKQ0KVmlldyhwY19zZW1hbmEpDQpwY19zZW1hbmEgPC0gcmVhZF9leGNlbCgiSGlzdG9yaWNvX2RvX1ByZWNvX01lZGlvX1NlbWFuYWxfLV8zMF9kZV9qdW5ob19kZV8yMDAxX2FfMzBfZGVfbWFpb19kZV8yMDI1LnhscyIpDQpgYGANCg0KDQoNCg0KYGBge3J9DQpwY19zZW1hbmEgJT4lIHN1bW1hcnkNCnBjX3NlbWFuYSAlPiUgZ2dwbG90KGFlcyhEQVRBX0lOSUNJTykpKw0KICBnZW9tX2xpbmUoYWVzKHk9cm9sbG1lYW4oU1VERVNURSwzKjQqNCxmaWxsID0gTkEpDQogICAgICAgICAgICAgICAgICApLGNvbD0iYmx1ZSIpKw0KICAgIGdlb21fbGluZShhZXMoeT1yb2xsbWVhbihTVUwsMyo0KjQsZmlsbCA9IE5BKQ0KICAgICAgICAgICAgICAgICAgKSxjb2w9InJlZCIpKw0KICAgIGdlb21fbGluZShhZXMoeT1yb2xsbWVhbihOT1JERVNURSwzKjQqNCxmaWxsID0gTkEpDQogICAgICAgICAgICAgICAgICApLGNvbD0iZ3JlZW4iKSsNCiAgICBnZW9tX2xpbmUoYWVzKHk9cm9sbG1lYW4oTk9SVEUsMyo0KjQsZmlsbCA9IE5BKQ0KICAgICAgICAgICAgICAgICAgKSxjb2w9ImdyZXkiKSt0aGVtZV9taW5pbWFsKCkNCmBgYA0KYGBge3J9DQpwY19zZW1hbmEgJT4lIGdhdGhlcigiU3VibWVyY2FkbyIsInByZWNvIiwtQU5PLC1NRVMsLVNFTUFOQSwtY29udGFpbnMoIkRBVEEiKSktPnBfc2VtYW5hDQpwX3NlbWFuYSAlPiUgDQogIGdncGxvdChhZXMoREFUQV9GSU0scHJlY28sY29sPVN1Ym1lcmNhZG8pKStnZW9tX2xpbmUoKSArZmFjZXRfZ3JpZChTdWJtZXJjYWRvfiJTdWJtZXJjYWRvIikrZ2VvbV9zbW9vdGgoZm9ybXVsYSA9IHkgfiBzcGxpbmVzOjpucyh4LCA0KSkNCnRzX2c8LXRzKHBjX3NlbWFuYSRTVURFU1RFLGZyZXF1ZW5jeSA9IDU0KSANCnJtKHRzKQ0KIGRlY29tcG9zZSh0c19nKSAlPiUgcGxvdA0KYGBgDQoNCmBgYHtyfQ0KcF9zZW1hbmENCmBgYA0KDQpgYGB7cn0NCnBjX3NlbWFuYSREQVRBX0lOSUNJTyAlPiUgbWluLT5pbmljaW8NCnBjX3NlbWFuYSAlPiUgZmlsdGVyKERBVEFfSU5JQ0lPPT1pbmljaW8pDQpkYXRhczwtZW5hX2Vhcl9jZWdfYW1iJGVuYV9kYXRhICU+JSB1bmlxdWUNCmRhdGEuZnJhbWUoZGF0YXMpICU+JSBmaWx0ZXIoZGF0YXM+aW5pY2lvLTEpICU+JSBsZWZ0X2pvaW4ocGNfc2VtYW5hLGJ5ID0gYygiZGF0YXMiPSJEQVRBX0lOSUNJTyIpKS0+ZGFhc19jb21wbGV0YXMNCmRhYXNfY29tcGxldGFzDQppPTINCmZvciAoaSBpbiAxOmxlbmd0aChkYWFzX2NvbXBsZXRhcyRBTk8pKSB7I2xlbmd0aChkYWFzX2NvbXBsZXRhcyRBTk8pDQogIHByaW50KGkpDQogIGlmIChpcy5uYShkYWFzX2NvbXBsZXRhcyRBTk9baV0pKSB7DQogICAgZGFhc19jb21wbGV0YXMkQU5PW2ldPC1kYWFzX2NvbXBsZXRhcyRBTk9baS0xXQ0KICAgIGRhYXNfY29tcGxldGFzJE1FU1tpXTwtZGFhc19jb21wbGV0YXMkTUVTW2ktMV0NCiAgICBkYWFzX2NvbXBsZXRhcyRTRU1BTkFbaV08LWRhYXNfY29tcGxldGFzJFNFTUFOQVtpLTFdDQogICAgZGFhc19jb21wbGV0YXMkREFUQV9GSU1baV08LWRhYXNfY29tcGxldGFzJERBVEFfRklNW2ktMV0NCiAgICBkYWFzX2NvbXBsZXRhcyRTVURFU1RFW2ldPC1kYWFzX2NvbXBsZXRhcyRTVURFU1RFW2ktMV0NCiAgICBkYWFzX2NvbXBsZXRhcyRTVUxbaV08LWRhYXNfY29tcGxldGFzJFNVTFtpLTFdDQogICAgZGFhc19jb21wbGV0YXMkTk9SREVTVEVbaV08LWRhYXNfY29tcGxldGFzJE5PUkRFU1RFW2ktMV0NCiAgICBkYWFzX2NvbXBsZXRhcyROT1JURVtpXTwtZGFhc19jb21wbGV0YXMkTk9SVEVbaS0xXQ0KDQogICAgDQogIH0NCiAgDQp9ICANCmRhYXNfY29tcGxldGFzDQpgYGANCmBgYHtyfQ0KZGFhc19jb21wbGV0YXMNCmBgYA0KDQpgYGB7cn0NCmVuYV9lYXJfY2VnX2FtYiAlPiUgbGVmdF9qb2luKGRhYXNfY29tcGxldGFzLGJ5ID0gYygiZW5hX2RhdGEiPSJkYXRhcyIpKSAlPiUgDQogIG11dGF0ZShwcmVjbz1jYXNlX3doZW4obm9tX3N1YnNpc3RlbWEueD09IlNVREVTVEUiflNVREVTVEUsDQogICAgICAgICAgICAgICAgICAgICAgICAgbm9tX3N1YnNpc3RlbWEueD09IlNVTCJ+U1VMLA0KICAgICAgICAgICAgICAgICAgICAgICAgIG5vbV9zdWJzaXN0ZW1hLng9PSJOT1JERVNURSJ+Tk9SREVTVEUsDQogICAgICAgICAgICAgICAgICAgICAgICAgbm9tX3N1YnNpc3RlbWEueD09Ik5PUlRFIn5OT1JURSxUUlVFfk5BDQogICAgICAgICAgICAgICAgICAgICAgICAgKSktPmhpZHJfYW1iX3ByZWMNCg0KYGBgDQoNCmBgYHtyfQ0KaGlkcl9hbWJfcHJlYyRwcmVjbyAlPiUgIHN1bW1hcnkNCmBgYA0KDQpgYGB7cn0NCmhpZHJfYW1iX3ByZWMgJT4lIGZpbHRlcihlbmFfZGF0YT5pbmljaW8tMSkgLT5oaWRyX2FtYl9wcmVjDQpgYGANCg0KYGBge3J9DQpoaWRyX2FtYl9wcmVjICU+JSBncm91cF9ieShlbmFfZGF0YSxub21fc3Vic2lzdGVtYS54LEFOTyxNRVMpICU+JSANCiAgc3VtbWFyaXNlKHByZWNvPW1lYW4ocHJlY28sbmEucm0gPSBUKSwNCiAgICAgICAgICAgIHRlbXBlcmF0dXJlPW1lYW4odGVtcGVyYXR1cmUsbmEucm0gPSBUKSwNCiAgICAgICAgICAgIHByZWNpcHRhdGlvbj1zdW0ocHJlY2lwdGF0aW9uLG5hLnJtID0gVCksDQogICAgICAgICAgICBodW1pZGl0eT1tZWFuKGh1bWlkaXR5LG5hLnJtID0gVCksDQogICAgICAgICAgICB3aW5kX3NwZWVkPW1lYW4od2luZF9zcGVlZCxuYS5ybSA9IFQpLA0KICAgICAgICAgICAgZWFyX3Jlc2VydmF0b3Jpb19zdWJzaXN0ZW1hX3Byb3ByaW9fbXdtZXM9c3VtKGVhcl9yZXNlcnZhdG9yaW9fc3Vic2lzdGVtYV9wcm9wcmlvX213bWVzLG5hLnJtID0gVCksDQogICAgICAgICAgICBlbmFfYnJ1dGFfcmVzX213bWVkPXN1bShlbmFfYnJ1dGFfcmVzX213bWVkLG5hLnJtID0gVCksDQogICAgICAgICAgICB2YWxfZ2VyYWNhbz1zdW0odmFsX2dlcmFjYW8sbmEucm0gPSBUKSwNCiAgICAgICAgICAgIHZhbF9nZXJhY2FvX2RheV9zdWJzaXN0ZW1hPW1lYW4odmFsX2dlcmFjYW9fZGF5X3N1YnNpc3RlbWEsbmEucm0gPSBUKSktPmRmDQpgYGANCg0KYGBge3IgZmlnLmhlaWdodD0xNSwgZmlnLndpZHRoPTMwfQ0KZGYgJT4lIGdncGxvdChhZXMoZW5hX2RhdGEsbG9nKHByZWNvKSkpK2dlb21fbGluZSgpKw0KICBmYWNldF9ncmlkKG5vbV9zdWJzaXN0ZW1hLnh+IiIpDQoNCmRmICU+JSBtdXRhdGUodHJlbmQ9QU5PLTIwMDApLT5kZg0KbG0obG9nKHByZWNvKX50cmVuZCtsb2codmFsX2dlcmFjYW9fZGF5X3N1YnNpc3RlbWEpK2xvZyhlYXJfcmVzZXJ2YXRvcmlvX3N1YnNpc3RlbWFfcHJvcHJpb19td21lcykrbm9tX3N1YnNpc3RlbWEueCswLGRmKSAlPiUgc3VtbWFyeQ0KYGBgDQpgYGB7cn0NCm9wdGlvbnMoc2NpcGVuID0gOSkNCmBgYA0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==