A9UI

Jose Nuñez, Mario Salcedo, Julio Mejia, Carlos Valle

23/3/2022

Energías Renovables

Las energías renovables son fuentes de energía limpias, inagotables y crecientemente competitivas. Se diferencian de los combustibles fósiles principalmente en su diversidad, abundancia y potencial de aprovechamiento en cualquier parte del planeta, pero sobre todo en que no producen gases de efecto invernadero –causantes del cambio climático- ni emisiones contaminantes.

El crecimiento de las energías renovables es imparable, como queda reflejado en las estadísticas aportadas anualmente por la Agencia Internacional de la Energía (AIE): Según las previsiones de la AIE, la participación de las renovables en el suministro eléctrico global pasará del 26% en 2018 al 44% en 2040, y proporcionarán 2/3 del incremento de demanda eléctrica registrado en ese período, principalmente a través de las tecnologías eólica y fotovoltaica.

Ejemplos Energías Renovables

Importación de Paquetes

library(pacman)
p_load("tidyverse", "lubridate", "forecast", "TTR", "MLmetrics", "tseries", "fpp", "TSstudio", "xfun", "plotly","prettydoc")
precipitacion<- read_csv("coal-energy-share.csv")
## Rows: 4835 Columns: 4
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (2): Entity, Code
## dbl (2): Year, Coal (% sub energy)
## 
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
conf_mex <- precipitacion[precipitacion$Entity=="Mexico",]
conf_mex
## # A tibble: 56 x 4
##    Entity Code   Year `Coal (% sub energy)`
##    <chr>  <chr> <dbl>                 <dbl>
##  1 Mexico MEX    1965                  2.75
##  2 Mexico MEX    1966                  2.77
##  3 Mexico MEX    1967                  3.34
##  4 Mexico MEX    1968                  3.21
##  5 Mexico MEX    1969                  2.97
##  6 Mexico MEX    1970                  3.12
##  7 Mexico MEX    1971                  3.72
##  8 Mexico MEX    1972                  3.72
##  9 Mexico MEX    1973                  3.70
## 10 Mexico MEX    1974                  3.71
## # ... with 46 more rows
datos <-ts(conf_mex$`Coal (% sub energy)`, frequency = 2, start = c(1966, 1),end = c(2014,1))

datos
## Time Series:
## Start = c(1966, 1) 
## End = c(2014, 1) 
## Frequency = 2 
##  [1] 2.750 2.771 3.338 3.214 2.967 3.118 3.721 3.719 3.696 3.707 3.984 2.874
## [13] 3.919 3.626 3.222 2.993 2.396 2.752 3.167 3.035 3.137 3.562 3.333 3.133
## [25] 3.284 3.095 2.882 2.865 3.215 3.673 4.156 4.620 4.546 4.449 4.471 4.677
## [37] 5.200 8.438 6.171 5.991 7.105 7.392 6.757 5.912 6.071 7.296 8.052 6.974
## [49] 6.896 6.919 6.913 6.687 8.056 7.232 7.169 3.225 2.750 2.771 3.338 3.214
## [61] 2.967 3.118 3.721 3.719 3.696 3.707 3.984 2.874 3.919 3.626 3.222 2.993
## [73] 2.396 2.752 3.167 3.035 3.137 3.562 3.333 3.133 3.284 3.095 2.882 2.865
## [85] 3.215 3.673 4.156 4.620 4.546 4.449 4.471 4.677 5.200 8.438 6.171 5.991
## [97] 7.105

Analisis y Gráfica de Datos

En la siguiente gráfica se puede analizar la precipitación en la generación de las energías renovables en México a partir del año 1970 hasta 2020 (año de la pandemia).

e <- plot_ly(data = conf_mex, x = conf_mex$Year , y = conf_mex$`Coal (% sub energy)` , mode = 'lines', type="scatter", name="Energías Renovables") %>%  layout(title = 'Generación de Energías Renovables México' ,
         yaxis = list(zeroline = FALSE, title = 'Precipitación'),
         xaxis = list(zeroline = FALSE, title = 'Año'), legend = list(font = list(size = 15)))
e

No existen valores faltantes.

anyNA(datos)
## [1] FALSE

Decomposición de Series de Tiempo

Aquí podemos observar una clara descomposición de una seire de tiempo representada por una categoría.

datos_dc <- datos %>%
  decompose(type="multiplicative") %>%
  autoplot()
datos_dc

Validación Cruzada

