Métodos supervisados y no supervisados
Aprendizaje supervisado
Los algoritmos de aprendizaje supervisado basan su aprendizaje en un juego de datos de entrenamiento previamente etiquetados. Por etiquetado entendemos que para cada ocurrencia del juego de datos de entrenamiento conocemos el valor de su atributo objetivo. Esto le permitirá al algoritmo poder “aprender” una función capaz de predecir el atributo objetivo para un juego de datos nuevo. Las dos grandes familias de algoritmos supervisados son:
- Los algoritmos de regresión cuando el resultado a predecir es un atributo numérico.
- Los algoritmos de clasificación cuando el resultado a predecir es un atributo categórico.
Aprendizaje no supervisado
Los métodos no supervisados (unsupervised methods) son algoritmos que basan su proceso de entrenamiento en un juego de datos sin etiquetas o clases previamente definidas. El aprendizaje no supervisado está dedicado a las tareas de agrupamiento, también llamadas clustering o segmentación, donde su objetivo es encontrar grupos similares en el conjunto de datos. Existen dos grupos principales de métodos o algoritmos de agrupamiento: 1. Los métodos jerárquicos, producen una organización jerárquica de las instancias que forman el conjunto de datos, posibilitando de esta forma distintos niveles de agrupación. 2. Los métodos particionales o no jerárquicos, que generan grupos de instancias que no responden a ningún tipo de organización jerárquica.
Diferencias entre metodos supervisados y no supervisados.
El aprendizaje supervisado supone que partimos de un conjunto de datos etiquetado previamente, es decir, conocemos el valor del atributo objetivo para el conjunto de datos que disponemos. El aprendizaje no supervisado parte de datos no etiquetados previamente. En pocas palabras, el aprendizaje supervisado utiliza datos de entrada y salida etiquetados, mientras que un algoritmo de aprendizaje no supervisado no lo hace.
Proceso de resolución de problema usando ciencia de datos.
Paso 1: Definir el problema
Primero, es necesario definir con precisión el problema de datos que se va a resolver. El problema debe ser claro, conciso y medible. Muchas empresas son demasiado vagas al definir los problemas de datos, lo que dificulta o incluso imposibilita que los científicos de datos los traduzcan en código de máquina.
Paso 2: Decidir un enfoque
Es necesario definir el enfoque que se le dará al problema para iniciar e identificar qué datos serán de utilidad para la realización de una solución para dicho problema.
Paso 3: Recopilar datos
Con el problema claramente definido y un enfoque adecuado seleccionado, es hora de recopilar datos. Todos los datos recopilados deben organizarse en un registro junto con las fechas de recopilación y otros metadatos útiles.
Paso 4: Análisis de datos
El siguiente paso después de la recopilación y limpieza de datos es el análisis de datos. En esta etapa, existe una cierta posibilidad de que el enfoque de ciencia de datos seleccionado no funcione. Esto es de esperar y tener en cuenta. En general, se recomienda comenzar probando todos los enfoques básicos de aprendizaje automático, ya que tienen menos parámetros para modificar.
Paso 5: Interpretar los resultados
Después del análisis de datos, finalmente es hora de interpretar los resultados. Lo más importante a considerar es si el problema original se ha resuelto. Es posible que descubra que su modelo funciona pero produce resultados inferiores. Una forma de lidiar con esto es agregar más datos y volver a entrenar el modelo hasta que esté satisfecho con él.
Cambio anual en la generación de energías renovables
Datos utilizados
Los datos utilizados fueron recuperados de la página Our world in Data, la cual recopila datos sobre diferentes topicos alrededor del mundo. A continuación se muestra el enlace de la misma donde se recuperaron los datos: https://ourworldindata.org/grapher/annual-change-renewables?tab=chart&country=~MEX
Introducción
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. Además, sus costes evolucionan a la baja de forma sostenida, mientras que la tendencia general de costes de los combustibles fósiles es la opuesta, al margen de su volatilidad coyuntural.
Imagen introducción
Objetivos
El objetivo es mostrar de manera gráfica, mediante métodos supervisados y no supervisados como la generación de energías renovables ha ido en aumento con el paso de los años; comparando estos métodos para visualizar el contraste de las diferentes perspectivas que nos generan dichos métodos.
Para esto vamos a utilizar como métodos supervisados: - Sarima - Random Forest
Y métodos no supervisados: - Kmeans - Holt winters
Marco teorico
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.
De acuerdo a la AIE, la demanda mundial de electricidad aumentará un 70% hasta 2040,-elevando su participación en el uso de energía final del 18% al 24% en el mismo periodo- espoleada principalmente por regiones emergentes (India, China, África, Oriente Medio y el sureste asiático).
En 2019, alrededor del 11% de la energía primaria mundial provino de tecnologías renovables.
Según el informe Estadísticas de Capacidad Renovable 2020 de la Agencia Internacional de Energías Renovables (IRENA) muestra que la nueva capacidad de energía renovable, -principalmente hidroeléctrica, eólica, solar, geotérmica y bioenergética-, representó 72% de toda la expansión energética el año pasado. La energía renovable creció 7,6% en 2019, con una nueva capacidad agregada de 176 gigavatios (GW), levemente menos que los 179 GW agregados en 2018.
La energía basada en las fuentes solar y eólica continuó dominando la expansión de la capacidad renovable. Ambas representaron conjuntamente 90% de toda la capacidad renovable agregada en 2019. La energía solar, con 586 GW, aumentó 20%, mientras que la eólica, con 623 GW, creció 10%.
Las energías renovables tienden a subir con el paso del tiempo, Imagen ilustrativa
Librerías utilizadas
# Librerias utilizadas para k-means
library(pacman)
p_load("ggplot2","DT","xfun","prettydoc","cluster", "readr")
p_load("DT","xfun","ggplot2", "readr","tseries","ggfortify","tidyr", "dplyr")
p_load("tidyverse", "lubridate", "forecast", "TTR", "MLmetrics", "tseries", "fpp", "TSstudio", "prettydoc", "DT", "xfun", "readr", "ggplot2", "scales", "base64enc", "mime", "dplyr", "ggplot2", "GGally")
- ggplot: Se utiliza para realizar gráficas más atractivas
- DT: Se utiliza para representar los datos en tablas.
- xfun: Se utiliza para poder descargar los archivos.
- prettydoc: Se utiliza para hacer el documento más visualmente atractivo
- readr: Se utiliza para leer archivos cvs que contienen los datos a utilizar
- tidyverse: Se utiliza para importar, transformar, visualizar y modelar la información que utilizamos en el análisis.
- TSstudio: nos proporciona un conjunto de herramientas para el análisis descriptivo y predictivo de datos de series temporales.
- tseries: Se utiliza para hacer análisis de series temporales.
- MLmetrics: Colección de métricas que nos sirven para medir el rendimiento de regresión.
- TTR: Se utiliza para la implementación de herramientas básicas para ayudarnos a una mejor comprensión del problema.
- forecast: Se utiliza para nombrar a las variables apropiadamente al proyecto.
- GGally: Esta nos sirve para hacer matrices con conjuntos de datos y variables.
Métodos
Métodos no supervisados
K-means
El algoritmo k-means resuelve un problema de optimización, siendo la función a optimizar (minimizar) la suma de las distancias cuadráticas de cada objeto al centroide de su cluster.
Los objetos se representan con vectores reales de dimensiones (x1,x2,…,xn) y el algoritmo k-means construye k grupos donde se minimiza la suma de distancias de los objetos, dentro de cada grupo S={S1,S2,…,Sk}, a su centroide. El problema se puede formular de la siguiente forma:
\[ \underset{\mathbf{S}}{\mathrm{min}}\; E\left(\boldsymbol{\mu_{i}}\right)=\underset{\mathbf{S}}{\mathrm{min}}\sum_{i=1}^{k}\sum_{\mathbf{x}_{j}\in S_i}\left\Vert \mathbf{x}_{j}-\boldsymbol{\mu}_{i}\right\Vert ^{2} \quad (1) \]
donde S es el conjunto de datos cuyos elementos son los objetos xj representados por vectores, donde cada uno de sus elementos representa una característica o atributo. Tendremos k grupos o clusters con su correspondiente centroide μi.
En cada actualización de los centroides, desde el punto de vista matemático, imponemos la condición necesaria de extremo a la función E(μi) que, para la función cuadrática (1) es:
\[ \frac{\partial E}{\partial\boldsymbol{\mu}_{i}}=0\;\Longrightarrow\;\boldsymbol{\mu}_{i}^{(t+1)}=\frac{1}{\left|S_{i}^{(t)}\right|}\sum_{\mathbf{x}_{j}\in S_{i}^{(t)}}\mathbf{x}_{j} \]
y se toma el promedio de los elementos de cada grupo como nuevo centroide.
Las principales ventajas del método k-means son que es un método sencillo y rápido. Pero es necesario decidir el valor de k y el resultado final depende de la inicialización de los centroides. En principio no converge al mínimo global sino a un mínimo local.
Datos con k-means
energiasrenovables <- read.csv("annual_change_renewables.csv")
datatable(energiasrenovables)
Tabla Consumo de energías renovables
energias_renovable_ts = ts(energiasrenovables[2], start = c(1990), end = c(2020), frequency = 1)
plot(energias_renovable_ts, main ="Consumo de energías renovables", xlab="año", ylab="porcentaje")
> Utilizaremos esta tabla como referencia para observar la varianza del consumo con el paso de los años y con este mismo iremos visualizando los cambios alternos y subalternos en estas mismas, identificando lo que podrían indicarnos estas subidas, ya que podría indicarnos tanto un aumento como un descenso.
Primer grafica coloreando las clases (Energías Renovables)
ggplot(energiasrenovables, aes(Año, Energía.Renovable)) + geom_point(aes (col=Año), size=4 )
> Tal y como se muestra en la gráfica, conforme el avance de los años se vio un incremento en la generación anual de energías renovables. Un punto favorable es que para la década de los 2010 en adelante se presentaron picos de hasta los 1000 terawatts por hora. Esto habla bien acerca de las energías renovables, ya que en la actualidad son tomadas en cuenta en mayor medida a comparación de hace más de 20 años.
set.seed(101)
energiasCluster <- kmeans(energiasrenovables[,1:2], center=15, iter.max = 50, nstart=20 )
energiasCluster
## K-means clustering with 15 clusters of sizes 626, 76, 20, 20, 158, 125, 773, 781, 105, 40, 7, 655, 10, 49, 762
##
## Cluster means:
## Año Energía.Renovable
## 1 1980.569 0.1182396
## 2 2007.947 56.6107763
## 3 1994.900 -83.6016500
## 4 2005.550 387.5311000
## 5 2008.639 22.9015316
## 6 1982.888 31.1975440
## 7 1990.988 1.1898085
## 8 2013.440 0.6817964
## 9 2000.410 -31.0834286
## 10 1996.775 191.1625750
## 11 1992.000 -186.7598571
## 12 1970.476 1.0787725
## 13 2013.100 805.7982000
## 14 1992.367 104.2183469
## 15 2001.906 0.1822178
##
## Clustering vector:
## [1] 12 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 7 7 7 7 7
## [25] 7 7 7 7 7 7 7 15 15 15 5 5 15 15 5 15 15 15 8 8 5 8 8 5
## [49] 5 8 8 5 5 5 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1
## [73] 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15
## [97] 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1
## [121] 1 1 1 1 1 1 1 1 7 7 9 7 7 7 7 7 7 7 15 5 15 9 5 5
## [145] 15 15 15 15 5 9 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12
## [169] 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7
## [193] 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 5 8 8 8 8 8 8 5 8
## [217] 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 7 7 7 7 7
## [241] 7 7 7 7 7 7 15 15 15 15 15 15 15 9 15 15 15 15 8 8 8 8 5 8
## [265] 8 8 8 8 8 8 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15
## [289] 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12
## [313] 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15
## [337] 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 7 7
## [361] 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8
## [385] 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1
## [409] 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15
## [433] 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 6 12 6 6 6 6
## [457] 6 6 6 6 6 1 6 6 6 6 7 7 6 7 2 6 7 6 6 6 6 6 5 15
## [481] 5 3 2 2 2 2 5 14 5 2 2 2 9 9 8 5 2 8 14 2 12 12 12 12
## [505] 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7
## [529] 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8
## [553] 8 8 6 12 12 6 6 12 6 6 6 1 6 6 6 6 6 6 9 6 2 6 6 6
## [577] 9 9 7 6 6 6 5 5 2 15 9 6 5 3 2 9 15 2 9 5 5 9 9 2
## [601] 5 5 9 5 5 5 9 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1
## [625] 1 1 1 1 7 7 7 7 7 7 7 7 7 7 15 15 15 15 5 15 15 15 15 15
## [649] 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12
## [673] 1 1 1 1 6 6 6 6 1 7 7 7 6 6 6 7 7 2 6 2 15 5 15 15
## [697] 2 10 5 15 10 14 14 14 4 8 4 8 4 10 4 10 4 4 4 4 12 12 12 12
## [721] 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7
## [745] 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 5 8 8 8 8 8 5
## [769] 8 8 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8
## [793] 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1
## [817] 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15
## [841] 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1
## [865] 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15
## [889] 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12
## [913] 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7
## [937] 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8
## [961] 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7
## [985] 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8
## [1009] 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1
## [1033] 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15
## [1057] 15 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 7 7 7
## [1081] 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 6
## [1105] 12 6 12 6 12 6 12 14 6 3 10 1 2 9 6 1 6 1 6 9 14 14 11 6
## [1129] 6 2 2 6 6 9 2 14 5 14 15 3 3 10 2 2 14 10 2 10 9 4 10 2
## [1153] 10 2 5 10 10 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1
## [1177] 1 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 5 15 15 15 8
## [1201] 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 6 12 9 14 1
## [1225] 1 1 1 1 1 1 1 7 6 6 3 6 7 6 7 6 7 9 15 15 5 9 5 9
## [1249] 15 15 9 5 5 5 8 5 9 2 5 8 8 5 8 2 8 12 12 12 12 12 12 12
## [1273] 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 15
## [1297] 15 15 15 5 15 5 15 5 5 5 2 8 8 5 2 2 5 5 2 8 2 5 2 12
## [1321] 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7
## [1345] 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8
## [1369] 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1
## [1393] 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8
## [1417] 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1
## [1441] 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15
## [1465] 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12
## [1489] 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7
## [1513] 15 15 15 15 15 15 15 15 15 15 15 5 8 8 8 8 8 8 8 8 8 8 8 12
## [1537] 12 12 12 12 12 12 12 12 6 1 1 6 1 1 1 9 1 6 1 7 7 7 6 7
## [1561] 6 7 7 6 7 9 15 6 15 15 15 15 15 14 15 2 5 15 8 5 2 9 2 5
## [1585] 8 5 2 2 2 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1
## [1609] 1 7 7 7 7 7 7 7 7 7 7 7 15 5 15 15 15 15 15 15 15 15 15 8
## [1633] 8 5 8 8 5 8 8 5 8 8 5 12 12 12 12 12 12 12 12 12 12 1 1 1
## [1657] 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15
## [1681] 15 15 15 15 15 9 8 8 8 8 8 8 8 8 8 8 2 12 12 12 12 12 12 12
## [1705] 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7
## [1729] 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12
## [1753] 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7
## [1777] 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8
## [1801] 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1
## [1825] 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8
## [1849] 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 6 1
## [1873] 1 1 1 1 1 1 1 7 7 7 9 7 6 7 7 7 9 7 15 15 5 15 15 9
## [1897] 15 5 9 15 15 5 5 5 5 5 2 5 9 8 8 5 8 12 12 12 12 12 6 12
## [1921] 9 6 12 1 9 1 6 6 1 1 1 9 6 1 1 6 7 9 6 9 6 3 6 7
## [1945] 5 15 15 15 15 15 5 15 9 5 9 8 8 2 8 8 5 5 2 9 2 5 2 7
## [1969] 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8
## [1993] 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1
## [2017] 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15
## [2041] 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7 7 7 7 7 7
## [2065] 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8
## [2089] 8 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8
## [2113] 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1
## [2137] 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15
## [2161] 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12
## [2185] 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7
## [2209] 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 5 5 8 8 12
## [2233] 12 12 12 12 12 12 12 12 12 12 1 1 1 1 6 1 1 1 7 1 7 7 7 7
## [2257] 7 7 7 9 5 7 15 15 5 15 15 15 15 5 15 15 15 5 9 5 8 8 8 5
## [2281] 8 8 8 8 5 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1
## [2305] 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8
## [2329] 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1
## [2353] 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15
## [2377] 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12
## [2401] 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7
## [2425] 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 6
## [2449] 14 12 14 12 6 14 6 14 9 1 11 10 6 1 6 14 14 6 9 6 3 3 14 14
## [2473] 6 9 14 9 10 10 15 11 2 3 11 10 15 5 14 14 9 10 2 2 4 9 14 2
## [2497] 2 10 10 5 2 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8
## [2521] 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 12 9 6 6
## [2545] 1 6 1 6 1 1 1 6 7 6 7 9 6 7 9 6 9 5 5 5 2 3 5 3
## [2569] 15 2 9 5 5 9 9 8 2 9 5 8 8 8 8 9 12 12 12 12 12 12 12 12
## [2593] 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15
## [2617] 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12
## [2641] 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7
## [2665] 7 7 7 7 7 9 5 15 15 15 15 15 15 15 15 15 15 8 8 8 9 14 9 8
## [2689] 8 8 8 5 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1
## [2713] 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8
## [2737] 8 8 8 8 8 8 8 5 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1
## [2761] 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15
## [2785] 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12
## [2809] 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15
## [2833] 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12
## [2857] 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 1 7 7 9 7 7
## [2881] 7 7 7 7 5 15 15 15 15 15 9 5 15 15 5 15 8 8 5 8 8 5 8 8
## [2905] 5 9 5 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1
## [2929] 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8
## [2953] 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1
## [2977] 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15
## [3001] 15 15 15 15 8 8 5 8 8 5 5 8 8 8 8 8 7 7 7 7 6 7 7 7
## [3025] 7 7 3 7 15 15 15 5 9 9 2 15 15 15 9 5 9 8 8 2 9 8 5 8
## [3049] 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7
## [3073] 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8
## [3097] 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1
## [3121] 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15
## [3145] 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12
## [3169] 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15
## [3193] 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 7 7 7 7
## [3217] 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8
## [3241] 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7
## [3265] 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8
## [3289] 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1
## [3313] 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15
## [3337] 15 8 8 8 8 8 8 8 8 8 8 5 8 6 12 12 12 12 12 12 12 12 1 1
## [3361] 6 1 6 9 1 1 1 1 1 1 7 6 9 7 7 9 7 7 7 2 15 15 9 5
## [3385] 5 9 2 9 9 5 5 8 5 2 9 8 2 8 9 5 9 2 8 12 12 12 12 12
## [3409] 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7
## [3433] 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8
## [3457] 8 12 12 12 12 12 6 12 12 12 12 1 1 1 1 1 1 1 6 1 7 9 6 7
## [3481] 7 7 9 6 7 9 6 9 2 5 15 5 15 9 9 5 5 9 5 8 8 8 8 5
## [3505] 9 8 2 9 5 8 5 12 12 12 12 12 12 12 12 12 12 1 6 1 1 1 1 1
## [3529] 1 1 1 7 7 7 7 7 7 7 7 7 7 9 5 15 5 15 15 9 15 15 15 15
## [3553] 15 8 8 8 8 5 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1
## [3577] 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15
## [3601] 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12
## [3625] 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7
## [3649] 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 5
## [3673] 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7
## [3697] 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8
## [3721] 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1 1
## [3745] 1 1 1 7 6 6 9 7 7 7 6 7 7 7 15 15 9 15 9 5 15 5 9 5
## [3769] 9 8 8 2 8 5 8 9 2 5 8 5 14 7 7 7 7 7 7 7 7 7 7 7
## [3793] 15 15 15 15 15 15 15 15 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 7
## [3817] 7 7 7 7 7 7 7 7 7 7 15 5 15 15 15 15 15 15 15 15 15 8 8 8
## [3841] 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1 1 1 1 1
## [3865] 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15
## [3889] 15 15 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12
## [3913] 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7 7 7 15 15
## [3937] 15 15 15 15 15 15 15 15 15 8 8 8 5 5 5 5 2 8 5 5 5 12 14 12
## [3961] 14 12 6 6 12 14 12 9 11 10 1 1 9 14 2 1 3 6 3 3 10 14 7 3
## [3985] 14 9 14 14 6 3 15 3 11 10 2 15 5 14 3 14 14 2 10 9 14 2 5 10
## [4009] 10 2 2 1 7 7 7 7 7 7 7 7 7 7 15 15 15 15 15 15 15 15 15 15
## [4033] 15 8 8 8 8 8 8 8 8 8 8 8 8 12 12 12 12 12 12 12 12 12 12 1
## [4057] 1 1 1 1 1 1 1 1 1 7 7 7 7 7 6 7 7 7 7 7 7 15 15 15
## [4081] 15 15 15 5 5 15 15 8 8 9 5 8 8 8 8 9 8 8 5 12 12 12 12 12
## [4105] 12 12 12 12 12 1 1 1 1 1 1 1 1 1 1 7 7 7 7 7 7 7 7 7
## [4129] 7 7 15 15 15 15 15 15 15 15 15 15 15 8 8 8 5 5 8 8 8 5 2 8
## [4153] 9 10 6 10 10 10 10 10 6 4 6 1 14 4 10 14 14 14 10 10 14 14 14 10
## [4177] 7 4 10 6 4 2 4 14 10 14 14 10 11 10 5 13 4 4 4 13 10 13 4 13
## [4201] 13 13 4 13 13 13 13
##
## Within cluster sum of squares by cluster:
## [1] 16536.150 16446.652 7001.565 95489.210 15880.925 23702.857
## [7] 21819.531 26652.401 25924.298 51733.860 10442.520 17656.910
## [13] 147947.892 24555.039 20703.776
## (between_SS / total_SS = 96.1 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Comparando los resultados de la clasificación en 3 clusters con los datos originales que tienen sus etiquetas (especie de flor )
#table(energiasCluster$cluster, energiasrenovables$Energía.Renovable)
Agrupando los datos en cluster y graficándolos
clusplot(energiasrenovables, energiasCluster$cluster, color=T, shade=T, lines=0)
> Se puede observar como los datos se encuentran estancados en un mismo cluster, haciendo que no podamos identificar tan claramente la agrupación de los datos.
tot.withinss <- vector(mode="character", length=10)
for (i in 1:10){
energiasCluster <- kmeans(energiasrenovables[,1:2], center=i, nstart=20 )
tot.withinss[i] <- energiasCluster$tot.withinss
}
Graficación del codo obtenido
plot(1:10, tot.withinss, type="b", pch=19)
Holt winters
Pasar a linea de tiempo
Se pasan los datos a la linea del tiempo que nos indica como ha aumentado el uso de la energia renovable a lo largo de los años.
TSenr <- ts(data=energiasrenovables$Energía.Renovable, frequency=220, start=c(2010))
autoplot(TSenr)
## Descomponer la serie de tiempo
En esta grafica se realizara un desglose para la la serie de tiempo.
ener_re <- TSenr %>%
decompose(type = "multiplicative") %>%
autoplot()
ener_re
División de datos para validación cruzada
Se dividen los datos para recabar la informacion y testear y asi verificar las posibles anomalias vistas en las precipitaciones de esparcimiento en el uso correcto de la energia renovable de los casos de analisis estudiados.
test_ener <- tail(TSenr, 220)
train_ener <- head(TSenr, length(ener_re)-220)
Holt-Winters
Holt-Winters utiliza el suavizado exponencial para codificar muchos valores del pasado y usarlos para predecir valores “típicos” para el presente y el futuro.
ener_ren <- HoltWinters(train_ener, seasonal ="additive")
ener_ren
## Holt-Winters exponential smoothing with trend and additive seasonal component.
##
## Call:
## HoltWinters(x = train_ener, seasonal = "additive")
##
## Smoothing parameters:
## alpha: 0.1962903
## beta : 0
## gamma: 0.04338151
##
## Coefficients:
## [,1]
## a 2.758459562
## b -0.009768679
## s1 1.348321297
## s2 5.993249888
## s3 -5.543215572
## s4 4.931584918
## s5 0.483857434
## s6 -6.829954809
## s7 16.548697777
## s8 1.892846317
## s9 8.436712620
## s10 -0.729910828
## s11 5.914718814
## s12 3.752404020
## s13 0.811406450
## s14 9.248405937
## s15 10.758129313
## s16 0.862547515
## s17 0.356111370
## s18 -3.758557983
## s19 3.882692002
## s20 2.880524635
## s21 -1.686116486
## s22 -4.338745400
## s23 -9.742053674
## s24 -13.814367258
## s25 -4.159464407
## s26 -9.480831720
## s27 -13.494780205
## s28 -1.862685894
## s29 -5.115866476
## s30 -3.655246104
## s31 -0.836113799
## s32 -0.968176253
## s33 -4.421251965
## s34 2.273064172
## s35 -2.202612709
## s36 -1.616509685
## s37 3.048239482
## s38 -4.092487827
## s39 0.241511556
## s40 -3.232492609
## s41 -3.313369189
## s42 2.337944516
## s43 0.910498131
## s44 -0.636875704
## s45 -3.563363755
## s46 -4.580622220
## s47 -4.056832905
## s48 -1.863377484
## s49 -1.372811694
## s50 -4.748968966
## s51 0.021564723
## s52 -2.784387784
## s53 -3.343820341
## s54 -0.908873216
## s55 -1.464599961
## s56 -1.193102816
## s57 -0.734232229
## s58 1.429996171
## s59 -3.096300197
## s60 -0.924624027
## s61 0.016355852
## s62 -1.330388860
## s63 -2.491356694
## s64 0.606817843
## s65 -3.593899771
## s66 1.469766299
## s67 -0.223843894
## s68 -1.448952462
## s69 -1.796363015
## s70 -0.329132383
## s71 -0.287470046
## s72 0.153585061
## s73 -0.600943078
## s74 -1.430510599
## s75 -1.294967359
## s76 -2.492085893
## s77 -1.857117621
## s78 -2.637583166
## s79 -1.655799219
## s80 0.520468205
## s81 0.316900448
## s82 -0.746292534
## s83 -2.388352628
## s84 -0.638346292
## s85 1.973200771
## s86 1.503898714
## s87 7.906842151
## s88 -2.514300333
## s89 3.634918075
## s90 1.069977879
## s91 0.997779617
## s92 1.398010098
## s93 -1.606350800
## s94 0.403224269
## s95 -13.866713917
## s96 -5.574287400
## s97 6.463172135
## s98 -3.239705173
## s99 0.827140461
## s100 2.671306916
## s101 4.378773350
## s102 -0.052188210
## s103 -5.885444156
## s104 11.955035758
## s105 -2.973399507
## s106 -8.584976473
## s107 10.211712046
## s108 11.282430629
## s109 2.959291974
## s110 -7.402696901
## s111 -5.900326565
## s112 1.504923309
## s113 4.592950815
## s114 -9.101127299
## s115 -3.742489118
## s116 3.853647413
## s117 1.404829808
## s118 -1.328750917
## s119 -6.280698516
## s120 5.264207418
## s121 1.809916287
## s122 -0.630459166
## s123 -5.685843487
## s124 4.889812198
## s125 -2.012339271
## s126 -0.019176794
## s127 -1.977592769
## s128 -0.544538739
## s129 -0.935381723
## s130 -0.950234528
## s131 -1.206754847
## s132 1.367528020
## s133 -1.287535703
## s134 1.120604860
## s135 1.877628152
## s136 0.318379809
## s137 -2.220792978
## s138 -3.048593990
## s139 2.408845785
## s140 -0.974335448
## s141 -2.137650497
## s142 -2.589520543
## s143 -2.427712543
## s144 -3.353615980
## s145 0.003891509
## s146 -2.322390422
## s147 -1.230852368
## s148 0.726306955
## s149 -0.225196169
## s150 -3.328177707
## s151 1.205179597
## s152 -1.819758441
## s153 1.009381167
## s154 0.061867419
## s155 -1.520437598
## s156 -1.179684727
## s157 -1.633745213
## s158 -1.764062673
## s159 -3.293574559
## s160 0.502005244
## s161 -0.593054901
## s162 -1.492813744
## s163 -0.734007343
## s164 0.199251426
## s165 -0.791742490
## s166 2.320607513
## s167 1.577569131
## s168 -0.307110571
## s169 -0.518489338
## s170 4.010356344
## s171 8.749979156
## s172 10.026180344
## s173 -0.480881626
## s174 6.430382588
## s175 -1.502935070
## s176 4.314098914
## s177 7.167218480
## s178 -3.072523795
## s179 15.772982189
## s180 8.690730754
## s181 4.821562764
## s182 1.171081500
## s183 4.327778614
## s184 -2.698287412
## s185 9.256368006
## s186 -8.859082250
## s187 1.700119360
## s188 2.160462892
## s189 2.987721823
## s190 5.153017677
## s191 -7.262588149
## s192 5.015765095
## s193 -7.242203637
## s194 12.046776235
## s195 0.902503559
## s196 3.643516172
## s197 -1.765323408
## s198 2.580214242
## s199 -0.157702892
## s200 2.270301912
## s201 -0.653184762
## s202 6.301270565
## s203 -2.452764171
## s204 -1.605747307
## s205 -0.402425542
## s206 0.358869152
## s207 4.157933382
## s208 -1.179147623
## s209 4.883336993
## s210 2.001983518
## s211 -6.542116605
## s212 5.981433113
## s213 3.329873846
## s214 0.049620976
## s215 5.671114212
## s216 -3.971946644
## s217 -7.130553515
## s218 -1.779295412
## s219 7.082300745
## s220 3.425810887
En esta seccion es utilizado el metodo holt winters el cual es un metodo no supervisado.
Forecasting
El incremento de los datos analizados nos hace posible una revision general de la trayectoria analizada en los multiples casos, se hara un casteo de estos mismos elementos para poder analizar y comprender de una mejor manera la estructura de el funcionamiento de la misma.
energia_forecast <- forecast(object = ener_ren, h=500)
Visualizando datos
Aqui podemos ver los datos plasmados en la grafica donde podemos ver los alti-bajos de los valores relacionados con la energia renovable en Mexico.
TSenr %>%
autoplot(series = "actual") +
autolayer(energia_forecast$fitted, series = "train") +
theme_minimal()
## Warning: Removed 220 row(s) containing missing values (geom_path).
Métodos supervisados
Modelo SARIMA o ARIMA
Al adquirir estas mismas disciplinas se nos permite visualizar diferentes metodos para lograr objetivos comunes.El modelo SARIMA O ARIMA, nos ayuda a captar este mismo comportamiento estacional de la serie pudiendo apreciar la regresion de los datos estadisticos con el fin de encontrar patrones para una prediccion hacia el futuro aproximado.
adf.test(TSenr)
## Warning in adf.test(TSenr): p-value greater than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: TSenr
## Dickey-Fuller = 2.8871, Lag order = 16, p-value = 0.99
## alternative hypothesis: stationary
Análisis diferencial entre ciclos (estaciones)
En esta grafica se pueden apreciar los datos conforme las estaciones que en este caso son años representadas con ciclos enlazados a estas mismas predicciones estacionarias.
ener_diff <- TSenr %>%
diff(lag=220) %>%
diff(lag=220)
ener_diff %>%
autoplot()
ener_auto <- auto.arima(y= train_ener, seasonal= F)
Gráfica de datos reales vs. Arima
Gracias a la grafica podemos apreciar que los datos reales no son tan alejados a lo que se presentan en el modelo arima por lo cual nos hace ver que este modelo refleja cierta realidad.
train_ener %>%
autoplot(series="actual") +
autolayer(ener_auto$fitted, series ="SARIMA auto") +
theme_minimal()
Población con acceso a energía renovable en México
electricidad_mexico <- read.csv("electricidad_mexico.csv", encoding = "UTF-8")
datatable(electricidad_mexico)
Comparando el crecimiento y porcentaje de personas con acceso energía renovable en México
datos <- data.frame(energiasrenovables$Energía.Renovable[22:45], electricidad_mexico$Porcentaje.población.con.acceso[3:26])
datatable(datos)
Analizar la relación entre variables
round(cor(x = datos, method = "pearson"), 2)
## energiasrenovables.Energía.Renovable.22.45.
## energiasrenovables.Energía.Renovable.22.45. 1.00
## electricidad_mexico.Porcentaje.población.con.acceso.3.26. 0.33
## electricidad_mexico.Porcentaje.población.con.acceso.3.26.
## energiasrenovables.Energía.Renovable.22.45. 0.33
## electricidad_mexico.Porcentaje.población.con.acceso.3.26. 1.00
Analisis de correlación
ggpairs(datos, lower = list(continuous ="smooth"),
diag = list (continuos = "barDiag"), axisLabels = "none")
El análisis de correlación nos ayuda a identificar si dos variables cuentan con alguna relación, y como se puede observar, existe una clara relación en el aumento, aunque a lo ultimo se puede ver un pequeño declive se ve como el crecimiento es similar y en estas dos mismas se encuentra visible esta misma conexión por lo que podríamos deducir que los datos si se encuentran enlazados ya que en México como en el mundo las energías renovables ha sido un tema que ha estado en boca de todos.
Conclusion personal
Se utilizaron los algoritmos supervisados y no supervisados para poder tener mayores perspectivas en cuestion de los resultados arrojados, se utilizo k-means como algoritmo no supervisado y a su vez holt winters y k-means para tener una vista más amplia de la supervisión de estos datos. Visualizando el analisis y la información obtenida recopilando cada uno de los procesos, se puede observar el cambio anual en la generacion de energias renovables en Mexico de manera ascendente ya que estas, han ido en aumento con el paso de los años, donde se puede observar altibajos pero con tendencia a crecimiento debido a que teorizamos diferentes factores para su constante crecimiento, uno de ellos tal vez el cambio climatico y la contaminacion.
Bibliografías
#Biografía introducción
#https://www.acciona.com/es/energias-renovables/?_adin=02021864894
#Marco teorico
#https://www.unep.org/es/noticias-y-reportajes/reportajes/crece-la-generacion-de-electricidad-con-fuentes-renovables-en-2019#:~:text=La%20energ%C3%ADa%20basada%20en%20las,623%20GW%2C%20creci%C3%B3%2010%25.
#Informacion
#https://healthdataminer.com/data-mining/aprendizaje-supervisado-y-no-supervisado/#:~:text=El%20aprendizaje%20supervisado%20supone%20que,de%20datos%20no%20etiquetados%20previamente.
#https://brainhub.eu/library/how-to-approach-data-science-problem/
Descarga este código
#Código
xfun::embed_file("EvaluacionUnidad1.Rmd")
Download EvaluacionUnidad1.Rmd
#Datos de uso
xfun::embed_file("annual_change_renewables.csv")