library(tidyverse);library(tidylog);library(mgcv);library(boot);library(data.table)
Warning: package ‘tidyverse’ was built under R version 4.3.1Warning: package ‘ggplot2’ was built under R version 4.3.3Warning: package ‘tidyr’ was built under R version 4.3.3Warning: package ‘stringr’ was built under R version 4.3.3Warning: package ‘lubridate’ was built under R version 4.3.3── Attaching core tidyverse packages ──────────────────────────────────────────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.1.2 ✔ readr 2.1.4
✔ forcats 1.0.0 ✔ stringr 1.5.1
✔ ggplot2 3.5.0 ✔ tibble 3.2.1
✔ lubridate 1.9.3 ✔ tidyr 1.3.1
✔ purrr 1.0.1 ── 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 errorsWarning: package ‘tidylog’ was built under R version 4.3.3
Attaching package: ‘tidylog’
The following objects are masked from ‘package:dplyr’:
add_count, add_tally, anti_join, count, distinct, distinct_all, distinct_at, distinct_if, filter,
filter_all, filter_at, filter_if, full_join, group_by, group_by_all, group_by_at, group_by_if,
inner_join, left_join, mutate, mutate_all, mutate_at, mutate_if, relocate, rename, rename_all,
rename_at, rename_if, rename_with, right_join, sample_frac, sample_n, select, select_all,
select_at, select_if, semi_join, slice, slice_head, slice_max, slice_min, slice_sample, slice_tail,
summarise, summarise_all, summarise_at, summarise_if, summarize, summarize_all, summarize_at,
summarize_if, tally, top_frac, top_n, transmute, transmute_all, transmute_at, transmute_if, ungroup
The following objects are masked from ‘package:tidyr’:
drop_na, fill, gather, pivot_longer, pivot_wider, replace_na, spread, uncount
The following object is masked from ‘package:stats’:
filter
Carregando pacotes exigidos: nlme
Attaching package: ‘nlme’
The following object is masked from ‘package:dplyr’:
collapse
This is mgcv 1.8-42. For overview type 'help("mgcv-package")'.
Registered S3 method overwritten by 'data.table':
method from
print.data.table
data.table 1.14.8 using 2 threads (see ?getDTthreads). Latest news: r-datatable.com
Attaching package: ‘data.table’
The following objects are masked from ‘package:lubridate’:
hour, isoweek, mday, minute, month, quarter, second, wday, week, yday, year
The following objects are masked from ‘package:dplyr’:
between, first, last
The following object is masked from ‘package:purrr’:
transpose
library(skimr)
Warning: package ‘skimr’ was built under R version 4.3.1
df %>% group_by(Date,nom_subsistema) %>% summarise(ger_subsistema=sum(val_geracao)) %>%
right_join(df,by=c("Date","nom_subsistema"))->df
group_by: 2 grouping variables (Date, nom_subsistema)
summarise: now 40,132 rows and 3 columns, one group variable remaining (Date)
right_join: added 14 columns (cod_modalidadeoperacao, nom_estado, nom_tipousina, nom_tipocombustivel, preciptation, …)
> rows only in x ( 0)
> rows only in y 0
> matched rows 1,548,877
> ===========
> rows total 1,548,877
df$nom_subsistema<-as.factor(df$nom_subsistema)
summar<-df %>% as.data.frame() %>% skim()
summar
── Data Summary ────────────────────────
Values
Name Piped data
Number of rows 1548877
Number of columns 17
_______________________
Column type frequency:
Date 1
factor 5
numeric 11
________________________
Group variables None
df %>%
mutate(y=year(Date),
na=is.na(humidity)*is.na(no2_ppb)*is.na(so2_ugm3)) %>%
group_by(y,na) %>% summarise(n=n()) %>% spread(na,n) %>%
mutate(per=`1`/(`0`+`1`))
mutate (grouped): new variable 'y' (integer) with 22 unique values and 0% NA
new variable 'na' (integer) with 2 unique values and 0% NA
group_by: 2 grouping variables (y, na)
summarise: now 41 rows and 3 columns, one group variable remaining (y)
spread: reorganized (na, n) into (0, 1) [was 41x3, now 22x3]
mutate (grouped): new variable 'per' (double) with 20 unique values and 14% NA
df %>%
mutate(na=is.na(humidity)*is.na(no2_ppb)*is.na(so2_ugm3)) %>%
group_by(nom_subsistema,na) %>% summarise(n=n()) %>% spread(na,n) %>%
mutate(per=`1`/(`0`+`1`))
mutate (grouped): new variable 'na' (integer) with 2 unique values and 0% NA
group_by: 2 grouping variables (nom_subsistema, na)
summarise: now 10 rows and 3 columns, one group variable remaining (nom_subsistema)
spread: reorganized (na, n) into (0, 1) [was 10x3, now 5x3]
mutate (grouped): new variable 'per' (double) with 5 unique values and 0% NA
df %>%
mutate(na=is.na(humidity)*is.na(no2_ppb)*is.na(so2_ugm3)) %>%
group_by(nom_tipocombustivel,na) %>% summarise(n=n()) %>% spread(na,n) %>%
mutate(per=`1`/(`0`+`1`))
mutate (grouped): new variable 'na' (integer) with 2 unique values and 0% NA
group_by: 2 grouping variables (nom_tipocombustivel, na)
summarise: now 22 rows and 3 columns, one group variable remaining (nom_tipocombustivel)
spread: reorganized (na, n) into (0, 1) [was 22x3, now 12x3]
mutate (grouped): new variable 'per' (double) with 11 unique values and 17% NA
df %>%
mutate(na=is.na(humidity)*is.na(no2_ppb)*is.na(so2_ugm3)) %>%
group_by(na,nom_tipocombustivel) %>% summarise(mean=mean(val_geracao),
sd=sd(val_geracao)) %>%
mutate(n=paste0(round(mean,2)," (",round(sd,2),")")) %>% select(-mean,-sd) %>% spread(na,n)
mutate (grouped): new variable 'na' (integer) with 2 unique values and 0% NA
group_by: 2 grouping variables (na, nom_tipocombustivel)
summarise: now 22 rows and 4 columns, one group variable remaining (na)
mutate (grouped): new variable 'n' (character) with 22 unique values and 0% NA
select: dropped 2 variables (mean, sd)
spread: reorganized (na, n) into (0, 1) [was 22x3, now 12x3]
#criar base de atrito
df %>%
mutate(na=is.na(humidity)*is.na(no2_ppb)*is.na(so2_ugm3)) %>%filter(na==0)->df1
mutate (grouped): new variable 'na' (integer) with 2 unique values and 0% NA
filter (grouped): removed 454,069 rows (29%), 1,094,808 rows remaining
df1<-df1 %>% mutate(periodo=ifelse(year(Date)>2014,"2015-2022","2000-2014"))
mutate (grouped): new variable 'periodo' (character) with 2 unique values and 0% NA
list()->mods_sum
results<-data.frame()
results.temp<-data.frame()
#### Modelo Ajustado val_geracao#######
#df1$sum.val_geracao_day.
fit.ajusted <- gam(val_geracao~ val_geracao+ger_subsistema +
year(Date) + as.factor(month(Date))+as.factor(weekdays(Date))+periodo+
s(temperature) + s(preciptation) + s(humidity) + s(wind_speed) +s(co_ppb), data=df1)
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuida
gc()
used (Mb) gc trigger (Mb) max used (Mb)
Ncells 3676082 196.4 6056267 323.5 6056267 323.5
Vcells 42593140 325.0 545233328 4159.9 709533640 5413.4
##SE
Vcov <- vcov(fit.ajusted, useScale = FALSE)
Std_Errors <- sqrt(diag(Vcov))
se <- Std_Errors[3]
fit.ajusted$coefficients[4]#-3.316e+00
as.factor(month(Date))2
370.6689
results.temp[1,1]<-"Full_base"
results.temp[1,2]<-fit.ajusted$coefficients[3]
results.temp[1,3]<-"ADJUSTED"
results.temp[1,4]<-"val_geracao"
results.temp[1,5] <- se
results.temp[1,6] <- length(df1$nom_reservatorio)
Warning: Unknown or uninitialised column: `nom_reservatorio`.
colnames(results.temp)<-c("subset", "Generation_Trend","model","Variavel Respota","SE","n")
results<-rbind(results, results.temp)
#mods_sum_Full_base_ajusted<-summary(fit.ajusted)
#### Modelo não ajustad val_geracao#######
#df1$sum.val_geracao_day.
fit.ajusted <- gam(val_geracao~ val_geracao+ger_subsistema +
year(Date) + as.factor(month(Date))+periodo+as.factor(weekdays(Date)), data=df1)
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuida
##SE
Vcov <- vcov(fit.ajusted, useScale = FALSE)
Std_Errors <- sqrt(diag(Vcov))
se <- Std_Errors[3]
results.temp[1,1]<-"Full_base"
results.temp[1,2]<-fit.ajusted$coefficients[3]
results.temp[1,3]<-"UNADJUSTED"
results.temp[1,4]<-"val_geracao"
results.temp[1,5] <- se
results.temp[1,6] <- length(df1$nom_reservatorio)
Warning: Unknown or uninitialised column: `nom_reservatorio`.
colnames(results.temp)<-c("subset", "Generation_Trend","model","Variavel Respota","SE","n")
#mods_sum_Full_base_unajusted<-summary(fit.ajusted)
results<-rbind(results, results.temp)
#results %>% distinct()
results
LOOPING
a<-unique(df1$nom_tipocombustivel)
### Step 2 ###
##############
for (k in a) {
print(a)#### Por tipo de usina
results.temp <- data.frame()
#modelo não Ajustado
df1 %>% filter(nom_tipocombustivel==k) ->df
#### Modelo Ajustado val_geracao#######
#df1$sum.val_geracao_day.
fit.ajusted <- gam(val_geracao~ val_geracao+ger_subsistema +
year(Date) + as.factor(month(Date))+as.factor(weekdays(Date))+periodo+
s(temperature) + s(preciptation) + s(humidity) + s(wind_speed) +s(co_ppb), data=df)
##SE
Vcov <- vcov(fit.ajusted, useScale = FALSE)
Std_Errors <- sqrt(diag(Vcov))
se <- Std_Errors[3]
fit.ajusted$coefficients[4]#-3.316e+00
results.temp[1,1]<-k
results.temp[1,2]<-fit.ajusted$coefficients[3]
results.temp[1,3]<-"ADJUSTED"
results.temp[1,4]<-"val_geracao"
results.temp[1,5] <- se
results.temp[1,6] <- length(df1$nom_reservatorio)
colnames(results.temp)<-c("subset", "Generation_Trend","model","Variavel Respota","SE","n")
results<-rbind(results, results.temp)
#### Modelo não ajustad val_geracao#######
#df1$sum.val_geracao_day.
fit.ajusted <- gam(val_geracao~ val_geracao+ger_subsistema +
year(Date) + as.factor(month(Date))+periodo+as.factor(weekdays(Date)), data=df)
##SE
Vcov <- vcov(fit.ajusted, useScale = FALSE)
Std_Errors <- sqrt(diag(Vcov))
se <- Std_Errors[3]
results.temp[1,1]<-k
results.temp[1,2]<-fit.ajusted$coefficients[3]
results.temp[1,3]<-"UNADJUSTED"
results.temp[1,4]<-"val_geracao"
results.temp[1,5] <- se
results.temp[1,6] <- length(df1$nom_reservatorio)
colnames(results.temp)<-c("subset", "Generation_Trend","model","Variavel Respota","SE","n")
results<-rbind(results, results.temp)
#results %>% distinct()
}
[1] Hidráulica Gás Nuclear Carvão Óleo Diesel
[6] Óleo Combustível Biomassa Eólica Resíduos Industriais Fotovoltaica
11 Levels: Biomassa Carvão Eólica Fotovoltaica Gás Hidráulica Nuclear Óleo Combustível ... Resíduos Industriais
filter (grouped): removed 325,375 rows (30%), 769,433 rows remaining
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.
[1] Hidráulica Gás Nuclear Carvão Óleo Diesel
[6] Óleo Combustível Biomassa Eólica Resíduos Industriais Fotovoltaica
11 Levels: Biomassa Carvão Eólica Fotovoltaica Gás Hidráulica Nuclear Óleo Combustível ... Resíduos Industriais
filter (grouped): removed 970,751 rows (89%), 124,057 rows remaining
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.
[1] Hidráulica Gás Nuclear Carvão Óleo Diesel
[6] Óleo Combustível Biomassa Eólica Resíduos Industriais Fotovoltaica
11 Levels: Biomassa Carvão Eólica Fotovoltaica Gás Hidráulica Nuclear Óleo Combustível ... Resíduos Industriais
filter (grouped): removed 1,087,881 rows (99%), 6,927 rows remaining
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.
[1] Hidráulica Gás Nuclear Carvão Óleo Diesel
[6] Óleo Combustível Biomassa Eólica Resíduos Industriais Fotovoltaica
11 Levels: Biomassa Carvão Eólica Fotovoltaica Gás Hidráulica Nuclear Óleo Combustível ... Resíduos Industriais
filter (grouped): removed 1,073,285 rows (98%), 21,523 rows remaining
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.
[1] Hidráulica Gás Nuclear Carvão Óleo Diesel
[6] Óleo Combustível Biomassa Eólica Resíduos Industriais Fotovoltaica
11 Levels: Biomassa Carvão Eólica Fotovoltaica Gás Hidráulica Nuclear Óleo Combustível ... Resíduos Industriais
filter (grouped): removed 1,064,422 rows (97%), 30,386 rows remaining
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.
[1] Hidráulica Gás Nuclear Carvão Óleo Diesel
[6] Óleo Combustível Biomassa Eólica Resíduos Industriais Fotovoltaica
11 Levels: Biomassa Carvão Eólica Fotovoltaica Gás Hidráulica Nuclear Óleo Combustível ... Resíduos Industriais
filter (grouped): removed 1,051,914 rows (96%), 42,894 rows remaining
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.
[1] Hidráulica Gás Nuclear Carvão Óleo Diesel
[6] Óleo Combustível Biomassa Eólica Resíduos Industriais Fotovoltaica
11 Levels: Biomassa Carvão Eólica Fotovoltaica Gás Hidráulica Nuclear Óleo Combustível ... Resíduos Industriais
filter (grouped): removed 1,039,510 rows (95%), 55,298 rows remaining
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.
[1] Hidráulica Gás Nuclear Carvão Óleo Diesel
[6] Óleo Combustível Biomassa Eólica Resíduos Industriais Fotovoltaica
11 Levels: Biomassa Carvão Eólica Fotovoltaica Gás Hidráulica Nuclear Óleo Combustível ... Resíduos Industriais
filter (grouped): removed 1,064,181 rows (97%), 30,627 rows remaining
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.
[1] Hidráulica Gás Nuclear Carvão Óleo Diesel
[6] Óleo Combustível Biomassa Eólica Resíduos Industriais Fotovoltaica
11 Levels: Biomassa Carvão Eólica Fotovoltaica Gás Hidráulica Nuclear Óleo Combustível ... Resíduos Industriais
filter (grouped): removed 1,082,416 rows (99%), 12,392 rows remaining
Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.Warning: a resposta apareceu no lado direito e foi descartadaWarning: problema com o termo 1 na matriz do modelo: nenhuma coluna foi atribuidaWarning: Unknown or uninitialised column: `nom_reservatorio`.
[1] Hidráulica Gás Nuclear Carvão Óleo Diesel
[6] Óleo Combustível Biomassa Eólica Resíduos Industriais Fotovoltaica
11 Levels: Biomassa Carvão Eólica Fotovoltaica Gás Hidráulica Nuclear Óleo Combustível ... Resíduos Industriais
filter (grouped): removed 1,093,537 rows (>99%), 1,271 rows remaining
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
contrastes podem ser aplicados apenas a fatores com 2 ou mais níveis
results %>% ggplot(aes(x=Generation_Trend,y=subset,col=model,
xmax=Generation_Trend+se*1.96,
xmin=Generation_Trend-se*1.96))+
geom_point()+
facet_wrap(~subset,scales="free")+geom_errorbar()+coord_flip() + theme_minimal()