test_datos <- tail(datos, 23) # 20 porciento de los datos para pruebas
train_datos <- head(datos, length(datos)-23) # 80 porciento de los datos para entrenamiento

test_datos
## Time Series:
## Start = c(2003, 1) 
## End = c(2014, 1) 
## Frequency = 2 
##  [1] 3.167 3.035 3.137 3.562 3.333 3.133 3.284 3.095 2.882 2.865 3.215 3.673
## [13] 4.156 4.620 4.546 4.449 4.471 4.677 5.200 8.438 6.171 5.991 7.105
  • Ajuste del Modelo
datos_ses <- HoltWinters(train_datos, seasonal = "multiplicative", )
  • Forecasting
datos_forecast <- forecast(object = datos_ses, h =23)

Gráfica de Resultados

En esta gráfica podemos observar los resultados de los datos en cuanto a la energía renovable en México.

datos %>%
  autoplot(series = "Datos Reales") +
  autolayer(datos_forecast$fitted, series = "Datos Entrenamiento") +
  autolayer(datos_forecast$mean , series = "Datos de Prueba") +
  theme_minimal()
## Warning: Removed 2 row(s) containing missing values (geom_path).

eval_ses <- accuracy(datos_forecast, test_datos)
eval_ses
##                      ME      RMSE       MAE       MPE     MAPE      MASE
## Training set -0.1315416 0.8509116 0.5406803 -4.951479 13.12144 0.7684818
## Test set      2.0034371 2.6096464 2.0034371 40.337381 40.33738 2.8475328
##                      ACF1 Theil's U
## Training set -0.006016538        NA
## Test set      0.746273676  3.127108

Modelo Sarimma Arima

Estos modelos permiten obtener el comportamiento de una serie (estacionalmente hablando).

adf.test(datos)
## 
##  Augmented Dickey-Fuller Test
## 
## data:  datos
## Dickey-Fuller = -1.5995, Lag order = 4, p-value = 0.7421
## alternative hypothesis: stationary

Grafico de serie de tiempo por ARIMA

datos_diff <- datos

datos_diff %>%
  autoplot()

datos_auto <- auto.arima(y = train_datos, seasonal = T)
summary(datos_auto)
## Series: train_datos 
## ARIMA(0,1,0) 
## 
## sigma^2 = 0.6765:  log likelihood = -89.32
## AIC=180.63   AICc=180.69   BIC=182.92
## 
## Training set error measures:
##                        ME      RMSE       MAE      MPE     MAPE      MASE
## Training set 6.418917e-05 0.8169102 0.4819561 -1.51162 11.46582 0.6850157
##                    ACF1
## Training set -0.1268993
  • Visualizacion grafica de los datos reales versus el modelo SARIMA
train_datos %>%
  autoplot(series= "Datos Reales") +
  autolayer (datos_auto$fitted, series = "SARIMA auto") +
  theme_minimal()

Analisis de los diversos cambios en la serie de tiempo.

tsdisplay(datos_diff)

Conclusión

Para cerrar podemos decir que existe una notable dificultad al momento de intentar predecir los datos, esto se debe a los diversos factores que influyen en dicho comportamiento, por ejemplo la economía, motivos sociales etc. Como bien se sabe la pandemia trajo muchas complicaciones alrededor del mundo y la energía renovable no se quedó atras debido a su gran aumento de precipitación.

Descarga este código.

xfun::embed_file("A7UI1.Rmd")

Download A7UI1.Rmd

LS0tDQp0aXRsZTogIkE5VUkiDQphdXRob3I6ICJKb3NlIE51w7FleiwgTWFyaW8gU2FsY2VkbywgSnVsaW8gTWVqaWEsIENhcmxvcyBWYWxsZSINCmRhdGU6ICIyMy8zLzIwMjIiDQpvdXRwdXQ6IA0KICBybWRmb3JtYXRzOjpkb3duY3V0ZToNCiAgICBoaWdobGlnaHQ6IHRhbmdvDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgZGVmYXVsdDogZGFyaw0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSkNCmBgYA0KDQojIEVuZXJnw61hcyBSZW5vdmFibGVzIA0KDQpMYXMgZW5lcmfDrWFzIHJlbm92YWJsZXMgc29uIGZ1ZW50ZXMgZGUgZW5lcmfDrWEgbGltcGlhcywgaW5hZ290YWJsZXMgeSBjcmVjaWVudGVtZW50ZSBjb21wZXRpdGl2YXMuIFNlIGRpZmVyZW5jaWFuIGRlIGxvcyBjb21idXN0aWJsZXMgZsOzc2lsZXMgcHJpbmNpcGFsbWVudGUgZW4gc3UgZGl2ZXJzaWRhZCwgYWJ1bmRhbmNpYSB5IHBvdGVuY2lhbCBkZSBhcHJvdmVjaGFtaWVudG8gZW4gIGN1YWxxdWllciBwYXJ0ZSBkZWwgcGxhbmV0YSwgcGVybyBzb2JyZSB0b2RvIGVuIHF1ZSBubyBwcm9kdWNlbiBnYXNlcyBkZSBlZmVjdG8gaW52ZXJuYWRlcm8g4oCTY2F1c2FudGVzIGRlbCBjYW1iaW8gY2xpbcOhdGljby0gbmkgZW1pc2lvbmVzIGNvbnRhbWluYW50ZXMuICANCg0KRWwgY3JlY2ltaWVudG8gZGUgbGFzIGVuZXJnw61hcyByZW5vdmFibGVzIGVzIGltcGFyYWJsZSwgY29tbyBxdWVkYSByZWZsZWphZG8gZW4gbGFzIGVzdGFkw61zdGljYXMgYXBvcnRhZGFzIGFudWFsbWVudGUgcG9yIGxhIEFnZW5jaWEgSW50ZXJuYWNpb25hbCBkZSBsYSBFbmVyZ8OtYSAoQUlFKTogU2Vnw7puIGxhcyBwcmV2aXNpb25lcyBkZSBsYSBBSUUsIGxhIHBhcnRpY2lwYWNpw7NuIGRlIGxhcyByZW5vdmFibGVzIGVuIGVsIHN1bWluaXN0cm8gZWzDqWN0cmljbyBnbG9iYWwgcGFzYXLDoSBkZWwgMjYlIGVuIDIwMTggYWwgNDQlIGVuIDIwNDAsIHkgcHJvcG9yY2lvbmFyw6FuIDIvMyBkZWwgaW5jcmVtZW50byBkZSBkZW1hbmRhIGVsw6ljdHJpY2EgcmVnaXN0cmFkbyBlbiBlc2UgcGVyw61vZG8sIHByaW5jaXBhbG1lbnRlIGEgdHJhdsOpcyBkZSBsYXMgdGVjbm9sb2fDrWFzIGXDs2xpY2EgeSBmb3Rvdm9sdGFpY2EuIA0KDQohW0VqZW1wbG9zIEVuZXJnw61hcyBSZW5vdmFibGVzXShhYWFzLmpwZykNCg0KDQojIyBJbXBvcnRhY2nDs24gZGUgUGFxdWV0ZXMgDQpgYGB7cn0NCmxpYnJhcnkocGFjbWFuKQ0KcF9sb2FkKCJ0aWR5dmVyc2UiLCAibHVicmlkYXRlIiwgImZvcmVjYXN0IiwgIlRUUiIsICJNTG1ldHJpY3MiLCAidHNlcmllcyIsICJmcHAiLCAiVFNzdHVkaW8iLCAieGZ1biIsICJwbG90bHkiLCJwcmV0dHlkb2MiKQ0KYGBgDQoNCg0KYGBge3J9DQpwcmVjaXBpdGFjaW9uPC0gcmVhZF9jc3YoImNvYWwtZW5lcmd5LXNoYXJlLmNzdiIpDQpgYGANCg0KDQpgYGB7cn0NCmNvbmZfbWV4IDwtIHByZWNpcGl0YWNpb25bcHJlY2lwaXRhY2lvbiRFbnRpdHk9PSJNZXhpY28iLF0NCmNvbmZfbWV4DQoNCmBgYA0KDQpgYGB7cn0NCmRhdG9zIDwtdHMoY29uZl9tZXgkYENvYWwgKCUgc3ViIGVuZXJneSlgLCBmcmVxdWVuY3kgPSAyLCBzdGFydCA9IGMoMTk2NiwgMSksZW5kID0gYygyMDE0LDEpKQ0KDQpkYXRvcw0KYGBgDQojIEFuYWxpc2lzIHkgR3LDoWZpY2EgZGUgRGF0b3MNCg0KRW4gbGEgc2lndWllbnRlIGdyw6FmaWNhIHNlIHB1ZWRlIGFuYWxpemFyIGxhIHByZWNpcGl0YWNpw7NuIGVuIGxhIGdlbmVyYWNpw7NuIGRlIGxhcyBlbmVyZ8OtYXMgcmVub3ZhYmxlcyBlbiBNw6l4aWNvIGEgcGFydGlyIGRlbCBhw7FvIDE5NzAgaGFzdGEgMjAyMCAoYcOxbyBkZSBsYSBwYW5kZW1pYSkuDQpgYGB7cn0NCg0KZSA8LSBwbG90X2x5KGRhdGEgPSBjb25mX21leCwgeCA9IGNvbmZfbWV4JFllYXIgLCB5ID0gY29uZl9tZXgkYENvYWwgKCUgc3ViIGVuZXJneSlgICwgbW9kZSA9ICdsaW5lcycsIHR5cGU9InNjYXR0ZXIiLCBuYW1lPSJFbmVyZ8OtYXMgUmVub3ZhYmxlcyIpICU+JSAgbGF5b3V0KHRpdGxlID0gJ0dlbmVyYWNpw7NuIGRlIEVuZXJnw61hcyBSZW5vdmFibGVzIE3DqXhpY28nICwNCiAgICAgICAgIHlheGlzID0gbGlzdCh6ZXJvbGluZSA9IEZBTFNFLCB0aXRsZSA9ICdQcmVjaXBpdGFjacOzbicpLA0KICAgICAgICAgeGF4aXMgPSBsaXN0KHplcm9saW5lID0gRkFMU0UsIHRpdGxlID0gJ0HDsW8nKSwgbGVnZW5kID0gbGlzdChmb250ID0gbGlzdChzaXplID0gMTUpKSkNCmUNCmBgYA0KDQpObyBleGlzdGVuIHZhbG9yZXMgZmFsdGFudGVzLg0KYGBge3J9DQphbnlOQShkYXRvcykNCmBgYA0KDQojIERlY29tcG9zaWNpw7NuIGRlIFNlcmllcyBkZSBUaWVtcG8gDQoNCkFxdcOtIHBvZGVtb3Mgb2JzZXJ2YXIgdW5hIGNsYXJhIGRlc2NvbXBvc2ljacOzbiBkZSB1bmEgc2VpcmUgZGUgdGllbXBvIHJlcHJlc2VudGFkYSBwb3IgdW5hIGNhdGVnb3LDrWEuIA0KDQpgYGB7cn0NCmRhdG9zX2RjIDwtIGRhdG9zICU+JQ0KICBkZWNvbXBvc2UodHlwZT0ibXVsdGlwbGljYXRpdmUiKSAlPiUNCiAgYXV0b3Bsb3QoKQ0KZGF0b3NfZGMNCmBgYA0KDQojIyBWYWxpZGFjacOzbiBDcnV6YWRhDQoNCmBgYHtyfQ0KdGVzdF9kYXRvcyA8LSB0YWlsKGRhdG9zLCAyMykgIyAyMCBwb3JjaWVudG8gZGUgbG9zIGRhdG9zIHBhcmEgcHJ1ZWJhcw0KdHJhaW5fZGF0b3MgPC0gaGVhZChkYXRvcywgbGVuZ3RoKGRhdG9zKS0yMykgIyA4MCBwb3JjaWVudG8gZGUgbG9zIGRhdG9zIHBhcmEgZW50cmVuYW1pZW50bw0KDQp0ZXN0X2RhdG9zDQoNCmBgYA0KDQoqIEFqdXN0ZSBkZWwgTW9kZWxvDQoNCmBgYHtyfQ0KZGF0b3Nfc2VzIDwtIEhvbHRXaW50ZXJzKHRyYWluX2RhdG9zLCBzZWFzb25hbCA9ICJtdWx0aXBsaWNhdGl2ZSIsICkNCmBgYA0KDQoqIEZvcmVjYXN0aW5nDQoNCmBgYHtyfQ0KZGF0b3NfZm9yZWNhc3QgPC0gZm9yZWNhc3Qob2JqZWN0ID0gZGF0b3Nfc2VzLCBoID0yMykNCmBgYA0KDQoNCiMgR3LDoWZpY2EgZGUgUmVzdWx0YWRvcw0KDQpFbiBlc3RhIGdyw6FmaWNhIHBvZGVtb3Mgb2JzZXJ2YXIgbG9zIHJlc3VsdGFkb3MgZGUgbG9zIGRhdG9zIGVuIGN1YW50byBhIGxhIGVuZXJnw61hIHJlbm92YWJsZSBlbiBNw6l4aWNvLiANCmBgYHtyfQ0KZGF0b3MgJT4lDQogIGF1dG9wbG90KHNlcmllcyA9ICJEYXRvcyBSZWFsZXMiKSArDQogIGF1dG9sYXllcihkYXRvc19mb3JlY2FzdCRmaXR0ZWQsIHNlcmllcyA9ICJEYXRvcyBFbnRyZW5hbWllbnRvIikgKw0KICBhdXRvbGF5ZXIoZGF0b3NfZm9yZWNhc3QkbWVhbiAsIHNlcmllcyA9ICJEYXRvcyBkZSBQcnVlYmEiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KYGBgDQoNCmBgYHtyfQ0KZXZhbF9zZXMgPC0gYWNjdXJhY3koZGF0b3NfZm9yZWNhc3QsIHRlc3RfZGF0b3MpDQpldmFsX3Nlcw0KYGBgDQoNCg0KIyMjIE1vZGVsbyBTYXJpbW1hIEFyaW1hIA0KDQpFc3RvcyBtb2RlbG9zIHBlcm1pdGVuIG9idGVuZXIgZWwgY29tcG9ydGFtaWVudG8gZGUgdW5hIHNlcmllIChlc3RhY2lvbmFsbWVudGUgaGFibGFuZG8pLg0KDQpgYGB7cn0NCmFkZi50ZXN0KGRhdG9zKQ0KYGBgDQoNCiMgR3JhZmljbyBkZSBzZXJpZSBkZSB0aWVtcG8gcG9yIEFSSU1BDQoNCg0KYGBge3J9DQpkYXRvc19kaWZmIDwtIGRhdG9zDQoNCmRhdG9zX2RpZmYgJT4lDQogIGF1dG9wbG90KCkNCmBgYA0KDQoNCmBgYHtyfQ0KZGF0b3NfYXV0byA8LSBhdXRvLmFyaW1hKHkgPSB0cmFpbl9kYXRvcywgc2Vhc29uYWwgPSBUKQ0Kc3VtbWFyeShkYXRvc19hdXRvKQ0KYGBgDQoNCiAqIFZpc3VhbGl6YWNpb24gZ3JhZmljYSBkZSBsb3MgZGF0b3MgcmVhbGVzIHZlcnN1cyBlbCBtb2RlbG8gU0FSSU1BDQoNCmBgYHtyfQ0KdHJhaW5fZGF0b3MgJT4lDQogIGF1dG9wbG90KHNlcmllcz0gIkRhdG9zIFJlYWxlcyIpICsNCiAgYXV0b2xheWVyIChkYXRvc19hdXRvJGZpdHRlZCwgc2VyaWVzID0gIlNBUklNQSBhdXRvIikgKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQojIEFuYWxpc2lzIGRlIGxvcyBkaXZlcnNvcyBjYW1iaW9zIGVuIGxhIHNlcmllIGRlIHRpZW1wby4gDQpgYGB7cn0NCnRzZGlzcGxheShkYXRvc19kaWZmKQ0KYGBgDQoNCiMgQ29uY2x1c2nDs24gDQoNClBhcmEgY2VycmFyIHBvZGVtb3MgZGVjaXIgcXVlIGV4aXN0ZSB1bmEgbm90YWJsZSBkaWZpY3VsdGFkIGFsIG1vbWVudG8gZGUgaW50ZW50YXIgcHJlZGVjaXIgbG9zIGRhdG9zLCBlc3RvIHNlIGRlYmUgYSBsb3MgZGl2ZXJzb3MgZmFjdG9yZXMgcXVlIGluZmx1eWVuIGVuIGRpY2hvIGNvbXBvcnRhbWllbnRvLCBwb3IgZWplbXBsbyBsYSBlY29ub23DrWEsIG1vdGl2b3Mgc29jaWFsZXMgZXRjLiBDb21vIGJpZW4gc2Ugc2FiZSBsYSBwYW5kZW1pYSB0cmFqbyBtdWNoYXMgY29tcGxpY2FjaW9uZXMgYWxyZWRlZG9yIGRlbCBtdW5kbyB5IGxhIGVuZXJnw61hIHJlbm92YWJsZSBubyBzZSBxdWVkw7MgYXRyYXMgZGViaWRvIGEgc3UgZ3JhbiBhdW1lbnRvIGRlIHByZWNpcGl0YWNpw7NuLiANCg0KIyMgRGVzY2FyZ2EgZXN0ZSBjw7NkaWdvLiANCg0KYGBge3J9DQp4ZnVuOjplbWJlZF9maWxlKCJBN1VJMS5SbWQiKQ0KYGBgDQoNCg==