UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO
FACULTAD DE INGENIERÍA ELÉCTRICA, ELECTRÓNICA, INFORMÁTICA Y
MECÁNICA
ESCUELA PROFESIONAL DE INGENIERÍA INFORMÁTICA Y DE SISTEMAS
TESIS
“APLICACIÓN DE TÉCNICAS DE MINERÍA DE DATOS PARA
IDENTIFICACIÓN DE PATRONES DE COMPORTAMIENTO DE LAS
VARIABLES DE PROCESO DE GENERACIÓN Y DISTRIBUCIÓN DE
ENERGÍA ELÉCTRICA, PARA LA EMPRESA EGEMSA ”
Para optar al tı́tulo profesional de:
INGENIERO INFORMÁTICO Y DE SISTEMAS
Presentado por:
BR. CHINO ESPINOZA, HEBERT
BR. LAVILLA ALVAREZ, VANESA
Asesor:
DR. RONY VILLAFUERTE SERNA
Cusco - Perú
2019
Dedicatoria
Dedico esta tesis a la persona más importante en mi vida, mi madre Elsa Espinoza
Soncco por su apoyo y amor incondicional. A mis hermanos Nelly y Alexander por el
apoyo que siempre me brindaron dı́a a dı́a en el transcurso de cada año de mi
carrera. Y en memoria de mi padre Gregorio Chino Herencia quien siempre cuida y
guiá mi camino.
Hebert.
Este trabajo de tesis esta dedicado a mis padres Justo y Elodia, a mis hermanos
Sohely y Yoel Justo por su apoyo y amor incondicional. En memoria de mi abuelita
Mauricia que fue mi segunda madre.
Vanesa.
II
Agradecimientos
Agradecemos infinitamente a todas las personas que ayudaron a la realización y culmi-
nación de este trabajo de investigación, por sus consejos y conocimientos. A la empresa
EGEMSA por facilitarnos el acceso a sus instalaciones durante todo este periodo que
duro la investigación.
¡ Muchas gracias a todos!
III
Resumen
La revolución digital ha permitido que la captura de datos sea fácil, cada momento
gran cantidad de datos son recogidos y almacenados en bases de datos a cada instante,
y las herramientas tradicionales no son las adecuadas para procesarlas.
La Minerı́a de Datos (Data Mining) es un conjunto de técnicas y tecnologı́as que
permiten explorar grandes bases de datos, de manera automática o semiautomática,
con el objetivo de extraer conocimiento útil y comprensible. En el momento que se le
atribuye algún significado a los datos éstos pasan a convertirse en información.
Las series temporales o series de tiempo es una colección de observaciones de una va-
riable recogidas secuencialmente en el tiempo. La Minerı́a de Datos Temporal(Temporal
Data Mining, TDM), es la Minerı́a de Datos para series temporales, que está com-
puesta por métodos que son capaces de caracterizar series temporales con distintas
caracterı́sticas fuera de los tradicionales.
La Empresa de Generación Eléctrica Machupicchu S.A. (EGEMSA), a través del
Sistema de Supervisión, Control y Adquisición de Datos (SCADA) va generando gran
cantidad de datos y estos son almacenados en su servidor histórico, éstas se almacenan
por un tiempo aproximado de 3 meses y luego se eliminan, los datos relevantes se
guardan en cuaderno de registro de eventos o en hojas de Excel.
El sistema SCADA recibe las señales de los distintos sensores y medidores de campo
(voltı́metros, capacı́metros, amperı́metros, medidores de caudal, sensores de temperatu-
ra), a estas señales las denominaremos Variables de proceso de generación y distribución
de energı́a eléctrica.
La presente investigación buscó primero extraer las variables de proceso de forma
segura sin vulnerar la seguridad de la red SCADA; segundo, se implementó una Base de
Datos Histórica para las variables de proceso de generación y distribución; tercero, se
aplicó Técnicas de Minerı́a de Datos Temporales (TDM) y expresiones regulares para
encontrar caracterı́sticas y patrones de comportamiento; cuarto, se aplicó clustering
(técnica descriptiva de DM) con el fin de ayudar a interpretar con ayuda de la estadı́stica
descriptiva los patrones; y por último se entregó los resultados a la empresa para la toma
de decisiones frente a eventualidades y planificación de mantenimientos preventivos.
Para el trabajo de investigación, se utilizó la metodologı́a CRISP-DM, ya que es
un método muy utilizado y que nos permitió la flexibilidad de avanzar o retroceder en
sus distintas fases.
Palabras clave: Patrones de comportamiento, Series de Tiempo, Minerı́a de Datos,
Minerı́a de Datos Temporal, Variables de Generación Eléctrica, CRISP-DM.
IV
Abstract
Nowadays, with the digital revolution, the capture and generation of amount of
data is easier. At each moment, millions of registers are generated and stored in large
databases, given many opportunities to get information and help to make decisions in
an organization. However, there are certain limitations of traditional tools to manage
all these large data sets.
Data mining is a set of techniques and technologies which allow the automatization
of exploration task in big datasets, with the goal to extract useful and comprehensive
information. Only the data is not useful, to make sense these data sets, is necessary to
find relationships, patterns, trends and irregularities, which can be obtained with the
data mining process.
The temporal series is a collection of observations of variables and their evolution
over time. The Temporal Data Mining (TDM) is the process to make sense temporal
datasets preserving time information as much as possible.
The Electric Generation Company Machupicchu SA (EGEMSA), through its Sys-
tem of Supervision, Control, and Acquisition of Data (SCADA) generates and storage
temporarily a large amount of data. All these data are available only about three
months, after that, they are removed. So, some relevant instances are saved as Excel
files.
SCADA system gets signals from different sensors and land meters (voltmeter,
capacitor, ammeter, river flow meter, and temperature sensor), in this work, all these
signals are called features of electric energy generation and distribution.
In this work, we propose a set of steps to mining SCADA system datasets. First,
we extracted all generation process features in a safe way without violating the se-
curity of the SCADA network. Second, we designed a historical database to store all
generated features. Third, we applied temporal data mining techniques in order to find
characteristics and behavioral patterns. Fourth, we used clustering technique in order
to make sense the patterns supported by descriptive statistics. Finally, we presented
all the results to EGEMSA to help in decision making to planning and improve the
preventive maintenance process.
For this research work, we used CRISP-DM methodology, because is flexible, po-
pular, and allows advance or retreat over different phases.
Key words: Behavior patterns, Time Series, Data Mining, Temporary Data Mi-
ning, Electric Generation Variables CRISP-DM.
V
Presentación
Señor Decano de la Facultad de Ingenierı́a Eléctrica, Electrónica, Informática y
Mecánica de la Universidad Nacional de San Antonio Abad del Cusco.
Señores miembros del jurado.
De conformidad a lo dispuesto por su despacho y en cumplimiento con la nor-
matividad establecida para optar al Tı́tulo Profesional de Ingeniero Informático y
de Sistemas, ponemos a vuestra consideración el presente trabajo de tesis intitu-
lado “APLICACIÓN DE TÉCNICAS DE MINERÍA DE DATOS PARA
IDENTIFICACIÓN DE PATRONES DE COMPORTAMIENTO DE LAS
VARIABLES DE PROCESO DE GENERACIÓN Y DISTRIBUCIÓN DE
ENERGÍA ELÉCTRICA, PARA LA EMPRESA EGEMSA”, con la finalidad
de fomentar la investigación en el área de Minerı́a de Datos.
Esperando que los miembros del jurado examinen las deficiencias que pudieran
encontrar y valoren el contenido desarrollado; se presenta este trabajo para impulsar
el estudio, la investigación y el desarrollo tecnológico.
VI
Abreviaturas
EGEMSA Empresa de Generación Eléctrica Machupicchu S.A.
CHM Central Hidroeléctrica de Machupicchu
SCADA Supervisory, Control And Data Acquisition (Supervisión control y adquisi-
ción de datos)
PLC Programmable Logic Controller (Controlador Lógico Programable)
DM Data Mining (Minerı́a de Datos)
PGP Power Generation Portal (Portal de Generación de Energı́a)
CRISP-DM Cross Industry Standard Process for Data Mining (Proceso estándar de
la industria cruzada para la minerı́a de datos)
MTU Master Terminal Unit (Ordenador Principal del Sistema)
OLE Object Linking and Embedding (Vinculación e Inserción de Objetos)
COM Component Object Model (Modelo de Componentes de Objetos)
DLL Dynamic Link Library (Librerı́a de Enlaces Dinámicos)
DCOM Distributed Component Object Model (Modelo de Objetos de Componentes
Distribuidos)
OPC OLE for Process Control (OLE para el Control de Procesos)
SGBD Sistema gestor de base de datos
KDD Knowledge Discovery in Databases (Descubrimiento de conocimiento en bases
de datos)
SEIN Sistema Eléctrico Interconectado Nacional
COES Comité de Operación Económica del Sistema
DEP Data Execution Prevention (Prevención de ejecución de datos)
LSP Local Security Policy (Polı́tica de seguridad local)
TDM Temporal Data Mining (Minerı́a de Datos Temporal)
RPF Regulación Primaria de Frecuencia
VII
OEFA Organismo de Evaluación y Fiscalización Ambiental
PLR Piecewise Linear Representation (Representación lineal por partes)
ABB Asea Brown Boveri
VIII
Índice general
Dedicatoria II
Agradecimientos III
Resumen IV
Abstract V
Presentación VI
Abreviaturas VII
Índice General XIII
1. Aspectos Generales 1
1.1. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2. Formulación del Problema . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1. Problema General . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2. Problemas especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1. Objetivo General . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.2. Objetivos Especı́ficos . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4. Justificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5. Delimitación de estudio . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5.1. Delimitación Espacial . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5.2. Delimitación Temporal . . . . . . . . . . . . . . . . . . . . . . . 4
1.6. Método . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6.1. Alcance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.6.2. Diseño . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.7. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Marco Teórico 7
2.1. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1. Antecedentes Internacionales . . . . . . . . . . . . . . . . . . . . 7
2.1.2. Antecedentes Nacionales . . . . . . . . . . . . . . . . . . . . . . 8
2.2. Bases Teóricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
IX
2.2.1. Sistema SCADA . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2. Tecnologı́as de comunicación entre aplicaciones . . . . . . . . . . 9
2.2.2.1. OLE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.2.2. OPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2.2.3. Tecnologı́a OPC . . . . . . . . . . . . . . . . . . . . . 11
2.2.2.4. Cliente y Servidor OPC . . . . . . . . . . . . . . . . . 11
2.2.3. Base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.3.1. Sistema gestor de base de datos . . . . . . . . . . . . . 12
2.2.3.2. Base de datos temporales . . . . . . . . . . . . . . . . 13
2.2.4. Minerı́a de Datos . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.4.1. Tipos de Variables . . . . . . . . . . . . . . . . . . . . 14
2.2.4.2. Clasificación de técnicas de Minerı́a de Datos . . . . . 14
2.2.4.3. Aplicación de la minerı́a de datos en procesos industriales 16
2.2.5. Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.5.1. Agrupamiento Jerarquico . . . . . . . . . . . . . . . . 17
2.2.5.2. Validación de resultados para métodos jerárquicos . . . 18
2.2.6. K medias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.7. Minerı́a de datos temporal . . . . . . . . . . . . . . . . . . . . . 20
2.2.7.1. Series de tiempo . . . . . . . . . . . . . . . . . . . . . 20
2.2.7.2. Outliers . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.8. Tratamiento del Ruido . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.8.1. Filtro Mediana . . . . . . . . . . . . . . . . . . . . . . 22
2.2.8.2. Filtro Media . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.8.3. Filtro Gaussiano . . . . . . . . . . . . . . . . . . . . . 23
2.2.9. Tareas de la minerı́a de datos para series temporales . . . . . . 23
2.2.9.1. Ancho de ventana . . . . . . . . . . . . . . . . . . . . 24
2.2.9.2. Cruces por cero . . . . . . . . . . . . . . . . . . . . . . 24
2.2.10. Segmentación de series de tiempo . . . . . . . . . . . . . . . . . 25
2.2.10.1. Subpatrones . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.10.2. Patrones . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.11. Emparejamiento de Secuencias . . . . . . . . . . . . . . . . . . . 27
2.2.11.1. Expresiones regulares . . . . . . . . . . . . . . . . . . . 27
2.2.12. El proceso de extracción del conocimiento . . . . . . . . . . . . 28
2.2.13. Metodologı́a CRISP-DM para el proceso de minerı́a de datos . . 28
2.2.13.1. Fase 1: Comprensión del negocio . . . . . . . . . . . . 29
2.2.13.2. Fase 2: Comprensión de los datos . . . . . . . . . . . . 30
2.2.13.3. Fase 3: Preparación de los datos . . . . . . . . . . . . . 32
2.2.13.4. Fase 4: Modelado . . . . . . . . . . . . . . . . . . . . . 33
2.2.13.5. Fase 5: Evaluación . . . . . . . . . . . . . . . . . . . . 35
2.2.13.6. Fase 6: Despliegue o implantación . . . . . . . . . . . . 36
2.3. Otros temas relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.1. Túnel de Red . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.3.2. Potencia Eléctrica . . . . . . . . . . . . . . . . . . . . . . . . . . 37
X
2.3.2.1. Turbina hidraúlica . . . . . . . . . . . . . . . . . . . . 38
2.3.3. Conceptos Hidrológicos . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.4. Demanda en el sector eléctrico . . . . . . . . . . . . . . . . . . . 41
2.3.5. Costo Marginal en el sector eléctrico . . . . . . . . . . . . . . . 41
2.4. Libreria y Herramientas Informáticas . . . . . . . . . . . . . . . . . . . 41
2.4.1. KDSeries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.4.1.1. kdfilterremove . . . . . . . . . . . . . . . . . . . . . . . 42
2.4.1.2. kdfilter . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.4.1.3. kdmatfilter . . . . . . . . . . . . . . . . . . . . . . . . 44
2.4.1.4. kdplotmat . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.4.1.5. kdplotnumz . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.1.6. kdplotscales . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.1.7. kdplotzcross . . . . . . . . . . . . . . . . . . . . . . . . 45
2.4.2. Herramientas Informáticas . . . . . . . . . . . . . . . . . . . . . 46
2.4.2.1. Cogent DataHub . . . . . . . . . . . . . . . . . . . . . 46
2.4.2.2. Fortinet . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.4.2.3. Microsoft SQL-Server 2008 R2 . . . . . . . . . . . . . 47
2.4.2.4. R y R-Studio . . . . . . . . . . . . . . . . . . . . . . . 48
3. Extracción de Variables de Proceso y Servidor Histórico del SCADA 49
3.1. Extracción Variables de Proceso . . . . . . . . . . . . . . . . . . . . . . 49
3.1.1. Paso 1: Servidor SCADA de EGEMSA . . . . . . . . . . . . . . 49
3.1.2. Paso 2: Configuración del DCOM . . . . . . . . . . . . . . . . . 50
3.1.3. Paso 3: Configuración del Cogent DataHub Maestro y Cliente . 51
3.1.4. Paso 4: Configuración del Túnel . . . . . . . . . . . . . . . . . . 52
3.1.5. Paso 5: Implementación del Script en el DataHub Cliente . . . . 52
3.2. Servidor Histórico del SCADA . . . . . . . . . . . . . . . . . . . . . . . 53
3.2.1. Diseño de la base de datos . . . . . . . . . . . . . . . . . . . . . 53
3.2.2. Diagrama de la base de datos . . . . . . . . . . . . . . . . . . . 56
3.2.3. Carga de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4. Desarrollo del Proyecto 58
4.1. FASE I. Comprensión del negocio . . . . . . . . . . . . . . . . . . . . . 59
4.1.1. Comprensión del contexto y determinar objetivos comerciales de
la empresa EGEMSA . . . . . . . . . . . . . . . . . . . . . . . . 59
4.1.1.1. Contexto de EGEMSA . . . . . . . . . . . . . . . . . . 59
4.1.1.2. Objetivos del Negocio . . . . . . . . . . . . . . . . . . 64
4.1.2. Evaluación de la situación . . . . . . . . . . . . . . . . . . . . . 64
4.1.2.1. Inventario de Recursos . . . . . . . . . . . . . . . . . . 64
4.1.2.2. Requisitos supuestos y restricciones . . . . . . . . . . . 64
4.1.2.3. Riesgos y Contingencias . . . . . . . . . . . . . . . . . 65
4.1.2.4. Terminologı́a . . . . . . . . . . . . . . . . . . . . . . . 65
4.1.3. Determinar objetivos de Minerı́a de Datos . . . . . . . . . . . . 66
4.1.3.1. Objetivos de Minerı́a de Datos . . . . . . . . . . . . . 66
XI
4.1.3.2. Criterios de rendimiento de Minerı́a de Datos . . . . . 66
4.1.4. Desarrollo del plan del proyecto . . . . . . . . . . . . . . . . . . 66
4.1.4.1. Plan del proyecto . . . . . . . . . . . . . . . . . . . . . 66
4.1.5. Evaluación Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2. FASE II. Comprensión de los datos . . . . . . . . . . . . . . . . . . . . 67
4.2.1. Recopilación de datos iniciales . . . . . . . . . . . . . . . . . . . 68
4.2.2. Descripción, Exploración y calidad de los datos . . . . . . . . . 68
4.2.2.1. Datos de generación CHM . . . . . . . . . . . . . . . . 68
4.2.2.2. Datos hidrológicos CHM . . . . . . . . . . . . . . . . . 72
4.2.2.3. Datos hidrológicos Sibinacocha . . . . . . . . . . . . . 75
4.2.2.4. Demanda de Energı́a Eléctrica . . . . . . . . . . . . . 78
4.2.2.5. Datos Costo Marginal . . . . . . . . . . . . . . . . . . 80
4.2.3. Resumen Fase II . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3. FASE III. Preparación de los datos . . . . . . . . . . . . . . . . . . . . 83
4.3.1. Selección de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.3.1.1. Resumen selección de datos . . . . . . . . . . . . . . . 84
4.3.2. Limpieza de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.3.2.1. Corrección de atı́picos con el algoritmo kdfilterremove 85
4.3.2.2. Elección del tipo de filtro . . . . . . . . . . . . . . . . 86
4.3.2.3. Elección de ancho de ventana . . . . . . . . . . . . . . 87
4.3.3. Construcción de nuevos datos . . . . . . . . . . . . . . . . . . . 98
4.3.3.1. Transformación . . . . . . . . . . . . . . . . . . . . . . 98
4.3.3.2. Generación nuevos atributos . . . . . . . . . . . . . . . 98
4.3.4. Integración de datos . . . . . . . . . . . . . . . . . . . . . . . . 100
4.3.5. Evaluación Fase III . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.4. FASE IV. Modelado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.4.1. Selección de técnicas de modelado . . . . . . . . . . . . . . . . . 102
4.4.2. Generación de un diseño de comprobación . . . . . . . . . . . . 102
4.4.3. Generación de los modelos . . . . . . . . . . . . . . . . . . . . . 103
4.4.3.1. Búsqueda de subpatrones . . . . . . . . . . . . . . . . 104
4.4.3.2. Búsqueda de patrones . . . . . . . . . . . . . . . . . . 107
4.4.3.3. Clustering . . . . . . . . . . . . . . . . . . . . . . . . . 111
4.4.3.4. Presentación de reglas . . . . . . . . . . . . . . . . . . 112
4.4.4. Ajuste y ejecución del modelo en cada ST . . . . . . . . . . . . 112
4.4.4.1. Serie temporal potencia activa total . . . . . . . . . . . 113
4.4.4.2. Serie temporal demanda de energı́a eléctrica . . . . . . 116
4.4.4.3. Serie temporal costo marginal de energı́a eléctrica . . . 119
4.4.5. Evaluación del modelo . . . . . . . . . . . . . . . . . . . . . . . 123
4.4.5.1. Patron1: DEC POT (Decremento Potencia) . . . . . . 123
4.4.5.2. Patron2: INC DEM (Incremento Demanda) . . . . . . 126
4.4.5.3. Patron3: DEC HOR COS (Decremento Horizontal Costo)131
4.4.6. Evaluación y comprobación del modelo . . . . . . . . . . . . . . 135
4.4.6.1. Comprobación para el patrón DEC POT . . . . . . . . 136
XII
4.4.6.2. Comprobación para el patrón INC DEM . . . . . . . . 137
4.4.6.3. Comprobación para el patrón DEC HOR COS . . . . . 137
4.5. FASE V. Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.5.1. Evaluación de los resultados . . . . . . . . . . . . . . . . . . . . 138
4.5.1.1. Análisis de Costo de Mantenimiento de los Grupos . . 139
4.5.2. Proceso de revisión . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.5.3. Determinación de los pasos siguientes . . . . . . . . . . . . . . . 144
4.6. FASE VI. Despliegue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.6.1. Planificación de distribución . . . . . . . . . . . . . . . . . . . . 144
4.6.2. Creación de un informe final . . . . . . . . . . . . . . . . . . . . 145
4.6.3. Revisión final del proyecto . . . . . . . . . . . . . . . . . . . . . 145
Conclusiones 146
Recomendaciones 147
A. Configuración del DCOM en el Servidor OPC y Cliente OPC 148
B. Configuración del Cogent DataHub Maestro 151
C. Detalles de BDHistoricoScada 152
D. Carta presentada a EGEMSA 159
E. Formato de permiso 160
F. Código 161
Bibliografı́a 177
XIII
Índice de figuras
2.1. Esquema de un Sistema SCADA . . . . . . . . . . . . . . . . . . . . . . 9
2.2. Estructura Cliente - Servidor OPC. . . . . . . . . . . . . . . . . . . . . 12
2.3. Clasificación de técnicas de Minerı́a de Datos . . . . . . . . . . . . . . . 15
2.4. Serie temporal o serie de tiempo. . . . . . . . . . . . . . . . . . . . . . 21
2.5. Ejemplo de ruido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.6. Cruces por cero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.7. Evento Incremento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.8. Evento Decremento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.9. Evento Horizontal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.10. Ejemplo de patrones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.11. Proceso KDD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.12. Fases de la Metodologı́a CRISP-DM . . . . . . . . . . . . . . . . . . . . 29
2.13. Fase 1 Comprensión del Negocio . . . . . . . . . . . . . . . . . . . . . . 30
2.14. Fase 2 Comprensión de los Datos . . . . . . . . . . . . . . . . . . . . . 31
2.15. Fase 3 Preparación de los Datos . . . . . . . . . . . . . . . . . . . . . . 32
2.16. Fase 4 Modelado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.17. Fase 5 Evaluación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.18. Fase 6 Despliegue o Implantación . . . . . . . . . . . . . . . . . . . . . 36
2.19. Triángulo de Potencias . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.20. Turbina Pelton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.21. Turbina Francis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.22. Identificación de Datos Hidrológicos . . . . . . . . . . . . . . . . . . . . 40
2.23. Orden de despacho de las generadoras. . . . . . . . . . . . . . . . . . . 42
2.24. Diagrama de flujo kdfilterremove . . . . . . . . . . . . . . . . . . . . . 43
2.25. Diagrama de flujo kdfilter . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.26. Software Cogent DataHub . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.1. Diagrama extracción de variables de proceso. . . . . . . . . . . . . . . . 49
3.2. Pasos para la configuración del DCOM . . . . . . . . . . . . . . . . . . 50
3.3. Diagrama Configuración del Cogent DataHub Maestro . . . . . . . . . 51
3.4. Configuración del Cogent DataHub Maestro . . . . . . . . . . . . . . . 52
3.5. Diagrama de flujo del Script del Cogent DataHub . . . . . . . . . . . . 53
3.6. Diagrama extracción de variables de proceso. . . . . . . . . . . . . . . . 56
4.1. Logo de EGEMSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
XIV
4.2. Organigrama de EGEMSA . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3. Diagrama de frecuencia de datos de generación CHM . . . . . . . . . . 70
4.4. Potencia Activa Total . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.5. Diagrama de cajas de las potencias activas . . . . . . . . . . . . . . . . 71
4.6. Diagrama de frecuencia de datos hidrológicos CHM . . . . . . . . . . . 73
4.7. Caudal Vilcanota y Caudal Tunel . . . . . . . . . . . . . . . . . . . . . 74
4.8. Diagrama de cajas de datos hidrológicos CHM . . . . . . . . . . . . . . 74
4.9. Diagrama de frecuencias de datos Sibinacocha . . . . . . . . . . . . . . 76
4.10. Datos Represa Sibinacocha . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.11. Diagrama de cajas datos de Sibinacocha . . . . . . . . . . . . . . . . . 77
4.12. Diagrama de frecuencias de Demanda . . . . . . . . . . . . . . . . . . . 79
4.13. Demanda de Energı́a Eléctrica . . . . . . . . . . . . . . . . . . . . . . . 79
4.14. Diagrama de caja de demanda de energı́a eléctrica. . . . . . . . . . . . 80
4.15. Diagrama de frecuencia de Costo Marginal . . . . . . . . . . . . . . . . 81
4.16. Costo Marginal de la barra Machupicchu 138 . . . . . . . . . . . . . . . 82
4.17. Diagrama de Cajas de Costo Marginal . . . . . . . . . . . . . . . . . . 82
4.18. Filtro de las series temporales . . . . . . . . . . . . . . . . . . . . . . . 85
4.19. Diagrama de flujo para elegir el mejor filtro . . . . . . . . . . . . . . . 86
4.20. Prueba de filtro para las series temporales . . . . . . . . . . . . . . . . 86
4.21. Diagrama de flujo para seleccionar el mejor ancho de ventana . . . . . . 87
4.22. Prueba de la ST Potencia activa total con kdplotzcross . . . . . . . . . 88
4.23. Elección Ancho de Ventana para ST Potencia activa total . . . . . . . . 89
4.24. ST Potencia total activa original y filtrada . . . . . . . . . . . . . . . . 89
4.25. Prueba de la ST caudal rı́o Vilcanota con kdplotzcross . . . . . . . . . 90
4.26. Elección Ancho de Ventana para ST caudal del rı́o Vilcanota . . . . . . 91
4.27. ST caudal rı́o Vilcanota original y filtrada . . . . . . . . . . . . . . . . 91
4.28. Prueba de la ST caudal túnel de aducción con kdplotzcross . . . . . . . 92
4.29. Elección Ancho de Ventana para ST caudal túnel de aducción . . . . . 93
4.30. ST caudal túnel de aducción original y filtrada . . . . . . . . . . . . . . 93
4.31. Prueba de la ST Demanda ejecutada con kdplotzcross . . . . . . . . . . 94
4.32. Elección Ancho de Ventana para ST Demanda ejecutada . . . . . . . . 95
4.33. ST Demanda ejecutada original y filtrada . . . . . . . . . . . . . . . . . 95
4.34. Prueba de la ST Costo Marginal con kdplotzcross . . . . . . . . . . . . 96
4.35. Elección Ancho de Ventana para ST Costo marginal . . . . . . . . . . . 97
4.36. ST Costo Marginal original y filtrada . . . . . . . . . . . . . . . . . . . 97
4.37. Potencia Total en Avenida y Estiaje . . . . . . . . . . . . . . . . . . . . 98
4.38. Caudal Rı́o Vilcanota y Caudal Túnel en Avenida y Estiaje . . . . . . 99
4.39. Volumen represa Sibinacocha y Despacho en Avenida y Estiaje . . . . . 99
4.40. Matriz Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.41. Matriz Hidro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.42. Diagrama de flujo del modelo . . . . . . . . . . . . . . . . . . . . . . . 103
4.43. Diagrama general de búsqueda de subpatrones . . . . . . . . . . . . . . 105
4.44. Diagrama de subproceso incremento . . . . . . . . . . . . . . . . . . . . 106
XV
4.45. Diagrama de subproceso decremento . . . . . . . . . . . . . . . . . . . 107
4.46. Diagrama de subproceso decremento . . . . . . . . . . . . . . . . . . . 108
4.47. Diagrama de proceso búsqueda patrones . . . . . . . . . . . . . . . . . 110
4.48. Patrón 1 en la ST potencia activa total . . . . . . . . . . . . . . . . . . 113
4.49. Análisis de silueta del árbol jerárquico para el Patron1 . . . . . . . . . 115
4.50. Dendograma Patron1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.51. Patrón 2 en la ST demanda de energı́a eléctrica . . . . . . . . . . . . . 117
4.52. Análisis de silueta del árbol jerárquico para el Patron2 . . . . . . . . . 118
4.53. Dendograma Patron2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.54. Patrón 3 en la ST costo marginal de energı́a eléctrica . . . . . . . . . . 120
4.55. Análisis de silueta del árbol jerárquico para el Patron3 . . . . . . . . . 122
4.56. Dendograma Patron3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.57. Patron1: DEC POT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.58. Análisis cluster Patron1 . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.59. Histograma Patron1: Hora vs Grupo . . . . . . . . . . . . . . . . . . . 124
4.60. Histograma Patron1: Hora vs Temporada . . . . . . . . . . . . . . . . . 125
4.61. Histograma Patron1: Hora vs DiaSemana . . . . . . . . . . . . . . . . . 125
4.62. Histograma Patron1: Combinacion de Turbinas vs Grupo . . . . . . . . 125
4.63. Patron2: INC DEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
4.64. Análisis cluster Patron2 . . . . . . . . . . . . . . . . . . . . . . . . . . 127
4.65. Histograma Patron2: Hora vs Temporada . . . . . . . . . . . . . . . . . 128
4.66. Histograma Patron2: Hora vs Dı́a de la semana . . . . . . . . . . . . . 128
4.67. Histograma Patron2: Hora vs Grupo . . . . . . . . . . . . . . . . . . . 129
4.68. Histograma Patron2: Hora vs Feriados y Domingos . . . . . . . . . . . 129
4.69. Histograma Patron2: Hora vs Dia vs Grupo . . . . . . . . . . . . . . . 130
4.70. Patron3: DEC HOR COS . . . . . . . . . . . . . . . . . . . . . . . . . 131
4.71. Análisis cluster Patron3 . . . . . . . . . . . . . . . . . . . . . . . . . . 132
4.72. Histograma Patron3: Hora-DEC vs Grupo y Hora-HOR vs Grupo . . . 133
4.73. Histograma Patron3: Hora vs Temporada . . . . . . . . . . . . . . . . . 133
4.74. Histograma Patron3: Hora vs Valor de costo . . . . . . . . . . . . . . . 134
4.75. Histograma Patron3: Dı́a . . . . . . . . . . . . . . . . . . . . . . . . . . 134
4.76. Mantenimiento G4 Francis . . . . . . . . . . . . . . . . . . . . . . . . . 140
4.77. Valorización del Mantenimiento Real . . . . . . . . . . . . . . . . . . . 140
4.78. Mantenimientos Sugeridos para G4 . . . . . . . . . . . . . . . . . . . . 141
4.79. Mantenimiento G4 Francis en Estiaje . . . . . . . . . . . . . . . . . . . 142
4.80. Mantenimientos Sugeridos para G4 en Estiaje . . . . . . . . . . . . . . 143
D.1. Carta entregada a EGEMSA pidiendo permiso . . . . . . . . . . . . . . 159
E.1. Permiso del Gerente de Administración y Finanzas . . . . . . . . . . . 160
XVI
Índice de tablas
3.1. hs SenalesOPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.2. hs GeneracionCHM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.3. hs Hidrologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.4. hs Demanda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.5. hs CostoMarginal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.6. Códigos OPC de las señales . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1. Plan del Proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2. Generación CHM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3. Estadı́sticos básicos de datos generación CHM . . . . . . . . . . . . . . 69
4.4. Hidrológicos CHM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.5. Estadı́sticos básicos datos hidrológicos CHM . . . . . . . . . . . . . . . 73
4.6. Hidrológicos Sibinacocha . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.7. Estadı́sticos básicos datos hidrológicos Sibinacocha . . . . . . . . . . . 75
4.8. Demanda de energı́a eléctrica . . . . . . . . . . . . . . . . . . . . . . . 78
4.9. Estadı́sticos básicos datos de Demanda . . . . . . . . . . . . . . . . . . 78
4.10. Costo Marginal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.11. Estadı́sticos básicos de Costo Marginal . . . . . . . . . . . . . . . . . . 81
4.12. Variables de proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.13. Corrección de Atı́picos de las series temporales . . . . . . . . . . . . . . 85
4.14. Nuevos atributos generados . . . . . . . . . . . . . . . . . . . . . . . . 100
4.15. Ajuste parámetros Patron1 . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.16. Valores de los parámetros Patron1 . . . . . . . . . . . . . . . . . . . . . 115
4.17. Ajuste parámetros Patron2 . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.18. Valores de los parámetros Patron2 . . . . . . . . . . . . . . . . . . . . . 118
4.19. Ajuste parámetros SubPatron3 Decremento . . . . . . . . . . . . . . . 120
4.20. Valores de los parámetros subpatrón DEC y HOR del Patron3 . . . . . 121
4.21. Valores de los parámetros patron3 . . . . . . . . . . . . . . . . . . . . . 121
4.22. Número y Porcentaje del Patron1 con respecto a los grupos . . . . . . . 124
4.23. Número y Porcentaje del Patron1 con respecto a los grupos . . . . . . . 126
4.24. Número y Porcentaje del Patron2 con respecto a los grupos . . . . . . . 128
4.25. Número y Porcentaje del Patron2 con respecto a los grupos . . . . . . . 131
4.26. Número y Porcentaje del Patron3 con respecto a los grupos . . . . . . . 132
4.27. Número y Porcentaje del Patron3 con respecto a los grupos . . . . . . . 135
XVII
4.28. Cantidad de dı́as anteriores y nuevos . . . . . . . . . . . . . . . . . . . 136
4.29. Evaluación y comprobación Patron1 . . . . . . . . . . . . . . . . . . . . 136
4.30. Evaluación y comprobación Patron2 . . . . . . . . . . . . . . . . . . . . 137
4.31. Evaluación y comprobación Patron3 . . . . . . . . . . . . . . . . . . . . 137
4.32. Valorización de mantenimiento sugeridos . . . . . . . . . . . . . . . . . 142
4.33. Valorización de mantenimientos Sugeridos en Estiaje . . . . . . . . . . 143
XVIII
Capı́tulo 1
Aspectos Generales
1.1. Planteamiento del Problema
La Empresa de Generación Eléctrica Machupicchu S.A. (EGEMSA), es una
generadora eléctrica hidráulica Peruana, usa como recurso la energı́a potencial del
agua del Rı́o Vilcanota. La capacidad de generación de ésta es de 192MW. La Central
Hidroeléctrica de Machupicchu está ubicada en la provincia de Urubamba del distrito
de Machupicchu KM-122, teniendo como sede institucional la ciudad del Cusco.
Los SCADA (Supervisory, Control And Data Acquisition) permiten supervisar y
controlar variables de proceso a distancia, proporcionando comunicación con los dispo-
sitivos de campo e interviniendo sobre el proceso de regulación de frecuencia, potencia
y/o voltaje a efectos de controlar de forma voluntaria los niveles de estas variables.
EGEMSA cuenta con tres sistemas SCADA que permiten controlar y supervisar
el proceso de generación eléctrica: uno para la parte de control y mando de la generación
de los grupos 1, 2 y 3 llamado CENTRALOG de ALSTOM, otro para el grupo 4
llamado PGP de ABB y el último para la parte de transmisión en las subestaciones de
Cachimayo y Dolorespata llamado MICROSCADA de ABB.
Para el caso de las subestaciones el control del SCADA se circunscribe a efectuar
maniobras de apertura y cierre (conexión - desconexión) de los diversos equipos de
las subestaciones, ası́ como también provee de toda la información que se genera en
el proceso productivo como posiciones, estados y medidas de funcionamiento de los
equipos eléctricos.
En el proceso de Generación Eléctrica se tienen los distintos dispositivos de cam-
po como: medidores de temperatura, medidores de caudal, voltı́metros, capacı́metros,
sensores de posición de compuertas, transformadores, lı́neas de transmisión de energı́a
1
eléctrica; los cuales se comunican con el SCADA a través de controladores lógicos pro-
gramables (PLC), el SCADA recibe las señales de los distintos sensores de campo ya
mencionadas anteriormente, a estas señales las denominamos “Variables de proceso de
generación y distribución de energı́a eléctrica” como son: frecuencia, potencia activa,
potencia reactiva, tensión, estado de las lı́neas de transmisión las cuales son controladas
de forma automática de la pantalla del ordenador principal del sistema (MTU) y las
variables externas como son costo marginal y demanda de energı́a eléctrica.
Este sistema cuenta con la capacidad de almacenamiento de información históri-
ca; sin embargo, este sistema es limitado para los requerimientos actuales de dicha
empresa.
Cada segundo se va generando gran cantidad de datos pertenecientes a las va-
riables de proceso de generación y distribución que son almacenados en el servidor
histórico del SCADA, por la gran cantidad de información generada se va eliminando
los datos que tienen una antigüedad de 3 meses, los datos relevantes ya sea en centro
de control y casa de máquinas se van almacenando en hojas Excel o escritos en un
cuaderno de registro de eventos.
La Minerı́a de Datos (Data Mining, DM) o exploración de datos es un proceso
iterativo de búsqueda de información no trivial en grandes volúmenes de datos, busca
generar información similar a la que podrı́a generar un experto humano ya sea: pa-
trones, asociaciones, cambios, anomalı́as y estructuras significativas. Estos resultados
pueden ser vistos como una especie de resumen y pueden ser utilizados en el análisis
adicional como: en el aprendizaje automático y/o análisis predictivo.
EGEMSA ejecuta dos tipos de mantenimiento: Preventivo y Correctivo. Los
mantenimientos preventivos tienen por misión mantener un nivel de servicio determi-
nado en los equipos, programados en sus calendarios, este mantenimiento suele ser
sistemático, es decir, se interviene aunque el equipo no haya dado ningún sı́ntoma de
tener un problema, por ende resulta ser de menor costo. Los mantenimientos correcti-
vos es el conjunto de tareas destinadas a corregir los defectos que se van presentando
en distintos equipos, este mantenimiento se da en cualquier momento por fallas de los
equipos, los cuales se comunica al área de mantenimiento por los mismos usuarios.
Por razones de seguridad a causa de amenazas locales y externas en la red, la
Red del SCADA está aislado de la red Corporativa de EGEMSA, motivo por el cual
el acceso al sistema SCADA es restringido, ya que sólo los operadores y personal que
interactúan directamente con este tienen acceso en tiempo real a la visualización de las
variables de proceso de generación.
2
1.2. Formulación del Problema
1.2.1. Problema General
¿La aplicación de técnicas de minerı́a de datos en las variables de proceso de ge-
neración y distribución, permitirá encontrar patrones de comportamiento que mejoren
la toma de decisiones de la empresa EGEMSA?
1.2.2. Problemas especı́ficos
1. Un problema es el acceso a los datos del SCADA, ya que las red corporativa y la
red del SCADA son redes distintas.
2. Ingresar y obtener los datos del servidor SCADA sin vulnerar la seguridad y el
buen funcionamiento de la misma.
3. La falta de una base de datos histórica acorde a las variables de procesos de
generación y distribución de energı́a eléctrica.
4. La ausencia de una herramienta de apoyo basada en minerı́a de datos, que analice
la gran cantidad de datos para extraer patrones interesantes hasta ahora desco-
nocidos, que ayude a la toma de decisiones frente a eventos y mantenimientos
que se pueda presentar.
5. Perdidas económicas por mantenimientos programados en horarios inadecuados
1.3. Objetivos
1.3.1. Objetivo General
Aplicar técnicas de minerı́a de datos para identificar patrones de comportamien-
to en las variables de proceso de generación y distribución de energı́a eléctrica, para
mejorar la toma de decisiones de la Empresa de Generación Eléctrica Machupicchu
S.A.
1.3.2. Objetivos Especı́ficos
1. Extraer las variables de proceso de generación y distribución del servidor SCADA,
conservando la seguridad de la red.
3
2. Implementar el servidor Histórico del SCADA para el manejo, respaldo y explo-
tación de variables de proceso de generación y distribución.
3. Seleccionar las técnicas de minerı́a de datos según el tipo de variables, que sean
útiles para el modelo a desarrollar.
4. Construir y aplicar un proceso para la búsqueda de patrones.
5. Evaluar el modelo de minerı́a de datos planteado.
1.4. Justificación
Se necesitó extraer las variables del SCADA, con el fin de almacenarlos en una
base de datos, para aplicar minerı́a de datos.
Aplicar técnicas de minerı́a de datos en la industria de energı́a eléctrica es re-
lativamente nueva para EGEMSA; ya que como su nombre lo indica, escavaremos los
datos con el objetivo de encontrar patrones de comportamiento que nos den información
interesante y relevante que ayude a la toma de decisiones para la empresa.
La minerı́a de datos temporal es una rama de la minerı́a de datos que nos ayudó
a encontrar conocimiento oculto en las series de tiempo estudiadas.
1.5. Delimitación de estudio
1.5.1. Delimitación Espacial
El estudio se realizó para la empresa EGEMSA, ubicada en la distrito de San-
tiago del departamento Cusco; si bien se puede aplicar a otras Hidroeléctricas; pero la
investigación esta exclusivamente orientado a esta empresa.
1.5.2. Delimitación Temporal
El periodo de estudio de las variables es desde Enero 2015 a Diciembre 2018.
4
1.6. Método
1.6.1. Alcance
El presente trabajo pertenece a una Investigación Descriptiva. Nos ayudó a ex-
plorar los temas relacionados a Minerı́a de Datos y las diferentes Técnicas de Minerı́a
de Datos que se adecuaron a la investigación y busca especificar caracterı́sticas y ras-
gos importantes de los fenómenos que se analizan, describe tendencias de un grupo o
población. (Hernández Sampieri et al., 2010, pág. 149).
El desarrollo del presente proyecto se basa en la metodologı́a CRISP-DM (Cross
Industry Standard Process for Data Mining), es una de las metodologı́as más utilizadas
para la elaboración de proyectos de Minerı́a de Datos. La fases de esta metodologı́a
que se siguió son las siguientes:
Fase 1: Comprensión del negocio. Es la fase más importante porque tiene la
capacidad de convertir el conocimiento adquirido del negocio en un problema de
Minerı́a de Datos.
Fase 2: Comprensión de los datos. Antes de elegir las técnicas adecuadas, se debe
conocer las caracterı́sticas de las variables más prometedoras y encontrar atı́picos.
Fase 3: Preparación de los datos. Se realiza la recolección inicial de los datos,
luego se seleccionan las variables a estudiar y se solucionan las atipicidades.
Fase 4: Modelado. Se eligen las técnicas más apropiadas y se diseña un proceso
de modelado.
Fase 5: Evaluación. En esta fase se evaluá los resultados.
Fase 6: Despliegue. Es la entrega de resultados y recomendaciones finales a la
empresa.
1.6.2. Diseño
El trabajo de tesis es una investigación no experimental; porque no manipulamos
deliberadamente las variables, solo se estudia y observa fenómenos tal y como se dan
en su contexto, para el posterior análisis (Hernández Sampieri et al., 2010, pág. 149).
5
1.7. Limitaciones
No se tomó en cuenta todas las variables de generación y distribución de energı́a
eléctrica; sino se identificó las más relevantes con ayuda del personal técnico;
las cuales son: Potencia activa total, Caudal del rı́o Vilcanota, Caudal túnel de
aducción, Demanda y Costo marginal de energı́a eléctrica.
Los datos que se cargaron de los cuadernos de registro de eventos y hojas de
Excel, se halló información errónea, redundante, negativos, no continua.
Las técnicas que se utilizaron dependieron de las caracterı́sticas de las variables.
6
Capı́tulo 2
Marco Teórico
2.1. Antecedentes
2.1.1. Antecedentes Internacionales
Autor: Galán V.; (2015), “Aplicación de la metodologı́a CRIS-DM a un
proyecto de minerı́a de datos en el entorno universitario”, Universidad Carlos
III de Madrid, España.
Importancia: Esta tesis fue de mucha ayuda para aplicar de la Metodologı́a
CRISP-DM en nuestro proyecto, explica en su informe de forma clara y concisa, la
manera de usar cada una de las fases.
Autor: Gonzáles M. y Soto C.; (2013), “Minerı́a de datos para series tem-
porales”, Universidad Central Mara Abreu de las Villas, Escuela de Postgrado, Cuba.
Importancia: Esta tesis fue la que más nos aporto en los temas y conceptos de:
series de tiempo, aplicación y uso de técnicas de minerı́a de datos y Minerı́a de Datos
Temporales.
Autor: Infante J. y Valladares E.; (2003), “Integración del Sistema de Te-
lecontrol SCADA a la Red Informática de Energı́a San Juan”, Energı́a San
Juan, Argentina.
Importancia: Este trabajo de investigación nos ayudó a entender el funciona-
miento y acceso a datos de sistemas SCADA de manera segura, sin vulnerar su red.
Autor: Martı́nes C. V.; (2012), “Aplicación de Técnicas de Minerı́a de
Datos para mejorar el proceso de control de gestión en ENTEL”, Universidad
de Chile, Santiago - Chile.
7
Importancia: Este trabajo nos ayudó en el tema de uso y configuración de
técnicas de clustering. Observamos la forma y manera de adaptar los valores antes de
modelar con esta técnicas.
2.1.2. Antecedentes Nacionales
Autor: Fernandez E. y Bayona F.; (2008), “Aplicación de Técnicas de Data
Mining para la búsqueda de información en la base de datos Logı́stica de la
UNSAAC”, UNSAAC, Cusco - Perú.
Importancia: Esta tesis nos da apoyo en la parte de Teorı́a de Minerı́a de
datos.
Autor: Chaparro E., (2008) “Desarrollo de un Sistema de Supervisión,
Control y Adquisición de Datos en Tiempo Real con el Apoyo de Herra-
mientas de Inteligencia de Negocios”, UNSAAC, Cusco - Perú.
Importancia: Esta tesis nos da apoyo en la parte de acceso, teorı́a y configu-
ración de sistemas SCADA.
2.2. Bases Teóricas
2.2.1. Sistema SCADA
Se da el nombre SCADA (Supervisory, Control And Data Acquisition o Control
con Supervisión y Adquisición de Datos) a cualquier software que permita el acceso a
datos remotos de un proceso, y permita utilizando las herramientas de comunicación
necesarias en cada caso el control del mismo (ver figura 2.1).
No se trata de un sistema de control, sino de un software de monitorización o
supervisión, que realiza la tarea de interface entre los niveles de control (PLC) y los de
gestión a un nivel superior (Rodriguez Penin, 2007, pág. 19).
Las funciones principales de los sistemas SCADA son:
Adquisición de datos: para recoger, procesar y almacenar la información recibida.
Supervisión: para observar desde un monitor la evolución de las variables de
control.
Control: para modificar la evolución del proceso, actuando bien sobre los regula-
dores autónomos básicos.
8
Figura 2.1: Esquema de un Sistema SCADA
Fuente: (Rodriguez Penin, 2007, pág. 33)
2.2.2. Tecnologı́as de comunicación entre aplicaciones
Uno de los problemas más difı́ciles de solucionar en el campo industrial es el
de la integración de sistemas. Muchos sistemas de control y monitorización tienen sus
propias ideas de comunicación, y deben de ponerse de acuerdo y trabajar en armonı́a
para permitir la máxima eficiencia y proporcionar un acceso seguro a la información. A
continuación se detallan las tecnologı́as utilizadas por el sistema SCADA en EGEMSA.
2.2.2.1. OLE
Object Linking and Embedding (OLE). La Vinculación e Inserción de Objetos
se diseñó para poder gestionar documentos por elementos heterogéneos. Es decir, un
documento de texto, por ejemplo, podrı́a contener además otro tipo de datos: imágenes,
sonido o video. El mejor ejemplo de la realización de OLE es el escritorio de Windows.
Por objeto se entiende cualquier elemento manipulable por parte del usuario,
dentro de una aplicación de Windows. Un objeto OLE puede insertarse o vincularse.
La diferencia estriba en la manera en que el objeto es almacenado:
Un objeto insertado (embedded ) forma parte fı́sica del documento, siendo el re-
sultado un único archivo. Se trata de una copia de la imagen original, que se
integra en el documento.
Un objeto vinculado (linked ) reside en un fichero propio creado por la aplicación
(en el documento creado hay una referencia, o vı́nculo, al objeto en cuestión,
almacenado aparte)
OLE 1.0 aparece con las versiones 2 y 3 de Microsoft Windows. Por aquel enton-
9
ces los ordenadores aún tenı́an que superar la barrera de los 640Kb de memoria RAM,
y lo de hacer funcionar más de una cosa al mismo tiempo aún daba dolores de cabeza.
OLE 2.0 mantenı́a la idea del documento tipo cajón de sastre; formatos diferen-
tes de datos dentro de un mismo contenedor. Aquı́ apareció por primera vez el concep-
to de Objetos Comunes, creándose un estándar para los objetos OLE. El modelo de
Componentes de Objetos (Component Object Model , COM) permite definir cualquier
elemento de campo mediante sus propiedades y permite proporcionar interoperabilidad
con otros tipos de componentes y servicios basados en COM.
OLE 2.0 presentó un estándar para el tratamiento de objetos de esta manera,
los integradores de software no necesitan conocer las aplicaciones destinatarias de sus
objetos.
La tecnologı́a ActiveX es la tercera versión de OLE y facilita la tarea de imple-
mentar servicios en redes de comunicaciones y controles en servicios Web. Los controles
ActiveX consisten en programas que realizan tareas comunes en entornos Windows o
Macintosh. En funcionamiento, un objeto ActiveX es lo que conoce por Librerı́a de
Enlaces Dinámicos (Dynamic Link Library,DLL).
La versión que soporta los datos distribuidos en red reciben el nombre Modelo de
Objetos de Componentes Distribuido (Distributed Component Object Model , DCOM).
Con este protocolo, un control ActiveX puede invocar funciones ubicadas dentro del
sistema o en cualquier punto de la red. OLE proporciona un entorno consistente que
permite compartir el código, como los objetos OLE no tienen que estar escritos en el
mismo lenguaje necesariamente, ni tienen que saber dónde serán utilizados, es evidente
que su interfaz debe ser estándar para poder ser conectada a otras aplicaciones. El
código fuente de un objeto ya no es necesario porque al convertirlo en control ActiveX,
el código fuente se compila, quedando en forma binaria, accesible a cualquier aplicación
que pueda ser compatible con ActiveX. Bastará con establecer los enlaces entre las
variables de nuestra aplicación y las del control ActiveX (Rodriguez Penin, 2007, pág.
66).
2.2.2.2. OPC
OLE for Process Control (OPC), OLE para el Control de Procesos es una tec-
nologı́a diseñada para comunicar aplicaciones. Es un estándar para la interconexión de
sistemas basados en el SO Windows y hardware de control de procesos.
La ISA (International Standards Association) hace el primer anuncio de OPC en
1995. Las especificaciones OPC se mantienen a través de la OPC Foundation. Actual-
10
mente, OPC Foundation agrupa a compañı́as de software, hardware y usuarios finales
de todo el mundo.
Es un estándar abierto que permite un método fiable para acceder a los datos
desde aparatos de campo. El método de acceso es el mismo sin depender del tipo y
origen de los datos; de esa manera, los usuarios finales son libres de escoger el softwa-
re y hardware que satisfaga sus requerimiento de producción sin preocuparse por la
disponibilidad de software de control especı́fico.
OPC permite definir una interfaz estandarizada que, mediante el desarrollo de
aplicaciones del tipo Cliente-Servidor, hace posible la comunicación entre elementos
que cumplan el estándar.
Permite arquitecturas de varios clientes y servidores, accediendo a los datos de
forma local o remota y gestionando la información en tiempo real (Rodriguez Penin,
2007, pág. 66).
2.2.2.3. Tecnologı́a OPC
OPC se ha definido a partir de la tecnologı́a de incrustación de datos de Micro-
soft:
OLE (Object Linking and Embedding) permite el acceso a los datos de equipos
interconectado mediante LAN o WAN.
COM (Component Object Model ) permite definir cualquier elemento de campo
mediante sus propiedades bajo el aspecto de una interfase.
OPC Server permite el acceso local (COM) y remoto (DCOM, Distributed
COM). El uso de la programación orientada a objetos de OLE (OOPO) proporciona
toda serie de ventajas: permite desarrollar modelos fáciles de configurar y modificar,
permite modificar un objeto sin afectar al usuario, permite combinar y reutilizar códi-
gos para crear objetos nuevos, y es posible definirlos de manera que recojan datos de
manera selectiva (alarmas, históricos, calibración, ...)(Rodriguez Penin, 2007, pág. 68).
2.2.2.4. Cliente y Servidor OPC
Los componentes OPC se pueden clasificar en dos categorı́as:
OPC client: Es una aplicación que solo utiliza datos, tal como un paquete
SCADA, un cliente se relaciona con un servidor de una manera bien definida, de
11
este modo cualquier cliente OPC se puede comunicar con cualquier servidor OPC
sin importar el tipo de elemento que recoge esos datos.
OPC server (Servidor OPC): Es una aplicación que permite el acceso a
elementos de un sistema automatizado (datos de campo) desde otras aplicaciones
(clientes OPC).
En la figura 2.2 se aprecia las componentes OPC.
Figura 2.2: Estructura Cliente - Servidor OPC.
Fuente: (Rodriguez Penin, 2007, pág. 69).
2.2.3. Base de datos
Una base de datos es una colección de datos relacionados. Con la palabra datos
nos referimos a los hechos (datos) conocidos que se pueden grabar y que tienen un
significado implı́cito (Elmasri and Navathe, 2007, pág. 4), creados con un sistema ma-
nejador de base de datos. El contenido de una base de datos engloba a la información
concerniente (almacenadas en archivos) de una organización, de tal manera que los da-
tos estén disponibles para los usuarios. Una finalidad de las bases de datos es eliminar
la redundancia o al menos minimizar. Los tres componentes principales de un sistema
en base de datos son el hardware, el software DBMS y los datos a manejar, ası́ como
el personal encargado del sistema.
2.2.3.1. Sistema gestor de base de datos
Un Sistema gestor de base de datos (SGBD), consiste en una colección de datos
interrelacionados y un conjunto de programas para acceder a dichos datos. La colec-
ción de datos, normalmente denominada base de datos, contiene información relevante
para una empresa. El objetivo principal de un SGBD es proporcionar una forma de
almacenar y recuperar la información de una base de datos de manera que sea tanto
práctica como eficiente. (Silberschatz et al., 2006).
12
2.2.3.2. Base de datos temporales
Es un tipo de base de datos que almacenan datos que influyen muchos atributos
relacionados con el tiempo o en el que éste es muy relevante. Estos atributos pueden
referirse a distintos instantes o intervalos temporales. En este tipo de bases de datos
las técnicas de minerı́a de datos pueden utilizarse para encontrar las caracterı́sticas de
la evolución o las tendencias del cambio de distintas medidas o valores de la base de
datos (Hernández Orallo et al., 2004, pág. 11).
Las bases de datos temporales son bases de datos que contienen información de
registros de tiempo. (Mitsa, 2010, pág. 2). El registro de tiempo se puede hacer de la
siguiente manera:
Con un tiempo válido, que es el tiempo que la información del elemento es
verdadera en el mundo real. Por ejemplo: El paciente ingresó en el hospital a las
5:15a.m., 3 de marzo de 2005.
Con un tiempo de transacción, que es el momento en que se ingresa la información
del elemento en la base de datos.
Bi-temporal, con un tiempo válido y un tiempo de transacción.
2.2.4. Minerı́a de Datos
La minerı́a de datos puede definirse inicialmente como un proceso de descubri-
miento de nuevas y significativas relaciones, patrones y tendencias al examinar grandes
cantidades de datos.
La disponibilidad de grandes volúmenes de información y el uso generalizado
de herramientas informáticas, ha transformado el análisis de datos orientado hacia
determinadas técnicas especializadas englobadas bajo el nombre de minerı́a de datos o
Data Mining (DM) (Pérez López and Santı́n González, 2008, pág. 1).
Data Mining consiste en un conjunto de metodologı́as estadı́sticas y compu-
tacionales que, junto a un enfoque desde las ciencias de la conducta, permite el análisis
de datos y la elaboración de modelos matemáticos descriptivos y predictivos de la
conducta del consumidor (Palma et al., 2009, pág. 43).
Se define la minerı́a de datos como el proceso de extraer conocimiento útil y
comprensible, previamente desconocido, desde grandes cantidades de datos almacena-
dos en distintos formatos. Es decir. la tarea fundamental de la minerı́a de datos es
encontrar modelos inteligibles a partir de datos. Para que este proceso sea efectivo
13
deberı́a ser automático o semiautomático (asistido) y el uso de patrones descubiertos
deberı́a ayudar a tomar decisiones más seguras que reporten, por lo tanto, algún bene-
ficio a la organización. El objetivo principal de la minerı́a de datos es convertir datos
en conocimiento. (Hernández Orallo et al., 2004, pág. 5).
2.2.4.1. Tipos de Variables
Se define variable a una caracterı́stica definida en una población, él que puede
tomar dos o más valores (cualidades o números). Las variables se clasifican en:
1. Variable Cualitativa: Es cuando sus posibles valores representan atributos o
cualidades. Si tales variables siguen un orden natural indicando intensidad cre-
ciente de realización entonces son llamadas cualitativas ordinales; caso con-
trario cuando no es posible establecer un orden se denomina cualitativas no-
minales.
2. Variable Cuantitativa: Es la caracterı́stica cuyos valores se expresan numérica-
mente y son divididas en discretas y continuas. Decimos variables cuantitativas
discretas por ser el resultado por conteo asumiendo en general valores enteros,
Las variables cuantitativas continuas asumen valores en los intervalos de los
números reales y generalmente proviene de una medida.
Observación: Los datos estudiados en este trabajo de investigación son del
tipo: Variable cuantitativa continua.
2.2.4.2. Clasificación de técnicas de Minerı́a de Datos
Técnicas predictivas: Las técnicas predictivas especifican el modelo para los
datos en base a un conocimiento teórico previo. El modelo supuesto para los datos
debe contrastarse después del proceso de minerı́a de datos antes de aceptarlo
como válido. Formalmente, la aplicación de todo modelo debe superar las fases
de identificación objetiva, estimación, diagnosis y predicción. En algunos casos,
el modelo se obtiene como mezcla del conocimiento obtenido antes y después
del Data Mining y también debe contrastarse antes de aceptarse como válido
(Pérez López and Santı́n González, 2008).
Los modelos predictivos o modelos supervisados pretenden estimar valores fu-
turos o desconocidos de variables de interés, se denominan variables objetivo o
dependientes, usando otras variable o campos de la base de datos, a las que se co-
noce como variables independientes o predictivas (Hernández Orallo et al., 2004,
pág. 12).
14
Técnicas descriptivas: Las técnicas descriptivas de minerı́a de datos, también
conocidas con el nombre de técnicas de descubrimiento del conocimiento, se uti-
lizan para la detección de patrones ocultos en bases de datos de gran tamaño.
Dichos patrones representan por si mismo información útil que puede ser utilizada
directamente en la toma de decisiones.
Los modelos descriptivos o no supervisadas, identifican patrones que explican o
resumen los datos, es decir, sirven para explorar las propiedades de los datos
examinados, no para predecir nuevos datos (Hernández Orallo et al., 2004, pág.
12).
En las técnicas descriptivas no se asigna ningún papel predeterminado a las va-
riables. No se supone la existencia de variables dependientes ni independientes y
tampoco se supone la existencia de un modelo previo para los datos. Los modelos
se crean automáticamente partiendo del reconocimiento de patrones (Pérez López
and Santı́n González, 2008, pág. 8).
A continuación se muestra una clasificación de las técnicas de Data Mining:
Figura 2.3: Clasificación de técnicas de Minerı́a de Datos
Fuente: (Pérez López and Santı́n González, 2008, pág. 9).
- Por lo tanto, esta investigación utiliza técnicas descriptivas.
15
2.2.4.3. Aplicación de la minerı́a de datos en procesos industriales
En el sector de la industria, los datos son importantes para alcanzar una buena
comprensión del negocio. La minerı́a de datos ayuda en la identificación de patrones en
las variables de proceso, posibilitan un mejor uso de los recursos, mejorando la calidad
del servicio. Las ventajas más importantes son:
Análisis multidimensional de datos.
Análisis de patrones.
Identificación de patrones inusuales, hábitos y tendencias.
Asociación multidimensional y análisis de patrones secuenciales.
Extracción de modelos sobre comportamiento de compuestos.
Detección de piezas con tablas, Modelos de calidad.
Predicción de fallos y accidente.
Extracción de modelos de coste.
Extracción de modelos de producción (Hernández Orallo et al., 2004, pág. 16).
2.2.5. Clustering
El agrupamiento (clustering) es la tarea descriptiva por excelencia y consiste
en obtener grupos naturales a partir de los datos. Se habla de grupos y no de clases,
porque, a diferencia de la clasificación, en lugar de analizar datos etiquetados con una
clase, los analiza para generar esta etiqueta. Los datos son agrupados basándose en el
principio de maximizar la similitud entre los elementos de un grupo minimizando la
similitud entre los distintos grupos. Es decir, se forman grupos tales que los objetos de
un mismo grupo son muy similares entre sı́ y, al mismo tiempo, son muy diferentes a los
objetos de otro grupo. Al agrupamiento también se suele llamar segmentación, ya que
parte o segmenta los datos en grupos que pueden ser no disjuntos (Hernández Orallo
et al., 2004, pág. 26).
n o
Sea en conjunto δ = e : e ∈ E , el objetivo de esta tarea es obtener grupos o
conjuntos entre los elementos de δ, de tal manera que los elementos asignados al mismo
grupo sean similares. Lo importante del agrupamiento respecto a la clasificación es que
son precisamente los grupos y la pertenencia a los grupos lo que se quiere desterminar,
y apriori, no se sabe ni como son los grupos ni cuantos hay. Por ejemplo si reducimos
un conjunto de datos de miles de ejemplos a media docena de grupos, analizamos los
grupos formados, podemos entender mejor los datos originales y, en cierto modo, estos
16
grupos sirven como resumen de los datos originales(Hernández Orallo et al., 2004, pág.
142).
Las técnicas para agrupamiento: El concepto de distancia juega un papel muy
crucial, ya que individuos similares deberı́an ir a parar al mismo grupos.
}El objetivo de utilizar en el trabajo de investigación clustering es: agrupar los
patrones por su forma, para que ayude a interpretar conjuntamente con la estadı́stica
descriptiva los resultados. La técnica que utilizaremos es el Agrupamiento Jerárquico.~
2.2.5.1. Agrupamiento Jerarquico
El Agrupamiento Jerárquico (Hierarchical clustering) se basa en la construcción
de un árbol en que las hojas son los elementos del conjunto de ejemplos, y el resto de
nodos son subconjuntos de ejemplos que pueden ser utilizados como particionamiento
del espacio (dendograma). Esta estructura jerárquica permite generar varios agrupa-
mientos, dependiendo de lo compacta que se de la solución o del número de grupos a
generar, para ellos se elige un nivel en la jerarquı́a, se desprecian todos los descendientes
de los nodos del mismo nivel y superior al seleccionado, y las hojas del árbol resultante
definen el agrupamiento generado (Hernández Orallo et al., 2004, pág. 436).
Dependiendo de la manera de construir el árbol los métodos se dividen en:
Aglomerativos (agglomerative hierarchical clustering): El árbol se va constru-
yendo empezando por las hojas, hasta llegar a la raı́z (bottom-up). En un primer
momento cada ejemplo es a su vez un grupo, se va aglomerando los grupos para
formar conjuntos cada vez más numerosos, hasta llegar a la raı́z, que contiene
todos los ejemplos.
Divisivos: Se parte de la raı́z, que es un solo grupo conteniendo a todos los
ejemplos, y se van haciendo divisiones paulatinas hasta llegar a las hojas que
representa a la situación en que cada ejemplo es un grupo.
Los métodos aglomativos parten de dos principios fundamentales. La forma de
seleccionar los grupos a mezclar, y la manera de mezclarlos. El método más común es
elegir aquellos grupos cuya dstancia de enlace (link distance) sea menor. Una manera
de hacerlo es obligar a que cada grupo tenga un representante (centroide) que será
utilizado como elemento de referencia para el cálculo de distancias. La mezcla de grupos
consiste en hacer que todos los ejemplos de los grupos que se van a mezclar pasen a
ser miembros del nuevo grupo.
El método final queda como sigue:
17
1) Hacer que cada punto sea el representante de un grupo que solo contiene dicho
punto.
2) Calcular las distancias entre todos los grupos existentes dos a dos.
3) Elegir los dos grupos cuya distancia sea menor.
4) Mezclar los grupos elegidosn en el paso anterior.
o Si el representante
n de uno de los o
~ ~
grupos es el vector Ca = ca1 , ca2 , ..., can , y el otro grupo Cb = cb1 , cb2 , ..., cbn ,
si además el grupo a tiene j ejemplos y el grupo b tiene k ejemplos; el nuevo repre-
sentante se calculará mediante la expresión:
n o
~ = j.ca1 +k.cb1 j.ca2 +k.cb2 j.c +k.c
C j+k
, j+k , ..., anj+k bn
5) Si hay más de un grupo ir a 2.
Dependiendo de como se calcule la distancia de enlace (ı́ndices de agregación)
entre grupos se puede distinguir 4 métodos:
Enlace simple (single linkage): para el cálculo de la distancia no se utilizan re-
presenantes, sino que se calcula la distancia entre todos los puntos de dos grupos
y se toma como distancia entre grupos la menor.
Enlace completo (complete linkage): igual que el anterior, pero se toma como
distancia entre grupos la mayor de todas.
Enlace en la media (average linkage):Se calcula la distancia entre todos los po-
sibles pares formados por una observación del cluster A y una del cluster B. El
valor promedio de todas ellas se selecciona como la distancia entre los dos grupos.
Enlace de Ward: El conocido método Ward’s minimum variance es un caso par-
ticular en el que el objetivo es minimizar la suma total de varianza intra-cluster.
2.2.5.2. Validación de resultados para métodos jerárquicos
Las medidas de evaluación suelen depender del método utilizado, aunque suelen
ser en función de la cohesión de cada grupo, y de la separación entre grupos. La cohesión
y separación entre grupos se puede formalizar, por ejemplo, utilizando la distancia
media y al centro del grupo de los miembros de un grupo y la distancia media entre
grupos, respectivamente (Hernández Orallo et al., 2004, pág. 38,480).
Coeficiente de correlación cofenético: Los métodos jerárquicos imponen una
estructura sobre los datos y es necesario con frecuencia considerar si es aceptable
18
o si se introducen distorsiones inaceptables en las relaciones originales. El método
más usado para verificar este hecho, o sea, para ver la relación entre el dendograma
y la matriz de distancias original, es el coeficiente de correlación cofenético, el cual
es simplemente la correlación entre los n(n−1)2
elementos de la parte superior de
la matriz de proximidades observada y los correspondientes en la llamada matriz
cofenética, C, cuyos elementos, Cij , se definen como aquellos que determinan las
proximidades entre los elementos i y j cuando éstos se unen en el mismo clúster.
Ası́, si tras el empleo de varios procedimiento cluster distintos. éstos conducen a
soluciones parecidas, surge la pregunta de qué método elegiremos como definitivo.
La respuesta la da el coeficiente cofenético, ya que aquel método que tenga un
coeficiente cofenético más elevado será aquel que presente una menor distorsión en
las relaciones originales existentes entre los elementos en estudio y este coeficiente
vale 1 cuando ambas matrices son proporcionales (Efendiev et al., 2018).
Coeficiente de silueta: El coeficiente de silueta es una métrica para evaluar
la calidad de agrupamiento con algoritmos de clustering. El objetivo de silueta
es identificar cuál es el número óptimo de agrupamientos. En los algoritmos de
aprendizaje no supervisado, la cantidad de grupos puede ser un parámetro de
entrada del algoritmo o puede ser determinado automáticamente por el algoritmo.
El coeficiente de silueta es indicador del número ideal de clusters. Un valor
más alto de este ı́ndice indica un caso más deseable del número de clusters. El
coeficiente de silueta para una observación i se denota como s(i) y se define como:
b−a
s(i) =
max(a, b)
, donde a es el promedio de disimilitudes y b la distancia mı́nima a otro cluster.
Por lo tanto se calcula el coeficiente de silueta como el promedio de todos los s(i)
para todas las observaciones del conjunto de datos (Efendiev et al., 2018).
2.2.6. K medias
El algoritmo K medias (Kmeans) se trata de un método de agrupamiento por
vecindad en el que se parte de un número determinado de prototipos y de un conjunto
de ejemplos a agrupar, sin etiquetar. Es el método mas popular de los métodos de agru-
pamiento denominados por partición, en contraposición de los métodos jerárquicos.
La idea de K medias es situar a los prototipos o centros en el espacio, de forma que los
datos pertenecientes al mismo prototipo tengan caracterı́sticas similares.
Todo ejemplo nuevo, una vez que los prototipos han sido correctamente situados,
es comparado con éstos y asociado a aquél que sea el más próximo, en los términos de
19
una distancia previamente elegida. Normalmente se usa la distancia euclidiana.
Las regiones se definen minimizando la suma de las distancias cuadráticas entre
cada vector de entrada y el centro de su correspondiente clase, representado por el
prototipo correspondiente. El algoritmo puede seguir dos enfoques distintos: K medias
por lotes (batch) y K medias en lı́nea (om-line). El primero se aplica cuando todos
los datos de entrada están disponibles desde un principio, mientras que el segundo se
aplica cuando no se dispone de todos los datos desde el primer momento, sino que
pueden añadirse ejemplos adicionales más tarde (Hernández Orallo et al., 2004).
2.2.7. Minerı́a de datos temporal
Un dominio de investigación que está muy activo actualmente es el desarrollo
de técnicas de minerı́a de datos, que permitan trabajar con información que incluya
una componente temporal (Temporal Data Mining, TDM).
El objetivo de la TDM consiste fundamentalmente en la búsqueda y extracción
de conocimiento oculto y no trivial a partir de este tipo de investigación.
Data stream: flujo continuo y masivo de datos temporales de duración infinita.
Datos secuenciales: datos temporales ordenados pero sin noción concreta del
tiempo.
Serie temporal o serie de tiempo: datos obtenidos mediante medidas repetitivas
en unos tiempos determinados; muy común en proceso industriales, financieros,
empresariales, etc.
2.2.7.1. Series de tiempo
Las series de tiempo o series temporales, consiste en una serie de valores reales
medidos a intervalos de tiempo (Mitsa, 2010, pág. 3).
Las series de tiempo se utilizan para la explicación de fenómenos de distin-
tas disciplinas como: economı́a, fenómenos fı́sicos, procesos de control, entre muchas
(Chatfield, 2010, pág. 3).
Se define T como serie temporal, donde T es una colección de n observaciones
realizadas secuencialmente en el tiempo. T = X1 , X2 , ..., Xn , Xn ∈ R. Se define una
observación Xk como m caracterı́sticas que forman un vector m - dimensional:
XK = [Xk1 , Xk2 , ..., Xkm ]T , Xk ∈ R, k = 1, 2, ..., n
20
Las series temporales se componen de cuatro elementos:
Tendencia: la variación de la media en un determinado tiempo.
Ciclo: variación alrededor de la tendencia en un periodo fijo.
Estacionalidad: variación que se completa y repite año a año.
Fluctuaciones Irregulares: movimiento erráticos de una serie de tiempo que siguen
un patrón.
Figura 2.4: Serie temporal o serie de tiempo.
Fuente: Elaboración Propia.
2.2.7.2. Outliers
Son valores que no se ajustan al comportamiento general de los datos. Estos
datos pueden representar errores en los datos o pueden ser valores correctos que son
simplemente diferentes a los demás (Hernández Orallo et al., 2004, pág. 76).
La detección de valores erróneos en atributos numéricos. Esta suele empezar
por buscar valores anómalos, atı́picos o extremos, también llamados datos aislados,
exteriores o periféricos. Se pueden tratar de la siguientes maneras:
Ignorar: dejar pasar.
Filtrar: eliminar o reemplazar la columna
Reemplazar: por nulo, máximos y mı́nimos, media, o por valores anteriores.
Discretizar: transformar un valor continuo a discreto
21
2.2.8. Tratamiento del Ruido
El ruido son distorsiones que se introducen a una señal, que no permiten observar
con claridad el comportamiento natural de la serie temporal.
Figura 2.5: Ejemplo de ruido
Fuente: Elaboración Propia.
El tratamiento del ruido para series temporales en especı́fico para el trabajo de
investigación, esta basada en medias móviles, las más utilizadas son:
2.2.8.1. Filtro Mediana
El filtro mediana (median), es un filtro no lineal que consiste en asignar a cada
punto el valor de la mediana de la muestra o ancho de ventana a analizar, normalmente
este filtro es para eliminar el ruido impulsivo y su representación matemática es la
siguiente:
muestra − 1
k=
2
f (x) = ymed = median {f (x − k), ..., f (x − 1), f (x), f (x + 1), ..., f (x + k)}
2.2.8.2. Filtro Media
El filtro media (mean), es un filtro lineal que consiste en asignar a cada punto
el valor de la media o el promedio de la muestra o ancho de ventana a analizar, gene-
22
ralmente genera valores que no se encuentran en la serie temporal y su representación
matemática es la siguiente:
n = muestra
n−1
k=
2
k+k
1 X xx−k + ... + xx−1 + xx + xx+1 + ... + xx+k
f (x) = X = xi =
n i=x−k n
2.2.8.3. Filtro Gaussiano
El filtro Gaussiano o filtro de gauss, es un filtro lineal que consiste en asignar
a cada punto el valor de la media ponderada con respecto a pesos de una función
gaussiana, determinada por el rango o ancho de ventana a analizar, su representación
matemática es la siguiente:
n = muestra, m = longitud − de − la − serie − temporal
Determinación de los pesos por la función gaussiana:
ti = i, ∀i = 1, 2, 3, ..., n
−(ti −t)2
1
gi = √ .e 2.σ(t)2
2π.σ(t)
gi
wi = Pn
j=1 gj
Determinación del promedio ponderado con pesos de gauss:
n−1
k=
2
xx−k w1 + xx−k+1 w2 + ... + xx+k wn
ux = , ∀x = 1, 2, 3, ..., m
w1 + w2 + ... + wn
2.2.9. Tareas de la minerı́a de datos para series temporales
En los últimos años ha ocurrido un incremento de las investigaciones relacio-
nadas con la minerı́a de datos para series temporales. La diversidad de los trabajos
abarcan la mayorı́a de las lı́neas que sigue la minerı́a de datos actualmente (Fu, 2010).
Para facilitar su análisis, varios autores las clasifican estas tareas en diferentes campos:
23
Representación o indexado. Reducción de su dimensión.
Clasificación. Asocia datos entre grupos predefinidos o clases.
Medidas de similitud. Calcula la diferencia entre cada punto de datos de la serie.
Emparejamiento de subsecuencias. Hallar las subsecuencias en la serie de tiempo.
Segmentación. Proceso de discretización.
Visualización. Mecanismo para presentar la serie de tiempo procesada.
2.2.9.1. Ancho de ventana
Ancho de ventana, se define como el número de observaciones consecutivas en
una serie temporal. Este término se usa para:
El número de observaciones que intervienen en el suavizado.
Número de observaciones que contiene un subpatrón o patrón.
2.2.9.2. Cruces por cero
También conocido en Cálculo como punto crı́tico, el punto crı́tico de una
función de una variable real es cualquier valor en el dominio en donde la función no es
diferenciable, o cuando la derivada es 0 de una función de una variable real.
En series de tiempo los cruces por cero se definen como los máximos y mı́nimos
de la señal.
Figura 2.6: Cruces por Cero, se puede identificar los cruces por cero de una serie temporal
Fuente: Elaboración Propia.
24
2.2.10. Segmentación de series de tiempo
La segmentación puede ser vista tanto como un paso de pre procesamiento para
numerosas tareas de la minerı́a de datos o como una técnica de análisis de tendencia.
También puede ser considerara como un proceso de discretización. Una ventana de
longitud fija es usada para segmentar la serie de tiempo en subsecuencias y de esta forma
representarla mediante patrones primitivos. Este proceso depende fundamentalmente
de la elección del ancho de ventana.
La representación de datos de manera eficiente para diversas investigaciones,
el objetivo de la representación de la ST es la búsqueda de casos de datos aislados.
Una forma de obtener dichos casos es a través de la segmentación de ST, la cual es la
descomposición de esta en segmentos relevantes.
La técnica de Segmentación Lineal, permite aproximarse al mismo razona-
miento que emplearı́a un experto de una planta industrial, que busca visualmente com-
portamientos repetitivos dentro de las series temporales de históricos de un proceso.
Este trata de simular el funcionamiento que tiene el cerebro, cuando determina si dos
tramos de la serie temporal son similares o no. Es por ello, que se utiliza esta técnica
considerando los cruces por cero para identificar los tramos (Mitsa, 2010).
2.2.10.1. Subpatrones
Dos cruces por cero consecutivos determinan un subpatrón, los subpatrones o
eventos más importantes son:
Evento incremental: Cuando un tramo de la serie temporal va de menos a mas.
n o n o
• Parámetros: w1 , w2 = Rango en X donde se encuentra la curva, h1 , h2
= Rango en y donde se encuentra la curva.
• Condiciones: ak es un mı́nimo, al es un máximo, entonces se debe cumplir
w1 ≤ (l − k) ≤ w2 y h1 ≤ al − ak ≤ h2 .
Evento decremental: Cuando un tramo de la serie temporal va de más a menos.
n o n o
• Parámetros: w1 , w2 = Rango en X donde se encuentra la curva, h1 , h2
= Rango en y donde se encuentra la curva.
• Condiciones: ak es un máximo, al es un mı́nimo, entonces se debe cumplir
w1 ≤ (l − k) ≤ w2 y h1 ≤ ak − al ≤ h2 .
25
Figura 2.7: Evento Incremento
Fuente: (Martinez et al., 2014).
Figura 2.8: Evento Decremento
Fuente: (Martinez et al., 2014).
Evento horizontal: Cuando un tramo tiene un comportamiento constante, son
incremento o decremento relativamente pequeños según sea el caso de estudio.
n o n o
• Parámetros: w1 , w2 = Rango en X donde se encuentra la curva, 0, h2
= Rango en y donde se encuentra la curva.
• Condiciones: ak Y al son puntos importantes, entonces se debe cumplir w1 ≤
(l − k) ≤ w2 y |al − ak | ≤ h2 .
Figura 2.9: Evento Horizontal
Fuente: (Martinez et al., 2014)
26
2.2.10.2. Patrones
Esta compuesto por 2 o más subpatronees primitivos consecutivos. Por ejemplo
en la figura se aprecia dos patrones distintos.
Figura 2.10: Ejemplo de patrones
Fuente: Elaboración Propia.
2.2.11. Emparejamiento de Secuencias
Dadas una secuencia de entrada y una serie de tiempo de mayor longitud, la
tarea en este caso es hallar las subsecuencias en la serie de tiempo que se empareje
mejor con la secuencia dada. Proponen el uso de ventanas móviles y se desarrolla un
algoritmo de ordenamiento de secuencias para reducir el número de las mismas a las
cuales se necesita tener acceso durante el emparejamiento.
Para lograr el emparejamiento se utiliza la herramienta grep.
2.2.11.1. Expresiones regulares
En el área de la programación, las expresiones regulares son un método
por medio del cual se pueden realizar búsquedas dentro de cadenas de caracteres. Sin
importar la amplitud de la búsqueda requerida de un patrón definido de caracteres, las
expresiones regulares proporcionan una solución practica al problema.
Motores para el programador: permiten automatizar el proceso de búsqueda
de modo que sea posible utilizarlo muchas veces para un propósito especı́fico. Uno de
ellos es Perl: Es el lenguaje que hizo crecer a las expresiones regulares en el ámbito de
la programación hasta llegar a lo que son hoy en dı́a.
Expresiones Regulares en R: Una expresión regular es un patrón que des-
cribe un conjunto de cadenas. Se utilizan dos tipos de expresiones regulares en R,
27
expresiones regulares extendidas (valor predeterminado) y expresiones regulares simi-
lares a Perl utilizadas por perl=TRUE (más detalle https://www.rdocumentation.
org/packages/base/versions/3.5.2/topics/regex).
’grep’ en R: grep busca coincidencias con el argumento pattern dentro de cada
elemento de un vector de caracteres.
2.2.12. El proceso de extracción del conocimiento
La extracción o descubrimiento de conocimiento en base de datos (Knowledge
Discovery in Databases, KDD), se utiliza el término KDD para referirse a un proceso
que consta de una serie de fases, mientras que la minerı́a de datos es sólo una de
estas fases. Se define KDD como el proceso no trivial de identificar patrones válidos,
novedosos, potencialmente útiles y, en última instancia, comprensibles a partir de los
datos. KDD es un proceso complejo que incluye no sólo la obtención de los modelos o
patrones, sino también la evaluación y posible interpretación de los mismos, tal como
se refleja en la figura 2.11.
Figura 2.11: Proceso KDD
Fuente: (Hernández Orallo et al., 2004, pág. 13)
El KDD es el proceso global de descubrir conocimiento útil desde las bases de
datos; mientras que la minerı́a de datos se refiere a la aplicación de los métodos de
aprendizaje y estadı́sticos para la obtención de patrones y modelos.
2.2.13. Metodologı́a CRISP-DM para el proceso de minerı́a
de datos
Proceso estándar de la industria cruzada para la minerı́a de datos (Cross In-
dustry Standard Process for Data Mining, CRISP-DM), es un método probado para
orientar trabajos de minerı́a de datos.
CRISP-DM, se encuentra dentro de las metodologı́as más utilizadas para la
elaboración de proyectos de minerı́a de datos, está basado en actividades ordenadas en
seis fases que recorren todo el proceso de minerı́a de datos, desde la definición de los
objetivos del negocio que se pretende obtener, hasta la vigilancia y el mantenimiento
del modelo que se proponga e implemente (Chapman et al., 2000).
28
El ciclo de vida del modelo contiene seis fases con flechas que indican las de-
pendencias más importantes y frecuentes entre fases. La secuencia de las fases no es
estricta (figura 2.12). La mayorı́a de proyectos avanzan y retroceden entre fases si es
necesario.
Figura 2.12: Fases de la Metodologı́a CRISP-DM
Fuente: (Chapman et al., 2000, pág. 10)
A continuación se describen en mayor detalle las fases de la metodologı́a CRISP-
DM.
2.2.13.1. Fase 1: Comprensión del negocio
La fase de comprensión del negocio es probablemente la más importante y aglu-
tina las tareas de comprensión de los objetivos y requisitos del proyecto desde una
perspectiva empresarial o institucional, con el fin de convertirlos en objetivos técnicos
y en un plan de proyecto. Sin lograr comprender dichos objetivos, ningún algoritmo
por muy sofisticado que sea, permitirá obtener resultados fiables. Para obtener el mejor
provecho de Minerı́a de Datos, es necesario entender de la manera más completa el pro-
blema que se desea resolver, esto permitirá recolectar los datos correctos e interpretar
correctamente los resultados. En esta fase, es muy importante la capacidad de poder
convertir el conocimiento adquirido del negocio, en un problema de Minerı́a de Datos y
cuya meta sea el alcanzar los objetivos del negocio (figura 2.13). A continuación, vemos
una descripción de cada una de las principales tareas que componen esta fase.
Determinar los objetivos del negocio. Esta es la primera tarea a desarrollar
29
Figura 2.13: Fase 1 Comprensión del Negocio
Fuente: (Chapman et al., 2000, pág. 13)
y tiene como metas, determinar cuál es el problema que se desea resolver, por
qué la necesidad de utilizar Data Mining y definir los criterios de éxito.
Evaluación de la situación. En esta tarea se debe calificar el estado de la
situación antes de iniciar el proceso de DM.
Determinación de los objetivos de DM. Esta tarea tiene como objetivo
representar los objetivos del negocio en términos de las metas del proyecto de
DM.
Producción de un plan del proyecto. Esta última tarea de la primera fase de
CRISP-DM, tiene como meta desarrollar un plan para el proyecto, que describa
los pasos a seguir y las técnicas a emplear en cada paso.
2.2.13.2. Fase 2: Comprensión de los datos
Esta segunda fase comprende la recolección inicial de los datos con el objetivo
de establecer un primer contacto con el problema, familiarizarse con ellos, identificar
su calidad y establecer las relaciones más evidentes que permitan definir las primeras
hipótesis. Esta fase junto a las dos siguientes fases son las que demandan el mayor
esfuerzo y tiempo en un proyecto de minerı́a de datos. Por lo general si la organización
cuenta con una base de datos corporativa, es deseable crear una nueva base de datos
especı́fica para el proyecto de DM, ya que durante el desarrollo del proyecto es posible
30
que se generen frecuentes y abundantes accesos a la base de datos con el fin de realizar
consultas y probablemente se produzcan modificaciones, lo cual podrı́a generar muchos
problemas (figura 2.14).
Figura 2.14: Fase 2 Comprensión de los Datos
Fuente: (Chapman et al., 2000, pág. 17)
Recolectar los datos iniciales. Es la recolección de los datos iniciales y su
adecuación para el futuro procesamiento.
Descripción de los datos. Después de adquiridos los datos iniciales, estos deben
ser descritos. Este proceso implica establecer volúmenes de datos (número de
registros y campos por registro), su identificación, el significado de cada campo
y la descripción del formato inicial.
Exploración de los datos. Una vez realizada la descripción de los datos, se pro-
cede a su exploración, cuyo fin es encontrar una estructura general para los datos.
Esto implica la aplicación de pruebas estadı́sticas básicas que revelen propieda-
des en los datos recién adquiridos, se crean tablas de frecuencia y se construyen
gráficos de distribución. La salida de esta tarea es un informe de exploración de
los datos.
Verificar la calidad de los datos. En esta tarea se efectúan verificaciones
sobre los datos para determinar la consistencia de los valores individuales de los
campos, la cantidad y distribución de los valores nulos, y para encontrar valores
fuera de rango, los cuales pueden constituirse en ruido para el proceso. .
31
2.2.13.3. Fase 3: Preparación de los datos
En esta fase y una vez efectuada la recolección inicial de los datos, se procede a
su preparación para adaptarlos a las técnicas de minerı́a de datos que se van a utilizar
posteriormente, éstas pueden ser técnicas de visualización de datos, de búsqueda de re-
laciones entre variables u otras medidas para explotación de los datos. La preparación
de los datos incluye las tareas generales de selección de datos a los que se va a apli-
car una determinada técnica de modelado, limpieza de datos, generación de variables
adicionales, integración de diferentes orı́genes de datos y cambios de formato (figura
2.15).
Esta fase se encuentra relacionada con la fase de modelado, ya que en función
de la técnica de modelado elegida, los datos requieren ser procesados de una manera o
de otra, por esta razón las fases de preparación y de modelado interactúan de forma
permanente.
Figura 2.15: Fase 3 Preparación de los Datos
Fuente: (Chapman et al., 2000, pág. 20)
32
Seleccionar los datos. En esta etapa se selecciona un subconjunto de los datos
adquiridos anteriormente apoyándose en criterios previamente definidos en las
fases anteriores como la calidad de los datos en cuanto a su completitud, correc-
ción de los datos y limitaciones en el volumen o en los tipos de datos que están
relacionados con las técnicas de minerı́a de datos seleccionadas.
Limpiar los datos. Esta tarea complementa a la anterior y es una de las que
más tiempo y esfuerzo consume debido a la diversidad de técnicas que pueden
aplicarse para optimizar la calidad de los datos a objeto de prepararlos para la
fase de modelación. Algunas de las técnicas a utilizar para este propósito son la
normalización de los datos, discretización de campos numéricos, tratamiento de
valores faltantes, reducción del volumen de datos, etc.
Construir los datos. Esta tarea incluye las operaciones de preparación de los
datos tales como la generación de nuevos atributos a partir de atributos ya exis-
tentes, integración de nuevos registros o transformación de valores para atributos
existentes.
Integrar los datos. La integración de los datos implica la creación de nuevas
estructuras a partir de los datos seleccionados, por ejemplo, generación de nuevos
campos a partir de otros existentes, creación de nuevos registros, fusión de tablas
campos o nuevas tablas donde se resumen caracterı́sticas de múltiples registros o
de otros campos en nuevas tablas de resumen.
Formateo de los datos. Esta tarea consiste principalmente en la realización
de transformaciones sintácticas de los datos sin modificar su significado de tal
forma que se permita y se facilite utilizar alguna técnica de minerı́a de datos en
concreto.
2.2.13.4. Fase 4: Modelado
En esta fase de CRISP-DM se seleccionan las técnicas de modelado más apro-
piadas para el proyecto de minerı́a de datos especı́fico. Las técnicas a utilizar en esta
fase se eligen en función de los siguientes criterios:
Ser apropiada para el problema.
Disponer de los datos adecuados.
Cumplir los requisitos del problema.
Tiempo adecuado para obtener un modelo.
Conocimiento de la técnica.
33
Previamente al modelado de los datos se debe determinar un método de evalua-
ción de los modelos que permita establecer el grado de adecuación de cada uno de ellos.
Después de concluir estas tareas genéricas se procede a la generación y evaluación del
modelo. Los parámetros utilizados en la generación del modelo dependen de las carac-
terı́sticas de los datos y de las caracterı́sticas de precisión que se quieran lograr con el
modelo (figura 2.16).
Figura 2.16: Fase 4 Modelado
Fuente: (Chapman et al., 2000, pág. 23)
Escoger la técnica de modelado. Esta tarea consiste en la selección de la
técnica de minerı́a de datos más apropiada al tipo de problema que se quiere
resolver. Para esta selección, se debe considerar el objetivo principal del proyecto
y la relación con las herramientas de minerı́a de datos existentes.
Generar el plan de prueba. Se debe generar un procedimiento destinado a
probar la calidad y validez del modelo elegido una vez que éste esté construido.
Construir el modelo. A continuación se ejecuta la técnica seleccionada sobre los
datos previamente preparados para generar uno o más modelos. Todas las técnicas
de modelado tienen un conjunto de parámetros que determinan las caracterı́sticas
del modelo a generar.
Evaluar el modelo. En esta última tarea de esta fase de modelado los ingenie-
ros de DM interpretan los modelos de acuerdo al conocimiento preexistente del
dominio y los criterios de éxito preestablecidos.
34
2.2.13.5. Fase 5: Evaluación
En esta fase se evalúa el modelo, teniendo en cuenta el cumplimiento de los
criterios de éxito del problema. Debe considerarse además que la fiabilidad calculada
para el modelo se aplica solamente para los datos sobre los que se realizó el análisis.
Es preciso revisar el proceso, teniendo en cuenta los resultados obtenidos, para poder
repetir algún paso anterior, en el que se pueda haber cometido algún error. Considerar
que se pueden emplear múltiples herramientas para la interpretación de los resulta-
dos (figura 2.17). Si el modelo generado es válido en función de los criterios de éxito
establecidos en la fase anterior, se procede a la explotación del modelo.
Figura 2.17: Fase 5 Evaluación
Fuente: (Chapman et al., 2000, pág. 26)
Evaluar los resultados. En los pasos de evaluación anteriores se trataron fac-
tores tales como la exactitud y generalidad del modelo generado. Esta tarea
involucra la evaluación del modelo en relación a los objetivos del negocio y busca
determinar si hay alguna razón de negocio para la cual el modelo sea deficien-
te, o si es aconsejable probar el modelo en un problema real si el tiempo y las
restricciones lo permiten.
Revisar el proceso. Este proceso se refiere a calificar al proceso entero de
minerı́a de datos a objeto de identificar elementos que pudieran ser mejorados.
Determinar los próximos pasos. Si se ha determinado que las fases hasta
este momento han generado resultados satisfactorios podrı́a pasarse a la siguiente
fase, en caso contrario podrı́a decidirse por hacer otra iteración desde la fase de
preparación de los datos o de modelado con distintos parámetros.
35
2.2.13.6. Fase 6: Despliegue o implantación
En esta fase, y una vez que el modelo ha sido construido y validado, se transforma
el conocimiento obtenido en acciones dentro del proceso de negocio, esto puede hacerse
por ejemplo cuando el analista recomienda acciones basadas en la observación del
modelo y sus resultados, o por ejemplo aplicando el modelo a diferentes conjuntos de
datos o como parte del proceso (en análisis de riesgo de créditos, detección de fraudes,
etc.). Generalmente un proyecto de minerı́a de datos no concluye en la implantación del
modelo, ya que se deben documentar y presentar los resultados de manera comprensible
para el usuario con el objetivo de lograr un incremento del conocimiento. Por otra parte,
en la fase de explotación se debe asegurar el mantenimiento de la aplicación y la posible
difusión de los resultados (figura 2.18).
Figura 2.18: Fase 6 Despliegue o Implantación
Fuente: (Chapman et al., 2000, pág. 28)
Planear la implantación. Para implementar el resultado de la minerı́a de datos
en la organización, esta tarea toma los resultados de la evaluación y concluye una
estrategia para su implementación.
Planear la monitorización y mantenimiento. Si los modelos resultantes del
proceso de minerı́a de datos son implementados en el dominio del problema como
parte de la rutina diaria, es aconsejable preparar estrategias de monitorización y
mantenimiento para ser aplicadas sobre los modelos.
36
Producir el informe final. Es la conclusión del proyecto de minerı́a de datos
realizado. Dependiendo del plan de implementación, este informe puede ser sólo
un resumen de los puntos importantes del proyecto y la experiencia adquirida o
puede ser una presentación final que incluya y explique los resultados logrados
con el proyecto.
Revisar el proyecto. En esta tarea se evalúa que cosas se hicieron correctamente
y cuáles fueron incorrectas, ası́ como aquellos puntos que se podrı́an mejorar en
el proyecto.
2.3. Otros temas relacionados
2.3.1. Túnel de Red
También conocido como encapsulamiento. El tunneling es una tecnologı́a que
permite enviar datos en una red mediante otras conexiones de la red. El tunneling
funciona encapsulando el protocolo de red dentro de paquetes transportados por la
segunda red.
En otras palabras, en redes de computadora, un protocolo de tunneling o de
túnel permite a un usuario de la red acceder o proveer un servicio de red que la red
subyacente no soporta o no proporciona directamente.
2.3.2. Potencia Eléctrica
Es la relación de paso de energı́a de un flujo por unidad de tiempo; es decir,
la capacidad entregada o absorbida por un elemento en un momento determinado. La
unidad en el sistema Internacional de Unidades es el vatio o watt (W).
Existe el llamado triángulo de potencias, es la mejor forma de ver y comprender
de forma gráfica que es el factor de potencia y su estrecha relación con los demás
restantes tipos de potencia presentes en un circuito eléctrico de corriente alterna. A
continuación se detalla las 3 potencias existentes y el triángulo de potencias (figura
2.19).
Potencia Activa (P): Es la que se aprovecha como potencia útil. También se
llama potencia media, real o verdadera y es debida a los dispositivos resistivos.
Su unidad de medida en el vatio (W).
37
Potencia Reactiva (Q): Es la potencia que necesitan las bobinas y los conden-
sadores para generar campos magnéticos o eléctricos, pero que no se transforma
en trabajo efectivo, sino que fluctúa por la red entre el generador y los receptores.
Su unidad de medida es el voltamperio reactivo (Var).
Potencia Aparente (S): Es la potencia total consumida por la carga y es el
producto de los valores eficaces de tensión e intensidad. Se obtiene como la suma
vectorial de las potencias activa y reactiva y representa la ocupación total de
las instalaciones debidas a la conexión del receptor. Su unidad de medida es el
voltamperio (VA).
Figura 2.19: Triángulo de Potencias
Fuente:
http://www.mecfi.es/content/26140/Analisis_y_Tarificacion/Triangulo_Potencias.jpg
2.3.2.1. Turbina hidraúlica
Una turbina hidráulica es una máquina que transforma la energı́a de un fluido
(energı́a cinética y potencial), normalmente agua, en energı́a mecánica de rotación. La
energı́a del agua puede ser por la caı́da en un salto de agua o por la propia corriente
de agua.
Normalmente esta energı́a de rotación se utiliza para transformarla en energı́a
eléctrica, mediante el acoplamiento de la turbina a un generador en las centrales
hidráulicas. La caı́da del agua y/o el paso del agua por ella hace girar la turbina y
el eje de la turbina, que está acoplado al generador, hace que este último gire produ-
ciendo energı́a eléctrica. Las turbinas hidráulicas tienen un rendimiento muy alto que
incluso puede llegar al 90 %.
EGEMSA cuenta con 2 tipos de turbinas, las cuales son:
38
¬ Turbina Pelton
Una turbina Pelton es uno de los tipos más eficientes de turbina hidráulica. Es
una turbo máquina motora, de flujo tangencial (transversal), admisión parcial y de
acción. Consiste en una rueda (rodete o rotor) dotada de cucharas en su periferia, las
cuales están especialmente realizadas para convertir la energı́a de un chorro de agua
que incide sobre las cucharas. En la figura 2.20 se aprecia una turbina Pelton.
Figura 2.20: Turbina Pelton
Fuente: http://www.areatecnologia.com/mecanismos/turbinas-hidraulicas.html
¬ Turbina Francis
Una turbina Pelton es uno de los tipos más eficientes de turbina hidráulica. Es
una turbo máquina motora, de flujo tangencial (transversal), admisión parcial y de
acción. Consiste en una rueda (rodete o rotor) dotada de cucharas en su periferia, las
cuales están especialmente realizadas para convertir la energı́a de un chorro de agua
que incide sobre las cucharas. En la figura 2.21 se aprecia una turbina Francis.
Figura 2.21: Turbina Francis
Fuente: http://www.areatecnologia.com/mecanismos/turbinas-hidraulicas.html
39
2.3.3. Conceptos Hidrológicos
Caudal: El volumen de agua que circula por un cause en un lugar y tiempo
determinado. Su unidad de medida es metros cúbicos por segundo (m3 /s).
Turbinado: Es el volumen de agua que pasa por las turbinas. Su unidad de
medida es metros cúbicos por segundo (m3 /s).
Caudal Ecológico: Es el agua necesaria para preservar y conservar los valores
ecológicos en el cauce del rı́o. En épocas de lluvia el rı́o Vilcanota trae suficiente
agua que lleva a despreocuparse de esta variable; en el caso de épocas de seca se
debe tener en cuenta este valor ya que el agua del rı́o baja considerablemente. Su
unidad de medida es metros cúbicos por segundo (m3 /s).
Caudal Vertido: Es el volumen del agua que se deja en el rı́o. Su unidad de
medida es metros cúbicos por segundo (m3 /s).
Rebose: Exceso o falta de agua respecto a un nivel. Su unidad de medida es
metros (m).
Embalse: Cantidad de agua almacenada. Su unidad de medida es metros cúbicos
(m3 ).
Descarga o Desembalse: Caudal para aumentar el volumen del rı́o en épocas
de seca. Su unidad de medida es metros cúbicos por segundo (m3 /s).
Cota Embalse: Nivel del agua de la represa con respecto a los metros sobre el
nivel del mar. Su unidad de medida es metros (m).
Figura 2.22: Identificación de Datos Hidrológicos
Fuente: Elaboración Propia.
40
2.3.4. Demanda en el sector eléctrico
La demanda eléctrica de un sistema, es la intensidad de corriente, o potencia
eléctrica relativa a un intervalo de tiempo especı́fico, que absorbe su carga para fun-
cionar.
Los intervalos de demanda, son tı́picamente de 15, 30 ó 60 minutos. Los lapsos
de 15 ó 30 minutos se aplican comúnmente en facturación, selección de la capacidad
de equipos, estudios de balanceo y transferencia de carga. El intervalo de 60 minutos,
permite construir “Perfiles de Carga Diarios” para el análisis de consumo de energı́a,
determinar el rendimiento de dispositivos, y también para elaborar un completo plan
de expansión del sistema de distribución de energı́a eléctrica.
La demanda eléctrica se caracteriza por registrar un comportamiento variable
durante el dı́a. Al esquema que muestra esta particularidad se le denomina curva o
diagrama de carga.
2.3.5. Costo Marginal en el sector eléctrico
El costo marginal se define como la variación en el costo total, ante el aumento
de una unidad en la cantidad producida, es decir, es el costo de producir una unidad
adicional.
Los costos marginales de la energı́a eléctrica son sin duda uno de los princi-
pales indicadores del mercado eléctrico y de su condición de adaptación entre oferta
y demanda. Este costo marginal (CM g), que en términos simples refleja el costo de
suministrar 1 kilo watt hora (kW h) adicional, es uno de los conductores importantes
para la toma de decisiones de los actores del sector, pues su análisis y proyección futura
revelan las oportunidades del negocio de generación.
El precio de la energı́a eléctrica es igual al costo marginal del último grupo
despachado para cubrir la demanda.
2.4. Libreria y Herramientas Informáticas
2.4.1. KDSeries
Una librerı́a destinada al tratamiento de series temporales en R. Esta librerı́a
trata de recopilar diversas funciones de usos extendido y relacionadas con el trata-
miento de series temporales. El objetivo principal es facilitar todo el proceso iterativo
41
Figura 2.23: Orden de despacho de las generadoras.
http://www.coes.org.pe/portal/
de estudio y caracterización de una serie temporal por parte del analista. Destacan
algunas funciones como las destinadas a determinar el mejor ancho de ventana para un
mejor filtrado, suavizar la serie temporal eliminando ruido que se pudiera presentar, la
extracción de segmentos, encontrar ubicación, etc. La librerı́a ha sido utilizada con éxi-
to en el trabajo de los ingenieros de planta con series temporales de carácter industrial
de elevado tamaño y con gran cantidad de ruido (Martinez et al., 2014). Esta librerı́a
fue creada por un grupo de trabajo de la universidad de la Rioja desarrolladas en “R”
y “c” el 2014.
2.4.1.1. kdfilterremove
El algoritmo kdfilterremove de la librerı́a de KDSeries tiene los siguientes carac-
terı́sticas.
Parámetros de entrada:
TSerie: Serie Temporal
MinT: Es un arreglo que depende del filtro elegido.
Filter: El filtro a utilizar puede ser min, max, range o rangeinv.
Parámetros de salida:
SerieFilt: Serie fitrada
42
A continuación se puede ver el diagrama de flujo de este algoritmo (figura 2.24);
en la cual incluye los diferentes casos según el filtro elegido: min, max, range o rangeinv.
El comportamiento de estos filtros se detalla en el inciso 2.2.8.
Figura 2.24: Diagrama de flujo del algoritmo kdfilterremove de la librerı́a
KDSeries
Fuente: Elaboración Propia.
2.4.1.2. kdfilter
El algoritmo kdfilter de la librerı́a de KDSeries filtra la serie temporal con filtros
de kernel. Tiene los siguientes caracterı́sticas.
Parámetros de entrada:
TSerie: Serie Temporal
WidthW: Ancho de la ventana del filtro.
Filter: Tipo de filtro: mean, gauss, median, max o min .
Parámetros de salida:
SerieFilt: Serie de tiempo filtrada.
43
Figura 2.25: Diagrama de flujo del algoritmo kdfilter de la libreria
KDSeries
Fuente: Elaboración Propia.
2.4.1.3. kdmatfilter
Esta función kdmatfilter crea una matriz resultado con diferentes filtrados y/o
anchos de ventanas de una serie temporal.
Parámetros de entrada:
TSerie: Serie temporal a filtrar.
WidthWVect: Vector con diferentes tamaños de ventanas.
Filter: Filtro a aplicar (gauss, mean, median, max y min)
Parámetros de salida:
MAT: Matriz con diferentes tamaños de filtros.
2.4.1.4. kdplotmat
El módulo kdplotmat pertenece a la librerı́a KDSeries nos ayudó a visualizar la
matriz que tiene diferentes filtrados de una serie temporal.
Parámetros de entrada:
MAT: Matriz con diferentes tamaños de filtros de una serie Temporal.
44
Positions: Indica cuales son la series filtradas que se quieren visualizar.
Ini: Primer punto a dibujar.
End: Último punto a dibujar.
2.4.1.5. kdplotnumz
La función kdplotnumz pertenece a la librerı́a KDSeries, muestra en una gráfica
la evolución del número de cruces por cero para una matriz con una serie temporal
filtrada con diferentes anchos. Esto permite, determinar el mejor ancho de ventana de
filtrado.
Parámetros de entrada:
MAT: Matriz con diferentes tamaños de filtros de una serie Temporal.
Positions: Indica cuales son la series filtradas que se quieren visualizar.
2.4.1.6. kdplotscales
La función kdplotscales pertenece a la librerı́a KDSeries, muestra en una gráfi-
ca donde están situados los máximos y mı́nimos de una serie temporal filtrada con
diferentes anchos. Esto permite, determinar los rangos mejores de anchos de filtrado
que distorsionen lo menos posible la serie temporal pero que reduzcan el número de
máximos y mı́nimos.
Parámetros de entrada:
MAT: Matriz con diferentes tamaños de filtros de una serie Temporal.
Positions: Indica cuales son la series filtradas que se quieren visualizar.
Ini: Punto inicial.
End: Punto final
2.4.1.7. kdplotzcross
La función kdplotzcross pertenece a la librerı́a KDSeries, se visualiza donde se
producen los cruces por cero de la primera derivada donde se identifican los máximos
y mı́nimos.
Parámetros de entrada:
45
TSerie: Serie Temporal.
2.4.2. Herramientas Informáticas
Las herramientas informáticas que se han utilizado para el trabajo de investi-
gación son las siguientes:
2.4.2.1. Cogent DataHub
Es una herramienta OPC con diferentes módulos los cuales nos sirven para
determinadas funciones.
Los módulos que se utiliza en este proyecto son:
OPC DA: Permite actuar como cliente OPC para los servidores OPC.
Tunnel/Mirror : Permite configurar rápidamente conexiones seguras y robustas a
través de OPC, sin los problemas que suele generar DCOM (tiempos de espera y
creación de redes poco fiables). Cogen DataHub duplica (mirror) datos a través de
la red, por lo que ambas partes mantienen una colección de todos los datos. Esto
protege a los clientes de desconexiones en la red, y les permite seguir trabajando
con los últimos valores recibidos desde el servidor.
Scripting: Cogent DataHub viene con un poderoso lenguaje de scripting incor-
porado llamado Gamma, que le ayuda a personalizar una solución que hace el
trabajo. Tanto si necesita ejecutar un script cada vez que cambia un valor es-
pecı́fico, como si necesita crear una ventana personalizada para que los operadores
puedan ingresar datos, etc.
En el proyecto identificaremos un menú con los diferentes módulos, un panel de
configuración para los determinados módulos y botones de control General, como se
muestra en la siguiente imagen (ver más https://cogentdatahub.com).
Justificación de uso:
Acceder a los datos sin exponer la red.
Acceder a los datos en tiempo real.
La capacidad de admitir más de 50 mil cambios de punto de datos por segundo,
una poderosa herramienta de scripting para personalización y soporte multibi-
lingue, Cogent DataHub establece una nueva barra en flexibilidad y facilidad de
uso.
46
Figura 2.26: Software Cogent DataHub
Fuente: Elaboración Propia.
2.4.2.2. Fortinet
El firewall que se usó es de la marca Fortinet, este equipo tiene un software de
aplicación para configuración.
Justificación uso: Configuración punto a punto del firewall, para mayor seguridad
y no exponer a la red SCADA.
2.4.2.3. Microsoft SQL-Server 2008 R2
Es un sistema de gestión de bases de datos relacional (RDBMS), SQL Server se
ejecuta con T-SQL (Transact-SQL), que incluye control de transacciones, excepción y
manejo de errores, procesamiento fila, procedimientos almacenados, ası́ como variables
declaradas.
Justificación de uso: Se eligió como motor de base de datos debido a su popula-
ridad, reputación y puede embeber con SQL.
47
2.4.2.4. R y R-Studio
R es una plataforma estadı́stica, lo cual ofrece todas las técnicas de análisis de
datos. Además de programar nuevos métodos y rutinas estadı́sticas de una manera fácil
y robusta.
R-Studio es un entorno de desarrollo integrado IDE para el lenguaje de progra-
mación estadı́stico R, útil para facilitar la programación, la depuración, además que
incluye una consola, resaltado de sintaxis y variedad de herramientas de visualización,
tiene licencia AGPL (Affero General Public Licence) de software libre, ya que también
se ejecuta por una red de ordenadores, para ofrecer aplicaciones web.
Justificación de uso: Se utiliza R en su versión 3.3.3 y como editor R-Studio
en su versión 1.1.414, es una de las plataformas más usadas para la minerı́a de datos
y cuenta con una gran comunidad de voluntarios para mejorarlo, lo cual permite ser
moldeado y dirigido a cuestiones especı́ficas.
48
Capı́tulo 3
Extracción de Variables de Proceso
y Servidor Histórico del SCADA
3.1. Extracción Variables de Proceso
En este punto se detalla los pasos para la extracción de las varioriables de
proceso. A continuación se aprecia el diagrama que engloba todos los pasos que se
siguió para cumplir el segundo objetivo.
Figura 3.1: Diagrama extracción de variables de proceso.
Fuente: Elaboración Propia.
3.1.1. Paso 1: Servidor SCADA de EGEMSA
El servidor SCADA es el que centraliza todos los sistemas SCADA de la empresa
EGEMSA perteneciente a la Red del SCADA, se ubica en el tercer piso en centro de
control de las oficinas de Dolorespata, tiene las siguientes caracterı́sticas técnicas:
Nombre: SYS1.
Modelo: HP ProLiant ML150 G6.
49
Disco Duro: 1 Western Digital (250GB, SATA), 1 Seagate (500GB, SATA).
3.1.2. Paso 2: Configuración del DCOM
Anteriormente se mencionó que COM (Component Object Model ) es una tec-
nologı́a desarrollada por Microsoft, para favorecer la integración de diferentes compo-
nentes dentro de una plataforma de Windows. DCOM (Distributed Component Object
Model ) es una extensión y se basa en la tecnologı́a COM, proporcionando la integración
de los componentes, aún estando éstos en distintos ordenadores.
La configuración de seguridad DCOM es necesaria para establecer una comuni-
cación entre dos nodos, cliente y servidor. En nuestro caso la comunicación del Cliente
OPC y Servidor OPC con el Servidor SCADA.
Se experimenta a menudo dificultades con la comunicación OPC en Windows, a
causa de la configuración de seguridad avanzada, para ello se debe de deshabilitar esta
configuración de seguridad que permitirá la comunicación OPC.
El DCOM está incluido en los sistemas operativos de Microsoft, es un juego
de conceptos e interfaces de programa, en el cual los objetos de programa del cliente,
pueden solicitar servicios de objetos de programa servidores en otras computadoras
dentro de una red.
Los pasos para la configuración del DCOM está adjuntada en el Anexo A, esta
configuración se realiza en el: Servidor OPC y Cliente OPC. El objetivo de los pa-
sos (figura 3.2) es que el DCOM sea configurada para aceptar todas las conexiones
entrantes.
Figura 3.2: Pasos para la configuración del DCOM
Fuente: Elaboración Propia.
50
3.1.3. Paso 3: Configuración del Cogent DataHub Maestro y
Cliente
En este paso se configuró una PC fı́sica denominada Servidor OPC que se en-
cuentra en la Red del SCADA, esta se conecta al Servidor SCADA, en éste servidor
se instala y configura el Cogent DataHub Maestro para capturar todas las señales
pertinentes.
Figura 3.3: Diagrama Configuración del Cogent DataHub Maestro
Fuente: Elaboración Propia.
Se realizó diferentes tareas dentro de este paso, las más importantes son:
Se verifica la conexión entre Servidor SCADA y Servidor OPC.
Se instala el Cogent DataHub Maestro en el Servidor OPC, éste se configura en
modo OPC.
Se agrega el Servidor OPC “SYS1”, el programa reconoció todos los servidores
OPC instalados en el equipo y se selecciona el servidor OPC “ABB MicroScada
OPC DA Server”.
Es pertinente habilitar la opción Manually Select Items para poder elegir las
etiquetas.
Se selecciona las etiquetas (tags) más relevantes para realizar el estudio.
Se hace correr (running) el Cogent DataHub Maestro.
Se verifica las etiquetas elegidas online.
El objetivo principal de colocar una PC fı́sica (Servidor OPC) es:
No modificar, ni manipular, ni configurar el Servidor SCADA.
51
Figura 3.4: Configuración del Cogent DataHub Maestro
Fuente: Elaboración Propia.
El servidor OPC trabaja como un espejo y/o repetidor con ayuda del Cogent
DataHub.
3.1.4. Paso 4: Configuración del Túnel
En este paso se configuró el túnel en el Cogent DatHub Cliente, y se realizan
los siguientes pasos:
Elegir el módulo Tunnel/Mirror e ir a añadir.
Se agrega la dirección IP y el dominio del Cogent DataHub Maestro.
Aplicar y verificar si esta corriendo, visualizando en Ver Datos las variables espejo.
3.1.5. Paso 5: Implementación del Script en el DataHub Clien-
te
El Cogent DataHub viene con un potente lenguaje de Script, el cual nos ayudó
a personalizar las soluciones que hacen el trabajo.
Funciones que realiza el Script:
Abre la conexión con el Nombre de Fuente de Datos (DSN) ya configurada en el
proceso “I. VINCULAR LA BASE DE DATOS CON EL DATAHUB”.
Guarda los valores leı́dos del servidor “ABB MicroScada OPC DA Server” en la
base de datos (especı́ficamente en la tabla hs SenalesOPC) de todas las señales
declaradas en el script.
52
En la figura 3.5 se aprecia el diagrama de flujo y en el Anexo C el Script.
Figura 3.5: Diagrama de flujo del Script del Cogent DataHub
Fuente: Elaboración Propia.
3.2. Servidor Histórico del SCADA
A continuación se detalla el diseño e implementación de la base de datos “BD-
HistoricoScada”; cabe mencionar que por sus caracterı́sticas se considera también una
base de datos temporal.
3.2.1. Diseño de la base de datos
Se utiliza para la implementación del gestor de base de datos SQL Server
2008 R2. En el script de inserción de variables (ver Anexo C) se generó la tabla
53
hs SenalesOPC, para almacenar todas las lecturas de las diferentes señales del SCADA.
Para el diseño de la base de datos histórica, se identificó 4 tablas para la apli-
cación de técnicas de Minerı́a de Datos: TABLA GENERACION GRUPO, TABLA
HIDROLOGIA, TABLA DEMANDA Y TABLA COSTO; .
A continuación describiremos cada una de las tablas.
1. Tabla hs SenalesOPC: En esta tabla se almacena todas las señales del SCADA
que se están cargando de manera automática en tiempo real con ayuda del script
“inserción de variables”. A continuación se tiene la tabla con sus respectivos
atributos detallados:
Atributo Tipo Unidad Medida Descripción
pk CodSenal Numérico Númerico Autogenerado
aSenal Texto Texto Código de la Señal
aRutaValor Texto - Ruta OPC de la Señal
aValor Numérico Según la variable Lectura de la variable
Fecha y Hora de
aFechaCreacion Fecha y Hora DD/MM/AA HH:MM
lectura
Lectura de la señal
aCalidad Numérico MW, Mvar, Etc
en ese instante
Tabla 3.1: hs SenalesOPC
Fuente: Elaboración Propia.
2. Tabla hs GeneracionCHM: En la tabla generación se encuentran las señales:
potencia activa y potencia reactiva de los 3 grupos Pelton y del grupo Francis. A
continuación se tiene la tabla con sus respectivos atributos detallados:
Atributo Tipo Unidad Medida Descripción
pk CodSenal Numérico Númerico Autogenerado
aSenal Texto Texto Código de la Señal
aRutaValor Texto - Ruta OPC de la Señal
aValor Numérico Según la variable Lectura de la variable
Fecha y Hora de
aFechaCreacion Fecha y Hora DD/MM/AA HH:MM
lectura
Lectura de la señal
aCalidad Numérico MW, Mvar, Etc
en ese instante
Tabla 3.2: hs GeneracionCHM
Fuente: Elaboración Propia.
3. Tabla hs Hidrologia: En la tabla de hidrologı́a se encuentran las señales: caudal
del rı́o Vilcanota y caudal túnel de aducción. A continuación se tiene la tabla con
sus respectivos atributos detallados:
54
Atributo Tipo Unidad Medida Descripción
pk CodHidrologia Numérico Númerico Autogenerado
Cod Hidrologia Texto Texto Código de la Señal
Fecha y Hora de
aFechaHidro Fecha y Hora DD/MM/AA HH:MM
Lectura
Lectura de caudal
aLectura Numérico m3 /s
en ese instante
Tabla 3.3: hs Hidrologia
Fuente: Elaboración Propia.
4. Tabla hs Demanda: En esta tabla se tiene la variable demanda de energı́a
eléctrica. A continuación se tiene la tabla con sus respectivos atributos detallados:
Atributo Tipo Unidad Medida Descripción
pk CodDemanda Numérico Númerico Autogenerado
Fecha y Hora de
aFechaDemanda Fecha y Hora DD/MM/AA HH:MM
Lectura
aDemEjecutada Numérico MW Demanda Ejecutada
aDemProgDiaria Numérico MW Demanda Diaria
aDemProgSemanal Numérico MW Demanda Semanal
Tabla 3.4: hs Demanda
Fuente: Elaboración Propia.
5. Tabla hs CostoMarginal: En esta tabla se tiene la variable de costo margi-
nal ejecutado de la energı́a eléctrica. A continuación se tiene la tabla con sus
respectivos atributos detallados:
Atributo Tipo Unidad Medida Descripción
pk CodCostoMarginal Numérico Númerico Autogenerado
Fecha y Hora de
aFechaCostoMar Fecha y Hora DD/MM/AA HH:MM
Lectura
aCostoMarginal Numérico S//KWh Costo Marginal
Tabla 3.5: hs CostoMarginal
Fuente: Elaboración Propia.
55
3.2.2. Diagrama de la base de datos
A continuación se presenta el diagrama de base de datos de la BDHistoricoS-
CADA.
Figura 3.6: Diagrama extracción de variables de proceso.
Fuente: Elaboración Propia.
En el anexo C se encuentra el script.
3.2.3. Carga de datos
En el caso de las tablas hs GeneracionCHM y hs Hidrologia, primero se identificó
los códigos OPC de dichas señales (ver tabla 3.6).
Código Señal Unidad Descripción
MP G1MC.20 MW Potencia Activa Grupo 1
MP G1MC.21 Mvar Potencia Reactiva Grupo 1
MP G2MC.20 MW Potencia Activa Grupo 2
MP G2MC.21 Mvar Potencia Reactiva Grupo 2
MP G3MC.20 MW Potencia Activa Grupo 3
MP G3MC.21 Mvar Potencia Reactiva Grupo 3
MP G4MC.20 MW Potencia Activa Grupo 4
MP G4MC.21 Mvar Potencia Reactiva Grupo 4
MP CAUDF.27 m3 /s Caudal Rı́o Vilcanota
MP CAUDF.28 m3 /s Caudal Túnel de Aducción
Tabla 3.6: Códigos OPC de las señales
Fuente: Elaboración Propia.
56
En el caso de las tablas hs Demanda y hs CostoMarginal, los datos fueron inser-
tados manualmente, porque dichas se descargaron en formato CSV de la página
Web del COES.
Se implementó un trabajo (JOB) en SQL server “Job CargarSenalesHistorico”,
con las respectivas consultas para agregar automáticamente las lecturas de las señales
a las tablas históricas según su respectivo código.
El JOB “Job CargarSenalesHistorico” se ejecuta diariamente a las 00:00 horas
para agregar datos del dı́a anterior (Ver Anexo C).
Como plan de mantenimiento de la BD se implementó un “JOB Limpiar LogBD”,
que evita el crecimiento exagerado de los log de transacciones. Este se ejecuta cada fin
de mes. (Ver Anexo C)
57
Capı́tulo 4
Desarrollo del Proyecto
La metodologı́a CRISP-DM (Cross Industry Standard Process for Data Mining)
es más completa porque tiene en cuenta el entorno del negocio y la parte de la secuencia
de las fases no es rı́gida, nos ha permitido realizar movimiento hacia adelante y hacia
atrás en diferentes fases. Esta metodologı́a nos ha guiado y apoyado en el desarrollo
de la presente investigación, a continuación se detallan las tareas pertenecientes a cada
fase.
Fase 1: Comprensión del Negocio
Comprender el contexto y determinar objetivos comerciales de la empresa EGEM-
SA.
Evaluación de la situación.
Determinar objetivos de la Minerı́a de Datos.
Desarrollo del plan del proyecto.
Fase 2: Comprensión de los datos
Recopilación de datos iniciales.
Descripción los datos.
Exploración de los datos.
Verificación de la calidad de los datos.
Fase 3: Preparación de los datos
Selección de datos más relevantes.
58
Limpieza de datos.
Construcción de nuevos datos (atributos).
Integración de datos.
Fase 4: Modelado
Selección de técnicas de modelado.
Generación de un diseño de comprobación.
Generación del modelo.
Evaluación y comprobación del modelo.
Fase 5: Evaluación
Evaluación de resultados.
Proceso de revisión.
Determinar los pasos siguientes a base de los resultados.
Fase 6: Despliegue
Planificación de distribución.
Creación del informe final.
Revisión final del proyecto.
4.1. FASE I. Comprensión del negocio
4.1.1. Comprensión del contexto y determinar objetivos co-
merciales de la empresa EGEMSA
4.1.1.1. Contexto de EGEMSA
Figura 4.1: Logo de EGEMSA
Fuente: http://www.egemsa.com.pe/
59
EGEMSA, son las siglas de la Empresa de Generación Eléctrica Machupicchu
S.A. que desarrolla actividades de generación de energı́a eléctrica por medio de sus
instalaciones ubicadas en el Sur Este del Perú, las cuales se encuentran conectadas al
Sistema Eléctrico Interconectado Nacional (SEIN), teniendo su sede institucional en la
ciudad del Cusco.
EGEMSA, es una empresa estatal de derecho privado que inicia sus operacio-
nes el año 1994, siendo su principal fuente de generación la Central Hidroeléctrica de
Machupicchu. Desde entonces se ha venido consolidando como una empresa abierta al
avance tecnológico y respaldado por la experiencia de sus trabajadores, la cual se ha
convertido en una de las principales empresas generadoras de energı́a eléctrica en el te-
rritorio peruano, con grandes perspectivas de una mayor expansión en sus operaciones.
Se puede apreciar en la figura 4.2 como esta organizada la empresa.
Figura 4.2: Organigrama de EGEMSA
Fuente:
http://www.egemsa.com.pe/transparencia/OTROS/gestion/PLAN_13030_2016_ORGANIGRAMA.PDF
Misión: “Generar energı́a eléctrica con calidad y comercializar de manera efi-
ciente, logrando la satisfacción de nuestros clientes, brindando un entorno laboral ade-
cuado e incrementando el valor de la empresa bajo una polı́tica de responsabilidad para
con la sociedad y el medio ambiente”.
Visión: “Ser reconocida como modelo de la empresa eficiente y responsable”
60
Los cargos de las gerencias de la empresa EGEMSA está conformado por:
Gerente General: Ing. Edgar Venero Pacheco,
Gerente de Administración y Finanza: Lic. Carlo Fabrizzio Garmendia Wilson.
Gerencia Comercial: Ing. Carlos Menéndez Deza.
Gerencia de Operaciones: Ing. Wilber Huanca Juarez.
Gerencia de Proyectos: Mario Ortiz Zeballos Estrada.
EGEMSA tiene 4 instalaciones las cuales son:
Central Hidroeléctrica de Machupicchu (CHM): Es la central más impor-
tante de su patrimonio. Está ubicada en la provincia de Urubamba del departa-
mento del Cusco; utiliza los recursos hı́dricos que el rı́o Vilcanota. Tiene 4 grupos
de generación (3 tipo Pelton y 1 Tipo Francis).
Central Térmica de Dolorespata: Se encuentra ubicada en la ciudad del
Cusco en el distrito de Santiago, y forma parte de la sede institucional. Construida
entre los años 1953 y 1959, contaba inicialmente con dos grupos Sulzer de 0,8 y 1,8
MW. para satisfacer la demanda de la ciudad de Cusco. Se incrementó su potencia
instalada con la incorporación de tres grupos General Motors y el año 1976 con
dos grupos Alco, logrando 15,62 MW. instalados. Utiliza como combustible el
Diesel Nro. 2. pero ya no están en funcionamiento.
Represa de Sibinacocha: La represa de Sibinacocha y el lago natural del mismo
nombre se ubican en la cuenca alta del Salcca, en el distrito de Pitumarca, pro-
vincia de Canchis, Departamento del Cusco, a una altitud media de 4,860 msnm.
y a una distancia de 147 Km. al Sur Este de la Ciudad del Cusco. EGEMSA,
decidió impulsar la construcción de la Represa de Sibinacocha, para mantener el
caudal del rı́o Vilcanota en época de estiaje (o de secas) y ası́ garantizar la normal
operación de los grupos generadores de la Central Hidroeléctrica Machupicchu.
La represa de Sibinacocha tiene un volumen útil del orden de los 120 Hm3 . La
regulación de la laguna natural permite una disponibilidad adicional en época de
estiaje de 7 m3 /s a 12 m3 /s.
Talleres de Mantenimiento: Dentro de las actividades de mantenimiento de
EGEMSA, está la reparación de los componentes hidráulicos de la Central Hi-
droeléctrica Machupicchu, para lo cual posee un Taller Central, ubicado a escasos
metros de la sede institucional de la Central Térmica Dolorespata. El taller posee
el equipamiento necesario para la ejecución de la totalidad de los trabajos de re-
paración de estos componentes hidráulicos, además del servicio de mantenimiento
electromecánico de que empresa ofrece.
61
Las unidades y áreas que intervienen directamente con el proyecto e individuos
claves de la empresa son:
Gerencia Comercial: La Gerencia Comercial es un órgano de lı́nea que depende
jerárquica y funcionalmente de la Gerencia General. Fines: Planificar, organizar,
dirigir y controlar los ingresos y egresos económicos por las transacciones de
ventas y/o compra de energı́a de EGEMSA en el corto, mediano y largo plazo;
considerando las mejores condiciones de suministro de electricidad en calidad,
oportunidad, y servicio al cliente; y revisar la operación del sistema eléctrico de
EGEMSA, considerando la optimización del uso de los recursos naturales. Está
conformada por las Divisiones:
• División de Centro de Control: Esta división es responsable de la opera-
ción en tiempo real del sistema eléctrico de EGEMSA. Supervisa y coordina
las relaciones existentes entre el proceso de generación y comercialización en
el corto plazo o plazo inmediato de 24 horas al dı́a, las decisiones de opera-
ción como son conexiones y desconexiones de sus sistemas (central, lı́neas y
subestaciones), deben garantizar la seguridad y salud ocupacional de las per-
sonas y la maximización de beneficios para la empresa. Se encarga también
de coordinar con el COES (Comité de Operación Económica del Sistema)
las operaciones del sistema interconectado como son: mantenimientos ma-
yores, coordinación de la protección, regulación de frecuencia, etc. y demás
operaciones que afectan el sistema eléctrico de EGEMSA, además atiende
los requerimientos de los clientes y de los otros agentes del sistema eléctrico
nacional en tiempo real.
Jefe de División centro de Control: Ing. Jorge Luis Aguilar Villa.
• División de Contratos: La División de Contratos responde al objetivo
que tiene la Gerencia de Comercial de estabilizar los ingresos económicos de
la empresa, buscando una adecuada rentabilidad, minimizando los riesgos
financieros a través de la suscripción de contratos a firme de largo plazo.
Jefe de División de Contratos: Ing. Abel Choqueneira Villa.
• División de Transferencias. La División de Trasferencias responde a las
actividades que tiene la Gerencia Comercial en el mediano plazo, es decir a
las transacciones económicas que se derivan de los procedimientos de inyec-
ciones y retiros de energı́a, que se dieron como resultado de las operaciones
de nuestros clientes y de nuestras centrales en tiempo real durante el mes.
Jefe de División de Transferencias: Ing. Andersen Campos Peña.
División de Mantenimiento de Sub estaciones y lı́neas de transmisión:
Es un órgano de lı́nea que depende jerárquica y funcionalmente de la Gerencia
62
de Operaciones. Su función fundamental es la de planificar, organizar, dirigir y
controlar los sub procesos de transmisión de energı́a eléctrica y de mantenimiento
de transmisión para que se realicen en las mejores condiciones de calidad, segu-
ridad, oportunidad y costos para la empresa; preservando el medio ambiente, ası́
como la seguridad y salud ocupacional de las personas.
Jefe División Mantenimiento SS.EE. y LL.TT: Ing. Luis Roque Zea Miranda.
• Área de Mantenimiento Electrónico. Encargado de ejecutar las activi-
dades relacionadas con las actividades de mantenimiento electrónico dentro
del proceso de generación en lo que concierne al sub proceso de transmisión
de energı́a eléctrica y a los procedimientos de operación de la Sub Esta-
ción Cachimayo y de operación de la Sub Estación Dolorespata, ejecutar
las actividades de mantenimiento del Sistema MicroSCADA previstas en los
programas y planes respectivos en coordinación con el Especialista de sis-
temas de control y comunicaciones, jerárquicamente depende de la División
de Mantenimiento de Sub Estaciones y Lı́neas de Transmisión.
Técnico de Mantenimiento Electrónico: Ing. Rolant Espejo.
Área de Tecnologı́as de la Información y Comunicación. Es el órgano de
apoyo y es responsable de la adecuada gestión de los sistemas de información y re-
cursos informáticos para su tratamiento, jerárquicamente depende de la Gerencia
de Administración y Finanzas. Su función fundamental es: planificar, organizar,
dirigir y controlar el proceso de informática, de manera que se brinde un eficiente
y oportuno soporte del Sistema de Información, optimizando la utilización del
software y hardware de la Empresa (EGEMSA, 2018).
Especialista de TIC: Ing. Uberto Gonzalez Bendezú.
Los problemas identificados en las áreas mencionadas fueron:
En las áreas mencionadas se identificó que tienen archivos en Excel y cuadernos
de bitácoras de eventos, que se presentaron en el tiempo, a las cuales no se les
dan la importancia necesaria.
La falta de herramientas para el análisis de datos en las variables del proceso de
Generación.
Tiempo perdido en analizar las programaciones del COES para tomar decisiones.
La solución actual es digitalizar y gestionar sus datos históricos para darle un
valor necesario, aplicando Minerı́a de Datos, para obtener información no visible como
patrones de comportamiento que pueda servir como apoyo a la toma de decisiones.
63
Las áreas identificadas están muy interesadas en el tema, ya que es un tema
nuevo para ellos y están dispuestos a dar su apoyo en la parte técnica que conlleva
todo el proceso de generación de energı́a eléctrica.
4.1.1.2. Objetivos del Negocio
Planificar, organizar, dirigir y controlar los procesos de generación y manteni-
miento, para que se realicen en las mejores condiciones de calidad, seguridad,
continuidad y costos para la empresa; preservando el medio ambiente, ası́ como
la seguridad y salud ocupacional de las personas.
Maximizar el aprovechamiento de los recursos hı́dricos para mejores ganancias.
4.1.2. Evaluación de la situación
4.1.2.1. Inventario de Recursos
El hardware que se utiliza son: nuestras computadoras personales, un servidor
de la empresa para nuestra base de datos.
Se investigó los orı́genes y caracterı́sticas generales de los datos, como:
Los datos se tienen en los servidores, computadores de las áreas identificadas,
cuadernos de bitácora de eventos.
Los formatos disponibles: .xls.
Los datos son almacenados de forma manual en sus archivos o escritos en sus
cuadernos de bitácoras.
El acceso a los datos es de manera directa.
Si se requiere de datos externos, estos se obtienen de la página web del COES.
Los datos que se obtuvieron del sistema SCADA se solucionó de tal manera no
vulnere la seguridad del mismo. (Referencia capı́tulo 3)
Los recursos personales: Los 2 tesistas.
4.1.2.2. Requisitos supuestos y restricciones
Antes de iniciar el proyecto se presentó una carta dirigida al gerente de Adminis-
tración, solicitándole acceso a los datos, e ingreso a las instalaciones de la empresa
64
para realizar la tesis de Investigación (Anexo D), la respuesta fue remitida al área
de Tecnologı́as de Información y Comunicación (Anexo E).
La tesis de investigación no tiene apoyo económico.
La empresa solicitó que luego de culminado la investigación los resultados puedan
ser entregados en un informe.
Una de las áreas solicitó no solo visualizar los resultados sino que pudiera com-
prender los modelos.
4.1.2.3. Riesgos y Contingencias
Uno de los riesgos que se pueda presentar es que no se logre encontrar algún
patrón o tendencias en los datos, si ocurriese tal evento, gracias a la flexibilidad de la
metodologı́a CRISP-DM nos permite hacer movimientos hacia adelante y hacia atrás
para obtener mayor conocimiento e información.
4.1.2.4. Terminologı́a
Potencia: Potencia eléctrica generada por los grupos, unidad M W (Mega Watts).
Mas detalle en inciso 2.3.2.
Caudal: Cantidad de agua que circula por un cause en un lugar y tiempo deter-
minado, unidad m3 /s. Más detalle en inciso 2.3.3.
Demanda: Demanda de energı́a eléctrica, es la potencia que requieren los usuarios
finales, unidad M W (Mega Watts). Más detalle en inciso 2.3.4.
Costo Marginal: Corresponde al costo variable de la generación de la última
unidad despachada, unidad S//M W h. Más detalle en inciso 2.3.5.
Ancho de Ventana: El número de horas que se toma como referencia para el
estudio. Más detalle en inciso 2.2.9.2.
Minerı́a de Datos: Proceso de descubrimiento de patrones, tendencias al examinar
grandes cantidades de datos. Más detalle en inciso 2.2.4.
Series de Tiempo: Conjunto de valores observados durante una serie de periodos
temporales secuencialmente ordenada. Más detalle en inciso 2.2.7.1.
65
4.1.3. Determinar objetivos de Minerı́a de Datos
4.1.3.1. Objetivos de Minerı́a de Datos
Seleccionar las variables del proceso de generación para poder tratar y agrupar.
Analizar y seleccionar las técnicas de minerı́a de datos que sean útiles para el
modelo a desarrollar.
Construir y aplicar un proceso para la búsqueda de patrones.
Evaluar el modelo de minerı́a de datos planteado.
4.1.3.2. Criterios de rendimiento de Minerı́a de Datos
Los criterios de rendimiento se basa en valores estadı́sticos; ya que después de
la obtención de los resultados, el análisis estadı́stico nos ayudará a dar indicadores y/o
porcentajes de ocurrencias en el tiempo de los patrones encontrados.
4.1.4. Desarrollo del plan del proyecto
4.1.4.1. Plan del proyecto
El tiempo estimado para la realización del presente proyecto de tesis es de 9
meses (tabla 4.1), para lo cual se ha realizado un plan de trabajo en donde se detallan
las tareas que se realizan según la metodologı́a CRISP-DM para la generación del
modelo, es importante tomar en cuenta que al terminar una fase se puede regresar a
la anterior fase de acuerdo al resultado obtenido.
Tabla 4.1: Plan del Proyecto
Fase Tiempo Recursos Riesgos
Comprensión del negocio 1 mes Todos Ninguno
Comprensión de los datos 2 mes Todos Problemas con los datos
Preparación de los datos 2 meses Tesistas Problemas de los datos
No se encontró un
Modelado 2 meses Tesistas
modelo adecuado
Incapacidad de comprender
Evaluación 1 mes Todos
los resultados
Despliegue 1 mes Tesistas Sin Riesgo
Fuente: Elaboración Propia.
66
4.1.5. Evaluación Inicial
¬ Desde una perspectiva comercial
La empresa desea tener patrones de comportamiento de las variables de genera-
ción, tendencias de forma independiente o agrupada, que les sirvan como apoyo en
la toma de decisiones con respecto al uso de sus recursos hı́dricos, maximizando
ası́ sus ganancias.
Se tiene acceso a las instalaciones y a los datos de EGEMSA, los datos se pueden
obtener de distintas fuentes: Carpetas, cuadernos y servidor SCADA.
Desde una perspectiva de Minerı́a de Datos
Obtener patrones de comportamiento de las variables de generación, que sirva de
apoyo en la toma de decisiones.
Como no se tiene un conocimiento previo de los patrones buscados, esto nos da
lugar a que se va a utilizar técnicas y/o algoritmos no supervisados.
Se utilizó todas las fases de la metodologı́a CRISP-DM, por la flexibilidad que
ofrece, ayudó a trabajar de manera ordenada.
La estadı́stica descriptiva nos ayudó a la valoración de los resultados encontrados.
4.2. FASE II. Comprensión de los datos
En esta segunda fase de la metodologı́a CRISP-DM se realizó una recolección
inicial de datos relacionados con el problema, para poder establecer un primer contacto
con el problema, familiarizarse con los datos y averiguar su calidad, realizar un análisis
de los mismos con el fin de identificar las relaciones entre ellos.
La selección de las variables a utilizar se hizo principalmente con ayuda del
personal técnico especialista de EGEMSA; ya que están directamente relacionado con
la parte de operaciones de la empresa.
Cabe recalcar que EGEMSA cuenta con 4 grupos de generación: 3 grupos del
tipo Pelton (G1, G2, G3) que tienen una potencia instalada de 30MW cada uno y 1
grupo de tipo Francis (G4) que tiene una potencia instalada de 104MW. Cuando se
realizan mantenimientos parciales o totales (parada central) se tiene valores de 0MW.
67
4.2.1. Recopilación de datos iniciales
Las fuentes de información útiles que son convenientes para extraer conocimiento
de alta calidad son:
Servidor SCADA y sistema de mantenimiento.
Carpeta Opera del Centro de control: carpeta que pertenece al área de Centro de
Control, los archivos están en formato de hojas de cálculo de Microsoft Excel.
Cuaderno de Eventos del Centro de Control: cuaderno en la cual se escriben
eventualidades.
Pagina web del COES: http://www.coes.org.pe/
Los datos recopilados de las diferentes fuentes mencionadas anteriormente, se
almacenaron en la base de Datos Histórica: ’BDHistorica SCADA’ (Más detalle de su
estructura en el capı́tulo 3).
4.2.2. Descripción, Exploración y calidad de los datos
Los datos utilizados en este proyecto son datos históricos referentes a las va-
riables del proceso de generación y distribución más relevantes, que son medidos o
tomados en intervalos de tiempo (Series de tiempo). Para describir los datos se utilizó
tablas con las caracterı́sticas: atributo, tipo, unidad de medida y descripción; para ex-
plorar los datos se utilizó gráficos y estadı́sticos básicos; para verificar la calidad de
datos se menciona si se encuentra datos perdidos, erróneos, incoherencias y/o atı́picos
(outliers); todo ello sirve principalmente para determinar la consistencia y completitud
de los datos. A continuación se realiza la descripción, exploración y verificación de la
calidad de los datos recopilados.
4.2.2.1. Datos de generación CHM
À Descripción
El archivo de generación registra el histórico de las potencias generadas de cada
grupo (G1, G2, G3 y G4) y la suma de dichas cada 30 minutos. Se tienen datos desde
el 01/01/2015 00:30 hasta 01/01/2018 00:00, son 1096 dı́as; como se tiene los datos
cada 30 minutos, se tiene un total 52608 registros. Los datos de generación recolectada
tienen los siguientes atributos (tabla 4.2).
68
Tabla 4.2: Generación CHM
Atributo Tipo Unidad de Medida Descripción
Fecha Hora Fecha y hora DD/MM/AA HH:MM Fecha y hora
Pot Act G1 Numérico MW Potencia Activa G1
Pot Rea G1 Numérico MVar Potencia Reactiva G1
Pot Act G2 Numérico MW Potencia Activa G2
Pot Rea G2 Numérico MVar Potencia Reactiva G2
Pot Act G3 Numérico MW Potencia Activa G3
Pot Rea G3 Numérico MVar Potencia Reactiva G3
Pot Act G4 Numérico MW Potencia Activa G4
Pot Rea G4 Numérico MVar Potencia Reactiva G4
Pot Total Numérico MW Total Potencia Activa
Fuente: Carpeta ’Datos CCD’, División Centro de Control.
Á Exploración
Se determinó estadı́sticos básicos de las variables de generación CHM (ver tabla
4.3), como también se tiene el diagrama de frecuencias de las potencias activas (figura
4.3) donde se observa la densidad de los datos según los rangos.
Tabla 4.3: Estadı́sticos básicos de datos generación CHM
Variables Pot Act G1 Pot Act G2 Pot Act G3 Pot Act G4 Pot Total
Mı́nimo 0.00 0.00 0.00 -0.06 0.00
1er Cuartil Q1 4.71 10.72 7.02 90.99 109.5
Mediana 19.83 21.75 20.46 97.01 141.6
Media 15.54 17.38 16.34 86.76 136.0
3er Cuartil Q3 22.13 24.69 23.31 102.71 167.1
Máximo 29.97 31.07 52.13 106.95 181.7
σ 10.04 10.12 10.22 30.04 33.23
Variables Pot Rea G1 Pot Rea G2 Pot Rea G3 Pot Rea G4
Mı́nimo -10.41 -7.46 -7.95 -34.33
1er Cuartil Q1 0.00 -0.04 0.00 0.00
Mediana 0.56 0.12 0.04 2.07
Media 0.72 0.29 0.29 2.32
3er Cuartil Q3 1.45 0.94 0.84 4.86
Máximo 29.07 28.60 97 40.06
σ 1.12 1.13 1.11 4.08
Fuente: Elaboración Propia..
En la tabla de datos estadı́sticos básicos de los datos de generación CHM (tabla
4.3) se identificaron las siguientes caracterı́sticas:
El 0MW nos indica parada de grupo, 0MW en Pot Total nos indica parada cen-
tral.
Todas las potencias activas tienen desviación estándar (σ) alta, el cual nos indica
que la dispersión de los datos es muy variable con respecto a su media.
69
Figura 4.3: Diagrama de frecuencia de datos de generación CHM
Fuente: Elaboración Propia.
Todas las potencias reactivas tienen desviación estándar (σ) baja, ya que la ma-
yorı́a de los datos se acercan a su media.
En la imagen 4.4(a) se visualiza la potencia activa total (suma de las potencias
activas de los 4 grupos de generación) de todos los dı́as analizados, en allı́ se aprecia
una componente estacional anual. En la figura4.4(b) se tiene el gráfico de los datos
correspondiente a los 3 primeros dı́as, donde a primera vista se observa una variabilidad
considerable.
Figura 4.4: Potencia Activa Total: (a) Gráfico del total de registros, (b) Gráfico de 3 dı́as (98
registros).
Fuente: Elaboración Propia.
70
 Calidad
Figura 4.5: Diagrama de cajas de las potencias activas
Fuente: Elaboración Propia.
De acuerdo a la tabla de estadı́sticos 4.3 y la figura 4.5, se encontraron atipici-
dades que se mencionan a continuación:
El 0MW nos indica parada de grupo, el 0MW en Pot Total nos indica parada
central. La potencia activa tiene valores mayores o iguales que 0MW; se encontró
negativos en la Pot Act G4 cosa que no es coherente, la solución es reemplazar
por 0MW.
La potencia máxima generada por los grupos Pelton es en promedio 30MW; se
encontró en la Pot Act G2 y Pot Act G3 valores mayores a 30MW, estos valores
son atı́picos, la solución es reemplazar por el valor anterior que se encuentra
dentro del rango 0 a 30MW.
La potencia total máxima generada es aproximadamente de 165MW, por limita-
ciones del túnel de agua no se alcanza la potencia instalada total 194MW. Este
dato sólo se toma como referencia.
Los datos recopilados de generación CHM, como se mencionó anteriormente
pertenecen a la carpeta ’Datos CCD’ de División Centro de Control, las cuales están
en formato excel, posteriormente fueron cargadas en la ’BDHistorica SCADA’, en la
tabla no se encontraron valores nulos y/o vacı́os; en general se determina que esta tabla
es confiable, las atipicidades fueron corregidas en la siguiente fase.
71
4.2.2.2. Datos hidrológicos CHM
À Descripción
El archivo registra el histórico de datos hidrológicos que se encuentran en: casa
de máquinas, en la represa del Km-107, y en el Km-105 del rı́o Vilcanota.
Se tiene datos desde 01/05/2015 06:00 hasta 31/12/2017 18:00, son 976 dı́as;
se tiene 2 datos por dı́a, siendo las horas 06:00am y 06:00pm, por lo tanto se tiene
un total de 1952 registros. Los datos hidrológicos recolectados tienen los siguientes
atributos (tabla 4.4).
Tabla 4.4: Hidrológicos CHM
Atributo Formato Unidad de Medida Descripción
Ĉau Rio Vil Numérico m3 /s Caudal del Rı́o Vilcanota
Cau Tun Numérico m3 /s Caudal Túnel
Niv Reb Numérico m Nivel de Rebose
Turb G1 Numérico m3 /s Turbinado G1
Turb G2 Numérico m3 /s Turbinado G2
Turb G3 Numérico m3 /s Turbinado G3
Turb G4 Numérico m3 /s Turbinado G4
Tot Turb Numérico m3 /s Total agua turbinada
Cau Vert Numérico m3 /s Caudal Vertido
Cau Ecol Numérico m3 /s Caudal Ecológico
Fuente: Carpeta ’Datos CCD’, División Centro de Control.
Se sabe que la cantidad de potencia y energı́a disponible en el agua de un rı́o,
se relaciona directamente a la altura o caı́da disponible, como también del caudal
disponible. Las turbinas Pelton y Francis tienen una eficiencia de 2.84MW y 3.21MW
por 1m3 respectivamente. En el caso de los atributos Turb G1, Turb G2, Turb G3 y
Turb G4, los especialistas nos indicaron que los datos de las aguas turbinadas por
grupo son calculadas por el factor de eficiencia; por ende estos datos no se tomaron en
cuenta.
Á Exploración
Se determinó estadı́sticos básicos de los datos hidrológicos CHM (tabla 4.5),
como también se tiene el diagrama de frecuencias de los datos más relevantes (figura
4.5)
En la tabla de datos estadı́sticos básicos de los datos de generación CHM (tabla
4.3) se identificaron las siguientes caracterı́sticas:
Todos los caudales tienen desviación estándar (σ) alta, el cual nos indica que la
dispersión de los datos es muy variable con respecto a su media.
72
Tabla 4.5: Estadı́sticos básicos datos hidrológicos CHM
Variables Cau Rio Vil Cau Tun Niv Reb Turb G1 Turb G2
Mı́nimo 27.43 0.00 -2 0.00 0.00
1er Cuartil Q1 37.96 35.58 -0.29 1.84 4.21
Mediana 49.14 47.86 -0.15 6.91 7.45
Media 88.51 46.12 -0.17 5.46 6.11
3er Cuartil Q3 100.31 56.66 -0.03 7.73 8.53
Máximo 681.34 82.53 0.35 10.88 10.89
σ 85.54 11.53 0.18 3.51 3.44
Variables Turb G3 Turb G4 Tot Turb Cau Vert Cau Ecol
Mı́nimo 0.00 0.00 0.00 0.00 1
1er Cuartil Q1 3.35 27.28 34.87 0.13 1
Mediana 7.19 29.74 46.80 2 1
Media 5.82 26.79 44.2 41.37 1.02
3er Cuartil Q3 8.21 31.84 54.15 41 1.07
Máximo 11.86 52.4 68.26 626.61 1.07
σ 3.50 9.00 10.71 79.64 0.03
Fuente: Elaboración Propia.
Figura 4.6: Diagrama de Frecuencia: (a) Rı́o Vilcanota, (b) Caudal del Túnel, (c) Nivel de Rebose,
(d) Total de Turbinado, (e) Caudal Vertido, (f) Caudal Ecológico
Fuente: Elaboración Propia.
El Niv Reb tiene un carácter homogéneo.
El Mı́nimo de Cau Tun nos indica que no esta entrando agua al túnel.
El mı́nimo en Cau Vert nos indica que casi toda el agua del Rı́o Vilcanota se esta
recogiendo.
El Cau Ecol es el caudal de agua mı́nima necesaria para preservar los valores
ecológicos del cauce. Con anterioridad fue de 1m3 /s, y ahora es de 1,07m3 /s, esos
2 valores se puede apreciar en los datos estadı́sticos. No se necesita realizar algún
estudio de esta variable, ya que tiene carácter obligatorio dado por la OEFA.
A continuación se puede visualizar el caudal del rı́o Vilcanota en el Km-105 y
73
el caudal del túnel, se sabe que el túnel de aducción tiene una capacidad no mayor a
56 m3 /s.
Figura 4.7: Caudal Vilcanota y Caudal Tunel
Fuente: Elaboración Propia.
 Calidad
Figura 4.8: Diagrama de cajas de datos hidrológicos: (a) Caudal rı́o Vilcanota,
(b) Caudal túnel de aducción, (c) Nivel de rebose
Fuente: Elaboración Propia.
De acuerdo a la tabla de estadı́sticos 4.5 y los diagramas de cajas de la figura
4.8, se encontraron las siguientes atipicidades y caracterı́sticas:
El túnel de aducción tiene una capacidad promedio de 56m3 /s, se identificaron
valores mayores, la solución es reemplazar por el máximo.
El caudal del rı́o Vilcanota tiene picos apreciables, pero no afectan el estudio.
Los datos hidrológicos recopilados, como se mencionó anteriormente pertenecen
a la carpeta ’Datos CCD’ de División Centro de Control, las cuales están en formato
74
excel, posteriormente fueron cargadas en la ’BDHistorica SCADA’, en la tabla no se
encontraron valores nulos y/o vacı́os; en general se determina que esta tabla es confiable,
las atipicidades fueron corregidas en la siguiente fase.
4.2.2.3. Datos hidrológicos Sibinacocha
À Descripción
El archivo registra el histórico de datos hidrológicos de la represa de Sibinacocha.
Se tiene datos desde 01/01/2015 hasta 31/12/2017, cabe indicar que se tiene 1 dato
por dı́a, son 1096 datos.
Los datos hidrológicos de la represa recolectados tienen los siguientes atributos,
ver tabla 4.6); cabe indicar que estos datos son tomados a las 6:30am.
Tabla 4.6: Hidrológicos Sibinacocha
Atributo Formato Unidad de Medida Descripción
Fecha-Hora Fecha y Hora DD/MM/AA HH:MM Fecha de medida.
Desembalse Numérico m3 /s Descarga de agua
Regleta Numérico cm
Cot Emb Numérico msnm Cota Embalse
Vol Acum Numérico Hm3 Embalse represa
Fuente: Carpeta ’Datos CCD’, División Centro de Control.
El dato Cot Emb es el nivel del agua con respecto a los metros sobre el nivel
del mar que se encuentra, este dato sirve para calcular el Vol Acum (medido en Hm3
= Hectometro Cúbico = 100000 m3 ).
Á Exploración
Se determinó estadı́sticos básicos de los datos hidrológicos de la represa de Si-
binacocha (tabla 4.7); como también se tiene el diagrama de frecuencias de los datos
más relevantes (figura 4.9).
Tabla 4.7: Estadı́sticos básicos datos hidrológicos Sibinacocha
Variables Desembalse Regleta Cot Emb Vol Acum
Mı́nimo 0.00 0.00 4865 46.29
1er Cuartil Q1 0.25 30.69 4866 59.38
Mediana 0.25 50.00 4867 84.03
Media 2.28 48.58 4866 81.84
3er Cuartil Q3 2.00 65.00 4867 103.06
Máximo 15.00 99.00 4968 115.74
σ 3.85 23.20 0.76 21.96
Fuente: Elaboración Propia.
75
Figura 4.9: Diagrama de Frecuencia de los datos de la represa de Sibinacocha: (a) Desembalse o
Despacho, (b) Regleta, (c) Volumen Acumulado
Fuente: Elaboración Propia.
En la tabla de datos estadı́sticos básicos de la represa Sibinacocha (tabla 4.7)
se identificaron las siguientes caracterı́sticas:
Los datos Desembalse, regleta y volumen tienen desviación estándar (σ) alta, el
cual indica que la dispersión de los datos es muy variable con respecto a su media.
El 25 % de los datos de Desembalse se encuentran entre 2 y 15 m3 /s eso se da en
tiempo de sequı́a.
La mitad de los datos de Desembalse son menores a 0.25 m3 /s, esta caracterı́stica
se da porque se debe dejar un cause natural al rı́o.
El dato Cot Emb tiene un comportamiento lineal y esta directamente relacionado
con Vol Acum, este dato no se toma en cuenta en el estudio.
En la figura 4.10 se puede apreciar los datos de Volumen Acumulado y Des-
embalse (también llamado Despacho) de la represa de Sibinacocha, en los dos gráficos
se puede ver una componente estacional anual esto es causado por las temporadas de
lluvias y sequı́a de nuestra región del Cusco; como en tiempo de lluvias el rı́o Vilcanota
tiene un caudal mayor a lo que requiere EGEMSA trata de almacenar la mayor canti-
dad de agua en la represa de Sibinacocha, y que en tiempo de sequı́a empiece a soltar
agua para ası́ aumentar en nivel del caudal, esta decisión es tomada por el encargado
de la oficina de Centro de control. (Siempre cumpliendo y respetando las normas y
reglamentos ambientales)
76
Figura 4.10: Datos Represa Sibinacocha: (a) Volumen Acumulado y (b)
Desembalse o Despacho
 Calidad
Figura 4.11: Diagrama de cajas datos Sibinacocha: (a) Desembalse, (b)
Regleta y (c) Volumen Acumulado
Fuente: Elaboración Propia.
Los datos hidrológicos de la represa Sibinacocha recopilados, como se mencionó
anteriormente pertenecen a la carpeta ‘Datos CCD’ de División Centro de Control,
las cuales están en formato excel, posteriormente fueron cargadas a la base de datos
‘BDHistorica SCADA’, de acuerdo a las pruebas estadı́sticas realizadas (tabla 4.7,
figuras 4.11 y 4.9) no se encontraron valores atı́picos, nulos y/o vacı́os; en general se
determina que esta tabla es confiable.
77
4.2.2.4. Demanda de Energı́a Eléctrica
À Descripción
Los datos de la demanda de energı́a eléctrica se obtuvieron de la página web del
COES, se descargaron los archivos Excel; en la cual los datos de la demanda de energı́a
eléctrica son cada 30 min (tabla 4.8).
Las fechas elegidas de la demanda son las mismas que de la potencia eléctrica
para trabajar en forma paralela; por lo tanto los registros son desde desde el 01/07/2015
00:30 hasta 01/01/2018 00:00, son 915 dı́as; como se tiene los datos cada 30 minutos,
se tiene un total 43920 registros.
El archivo de Demanda de Energı́a Eléctrica tiene los siguientes atributos (tabla
4.8).
Tabla 4.8: Demanda de energı́a eléctrica
Atributo Tipo Unidad de Medida Descripción
Fecha-Hora Fecha y Hora DD/MM/AA HH:MM Fecha y hora
Ejecutado Numérico MW Demanda Ejecutada
Prog Diaria Numérico MW Demanda Prog. diaria
Prog Semanal Numérico MW Demanda Prog.semanal
Fuente: http://www.coes.org.pe/Portal/Operacion/Transferencias
Á Exploración
Se determinó estadı́sticos básicos de los datos de la Demanda (tabla 4.9) y en
la figura 4.12 la distribución de frecuencia de los datos, donde se observa la densidad
de los datos según rangos.
Tabla 4.9: Estadı́sticos básicos datos de Demanda
Variables Ejecutado Prog Diaria Prog Semanal
Mı́nimo 3706 3739 3664
1er Cuartil Q1 4961 5004 5020
Mediana 5471 5523 5525
Media 5422 5479 5494
3er Cuartil Q3 5899 5970 5993
Máximo 6654 6673 6720
σ 567.13 577.76 580.55
Fuente: Elaboración Propia.
En la tabla de datos estadı́sticos básicos de la Demanda se identificaron las
siguientes caracterı́sticas:
Todos los datos de la demanda tienen desviación estándar (σ) alta, el cual nos
indica que la dispersión de los datos es muy variable con respecto a su media.
78
Figura 4.12: Diagrama de frecuencias de Demanda
Fuente: Elaboración Propia.
En la figura 4.13(a) se visualiza la demanda ejecutada de energı́a eléctrica de
todos los dı́as analizados, en allı́ sólo se puede apreciar una variabilidad alta. En la figura
4.13(b) se tiene el gráfico de los registros correspondientes a 2 semanas (672 registros),
en allı́ se aprecia a primera vista una componente estacionaria diaria y semanal. En
conclusión la demanda presenta constantes fluctuaciones tanto según la hora del dı́a,
el dı́a de la semana, el mes de año, la estación, etc.
Figura 4.13: Demanda de Energı́a Eléctrica
Fuente: Elaboración Propia.
79
 Calidad
Figura 4.14: Diagrama de caja de demanda de energı́a eléctrica.
Fuente: Elaboración Propia.
Los datos de la demanda de energı́a eléctrica como se mencionó anteriormente
se obtuvo de la pagina web del COES y luego fue cargada a la ’BDHistorica SCADA’;
según la tabla 4.9 de datos estadı́sticos y la figura 4.14 no se encontraron valores nulos,
vacı́os e incoherentes, por ende se determina que esta tabla es confiable.
4.2.2.5. Datos Costo Marginal
À Descripción
El costo marginal a estudiar pertenece a la barra correspondiente a la Central
Hidroeléctrica Machupicchu denominada ‘MACHUPICCHU 138’.
Los datos de costo marginal de dicha se obtienen de la página web del COES,
se descargaron los archivos Excel; en la cual los datos del costo marginal de la energı́a
eléctrica son cada 30 min (tabla 4.10).
Las fechas que se encontraron del costo marginal fueron desde agosto del 2015;
por lo tanto los registros son desde desde el 01/08/2015 00:30 hasta 01/01/2018 00:00,
son 823 dı́as; como se tiene los datos cada 30 minutos, se tiene un total 39504 registros.
El archivo de Costo Marginal de Energı́a Eléctrica tiene los siguientes atributos
(tabla 4.10).
Tabla 4.10: Costo Marginal
Atributo Tipo Unidad de Medida Descripción
Fecha-Hora Fecha y Hora DD/MM/AA HH:MM Fecha y hora del costo
CostoMarginal Numérico S//KWh Costo Marginal
Fuente: http://www.coes.org.pe/Portal/Operacion/Transferencias/CostosMarginales
80
Á Exploración
Se determinó estadı́sticos básicos de los datos de Costo Marginal (tabla 4.11)
y en la figura 4.15 la distribución de los datos, donde se observa la frecuencia de los
datos según sus rangos.
Tabla 4.11: Estadı́sticos básicos de Costo Marginal
Variable Costo Marginal
Minimo 0.00000
1er Cuartil Q1 0.01943
Mediana 0.04284
Media 0.04992
3er Cuartil Q3 0.05908
Maximo 0.52830
σ 0.04972
Fuente: Elaboración Propia.
Figura 4.15: Diagrama de frecuencia de Costo Marginal
Fuente: Elaboración Propia.
En la tabla de datos estadı́sticos básicos del Costo Marginal se identificaron las
siguientes caracterı́sticas:
Todos los datos del costo marginal tienen desviación estándar (σ) alta, el cual
nos indica que la dispersión de los datos es muy variable con respecto a su media.
Los datos varı́an desde 0 a 0.5283.
El 75 % de los datos son menores a 0.060, esto indica que se tiene valores muy
bajos.
En la figura 4.16(a) se visualiza el costo marginal de todos los dı́as analizados, en
la cual se aprecia una variabilidad alta y también se pueden apreciar las temporadas de
Avenida y Estiaje. En la figura4.16(b) se tiene el gráfico de los costos correspondiente
a 1 semana (336 registros) en la temporada de Estiaje y en la figura 4.16(c) se tiene
el gráfico de los costos correspondiente a 1 semana (336 registros) en la temporada de
Avenida. Con esto se interpreta que el costo marginal esta relacionado a las temporadas
81
de Estiaje y Avenida; ya que el costo marginal en tiempo de Avenida es mucho menor
al de la temporada de Estiaje.
Figura 4.16: Costo Marginal de la barra de Machupicchu 138: (a) Gráfico del total de registros, (b)
Gráfico de 1 semana en temporada Estiaje y (c) Gráfico de 1 semana en temporada Avenida
Fuente: Elaboración Propia.
 Calidad
Figura 4.17: Diagrama de Cajas de Costo Marginal
Fuente: Elaboración Propia.
Los datos del costo marginal de la barra de Machupicchu 138 como se men-
cionó anteriormente se obtuvo de la página web del COES y luego fue cargada a la
’BDHistorica SCADA’; según la tabla 4.11 de datos estadı́sticos y la figura 4.17 no se
encontraron valores nulos, vacı́os e incoherentes, por lo tanto esta tabla tiene valores
confiables.
82
4.2.3. Resumen Fase II
En esta fase se identificaron y se accedieron a todos los orı́genes de los datos,
los atributos claves que se utiliza como base en el estudio de la presente tesis de in-
vestigación, todas las variables identificadas son “Series de Tiempo” (secuencia de
observaciones sobre intervalos de tiempo separados de manera regular); los gráficos y
estadı́sticos básicos nos ayudaron a entender el comportamiento y el significado del
valor de cada una de las variables, y la relación que existe entre ellas en el proceso de
generación de energı́a eléctrica de EGEMSA.
A continuación un resumen de las tablas de las series temporales.
Tabla 4.12: Variables de proceso
Datos Nombre Tabla Ubicación
Datos de generación CHM tGeneración BDHistorica SCADA
Datos hidrológicos CHM tHidrológicos BDHistorica SCADA
Datos hidrológicos Sibinacocha tSibinacocha BDHistorica SCADA
Datos demanda de energı́a eléctrica tDemanda BDHistorica SCADA
Datos de costo marginal de energı́a eléctrica tCostoMarginal BDHistorica SCADA
Fuente: Elaboración Propia.
4.3. FASE III. Preparación de los datos
En esta fase de la metodologı́a abarca todas las tareas y actividades para pre-
parar los datos para adecuarlos a las técnicas que se van a emplear. Esto implica
seleccionar los datos y conjuntos que se va a utilizar, limpiar cada uno de ellos para
mejorar su calidad, sustituir valores atı́picos, añadir nuevos atributos en base a los
existentes y darles el formato requerido.
4.3.1. Selección de datos
En la fase anterior se comprendieron las tablas más importantes; en cada una de
ellas tiene incluido varios atributos (Series de Tiempo), a continuación se seleccionaron
las series temporales clave para el estudio.
a) En la tabla de generación (ver tabla 4.2), se determinó que las series de tiempo clave
de la tabla de Generación CHM más prometedores son: Pot Act G1, Pot Act G2,
Pot Act G3, Pot Act G4, Pot Total; porque la potencia activa es la potencia útil
que se entrega al SEIN.
83
b) En la tabla de hidrológicos CHM (ver tabla 4.4) las series de tiempo más prometedo-
ras son: Cau Rio Vil y Cau Tun, porque la cantidad de agua disponible que se tiene
en el rı́o Vilcanota esta directamente relacionado con la generación de EGEMSA.
c) En la tabla de hidrológicos Sibinacocha (ver tabla 4.6) las series de tiempo más
prometedoras son: Desembalse y Vol Acum, porque en el tiempo de sequı́a el agua
almacenada en la represa, se va soltando de acuerdo a las necesidades y decisiones
del personal de centro de control de EGEMSA.
d) En la tabla de demanda de energı́a eléctrica (ver tabla 4.8) la serie de tiempo clave
es Ejecutado, porque es la demanda real consumida por el SEIN y los otros no se
consideró porque son demandas proyectadas diaria y semanal.
e) En la tabla de costo marginal de energı́a eléctrica (ver tabla 4.10) la serie de tiempo
clave es CostoMarginal, porque es el historial del costo real.
4.3.1.1. Resumen selección de datos
De cada una de las tablas, se elegieron las variables:
Pot Total
Cau Rio Vil
Cau Tun
Vol Acum
Ejecutada
CostoMarginal
4.3.2. Limpieza de datos
En esta parte se realiza la limpieza de datos: primero se realiza la corrección de
atı́picos, segundo se elige el mejor filtro y tercero se realiza pruebas para determinar el
mejor ancho de ventana de cada serie temporal. Al realizar esto en cada serie temporal
se obtiene la forma básica de la misma. Para esto se utilizó los algoritmos de la librerı́a
KDSeries siguientes:
kdfilterremove para eliminar los atı́picos considerando los valores máximos y mı́ni-
mos de acuerdo a las especificaciones de los especialistas.
kdfilter y kdmatfilter para determinar el mejor filtro.
84
kdmatfilter, kdplomat, kdplotnumz, kdplotscales, kdplotzcross para determinar
el mejor ancho de ventana para el suavizado.
4.3.2.1. Corrección de atı́picos con el algoritmo kdfilterremove
Utilizando el algoritmo kdfilterremove se corrigieron los valores atı́picos de las
series temporales halladas en la fase II. En la tabla 4.13 se indica las series temporales,
los parámetros del rango, tipos de filtro y los nombres de las nuevas series temporales.
Tabla 4.13: Corrección de Atı́picos de las series temporales
Tabla en R TSerie MinT Filter SerieFilt
Potencia Pot Act G2 30 max sf PAG2
Potencia Pot Act G3 30 max sf PAG3
Potencia Pot Act G4 [0-105] range sf PAG4
DatosHidro Cau Tun 60 max sf CauTun
Fuente: Elaboración Propia.
En la figura 4.18, se puede apreciar algunos de los sectores de las series tempo-
rales que fueron corregidos.
Figura 4.18: Filtro de las series temporales, de color verde nueva serie temporal y de color azul los
atı́picos: (a) Potencia activa G2, (b) Potencia Activa G3, (c) Potencia Activa G4 y (d) Caudal del
Túnel
Fuente: Elaboración Propia.
Como se corrigieron las potencias activas del grupo G2 y G3, se corrige también
la potencia activa total; ya que esta es la suma de las 4 potencias activas.
85
4.3.2.2. Elección del tipo de filtro
Para elegir el mejor filtro, se comparó los mejores filtros basado en medias móvi-
les como: filtro mediana, filtro media y filtro Gaussiano (más detalle 2.2.8). En la figura
4.19 se aprecia el diagrama de flujo para elegir el mejor filtro visualmente.
Figura 4.19: Diagrama de flujo para elegir el mejor filtro
Fuente: Elaboración Propia.
En la figura 4.20 se aprecia las series temporales con los filtros ya mencionados,
y se eligió el filtro Gaussiano, porque reduce el ruido de forma significativa y produce
un suavizado más uniforme que el de la media y la mediana.
Figura 4.20: Prueba de filtro para las series temporales: negra original, verde Gauss, azul Mean y
rojo Median. (a) Potencia Total, (b) Demanda Ejecutada, (c) Costo Marginal y (d) Caudal rı́o
Vilcanota
Fuente: Elaboración Propia.
86
4.3.2.3. Elección de ancho de ventana
Para elegir el mejor ancho de ventana para las series temporales se utiliza las
funciones de la librerı́a KDSeries: kdmatfilter para generar la matriz con diferentes an-
chos de ventana y kdplotmat, kdplotzcross, kdplotnumz y kdplotscales para visualizar
la matriz, identificar los cruces por cero, la evolución de los cruces por cero y la posición
de máximos y mı́nimos respectivamente. En la figura 4.21 se aprecia el diagrama de
flujo que indica el procedimiento que se siguió para el tratamiento de las series tempo-
rales utilizando el filtro Gaussiano; con el fin de encontrar el mejor ancho de ventana
sin perder el comportamiento caracterı́stico de cada serie temporal.
Figura 4.21: Diagrama de flujo a seguir para seleccionar el mejor ancho de ventana,
para cada serie temporal
Fuente: Elaboración Propia.
A continuación se elige el ancho de ventana para cada serie temporal siguiendo
los pasos del diagrama de flujo 4.21.
87
¶ SERIE DE TIEMPO POTENCIA ACTIVA TOTAL: Siguiendo el
diagrama de flujo para elegir el mejor ancho de ventana, se tiene la serie temporal
potencia activa total para elegir, analizar y determinar visualmente cual es el mejor
ancho de ventana. En las figuras 4.22 y 4.23 se visualiza todas pruebas.
Figura 4.22: Prueba visual de la ST Potencia activa total con kdplotzcross con anchos de ventana
de:
(a) Serie original, (b) 3, (c) 4, (d) 5, (e) 7 y (f) 10
Fuente: Elaboración Propia.
Análisis de la ST potencia activa total en cada función utilizada:
Con las funciones kdplotzcross (fig. 4.22 y fig. 4.23(b)) y kdplotmat (fig. 4.23(a))
se puede apreciar que con anchos de ventana de 5 a 7, se reduce el ruido sin
perder su forma básica.
Con la función kdplotnumz (fig. 4.23(c)), nos indica la cantidad de cruces por cero
según diferentes anchos de ventana; por lo tanto, según esta prueba los mejores
anchos de ventana están entre 4 y 6.
Con la función kdplotscales (fig. 4.23(d)), se visualiza donde se ubica los cruces
por cero de acuerdo a diferentes anchos de ventana; por lo tanto, se observa que
en filtros de 4 y 5 mantiene en su posición a los máximos y mı́nimos relevantes.
88
Figura 4.23: Elección Ancho de Ventana para ST Potencia activa total.
(a) Filtro de serie con varios anchos de ventana con kdmatfilter.
(b) Identificación de cruces por cero con kdplotzcross.
(c) Número de max y min con diferentes anchos de ventana con kdplotnumz.
(d) Posición de max y min en diferentes anchos de ventana con kdplotscales.
Fuente: Elaboración Propia.
CONCLUSIÓN û Según el análisis en cada una de las pruebas, para deter-
minar el mejor ancho de ventana de la serie temporal de potencia activa total, es 5,
por ser un resultado regular, también al observar el comportamiento de la serie tem-
poral original y la nueva serie de tiempo filtrada con dicho ancho de ventana es la que
conserva más su forma básica.
Figura 4.24: ST Potencia total activa con filtro Gauss y ancho de ventana de 5, original (azul) y
filtrada (verde)
Fuente: Elaboración Propia.
89
· SERIE DE TIEMPO CAUDAL DEL RIO VILCANOTA: Siguiendo
el diagrama de flujo para elegir el mejor ancho de ventana, se tiene la serie temporal
caudal del rı́o Vilcanota para elegir, analizar y determinar visualmente cual es el mejor
ancho de ventana. En las figuras 4.25 y 4.26 se visualiza todas pruebas.
Figura 4.25: Prueba visual de la ST caudal rı́o Vilcanota con kdplotzcross con anchos de ventana
de: (a) Serie original, (b) 3, (c) 5, (d) 7, (e) 8 y (f) 10
Fuente: Elaboración Propia.
Análisis de la ST caudal del rı́o Vilcanota en cada función utilizada:
Con las funciones kdplotzcross (fig. 4.25 y fig. 4.26(b)) y kdplotmat (fig. 4.26(a))
se puede apreciar que con anchos de ventana de 3 a 5, se reduce el ruido sin
perder su forma básica.
Con la función kdplotnumz (fig. 4.26(c)), nos indica la cantidad de cruces por cero
según diferentes anchos de ventana; por lo tanto, según esta prueba los mejores
anchos de ventana están entre 4 a 7.
Con la función kdplotscales (fig. 4.26(d)), se visualiza donde se ubica los cruces
por cero de acuerdo a diferentes anchos de ventana; por lo tanto, se observa que
en filtros de 3 a 5 mantiene en su posición a los máximos y mı́nimos relevantes.
90
Figura 4.26: Elección Ancho de Ventana para ST caudal del rı́o Vilcanota.
(a) Filtro de serie con varios anchos de ventana con kdmatfilter.
(b) Identificación de cruces por cero con kdplotzcross.
(c) Número de max y min con diferentes anchos de ventana con kdplotnumz.
(d) Posición de max y min en diferentes anchos de ventana con kdplotscales.
Fuente: Elaboración Propia.
CONCLUSIÓN û Según el análisis en cada una de las pruebas, para deter-
minar el mejor ancho de ventana de la serie temporal de caudal del rı́o Vilcanota, es 5,
por ser un resultado regular, también al observar el comportamiento de la serie tem-
poral original y la nueva serie de tiempo filtrada con dicho ancho de ventana es la que
conserva más su forma básica.
Figura 4.27: ST caudal rı́o Vilcanota con filtro Gauss y ancho de ventana de 5, original (azul) y
filtrada (verde)
Fuente: Elaboración Propia.
91
¸ SERIE DE TIEMPO CAUDAL TUNEL DE ADUCCIÓN: Siguiendo
el diagrama de flujo para elegir el mejor ancho de ventana, se tiene la serie temporal
caudal túnel de aducción para elegir, analizar y determinar visualmente cual es el mejor
ancho de ventana. En las figuras 4.28 y 4.29 se visualiza todas pruebas.
Figura 4.28: Prueba visual de la ST caudal túnel de aducción con kdplotzcross con anchos de
ventana de: (a) Serie original, (b) 3, (c) 5, (d) 7, (e) 9 y (f) 11
Fuente: Elaboración Propia.
Análisis de la ST caudal túnel de aducción en cada función utilizada:
Con las funciones kdplotzcross (fig. 4.28 y fig. 4.29(b)) y kdplotmat (fig. 4.29(a))
se puede apreciar que con anchos de ventana de 3 a 5, se reduce el ruido sin
perder su forma básica.
Con la función kdplotnumz (fig. 4.29(c)), nos indica la cantidad de cruces por cero
según diferentes anchos de ventana; por lo tanto, según esta prueba los mejores
anchos de ventana están entre 3 a 5.
Con la función kdplotscales (fig. 4.29(d)), se visualiza donde se ubica los cruces
por cero de acuerdo a diferentes anchos de ventana; por lo tanto, se observa que
en filtros de 3 a 5 mantiene en su posición a los máximos y mı́nimos relevantes.
92
Figura 4.29: Elección Ancho de Ventana para ST caudal túnel de aducción.
(a) Filtro de serie con varios anchos de ventana con kdmatfilter.
(b) Identificación de cruces por cero con kdplotzcross.
(c) Número de max y min con diferentes anchos de ventana con kdplotnumz.
(d) Posición de max y min en diferentes anchos de ventana con kdplotscales.
Fuente: Elaboración Propia.
CONCLUSIÓN û Según el análisis en cada una de las pruebas, para deter-
minar el mejor ancho de ventana de la serie temporal de caudal túnel de aducción,
es 5, por ser un resultado regular, también al observar el comportamiento de la serie
temporal original y la nueva serie de tiempo filtrada con dicho ancho de ventana es la
que conserva más su forma básica.
Figura 4.30: ST caudal túnel de aducción con filtro Gauss y ancho de ventana de 5, original (azul) y
filtrada (verde)
Fuente: Elaboración Propia.
93
¹ SERIE DE TIEMPO VOLUMEN REPRESA SIBINACOCHA: La
serie de tiempo volumen represa Sibinacocha no necesita ser suavizada; ya que es una
serie con poca dimensionalidad.
º SERIE DE TIEMPO DEMANDA DE ENERGÍA ELÉCTRICA:
Siguiendo el diagrama de flujo para elegir el mejor ancho de ventana, se tiene la serie
temporal de demanda ejecutada para elegir, analizar y determinar visualmente cual es
el mejor ancho de ventana. En las figuras 4.31 y 4.32 se visualiza todas pruebas.
Figura 4.31: Prueba visual de la ST Demanda ejecutada con kdplotzcross con anchos de ventana de:
(a) Serie original , (b) 3, (c) 5, (d) 6, (e) 7 y (f) 9
Fuente: Elaboración Propia.
Análisis de la ST demanda ejecutada en cada función utilizada:
Con las funciones kdplotzcross (fig. 4.31 y fig. 4.32(b)) y kdplotmat (fig. 4.32(a))
se puede apreciar que con anchos de ventana de 5 y 6, se reduce el ruido sin
perder su forma básica.
Con la función kdplotnumz (fig. 4.32(c)), nos indica la cantidad de cruces por cero
según diferentes anchos de ventana; por lo tanto, según esta prueba los mejores
anchos de ventana están entre 5 a 8.
Con la función kdplotscales (fig. 4.32(d)), se visualiza donde se ubica los cruces
por cero de acuerdo a diferentes anchos de ventana; por lo tanto, se observa que
en filtros de 5 y 6 se mantiene en su posición los máximos y mı́nimos relevantes.
94
Figura 4.32: Elección Ancho de Ventana para ST Demanda ejecutada.
(a) Filtro de serie con varios anchos de ventana con kdmatfilter.
(b) Identificación de cruces por cero con kdplotzcross.
(c) Número de max y min con diferentes anchos de ventana con kdplotnumz.
(d) Posición de max y min en diferentes anchos de ventana con kdplotscales.
Fuente: Elaboración Propia.
CONCLUSIÓN û Según el análisis en cada una de las pruebas, para deter-
minar el mejor ancho de ventana para la serie temporal de Demanda ejecutada es 5 ó
6 por ser un resultado regular, como se trabaja con medias móviles se prefiere utilizar
el valor impar 5, también al observar el comportamiento de la serie temporal original
y la nueva serie de tiempo filtrada con dicho ancho de ventana es la que conserva más
su forma básica.
Figura 4.33: ST Demanda ejecutada con filtro Gauss y ancho de ventana de 5, original (azul) y
filtrada (verde)
Fuente: Elaboración Propia.
95
» SERIE DE TIEMPO COSTO MARGINAL DE ENERGÍA ELÉCTRI-
CA: Siguiendo el diagrama de flujo para elegir el mejor ancho de ventana, se tiene la
serie temporal de costo marginal para elegir, analizar y determinar visualmente cual es
el mejor ancho de ventana. En las figuras 4.34 y 4.35 se visualiza todas pruebas.
Figura 4.34: Prueba visual de la ST Costo Marginal con kdplotzcross con anchos de ventana de:
(a) Serie original , (b) 3, (c) 4, (d) 5, (e) 7 y (f) 9
Fuente: Elaboración Propia.
Análisis de la ST costo marginal en cada función utilizada:
Con las funciones kdplotzcross (fig. 4.34 y fig. 4.35(b)) y kdplotmat (fig. 4.35(a))
se puede apreciar que con anchos de ventana de 2 y 3, se reduce el ruido sin
perder su forma básica.
Con la función kdplotnumz (fig. 4.35(c)), nos indica la cantidad de cruces por cero
según diferentes anchos de ventana; por lo tanto, según esta prueba los mejores
anchos de ventana esta entre 4 a 7.
Con la función kdplotscales (fig. 4.35(d)), se visualiza donde se ubica los cruces
por cero de acuerdo a diferentes anchos de ventana; por lo tanto, se observa que
en filtros de 3 mantiene en su posición los máximos y mı́nimos relevantes.
96
Figura 4.35: Elección Ancho de Ventana para ST Costo marginal.
(a) Filtro de serie con varios anchos de ventana con kdmatfilter.
(b) Identificación de cruces por cero con kdplotzcross.
(c) Número de max y min con diferentes anchos de ventana con kdplotnumz.
(d) Posición de max y min en diferentes anchos de ventana con kdplotscales.
Fuente: Elaboración Propia.
CONCLUSIÓN û Analizando el resultado de las funciones kdplotzcross, kd-
plotmat y kdplotscales el ancho de ventana adecuado es 3; porque al observar el com-
portamiento de la serie temporal original y la nueva serie de tiempo filtrada con dicho
ancho de ventana, es la que conserva más su forma básica, cabe resaltar que se podrı́a
utilizar filtros mayores a 3 como nos indica la función de kdplotnumz; pero las posicio-
nes de los máximos y mı́nimos relevantes no se mantienen en su posición afectando ası́
la forma básica.
Figura 4.36: ST Costo con filtro Gauss y ancho de ventana de 5, original (azul) y filtrada (verde)
Fuente: Elaboración Propia.
97
4.3.3. Construcción de nuevos datos
Esta tarea incluye operaciones tales como generación de nuevos atributos y
transformación a partir de la los datos ya existentes.
4.3.3.1. Transformación
Los datos de potencia y demanda se encuentran en la unidad de MW (Me-
ga Watts) y la unidad del costo marginal es S//KWh; para trabajar en las mismas
S/
unidades el costo se multiplicó como sigue: coef ( KW )( 1000 ) = coefM(1000)S/
h 1000 Wh
4.3.3.2. Generación nuevos atributos
De acuerdo al documento: “PROCEDIMIENTO TÉCNICO DEL COMITÉ DE
OPERACIÓN ECONÓMICA DEL SINAC” PR-21, en el punto 7.4. menciona: “Para
tal fin, el Integrante deberá comunicar al COES la forma en la que prestará el servicio
de RPF, a más tardar el 1 de noviembre y/o 1 de mayo de cada año, para su aplicación
en los periodos de avenida y estiaje respectivamente”. Por lo tanto los registros que se
van a analizar se dividen en 2 grupos:
a) AVENIDA: Se refiere a la temporada de lluvia, determinada entre las fechas 1 de
Noviembre al 30 de Abril.
b) ESTIAJE: Se refiere a la temporada de sequı́a, determinada entre las fechas 1 de
Mayo al 31 de Octubre.
En las figuras 4.37, 4.38 y 4.39 claramente se puede apreciar como se comportan
las series temporales en fechas de Avenida y Estiaje.
Figura 4.37: Potencia Total en Avenida y Estiaje
Fuente: Elaboración Propia.
98
Figura 4.38: Caudal Rı́o Vilcanota y Caudal Túnel en Avenida y Estiaje
Fuente: Elaboración Propia.
Figura 4.39: Volumen represa Sibinacocha y Despacho en Avenida y
Estiaje
Fuente: Elaboración Propia.
En reuniones con el personal técnico especialista se analizó las series temporales,
en la cual los especialistas recomendaron también realizar el análisis en subconjuntos
determinado por caracterı́sticas de dı́as como son:
Por dı́as como: Lunes, Sábados y Domingos.
Feriados.
Los dı́as mencionados anteriormente con respecto a la temporada de Avenida o
Estiaje.
Estos subconjuntos son considerados como nuevos atributos discretizados de
acuerdo a la fecha del registro. En la tabla 4.14 se detallan las columnas y los valores
que pueden tomar.
99
Tabla 4.14: Nuevos atributos generados
Atributo Valor Detalle
Hora [0:23] El valor indica la hora del dı́a del registro
1 = Lunes, 2 = Martes, 3 = Miércoles, 4 = Jueves,
DiaSemana [1:7]
5 = Viernes, 6 = Sábado, 7 = Domingo
Temporada 0y1 0 = Estiaje y 1 = Avenida
Feriados 0y1 0 = No feriado y 1 = feriado
Fuente: Elaboración Propia.
4.3.4. Integración de datos
La integración de datos se aplicó a las series temporales de Potencia Total,
Demanda y Costo Marginal ya que estos se encuentran en el mismo intervalo de tiempo
(cada 30 minutos); seguidamente se agregaron los nuevos atributos generados en el paso
anterior. La nueva matriz la denominamos MatrizFinal que contendrá:
Fecha: Fecha y hora del registro.
sfs Potencia: Serie temporal potencia total activa.
sfs Demanda: Serie temporal demanda ejecutada de energı́a eléctrica.
sfs Costo: Serie temporal costo marginal de energı́a eléctrica en S//MWh.
Hora: Hora del dı́a del registro.
DiaSemana: Dı́a de la semana del registro.
Temporada: Temporada de estiaje o avenida.
Feriados: Si dicho registro pertenece a un dı́a feriado o no.
También se integró las series temporales: Caudal Rı́o Vilcanota, Caudal Túnel
y Volumen Represa Sibinacocha ya que éstos se encuentran en el mismo intervalo de
tiempo (cada 12 horas); seguidamente se agregaron los nuevos atributos generados en
el paso anterior. Esta matriz la denominamos MatrizHidro que contendrá:
Fecha: Fecha y hora del registro.
sfs Cau Rio Vil: Serie temporal caudal del rı́o Vilcanota.
sfs Cau Tun: Serie temporal caudal túnel de aducción.
sfs Vol Acum: Serie temporal volumen acumulado de la represa Sibinacocha.
Hora: Hora del dı́a del registro.
DiaSemana: Dı́a de la semana del registro.
Temporada: Temporada de estiaje o avenida.
Feriados: Si dicho registro pertenece a un dı́a feriado o no.
100
4.3.5. Evaluación Fase III
La fase III de la metodologı́a CRISP-DM “Preparación de los datos”, es la más
importarte y la que nos exigió mayor tiempo, al inicio se seleccionó los datos más
relevantes de diferentes tablas, todas las series temporales pasaron por la etapa de
limpieza que incluı́a corregir y/o eliminar datos atı́picos que se encontraron en la fase
II; luego se eligió el mejor filtro y el mejor ancho de ventana para suavizar cada una
de las series temporales para encontrar su forma básica caracterı́stica; seguidamente
se pasó a la tarea de construcción de nuevos datos que consistı́a en transformación y
generación de datos a partir de los ya existentes, se transformó la serie temporal Costo
Marginal y se generó atributos nuevos como Hora, Dı́a de la Semana, Temporada y
Feriados; la tarea final consistió en integrar los datos, en la cual se unieron tablas y
agregaron los nuevos atributos, en la figura 4.40 se aprecia la tabla de Matriz Final y
la figura 4.41 la matriz Hidro. En este punto ya se tiene completamente preparados los
datos para entrar a la fase IV.
Figura 4.40: Matriz Final
Fuente: Elaboración Propia.
Figura 4.41: Matriz Hidro
Fuente: Elaboración Propia.
101
4.4. FASE IV. Modelado
En esta fase de la metodologı́a CRISP-DM se elige las técnicas más apropiadas
para los objetivos de la minerı́a de datos. Después de realizar el plan de prueba se
procede a aplicar las técnicas sobre los datos, se genera el modelo, se calibra de acuerdo
a cada una de las caracterı́sticas de las series de tiempo y por último se evalúa el modelo
gracias a la estadı́stica descriptiva.
4.4.1. Selección de técnicas de modelado
Los tipos de datos que disponemos para este estudio de minerı́a de datos, son
todos series de tiempo; el objetivo principal de la minerı́a de datos es encontrar patrones
de comportamiento en las variables de generación que ayuden a la toma de decisiones.
Primero, la técnica seleccionada para la extracción de tramos es la “segmenta-
ción lineal”, esta técnica esta dentro del grupo de técnicas de representación lineal por
partes (PLR) y a su vez pertenece a la segmentación de series temporales, esta técnica
trata de simular el funcionamiento que tiene el cerebro cuando determina si dos tramos
de una serie temporal son similares o no.
Segundo, la técnica permite extraer de una matriz de subpatrones, secuencias
buscadas, basada en la búsqueda de “expresiones regulares” de emparejamiento de
secuencias.
Tercero, la técnica descriptiva seleccionada para el clustering es el método de
la “agrupación jerárquica”; esta nos ayudó a agrupar los patrones de acuerdo a sus
caracterı́sticas como posición, longitud y altura según sea el caso.
Cuarto, extracción de reglas de los casos que aparecen con mayor frecuencia, y
a su vez la presentación de estas con ayuda de la “estadı́stica descriptiva”.
4.4.2. Generación de un diseño de comprobación
La forma de comprobar los resultados obtenidos, esta basada en puros cálculos
estadı́sticos, para ver la similitud entre los resultados de los dos grupos de datos.
El número o porcentaje de ocurrencias encontradas en comparación a todos los dı́as
analizados y los nuevos datos; por consiguiente ver si este porcentaje se mantiene en
los nuevos datos generados el año 2018. Y por último si tiene un comportamiento útil
en el área de aplicación.
Los datos recolectados en el estudio se agrupó en dos grupos:
102
Los datos desde el 2015 al 2017 para analizar y probar el modelo.
Los datos del 2018 de Enero a Diciembre para la comprobación.
4.4.3. Generación de los modelos
El patrón buscado en cada serie temporal puede estar compuesto por 1 o más
subpatrones básicos; luego de encontrar los patrones, se agrupó y se presentó las reglas.
A continuación se presenta el diagrama de flujo del modelado:
Figura 4.42: Diagrama de flujo del modelo
Fuente: Elaboración Propia.
103
A continuación se detalla el funcionamiento de las técnicas utilizadas, cabe re-
calcar que la librerı́a KDSeries contiene la primera técnica que se van a utilizar. El
trabajo consiste en adaptar y calibrar dichas en base a nuestros objetivos de minerı́a
de datos:
4.4.3.1. Búsqueda de subpatrones
La primera función para la búsqueda de subpatrones esta basada en la técnica de
segmentación lineal, la técnica fue adaptada a las necesidades del proyecto y su diseño
esta a base de la función kdextractsubpatt perteneciente a la librerı́a KDSeries. En la
figura 4.43 se aprecia el diagrama de flujo de la técnica; en las figuras: 4.44, 4.45 y 4.46
los subprocesos incremento, decremento y horizontal respectivamente. A continuación
se tiene, la descripción de los parámetros de entrada y salida.
Parámetros de entrada:
TSerie: Serie temporal filtrada.
TipoPat: Tipo de subpatrón a buscar: Incremento (I), decremento (D) u horizon-
tal (H).
PatRangoX: Rango formado por un vector de dos valores c(min, max) de X en
los que tiene que estar comprendido el subpatrón.
PatRangoY: Rango formado por un vector de dos valores c(min, max) de Y en
los que tiene que estar comprendido el subpatrón.
TipoRango: Si se consideran los rangos X e Y por valores fijos (N) o porcentajes
(P). Por ejemplo, un vector c(“N”,“P”) considera los rangos de X por valores
fijos y los de Y por porcentajes.
limite: Valores de corte en donde buscar los patrones, por defecto es NULL. Se
consideran los subpatrones que se encuentran parcialmente dentro del lı́mite.
nivel: Los subpatrones se buscan por encima (+), debajo (−) o entre dos valores
(+−) del limite, por defecto es NULL.
nombrePat: Nombre del subpatrón encontrado.
Parámetros de salida:
MATSUBPAT: Matriz con los subpatrones encontrados, compuesto por la si-
guientes columnas: Columna 1 = posición del subpatrón (PosP) , columna 2 =
largo del subpatrón (LagP), columna 3 = altura del subpatrón (AltP), columna
4 = nombre del subpatrón (nomPat).
104
Descripción del diagrama general: En la figura 4.43, luego de ingresar todos
los parámetros, primero se normaliza la serie temporal entre valores de 0 a 1; pasamos
la serie temporal normalizada a la función zerocrossings de la librerı́a KDSeries y
esta nos entrega un vector denominado ‘Ceros’ de la misma longitud que la serie,
compuesta por los cruces por cero de la primera derivada; se crea un vector llamado
‘DondeCeros’ con números sucesivos desde 1 hasta la longitud del vector ‘Ceros’; del
vector ‘DondeCeros’ se elimina posiciones donde no existe el cruce por ceros; a base del
vector ‘DondeCeros’ se calcula Posición inicial del patrón, ancho de ventana del patrón,
posición real en Y y altura real; toda esta primera parte, es la parte más importante
para identificar tanto incrementos como decrementos de distintas longitudes y alturas,
seguidamente se pasa a los subprocesos de acuerdo al tipo de subpatrón que se desea
encontrar como son: Incrementos (I), Decrementos (D) y Horizontales (D). El código
se puede encontrar en el anexo F.
Figura 4.43: Diagrama general de búsqueda de subpatrones
Fuente: Elaboración Propia.
Descripción subproceso Incremento: En la figura 4.44, se selecciona todas
las alturas positivas del arreglo, aquı́ se valida cada subpatrón: si se encuentra en el
rango con respecto a X e Y, si se encuentra dentro del lı́mite buscado con respecto al
nivel; después se almacenan en los vectores resultado y por último se transforma a una
matriz con su respectivo nombre del subpatrón.
105
Figura 4.44: Diagrama de subproceso incremento
Fuente: Elaboración Propia.
Descripción subproceso Decrementos: En la figura 4.45, se selecciona todas
las alturas negativas del arreglo, aquı́ se valida cada subpatrón: si se encuentra en el
rango con respecto a X e Y, si se encuentra dentro del lı́mite buscado con respecto al
nivel; después se almacenan en los vectores resultado y por último se transforma a una
matriz con su respectivo nombre del subpatrón.
Descripción subproceso Horizontales: En la figura 4.46, se selecciona todas
las alturas del arreglo, aquı́ se valida cada subpatrón: si se encuentra en el rango con
respecto a X e Y, si se encuentra dentro del lı́mite buscado con respecto al nivel; después
se almacenan en los vectores resultado y por último se transforma a una matriz con su
respectivo nombre del subpatrón.
106
Figura 4.45: Diagrama de subproceso decremento
Fuente: Elaboración Propia.
4.4.3.2. Búsqueda de patrones
La segunda técnica pertenece a la tarea de emparejamiento de secuencias para
la búsqueda de patrones en TDM, y esta basada en expresiones regulares, este busca
secuencias parecidas gracias a la utilidad ’grep’. En la figura 4.47 se aprecia el diagrama
de flujo de la técnica.
Parámetros de entrada:
MAT: Matriz obtenida de la unión de varias matrices de subpatrones.
SubPatron: Vector con la secuencia de subpatrones. Permite el uso del comando
‘grep’ en R.
AnchoVentana: Ancho de ventana de la búsqueda.
nomPat: Nombre designado al patrón.
Plot: Valor booleano, normalmente en FALSE y si es TRUE dibuja la serie tem-
poral y los patrones encontrados en los rangos de Xlim e Ylim.
107
Figura 4.46: Diagrama de subproceso decremento
Fuente: Elaboración Propia.
SerieP: Serie de tiempo.
Xlim: Vector que contiene los lı́mites mı́nimo y máximo para dibujar en X.
Ylim: Vector que contiene los lı́mites mı́nimo y máximo para dibujar en Y.
Parámetros de salida:
MATPAT: Matriz con los patrones encontrados, compuesto por las siguientes
columnas: Columna 1 = posición del patrón (PosP), columna 2 = largo del patrón
(LagP), columna 3 = nombre del patrón (nomPat).
Descripción del diagrama de búsqueda de patrones: En la figura 4.47,
luego de ingresar todos los parámetros, primero se ordena la matriz ‘MAT’ según la
108
columna Posición ‘PosP’; luego se asigna al parámetro ‘NUMC’ el total de subpatrones
que contiene el patrón; se valida los parámetros de entrada; al parámetro ‘FILAS’ se
agrega el número de registros de la matriz ‘MAT’; se crea la matriz ‘MAT2’ a base de la
matriz ‘MAT’ menos los N U M C − 1 últimos registros; en un algoritmo repetitivo que
ayuda a construir una matriz a base de la matriz ‘MAT2’ para apilar horizontalmente la
misma matriz, pero iniciando desde la segunda posición y ası́ sucesivamente; se calcula
en un vector ‘AnchoPat’ el ancho de ventana del patrón, dado por la ‘PosP’ del último
patrón más su ‘LarP’ y se resta la ‘PosP’ del primer patrón; el vector se agrega a la
matriz ‘MAT2’; se crea un vector ‘CUALES’ de valores booleanos ‘TRUE’ de longitud
igual a la matriz ‘MAT2’; en esta parte se tiene un algoritmo repetitivo, este nos ayuda a
encontrar las coincidencias de la expresión regular gracias a la utilidad ‘grep’ (devuelve
posiciones donde se encontró las coincidencias), en el vector ‘MASCARA’ cambia a
‘TRUE’ las posiciones donde se encontró las coincidencias, esto es con ayuda de un
vector booleano ‘MASCARA’ con valores iniciales ‘FALSE’, luego realiza la operación
lógica conjunción con el vector ‘CUALES’ y ‘MASCARA’, terminado el ciclo repetitivo
se tendrá el vector ‘CUALES’ con valores ‘TRUE’ y ‘FALSE’, donde ‘TRUE’ estará
en la posición de los registros donde se encontró el patrón buscado y ‘FALSE’ caso
contrario; de la matriz ‘MAT2’ se quitan los registros donde las posiciones del vector
‘CUALES’ es ‘FALSE’; Se genera la matriz ‘MATPAT’ a base de la matriz ‘MAT2’,
considerando: columna 1 (Posición inicial del patrón), columna 2 (Ancho de ventana del
patrón) y columna 3 (nombre del patrón); se puede dibujar siempre y cuando la variable
‘PLOT’ este en ‘TRUE’, considerando los rangos dados por ‘Xlim’ y ‘Ylim’ para la
abscisa y ordenada respectivamente, la serie y los patrones encontrados; finalmente
devuelve la matriz ‘MATPAT’. El código se puede encontrar en el anexo F.
109
110
Figura 4.47: Diagrama de proceso búsqueda patrones
Fuente: Elaboración Propia.
4.4.3.3. Clustering
En esta parte se utiliza la Agrupamiento Jerárquico (hierarchical clustering).
De acuerdo a nuestra estrategia utilizamos la agrupación aglomerativa ’de abajo hacia
arriba’ (Agglomerative clustering ’bottom-up’ ). Más detalle de este agrupamiento en el
inciso 2.2.5.1
En el proceso de agrupación jerárquica aglomerativa para cada una los patrones
encontrados, se realiza los siguientes pasos:
1. Se elige las columnas de la matriz de patrones, que participarán en el proceso.
2. Se calcula la matriz de distancias utilizando un ı́ndice de disimilitud, en este caso
se utiliza la distancia euclidiana entre individuos. Es como sigue:
Sea la matriz de patrones X
p p1 p2 ... pn
q q1 q2 ... qn
X=
t = r1
r2 ... rn
... ... ... ... ...
z z1 z2 ... zn
Se halla la distancia entre registros: Sean p = (p1 , p2 , p13 , ...pn ) y q = (q1 , q2 , q3 , ...qn ).
v
u n
uX p
deuc (p, q) = t (pi − qi )2 = (p1 − q1 )2 + (p2 − q2 )2 + ... + (pn − qn )2
i=1
Se realiza la distancia de todos contra todos, formando ası́ una matriz simétrica
llamada Matriz de distancias.
0 dpq dpt ... dpz
0 dqt ... dqz
M ATdis =
0 ... d
tz
.. .
. ..
0
3. Se construye 3 dendogramas, apoyados con los ı́ndices de agregación más usados
como son:
Agregación de Ward Distancia entre los centros de los grupos.
111
|A||B|
δward (A, B) = ||gA − gB ||2
|A| + |B|
Agregación de salto máximo Distancia máxima entre 2 grupos.
n o
δmax (A, B) = max d(xi , yj )|xi ∈ A, xj ∈ B
Agregación del salto promedio Distancia entre todos contra todos y luego se
hace un promedio.
1 X
δprom (A, B) = d(xi , xj )
|A| × |B| x ∈A,y ∈B
1 j
4. Se evalúa los 3 árboles empleando el coeficiente de correlación cofenético, entre
el dendograma y la matriz de distancia original. Cuando más cercano es el valor
a 1, mejor refleja el dendograma la similitud entre las observaciones. Por lo tanto
se elige la agregación con más alto valor de coeficiente de correlación cofenético.
5. Se elige el número de cluster, se puede realizar de 2 formas: de acuerdo al den-
dograma y realizando un análisis de silueta de arboles jerárquicos.
6. Visualización del dendograma identificando sus grupos.
7. Agregar la columna de grupos a la matriz del patrón.
4.4.3.4. Presentación de reglas
La estadı́stica descriptiva nos ayuda a definir reglas respaldadas por el número de
ocurrencias (patrones) presentadas, con relación a la hora del dı́a, semana, temporada.
4.4.4. Ajuste y ejecución del modelo en cada ST
El modelo ya se encuentra listo; el paso siguiente es calibrar y ajustar los paráme-
tros de entrada en cada uno de los subprocesos (búsqueda subpatrones, búsqueda pa-
trones, clustering); por lo tanto a continuación se configura y calibra el modelo en cada
una de las series temporales estudiadas.
En coordinación con los especialistas, nos propusieron caracterı́sticas que son
importantes en cada serie temporal las que son:
ST potencia activa total: Cuando la potencia baja considerablemente, sin consi-
derar paradas y/o mantenimientos de grupos.
112
ST demanda de energı́a eléctrica: Comportamiento cuando empieza a subir, horas
puntas por dı́a y temporada.
ST costo marginal de energı́a eléctrica: Comportamiento del precio, especialmente
bajadas seguidas de precios contantes.
ST caudal rı́o Vilcanota: Comportamiento del caudal en la temporada de estiaje,
especialmente bajadas.
ST caudal túnel de aducción: Comportamiento del caudal (bajadas y subidas).
ST volumen represa Sibinacocha: Comportamiento del volumen, cuando empieza
a bajar considerablemente.
} Por la poca cantidad de datos que se tiene en las series de tiempo: Caudal rı́o
Vilcanota, caudal Túnel de aducción y volumen represa Sibinacocha, no se realizó el
proceso de modelado, ya que se tiene datos en las horas de 6 a.m. y 6 p.m.~
4.4.4.1. Serie temporal potencia activa total: ‘sfs Potencia’
PATRON1: Patrones donde la potencia baja considerablemente, sin considerar
paradas y/o mantenimientos de grupos. De aquı́ en adelante este patrón se denominará:
DEC POT que significa Patrón decremento de la variable Potencia.
¬ Proceso búsqueda de patrones
El comportamiento que se quiere analizar en la ST potencia activa total, es
encontrar patrones donde la potencia baja considerablemente sin considerar paradas
y/o mantenimientos de grupos; el tipo de patrón que se busca esta compuesto por un
subpatrón que es Decremento.
Figura 4.48: Patrón 1 que se desea encontrar dentro de la ST potencia activa total
Fuente: Elaboración Propia.
113
Según el detalle del Patron1, nos indica que no deben considerar mantenimientos
ni paradas de grupo se puede analizar lo siguiente:
Se excluirán decrementos mayores a 10M W ; ya que las turbinas Pelton generan
de 10M W a 30M W en promedio, esto depende del caudal que se tiene, y cuando
el grupo entra en mantenimiento la potencia total baja esa cantidad.
El tiempo que dura un mantenimiento es 4 horas como mı́nimo en promedio; por
lo tanto se excluyen anchos de ventana mayores a 8.
En caso de la variable lı́mite se buscará entre los valores de 40M W a 180M W ,
en toda serie tiempo.
Teniendo en cuenta las anteriores apreciaciones, se decidió encontrar todos los
decrementos existentes de la ST potencia activa total, con el fin de analizar los resul-
tados con el personal especializado; para ası́ excluir los no relevantes.
Por tanto, se tiene la tabla que detalla el análisis en cada uno de los parámetros
de salida.
Tabla 4.15: Ajuste parámetros Patron1, donde Par = Parámetros, AV = Ancho de ventana
Par Condición Análisis Detalles Conclusión
Las longitudes
varı́an de 1 a
Es el ancho 30; se decidió
de ventana extraer hasta 4
PatRangoX
LarP del patrón. horas, porque
← c(1,8)
1AV = 1/2 mayores a esta
hora. se puede tratar
de un manteni-
miento.
Las alturas
varı́an desde
4(10)−7 hasta
Es la altu-
9.94; se quedó
ra real del PatRangoX
AltP que variaciones
patrón meno- ← c(3,10)
menores a 3 son
res a 10M W
consideradas
como comporta-
miento estable.
Fuente: Elaboración Propia.
114
A continuación se aprecia el ajuste del primer proceso y el código de ejecución:
Tabla 4.16: Valores de los parámetros Patron1
Parámetros Valores
TSerie sfs Potencia
TipoPat “D”
PatRangoX c(1,8)
PatRangoY c(3,10)
limite c(40,180)
nivel “+-”
nomPat “DEC POT”
Fuente: Elaboración Propia.
# Patron1 : Decrementos en Potencia
Patron1 <- E xt r a cc i o nS u b Pa t r on ( MatrizFinal $ sfs _ Potencia , " D " ,
PatRangoX = c (1 ,8) , PatRangoY = c (3 ,10) , limite = c (40 ,180) ,
nivel = " + - " , nombrePat = " DEC _ POT " ) #
1 Se encontró 332 ocurrencias de acuerdo al ajuste, y el tiempo de ejecución
en promedio es 0.02 segundos.
Proceso de clustering
Los pasos son: primero se eligió las columnas LarP y AltP (estas determinan la
forma del Patrón), se escaló la matriz de patrones para calcular la matriz de distancia,
el dendograma y la matriz de distancias que dio el más alto coeficiente de correla-
ción cofenético, es el agrupamiento jerárquico con salto promedio (entregó un valor de
0.7761, se considera un valor aceptable); según el análisis de silueta nos recomienda
que k = 4, pero elegimos k = 3 para mayor manipulación de grupos, (figura 4.49), se
visualiza el dendograma del Patron1 en la figura 4.50 y por último se agregó la columna
de Grupos a la matriz del Patron1.
Figura 4.49: Análisis de silueta del árbol jerárquico para el Patron1: se eligió k = 3
Fuente: Elaboración Propia.
115
Figura 4.50: Dendograma del Patron1 con agrupamiento jerárquico con salto promedio y cluster
k=3
Fuente: Elaboración Propia.
Código de ejecución del agrupamiento jerárquico para el Patron1:
# Eleccion de variable y escalado
p1 <- Patron1 [ , c (4 ,5) ]
p1 <- scale ( p1 )
# Matriz de distancia
MatDis1 <- dist ( x = p1 , method = " euclidean " )
# Agrupamiento jerarquica
cj _ promedio <- hclust ( d = MatDis1 , method = " average " )
Grupo <- cutree ( cj _ promedio , 3)
# Agregar grupos a la Tabla Patron1
Patron1 <- cbind ( Patron1 , Grupo )
1 El tiempo de ejecución del código es de 0.23 segundos.
4.4.4.2. Serie temporal demanda de energı́a eléctrica: ‘sfs Demanda’
PATRON2: Comportamiento cuando la demanda empieza a subir, horas pico
por dı́a y temporada. De aquı́ en adelante este patrón se denominará: INC DEM que
significa Patrón incremento de la variable Demanda.
¬ Proceso búsqueda de patrones
El comportamiento que se que desea analizar en la ST demanda de energı́a
eléctrica, es encontrar patrones donde la demanda empieza a subir, el tipo patrón que
se busca está compuesta por un subpatrón que es Incremento.
116
Figura 4.51: Patrón 2 que se desea encontrar dentro de la ST demanda de energı́a eléctrica
Fuente: Elaboración Propia.
Según el detalle del Patron2, se debe encontrar patrones cuando la demanda
empieza a subir, horas pico, dı́as donde la demanda es baja, comportamiento en feriados
y fines de semana, se decidió encontrar todos los incrementos existentes en la serie
de tiempo demanda de energı́a eléctrica; con el fin de analizar conjuntamente con el
personal especializado, para ası́ excluir los no relevantes.
Por tanto, se tiene la tabla detallando el análisis en cada uno de los parámetros
de salida: LarP y AltP.
Tabla 4.17: Ajuste parámetros Patron2
Par Condición Análisis Detalles Conclusión
Es el ancho Las longitudes
de ventana varı́an de 1 a
PatRangoX
LarP del patrón. 27; se decidió
← c(4,19)
1AV = 1/2 extraer de 4
hora. hasta 19.
Las alturas
varı́an desde
Es la altu- 1,5(10)−2 hasta PatRangoX
AltP ra real del 2120; se consi- ←
patrón. deran variacio- c(150,1700)
nes desde 150 a
1700.
Fuente: Elaboración Propia.
117
A continuación se aprecia el ajuste del primer proceso y el código de ejecución:
Tabla 4.18: Valores de los parámetros Patron2
Parámetros Valores
TSerie sfs Demanda
TipoPat “I”
PatRangoX c(4,19)
PatRangoY c(150,1700)
limite NULL
nivel NULL
nomPat “INC DEM”
Fuente: Elaboración Propia.
# Patron2 : Incrementos en Demanda
Patron2 <- E xt r a cc i o nS u b Pa t r on ( MatrizFinal $ sfs _ Demanda , " I " ,
PatRangoX = c (4 ,19) , PatRangoY = c (150 ,1700) , limite = NULL ,
nivel = NULL , nombrePat = " INC _ DEM " )
1 Se encontró 1814 ocurrencias de acuerdo al ajuste, y tiempo de ejecución
promedio es 0.02 segundos.
Proceso de clustering
Los detalles de este proceso son: primero se eligió las columnas LarP y AltP
(estas determinan la forma del patrón y su valor) y PosP (Y2 determina su valor),
se escala la matriz de patrones para calcular la matriz de distancia, el dendograma y
la matriz de distancias que dio el coeficiente de correlación cofenético más alto es el
agrupamiento jerárquico con ı́ndice de Ward (dio un valor de 0.8351, se considera un
valor aceptable), según el análisis de silueta nos recomienda que k = 4 (figura 4.52); se
visualiza el dendograma del Patron2 en la figura 4.53 y por último se agrega la columna
de Grupos a la matriz del Patron2.
Figura 4.52: Análisis de silueta del árbol jerárquico para el Patron2: nos recomienda que el número
de cluster sea k = 4
Fuente: Elaboración Propia.
118
Figura 4.53: Dendograma del Patron2 con agrupamiento jerárquico con ı́ndice de Ward y cluster
k=4
Fuente: Elaboración Propia.
Código de ejecución del agrupamiento jerárquico para el Patron2:
p2 <- Patron2 [ , c (4 ,5 ,2) ]
p2 <- scale ( p2 )
MatDis2 <- dist ( x = p2 , method = " euclidean " )
cj _ ward <- hclust ( d = MatDis2 , method = " ward . D2 " )
Grupo <- cutree ( cj _ ward , 4)
Patron2 <- cbind ( Patron2 , Grupo )
1 El tiempo de ejecución promedio del código es de 0.8 segundos..
4.4.4.3. Serie temporal costo marginal de energı́a eléctrica: ‘sfs Costo’
PATRON3: Comportamiento del costo cuando baja considerablemente y se
estabiliza, en dı́as, grupos y temporadas. De aquı́ en adelante este patrón se deno-
minará: DEC HOR COS que significa Patrón decremento - horizontal de la variable
Costo Marginal.
¬ Proceso búsqueda de patrones
El comportamiento que se quiere analizar en la ST costo marginal de la energı́a
eléctrica, es encontrar patrones donde el costo baja considerablemente y luego se es-
tabiliza; el tipo de patrón que se busca, está compuesto por dos subpatrones que son
Decremento y Horizontal.
119
Figura 4.54: Patrón 3 que se desea encontrar dentro de la ST costo marginal de energı́a eléctrica
Fuente: Elaboración Propia.
Según el detalle del Patron3, este nos indica encontrar el comportamiento donde
el costo baja y luego se mantiene estable; por ende primero se tiene que calibrar el
subpatrón decremento, segundo el subpatrón horizontal y por último se busca el patrón
completo.
a) Subpatrón Decremento DEC COS: Se encontró todos los decrementos existen-
tes dentro de la serie temporal; con el fin de analizar conjuntamente con el personal
especializado los resultados; para ası́ determinar los lı́mites superior e inferior.
Tabla 4.19: Ajuste parámetros SubPatron3 Decremento
Par Condición Análisis Detalles Conclusión
Es el ancho
Las longitudes
de ventana
varı́an de 1 a PatRangoX
Lar1 del subpatrón.
25; se decidió ← c(1,25)
1AV = 1/2
extraer todos.
hora.
Las alturas
varı́an desde 1
hasta 358; se
Es la altura quedó que varia-
PatRangoX
Alt1 real del sub- ciones menores
← c(3,358)
patrón a 3 son consi-
deradas como
comportamiento
estable.
Fuente: Elaboración Propia.
120
b) Subpatrón Horizontal HOR COS: Como se considera decrementos e incremen-
tos todos los mayores e iguales a 3, los horizontales son aquellas alturas de incre-
mento y decremento que se encuentran entre -3 y 3.
Tabla 4.20: Valores de los parámetros subpatrón DEC y HOR del Patron3
Par DEC HOR
TSerie sfs Costo sfs Costo
TipoPat “D” “H”
PatRangoX c(1,25) NULL
PatRangoY c(3,360) c(-3,3)
limite NULL NULL
nivel NULL NULL
nomPat DEC COS HOR COS
Cantidad 1342 7745
Fuente: Elaboración Propia.
c) Patrón Completo DEC HOR COS: Se quiere encontrar decrementos seguidos
de horizontales. A continuación se tiene el ajuste de parámetros para la búsqueda
del patrón.
Tabla 4.21: Valores de los parámetros patron3
Par. Patron Valores
MAT MAT TOTAL5
SubPatron c(“DEC COS”, “HOR COS”)
AnchoVentana 48
nomPat “DEC HOR COS”
Plot FALSE
Cantidad 856
Fuente: Elaboración Propia.
Código de ejecución:
# Subpatron : Decremento
D3 <- Ex t r ac c i o nS u b Pa t r on ( MatrizFinal $ sfs _ Costo , " D " , PatRangoX
= c (1 ,25) , PatRangoY = c (3 ,360) , nombrePat = " DEC _ COS " ,
limite = NULL , nivel = NULL )
# Subpatron : Horizontal
H3 <- Ex t r ac c i o nS u b Pa t r on ( MatrizFinal $ sfs _ Costo , " H " , PatRangoX =
NULL , PatRangoY = c ( -3 ,3) , nombrePat = " HOR _ COS " , limite =
NULL , nivel = NULL )
# Subpatron : Incremento
I3 <- Ex t r ac c i o nS u b Pa t r on ( MatrizFinal $ sfs _ Costo , " I " , PatRangoX
= c (1 ,48) , PatRangoY = c (3 ,360) , nombrePat = " INC _ COS " ,
limite = NULL , nivel = NULL )
# Creacion matriz
121
MAT _ TOTAL3 <- rbind ( D3 $ MATSUBPAT , H3 $ MATSUBPAT , I3 $ MATSUBPAT )
Patron3 <- BusquedaPatron ( MAT _ TOTAL3 , SubPatron = c ( " DEC _ COS " ,"
HOR _ COS " ) , AnchoVentana = 48 , nomPat = " DEC _ HOR _ COS " )
1 Se encontró 856 ocurrencias de acuerdo al ajuste, y el tiempo de ejecución
promedio es de 0.28 segundos.
Proceso de clustering
Los detalles de este proceso son: primero se eligió las columnas Alt1 y LongP
(las dos determinan la forma del Patrón), se escala la matriz de patrones para calcular
la matriz de distancia, el dendograma que dio el más alto coeficiente de correlación
cofenético es la agrupación jerárquica con ı́ndice de Ward (dio un valor de 0.7513, se
considera un valor aceptable), según el análisis de silueta nos recomienda que k = 5
(figura 4.55); pero para el análisis estadı́stico son muchos grupos, se decidió que sea
k = 4,se visualiza el dendograma del Patron3 en la figura 4.56 y por último se agrega
la columna de Grupos a la matriz del Patron3.
Figura 4.55: Análisis de silueta del árbol jerárquico para el Patron3: nos recomienda que el número
de cluster sea k=5, pero elegimos k = 4
Fuente: Elaboración Propia.
Código de ejecución del agrupamiento jerárquico para el Patron3:
p3 <- Patron3 [ , c (5 ,20) ]
p3 <- scale ( p3 )
MatDis3 <- dist ( x = p3 , method = " euclidean " )
cj _ ward <- hclust ( d = MatDis3 , method = " ward . D2 " )
Grupo <- cutree ( cj _ ward , 4)
Patron3 <- cbind ( Patron3 , Grupo )
1 El tiempo de ejecución promedio del código es de 0.23 segundos.
122
Figura 4.56: Dendograma del Patron3 con agrupamiento jerárquico con ı́ndice de Ward y cluster
k=4
Fuente: Elaboración Propia.
4.4.5. Evaluación del modelo
4.4.5.1. Patron1: DEC POT (Decremento Potencia)
1. Ilustración del Patrón DEC POT: Se encontraron 332 patrones, en toda la serie
temporal de acuerdo a las caracterı́sticas ajustadas en la anterior tarea, a con-
tinuación se visualiza un sector de la serie temporal potencia activa total de los
patrones, identificando los patrones encontrados.
Figura 4.57: Patron1: DEC POT
Fuente: Elaboración Propia.
2. Análisis de los cluster del Patron1: Se puede apreciar en la figura 4.58(a) el
gráfico de dispersión de los puntos LarP y AltP, coloreados de acuerdo al cluster
que pertenecen; y en la figura 4.58(b) las caracterı́stica de los centroides de cada
cluster. El cluster 1 se caracteriza por tener todo tipo de largos pero de altura
media a baja, el cluster 2 se caracteriza por tener largos medios pero alturas
altas, y por último el cluster 3 se caracteriza por tener largos grandes y alturas
altas.
123
Figura 4.58: Análisis cluster Patron1: (a) Gráfico de Dispersión de los puntos compuestos por LarP
y AltP y (b) Histograma representado por los centroides del cluster
Fuente: Elaboración Propia.
Tabla 4.22: Número y Porcentaje del Patron1 con respecto a los grupos
Cluster Detalle Cantidad Por( %)
Largo variado y altu-
1 293 88.25
ras pequeñas - medias
Largo medio y alturas
2 30 9.04
medias - altas
Largo grandes y altu-
3 30 3.71
ras altas
TOTAL 332 100
Fuente: Elaboración Propia.
3. Análisis Estadı́stico: Se analiza cada una de las categorı́as presentadas en la tabla
Patron1 como: Hora, DiaSemana, Temporada, Combinación de turbinas y grupos.
Figura 4.59: Histograma Patron1: Hora vs Grupo
Fuente: Elaboración Propia.
Interpretación del histograma Hora vs Grupo (figura 4.59): Las horas del
dı́a en que ocurre el mayor número de ocurrencias son: 0, 2, 3, 4, 7, 8, 9, 10, 13 y
14, aclarando que en las primeras horas de la mañana existe mucho más que en
comparación de la tarde; también se puede notar esa proporción considerando los
grupos de acuerdo a su forma. El Patrón se encuentra en 208 dı́as, representando
el 22.73 % del total de dı́as analizados, es una cifra significativa a tener en cuenta.
124
Figura 4.60: Histograma Patron1: Hora vs Temporada
Fuente: Elaboración Propia.
Interpretación del histograma Hora vs Temporada (figura 4.60): Antes de
la interpretación cabe mencionar que el total de dı́as analizados es 915, el 53.6 %
y 46.4 % pertenece a las temporadas de estiaje y avenida respectivamente. De las
ocurrencias encontradas (332) el 54.2 % y 45.8 % pertenecen a estiaje y avenida
respectivamente; en la cual se concluye que no importa la temporada en la que
se encuentra para encontrar dicho patrón.
Figura 4.61: Histograma Patron1: Hora vs DiaSemana
Fuente: Elaboración Propia.
Interpretación del histograma Hora vs Dı́a de la semana (figura 4.61):
Los dı́as Martes y Jueves son los dı́as en que existe un porcentaje menor de
ocurrencias, caso contrario ocurre los dı́as Miércoles y Domingo.
Figura 4.62: Histograma Patron1: Combinacion de Turbinas vs Grupo
Fuente: Elaboración Propia.
125
Interpretación del histograma combinación de turbinas VS Grupos (fi-
gura 4.62): Antes de la interpretación cabe mencionar que en el nombre de las
combinaciones ’0’ indica que no esta en funcionamiento y ’1’ esta en funciona-
miento, en el orden G1, G2, G3 y G4. Aparentemente se podrı́a decir que la
última combinación es la que presenta mayores ocurrencias, pero esta en relación
de cuantos dı́as se presentó esa combinación. Analizando las combinaciones de
los grupos la última se presentó en el 51 % de dı́as y las demás varı́an de 4 a 9 %.
En el porcentaje de ocurrencias donde se presenta más el patrón DEC POT, con
respecto a las combinaciones son las combinaciones ’0111’ y ’1101’.
4. Resumen de reglas donde se encontró en patrón DEC POT.
Mayor frecuencia en las horas de la mañana.
Miércoles y Domingo existe mayor frecuencia, caso contrario en Martes y
Jueves.
En las combinaciones ’0111’ y ’1101’ existe mayor frecuencia.
5. Resumen
Tabla 4.23: Número y Porcentaje del Patron1 con respecto a los grupos
Detalle
Nombre DEC POT
Ocurrencias 332
Número cluster 3
Porcentaje 22.73 %
Tiempo búsqueda
0.02
patrón
Tiempo clustering 0.23
Fuente: Elaboración Propia.
4.4.5.2. Patron2: INC DEM (Incremento Demanda)
1. Ilustración del Patrón INC DEM: Se encontraron 1814 patrones, en toda la serie
temporal de acuerdo a las caracterı́sticas ajustadas en la anterior tarea, a conti-
nuación se visualiza un sector de la serie temporal demanda de energı́a eléctrica,
identificando los patrones encontrados.
126
Figura 4.63: Patron2: INC DEM
Fuente: Elaboración Propia.
2. Análisis de los cluster del Patron2: Se puede apreciar en la figura 4.64(a) el gráfico
de dispersión de los puntos LarP, AltP y PosY, coloreados de acuerdo al cluster
que pertenecen y en la figura 4.64(b) las caracterı́stica de los centroides de cada
cluster. Los clusters se caracterizan por: El cluster 1 por tener un valor PosY
medio, LarP y AltP grandes; el cluster 2 por tener valor PosY mayores, LarP y
AltP pequeños; el cluster 3 por tener valor PosY grande, LarP medianos y AltP
pequeños; y el cluster 4 por tener valor PosY medios, LarP medios y AltP bajos.
Figura 4.64: Análisis cluster Patron2: (a) Gráfico de Dispersión de los puntos compuestos por LarP,
AltP y PosY y (b) Histograma representado por los centroides del cluster
Fuente: Elaboración Propia.
127
Tabla 4.24: Número y Porcentaje del Patron2 con respecto a los grupos
Cluster Detalle Cantidad Por( %)
Valor medio, largos y altu-
1 738 40.68
ras grandes.
Valor grande, largos y altu-
2 613 33.79
ras pequeñas.
Valor grande, largos media-
3 123 6.78
nos y alturas pequeñas.
Valor medio, largos medios
4 a pequeño y alturas media- 340 18.75
nas.
TOTAL 1814 100
Fuente: Elaboración Propia.
3. Análisis Estadı́stico: Se analiza cada una de las categorı́as presentadas en la tabla
Patron2 como: Hora, Dia de Semana, Temporada y Grupos.
Figura 4.65: Histograma Patron2: Hora vs Temporada
Fuente: Elaboración Propia.
Interpretación del histograma Hora vs Temporada (figura 4.65): El com-
portamiento del patron2 en las temporadas de estiaje y avenida son algo similares;
la diferencia es que la hora pico en estiaje es a las 19 horas, en cambio en avenida
es a las 20.
Figura 4.66: Histograma Patron2: Hora vs Dı́a de la semana
Fuente: Elaboración Propia.
Interpretación del histograma Hora vs Dı́a Semana (figura 4.66): Clara-
mente se aprecia que los dı́as laborables tienen un comportamiento parecido, en
cambio Sábado y Domingo varı́an sus horas pico.
128
Figura 4.67: Histograma Patron2: Hora vs Grupo
Fuente: Elaboración Propia.
Interpretación del histograma Hora vs Grupo (figura 4.67): Se puede apre-
ciar las horas de inicio y final de cada cluster. Los cluster más importantes son el
C2 y C3 ya que tienen un valor alto con respecto a los otros. El C2 inicia a las 16,
17 y 18 y termina a las 19 y 20 horas. El C3 inicia a las 13 horas y termina a las
19 horas. Los patrones de los 2 cluster se encuentran en 736 dı́as representando
un 80.5 %, es una cifra significativa a tener en cuenta. Las horas pico relevantes
son: 11, 19 y 20.
Figura 4.68: Histograma Patron2: Hora vs Feriados y Domingos
Fuente: Elaboración Propia.
Interpretación del histograma Hora vs Feriados y Domingos (figura
4.68): Son 315 patrones encontrados en feriados y Domingos, esto representa el
92.64 % de los patrones correspondientes al cluster 2; por lo tanto los Domingos
y feriados tienen un comportamiento diferente a los otros dı́as, siendo de valor
medio.
129
Figura 4.69: Histograma Patron2: Hora vs Dia vs Grupo
Fuente: Elaboración Propia.
Interpretación del histograma Hora vs Dı́a vs Grupo (figura 4.69): Este
gráfico nos indica como se presenta el patrón en los dı́as de la semana, los clusters
1 y 4 tiene valor medio a bajo y se presentan en las primeras horas de la mañana
y los dı́as Domingos, en cambio los clusters 2 y 3 tienen los valores más altos y
se presentan con mayor frecuencias de Lunes a Sábado en horarios de 16 a 19.
4. Resumen de reglas donde se encontró el patrón INC DEM:
Horas pico en general 11, 19 y 20 horas.
Hora pico 19 y 20 en estiaje y avenida respectivamente.
Los Domingos y feriados tienen comportamiento parecido, y los patrones
encontrados son de valor medio a bajo.
Los dı́as laborables presentan demanda media por la mañana y alta por la
noche, los fines de semana y feriados tienen demanda baja a media tanto en
la mañana y noche.
130
5. Resumen
Tabla 4.25: Número y Porcentaje del Patron2 con respecto a los grupos
Detalle
Nombre INC DEM
Ocurrencias 1814
Número cluster 4
Porcentaje C1 40.68 %
Porcentaje C2 33.79 %
Porcentaje C3 6.78 %
Porcentaje C4 18.75 %
Tiempo búsqueda patrón 0.02
Tiempo clustering 0.8
Fuente: Elaboración Propia.
4.4.5.3. Patron3: DEC HOR COS (Decremento Horizontal Costo)
1. Ilustración del patrón DEC HOR COS: Se encontraron 856 patrones, en toda la
serie temporal de acuerdo a las caracterı́sticas ajustadas en la anterior tarea, a
continuación se visualiza un sector de la serie temporal costo marginal de energı́a
eléctrica, identificando los patrones encontrados.
Figura 4.70: Patron3: DEC HOR COS
Fuente: Elaboración Propia.
131
2. Análisis de los clusters del Patron3: Se puede apreciar en la figura 4.71(a) el
gráfico de dispersión de los puntos LongP y Alt1, coloreados de acuerdo al cluster
que pertenecen y en la figura 4.71(b) las caracterı́sticas de los centroides de cada
cluster. Los clusters se caracterizan por: El cluster 1 por tener alturas medianas
y longitudes pequeñas; el cluster 2 por tener alturas y longitudes medianas; el
cluster 3 por tener alturas medianas y longitudes mayores; y el cluster 4 por tener
alturas grandes y longitudes de todo tipo.
Figura 4.71: Análisis cluster Patron3: (a) Gráfico de Dispersión de los puntos compuestos por Alt1 y
LongP y (b) Histograma representado por los centroides del cluster
Fuente: Elaboración Propia.
Tabla 4.26: Número y Porcentaje del Patron3 con respecto a los grupos
Cluster Detalle Cantidad Por( %)
Largos pequeños y
1 alturas pequeñas a 337 39.37
medianas.
Largos medianos y
2 alturas pequeñas a 288 33.65
medianas.
Largos grandes y al-
3 turas pequeñas a me- 127 14.83
dianas.
Largos de todo tipo y
4 104 12.15
alturas grandes.
TOTAL 856 100
Fuente: Elaboración Propia.
132
3. Análisis Estadı́stico: Se analiza cada una de las categorı́as presentadas en la tabla
Patron3 como: Hora, dı́a de semana, Temporada y Grupos.
Figura 4.72: Histograma Patron3: Hora-DEC vs Grupo y Hora-HOR vs Grupo
Fuente: Elaboración Propia.
Interpretación del histograma Hora-DEC vs Grupo y Hora-HOR vs
Grupo (figura 4.72): Este histograma es muy interesante porque nos da a conocer
los diferentes clusters, la hora de inicio del subpatrón decremento (4.72(a)) y
la hora de inicio del subpatrón horizontal (4.72(b)), del 100 % de los patrones
encontrados el 65 % se encuentra a partir de las 19 a 23 horas y el 50 % del inicio
del subpatrón horizontal en las horas 0 a 3. Estos datos son muy importantes
porque se puede usar como ancho de ventana en los mantenimientos en horarios
de 11p.m. a 5a.m.
Figura 4.73: Histograma Patron3: Hora vs Temporada
Fuente: Elaboración Propia.
Interpretación del histograma Hora vs Temporada (figura 4.73): Se anali-
zaron 823 dı́as, el 48 % pertenecen a la temporada de estiaje y 51 % a la temporada
de avenida; del total de patrones encontrados el 40 % y 60 % pertenecen a estia-
je y avenida respectivamente, como son más dı́as de estiaje se deducirı́a que el
porcentaje de patrones deberı́a ser parecido; pero se da que la mayor parte de
133
los patrones se encuentra en la temporada de avenida; en el histograma se puede
apreciar que el patrón DEC HOR COS en ambas temporadas se inicia en horas
de 19 a 23, en temporada de avenida se puede observar una buena cantidad a las
11a.m.
Figura 4.74: Histograma Patron3: Hora vs Valor de costo
Fuente: Elaboración Propia.
Interpretación del histograma Hora vs valor del Costo marginal (figura
4.74): Se categorizó el valor del costo marginal en el subpatrón HOR COS en 3
grupos: costo entre 1 a 26, 26 a 60 y de 60 a más, con el fin de identificar en que
horas del dı́a se encuentra el patrón, el grupo más relevante es de [1 - 26>, porque
nos indica que los valores más bajos del costo marginal se dan en los horarios de
11p.m. y 4a.m (esta ocurrencia representa el 36 % de dı́as analizados), este es un
indicador clave que respalda la recomendación de realizar mantenimientos de las
turbinas en esos horarios.
Figura 4.75: Histograma Patron3: Dı́a
Fuente: Elaboración Propia.
Interpretación del histograma Dı́a vs Frecuencia (figura 4.75): Analizando
las horas de inicio cuando comienza el patrón, se determinó que los dı́as en que
existe mayor frecuencia del patrón son: 11p.m. del Viernes a 6a.m. del Sábado,
11p.m. del Sábado a 6a.m. del Domingo y 11p.m. del Domingo a 6a.m. del Lunes;
siendo este último el que posee los costos más bajos en comparación a los otros.
4. Resumen de reglas donde se encontró en patrón DEC HOR COS.
134
El ancho de ventana donde normalmente se encuentra el patrón es entre las
horas 7p.m. a 5a.m.
El patrón se presenta en mayor porcentaje en temporada de avenida.
Los subpatrones horizontales dentro del patrón que tienen precios bajos se
encuentran a partir de media noche a 4a.m.
El más importante de todas, es que los fines de semana en la noche comien-
za el patrón (11p.m.) seguido de la madrugada del dı́a siguiente (hasta las
5a.m.). Estos intervalos de tiempo se recomienda utilizar para los manteni-
mientos preventivos, tanto en temporadas de estiaje y avenida.
5. Resumen
Tabla 4.27: Número y Porcentaje del Patron3 con respecto a los grupos
Detalle
Nombre DEC HOR COS
Ocurrencias 856
Número cluster 4
Porcentaje C1 39.36 %
Porcentaje C2 33.64 %
Porcentaje C3 14.83 %
Porcentaje C4 12.15 %
Tiempo búsqueda patrón 0.28
Tiempo clustering 0.23
Fuente: Elaboración Propia.
4.4.6. Evaluación y comprobación del modelo
La tarea Evaluación, dentro de la fase 4 de la metodologı́a CRISP-DM, esta
orientada a la evaluación del modelo generado y con sus ajustes respectivos.
Los modelos descriptivos en general, son complicados de evaluar debido a la
ausencia de una clase en donde medir el grado de acierto del modelo. Por ello se
decidió comprobar que si los dos grupos de datos analizados, dan los mismos o parecidos
resultados.
La mejor evaluación de este tipo de modelos, es saber si el resultado tiene una
interpretación útil, cuando se utilice en el área de aplicación en la empresa. En la
siguiente tabla se detalla la cantidad de dı́as analizados y dı́as para la comprobación.
A continuación se detalla la comprobación de las reglas encontradas anterior-
mente. Los nuevos datos del 2018 se hicieron correr en el modelo con los mismos ajustes
de la fase modelado. Dando los siguientes resultados.
135
Tabla 4.28: Cantidad de dı́as anteriores y nuevos
Dı́as Dı́as
Dı́as
Avenida Estiaje
Potencia y 915 491 424
demanda 100 % 53.66 % 46.34 %
Costo 823 399 424
100 % 48.48 % 51.52 %
Comprobación 365 184 181
100 % 50.41 % 49.59 %
Fuente: Elaboración Propia.
4.4.6.1. Comprobación para el patrón DEC POT
Tabla 4.29: Evaluación y comprobación Patron1
Detalles Comprobación
Se encontraron 332 patrones de los Se encontraron 80 patrones de los cua-
cuales el 54.2 % y el 45.8 % se dan en les el 57.3 % y el 42.7 % se dan en es-
estiaje y avenida respectivamente. tiaje y avenida respectivamente.
Los horarios donde se dan con mayor Los horarios donde se dan con mayor
frecuencia los patrones, son horarios frecuencia los patrones, son horarios
de la mañana. de la mañana y en la tarde 2p.m.
Dı́as con mayor frecuencia son Miérco- Dı́as con mayor frecuencia son Miérco-
les y Domingos; caso opuesto los Mar- les, Viernes y Domingos; caso opuesto
tes y Jueves Martes y Jueves
Las combinaciones de turbinas donde La combinación de turbinas donde se
se presenta el patrón son 0111 y 1101 presenta el patrón es 0111
Fuente: Elaboración Propia.
Los dos grupos analizados dan resultados similares, esto indica que las reglas en
general hay que tenerlas en cuenta para las recomendaciones. En este caso de potencia
activa total se recomienda a la empresa analizar los horarios donde se encontró con
mayor frecuencia el patron1 DEC POT.
136
4.4.6.2. Comprobación para el patrón INC DEM
Tabla 4.30: Evaluación y comprobación Patron2
Detalles Comprobación
Se encontraron 1814 patrones de los Se encontraron 738 patrones de los
cuales el 54.4 % y el 45.6 % se dan en cuales el 51.2 % y el 48.8 % se dan en
estiaje y avenida respectivamente. estiaje y avenida respectivamente.
Los horarios pico en general son 11, Los horarios pico en general son 11,
19 y 20 horas. 19 y 20 horas.
En las noche las horas pico son 19 y En las noche las horas pico son 19 y
20 en estiaje y avenida respectivamen- 20 en estiaje y avenida respectivamen-
te. te.
Los dı́as Domingos y Feriados tienen Los dı́as Domingos y Feriados tienen
comportamiento parecido donde las comportamiento parecido donde las
horas pico son las 11, 12 y 20 horas. horas pico son las 12 y 20 horas.
Los dı́as laborables presentan deman-
da media por la mañana y alta por la
Las demandas que tienen valor medio
noche, los fines de semana y feriados
se encuentra en fines de semana.
baja a media tanto en la mañana y en
la noche.
Fuente: Elaboración Propia.
Los dos grupos analizados dan resultados similares, esto indica que las reglas en
general hay que tenerlas en cuenta para las recomendaciones. En caso de la demanda de
energı́a eléctrica, se da a conocer las horas pico donde se encontró con mayor frecuencia
el patron2 IND DEM, con el fin de no realizar mantenimientos en esos horarios.
4.4.6.3. Comprobación para el patrón DEC HOR COS
Tabla 4.31: Evaluación y comprobación Patron3
Detalles Comprobación
Se encontraron 856 patrones de los Se encontraron 288 patrones de los cuales el
cuales el 39.9 % y el 60.1 % se dan en 34.1 % y el 65.9 % se dan en estiaje y aveni-
estiaje y avenida respectivamente. da respectivamente.
El ancho de ventana donde se encuen- El ancho de ventana donde se encuentra
tra con mayor frecuencia el patrón son con mayor frecuencia el patrón son 8p.m. a
7p.m. a 5a.m. 4a.m.
Se analizan casi la misma cantidad de dı́as
El patrón se presenta en mayor por- en avenida y estiaje, el patrón se presenta
centaje en temporada de avenida. en mayor porcentaje en temporada de ave-
nida.
Los subpatrones horizontales se dan
Los subpatrones horizontales se dan con
con mayor frecuencia de media noche
mayor frecuencia de media noche a 4a.m.
a 4a.m.
Fuente: Elaboración Propia.
Los dos grupos analizados dan resultados muy parecidos, esto indica que las
reglas en general se tiene que tomar en cuenta para las recomendaciones. En el caso
137
del costo marginal de energı́a eléctrica se encontró con mayor frecuencia el patron3
DEC HOR COS, en fines de semana y Lunes, en horarios de 10p.m. a 6a.m. Estos
horarios se recomiendan utilizar para los mantenimientos respectivos.
4.5. FASE V. Evaluación
En esta fase de la metodologı́a CRISP-DM, se evalúa los resultados desde el
punto de vista de los objetivos de minerı́a de datos planteados en la fase 1, y se debe
de decidir si los objetivos fueron cumplidos.
4.5.1. Evaluación de los resultados
Los objetivos de minerı́a de datos planteados en esta investigación, cumplieron
con el fin de entregar un modelo orientado a cumplir el objetivo principal de la tesis. El
modelo de minerı́a de datos de este trabajo de investigación esta compuesto por técni-
cas descriptivas no supervisadas, nos ayudó a encontrar patrones de comportamiento
relevantes para la toma de decisiones en beneficio de la empresa; ya que el objetivo co-
mercial más importante es maximizar el aprovechamiento de los recursos para mejorar
sus ganancias.
Se descubrió que los patrones encontrados, tienen las siguientes caracterı́sticas.
El patrón DEC POT se dan con mayor frecuencia los dı́as Miércoles y Domingos,
en horarios de la mañana.
El patrón DEC POT se presenta con mayor frecuencia en la combinación de
turbinas 0111 (Grupos 2, 3 y 4 en funcionamiento), y la combinación más estable
es 1111 (todos los grupos en funcionamiento).
En dı́as laborables el patrón INC DEM, ayudó a determinar horas pico, las cuales
son 11a.m., 7p.m. y 8p.m.; caso distinto ocurrió en dı́as feriados y fines de semana,
en la que las horas pico son: 12p.m y 8p.m.
El patrón DEC HOR COS, ayudó a encontrar anchos de ventana, las cuales re-
comiendan realizar los mantenimientos para tener menos pérdidas; estos se pre-
sentan en los dı́as: Viernes - Sábado, Sábado - Domingo y Domingo - Lunes, en
horarios de 11p.m. a 6a.m respectivamente; siendo el más óptimo el último.
{ Modelo Aprobado El modelo propuesto en general, cumple con el objetivo
general de minerı́a de datos, que es encontrar patrones de comportamiento en las va-
riables del proceso de generación y distribución. Este modelo no solo esta orientado a
138
analizar 1 sola variable, sino que también puede analizar series temporales dependientes
una de otra, con el fin de encontrar patrones de acción - reacción. |
A continuación se presenta un ejemplo, si se hubiera tomado la decisión de
realizar los mantenimientos en los horarios recomendados.
4.5.1.1. Análisis de Costo de Mantenimiento de los Grupos
Según la evaluación hecha anteriormente como se muestra en la figura 4.72, se
determinó que los decrementos del costo marginal inician a partir de las 7:00 p.m.
con un ancho de ventana en su mayorı́a de 1 a 5 horas; también se observó que los
horizontales antecedidos de un decremento como se muestra la figura 4.74 comienzan
en su mayorı́a a la 1 a.m. del dı́a siguiente con anchos de ventana en su mayorı́a de 1
a 5 horas.
También se observó que la mayorı́a de decrementos del costo se da en los dı́as
viernes, sábados y domingos en las mismas horas mencionadas. Por lo explicado an-
teriormente, se hizo un análisis de los mantenimientos de los grupos en esos horarios
comparado con el horario real.
Mantenimiento realizado en temporada de Avenida: Primeramente se
eligió un mantenimiento del Grupo 4 realizado el 14/01/2017. El mantenimiento
Inició 7:30 a.m. y terminó a las 4:30 p.m. con una duración de 9 horas.
Según recomendación de los especialistas para los cálculos, tomaremos como valor
nominal de la potencia total generada igual a 168.5 MW. Por lo general un
mantenimiento del grupo 4 (Francis) dura entre 7 a 10 horas.
En la figura 4.76 se observa gráficamente el comportamiento de la potencia ge-
nerada con respecto al costo marginal en el momento del mantenimiento.
139
Figura 4.76: Mantenimiento Grupo 04 :Potencia Grupo 04(lı́nea Roja),Potencia Total Pelton (lı́nea
Azul), Potencia Total(linea Verde) y Costo Marginal (linea Morada)
Fuente: Elaboración Propia.
Seguidamente se valoriza en soles el costo del mantenimiento con respecto a
la energı́a (potencia generada en una hora).En la siguiente tabla 4.77 la co-
lumna Valorización nos indica el ingreso en soles por la energı́a inyectada al
sistema (considerando el mantenimiento) en ese instante. Mientras la columna
Val SMTTO nos indica el ingreso en soles de la Energı́a inyectada al sistema,
pero sin mantenimiento. Seguidamente con la valorización total y la valoriza-
ción sin mantenimiento se calcula cuánto en realidad perdió la empresa por el
mantenimiento realizado en ese momento.
Figura 4.77: Valorización del Mantenimiento Real
Fuente: Elaboración Propia.
De la tabla 4.77 se tiene:
• Valorización Total:17256.8977 Soles.
• Valorización Total sin Mantenimiento: 34051.7048 Soles.
140
• Pérdida: 34051.7048 - 17256.8977= 16794.8071 Soles.
Seguidamente valorizaremos el mantenimiento en los horarios que la demanda
empieza a bajar como se indicó anteriormente y como se muestra en la figura
4.78.
Figura 4.78: MS1,MS2,MS3: Fechas de Mantenimientos Sugeridos
Fuente: Elaboración Propia.
a) Mantenimiento para MS1: El mantenimiento inicia el 13/01/2017 23:30
y termina el 14/01/2017 08:30, valorizaremos el mantenimiento como se hizo
anteriormente en la tabla 4.77, con la diferencia que el costo marginal será
el de la fecha sugerida.
Se obtuvo como resultado lo siguiente:
• Valorización Total:5229.32088 Soles.
• Valorización Total sin Mantenimiento: 10351.4347 Soles.
• Pérdida: 10351.4347 - 5229.32088= 5122.11382 Soles.
b) Mantenimiento para MS2: El mantenimiento inicia el 14/01/2017 23:30
y termina el 14/01/2017 08:30.
Valorizando el Mantenimiento se obtuvo como resultado lo siguiente:
• Valorización Total:6439.33495 Soles.
• Valorización Total sin Mantenimiento: 12775.4795 Soles.
• Pérdida: 12775.4795 - 6439.33495= 6336.14455 Soles.
c) Mantenimiento para MS3: El mantenimiento inicia el 15/01/2017 23:30
y termina el 16/01/2017 08:30,
Valorizando el Mantenimiento se obtuvo como resultado lo siguiente:
141
• Valorización Total:3785.42051 Soles.
• Valorización Total sin Mantenimiento: 7461.35183 Soles.
• Pérdida: 7461.35183 - 3785.42051= 3675.93132 Soles.
De los resultados obtenidos de los mantenimientos sugeridos, se tiene la tabla
4.32 donde se compara la valorización real con las valorizaciones sugeridas del
mantenimiento.
Tabla 4.32: Tabla de valorización resumen de mantenimientos sugeridas para Grupo 4 (Francis)
Ganancia Sin
Fecha de Inicio Fecha Fin Ganancia Pérdida
Mantenimiento
Mantenimiento Mantenimiento (S/.) (S/.)
(S/.)
MR: 14/01/2017 07:30 14/01/2017 16:30 17256.8977 34051.70479 16794.8071
MS1: 13/01/2017 23:30 14/01/2017 08:30 5229.32088 10351.4347 5122.11382
MS2: 14/01/2017 23:30 15/01/2017 08:30 6439.33495 12775.47948 6336.14453
MS3: 15/01/2017 23:30 16/01/2017 08:30 3785.42051 7461.351834 3675.93132
Fuente: Elaboración Propia.
En el cuadro 4.32 podemos observar que la menor pérdida se da en MS3 (15/01/2017
23:30 - 16/01/2017 08:30). Por lo que un mantenimiento a esa hora serı́a ideal
para la empresa puesto que su pérdida por entrar en mantenimiento serı́a la mı́ni-
ma. Cabe resalta que este mantenimiento sugerido inicia casi a media noche del
dı́a Domingo y toda la mañana del dı́a Lunes, que según las estadı́sticas reali-
zadas en la evolución los dı́as sábados y domingos son ideales para programar
mantenimientos por que las pérdidas por mantenimiento son las mı́nimas.
Mantenimiento realizado en Temporada de Avenida: El mantenimiento
del grupo 4 (Francis) que analizaremos se dio en la fecha 06/05/2017 con hora
de inicio a las 7:30 y culminó a las 18:30 (11 horas). En la figura 4.79 se observa
gráficamente el comportamiento de la potencia generada con respecto al costo
marginal en el momento del mantenimiento.
Figura 4.79: Mantenimiento Grupo 04 :Potencia Grupo 04(lı́nea Roja),Potencia Total Pelton (lı́nea
Azul) , Potencia Total(linea Verde) y Costo Marginal (linea Morada)
Fuente: Elaboración Propia.
142
Se hizo la valorización del mantenimiento y se obtuvo como resultado:
• Valorización Total:13102.3276 Soles.
• Valorización Total sin Mantenimiento: 25342.6531 Soles.
• Pérdida: 25342.6531 - 13102.3276= 12240.3255 Soles.
Seguidamente se valoriza el mantenimiento en los horarios que la demanda em-
pieza a bajar como se indicó anteriormente y como se muestra en la figura 4.80.
Figura 4.80: MS1,MS2,MS3: Fechas de Mantenimientos Sugeridos
Fuente: Elaboración Propia.
Se hizo la valorización en las 3 fechas sugeridas, teniendo como resultado la
siguiente tabla 4.33
Tabla 4.33: Tabla de valorización resumen de mantenimientos sugeridas para Grupo 4 (Francis) en
Estiaje
Ganancia Sin
Fecha de Inicio Fecha Fin Ganancia Pérdida
Mantenimiento
Mantenimiento Mantenimiento (S/.) (S/.)
(S/.)
MR: 06/05/2017 07:30 06/05/2017 18:30 13102.3276 25342.6531 12240.3255
MS1: 05/05/2017 23:30 06/05/2017 10:30 11077.1729 21427.4288 10350.2559
MS2: 06/05/2017 23:30 07/05/2017 10:30 14039.9192 27158.5663 13118.6471
MS3: 07/05/2017 23:30 08/05/2017 10:30 11389.9899 22037.8395 10647.8496
Fuente: Elaboración Propia.
En la tabla 4.33 se puede observar que la menor pérdida se da en MS1 (05/05/2017
23:30 - 06/05/2017 10:30). Por lo que un mantenimiento a esa hora serı́a ideal
para la empresa puesto que su pérdida por entrar en mantenimiento serı́a la
mı́nima.
143
4.5.2. Proceso de revisión
Como resultado de revisar el proceso del proyecto de minerı́a de datos, hemos
desarrollado un mayor aprecio por las interrelaciones de los pasos y fases de la meto-
dologı́a CRISP-DM. La revisión del proceso nos lleva a comprender lo siguiente:
Cuando se presentó un suceso inesperado, diferente a lo que nos aconseja CRISP-
DM, siempre regresamos a exploración de los datos.
En la preparación de los datos, especialmente en series de tiempo se requiere
paciencia, ya que nos llevo mucho tiempo analizar atipicidades, picos, elegir el
mejor ancho de ventana y su filtro.
Es aconsejable siempre mantenerse centrado en el contexto del problema comer-
cial; porque una vez que los datos están preparados para el análisis, resulta más
sencillo iniciar la construcción del modelo.
Concluida la fase de modelado, todo en general va tomando sentido con los pri-
meros resultados.
En la fase de evaluación, la comprensión comercial es mucho más clara y ayuda a
decidir la importancia de aplicar los resultados, y ver a futuro sucesivos estudios.
4.5.3. Determinación de los pasos siguientes
EGEMSA confı́a en la precisión y relevancia de los resultados del proyecto de
investigación; en este punto la empresa nos pidió el informe final con los resultados,
que luego fueron entregados a las oficinas pertinentes para la toma de decisiones con
los responsables de las áreas de: Operaciones y Tecnologı́as de Información.
4.6. FASE VI. Despliegue
En esta fase de la metodologı́a CRISP-DM, se entregó el informe final que in-
cluye: proceso, resultados y recomendaciones.
4.6.1. Planificación de distribución
La distribución del informe es precisa, los resultados de minerı́a de datos y la
información que se entrega a las personas adecuadas de acuerdo al área que pertenecen:
144
Gerencia Comercial: Se entregó los resultados en general, recomendaciones, pro-
puestas y breves explicaciones de como afectarı́an estos cambios si aceptarı́an
los resultados del estudio. Se recomendó también notificar a las divisiones que
dependen jerárquicamente de esta como son: división centro de control, división
de contratos y división de transferencias.
División de Mantenimiento de sub estaciones y lı́neas de transmisión: Se entregó
las estadı́sticas con relación a las variables del proceso de generación, conjunta-
mente con todos los resultados y recomendaciones. Se recomendó hacer llegar el
informe al área de mantenimiento electrónico.
Área de tecnologı́as de información y comunicación: Se entregó el informe final
completo con todos las fases de la metodologı́a CRISP-DM, los resultados y
recomendaciones. A petición del área, se realizó una exposición de las partes más
importantes del proceso.
4.6.2. Creación de un informe final
Gracias a la herramienta Markdown de RStudio se creo el informe final, esta
herramienta nos facilitó en entregar el informe en extensiones como .pdf y .html.
4.6.3. Revisión final del proyecto
En esta parte se documentó las impresiones finales de los conocimientos adqui-
ridos durante el proceso de minerı́a de datos.
Desde un principio el concepto de Data Mining, fue un poco confuso para los
trabajadores al momento de entender el objetivo principal de este tema, ya que al inicio
no se sabe que es lo que se va a encontrar; poco a poco al transcurrir las fases de la
metodologı́a CRISP-DM se iba aclarando las dudas.
145
Conclusiones
1. Se extrajeron las variables del proceso en forma segura para no vulnerar la seguri-
dad de la red SCADA, para ello se colocó un dispositivo de seguridad informática
(firewall ) entre la red del SCADA y la red corporativa para evitar accesos exter-
nos no autorizados. El túnel de datos configurado en el Cogent DataHub permitió
reflejar las señales del SCADA a través de la red en tiempo real. Mediante el mo-
dulo Scripting del Cogent DataHub, se implementó un algoritmo que inserta las
señales de manera automática a la base de datos en una tabla general.
2. Se implementó la base de datos histórica(BDHistoricoScada) en SQL Server 2008,
puesto que la empresa cuenta con licencia de la misma y por la compatibilidad
con ODBC (Open Database Connectivity), estándar de Windows que permite la
conexión e intercambio de datos de manera segura.
3. Las técnicas que se utilizó para desarrollar el modelo son: técnica de segmentación
lineal que fue la que nos ayudó a encontrar los patrones primitivos (DEC, INC y
HOR) de forma sencilla y rápida; expresiones regulares que facilitó a encontrar
secuencias similares en una cadena de caracteres; y por último la clasificación
jerárquica ayudó a la interpretación de resultados agrupándolos por su forma.
4. Se construyó el proceso completo compuesto por subprocesos, cada subproceso
se aplicó las técnicas elegidas.
5. En general los modelos descriptivos en minerı́a de datos, son complicados de
evaluar, debido a la ausencia de una clase determinada, en medir el grado de
acierto del modelo. En la investigación la mejor forma de evaluación fue comparar
los resultados del análisis en los dos grupos de datos (datos iniciales: 2015 - 2017,
datos nuevo: 2018). Los resultados encontrados en el proceso de ésta investigación,
son de utilidad para la empresa; con el fin de maximizar sus ganancias.
146
Recomendaciones
1. Para filtrar y corregir las series temporales, es necesario conocer bien el concepto
de cada una de ellas, porque existe valores que parecen ser atı́picos; pero que en
realidad son datos normales.
2. A partir del presente proyecto, se puede tomar como base para posteriores es-
tudios como son: análisis multivariable de series temporales y dependencias de
series temporales.
3. Los sistemas SCADA generan gran cantidad de datos: booleanas y numéricas,
los booleanos indican eventos de cierre, apertura y fallas en los equipos, estos se
podrı́an almacenar para aplicar minerı́a de datos.
4. Investigar y evaluar la posibilidad de adaptar el modelo planteado, para conver-
tirlo en un modelo supervisado y/o realizar predicciones.
5. Aplicar otras técnicas y/o tareas de la minerı́a de datos para series temporales
como: Indexado, clasificación, emparejamiento de subsecuencias y visualización.
6. Recomendamos usar la metodologı́a CRISP-DM, porque sus fases están bien de-
finidas, fue muy flexible al momento de encontrar dificultades en cada una de
ellas porque se puede avanzar y retroceder entre fases si fuera necesario. También
contiene una perspectiva más amplia respecto a los objetivos empresariales, y es
una metodologı́a neutra respecto a la herramienta que utilizamos.
7. Buscar en RENATI las diferentes investigaciones a nivel nacional de diferentes
grados de investigación.
8. Se recomiendo utilizar como base esta investigación, para genera el proceso au-
tomatico con los n
147
Anexo A
Configuración del DCOM en el
Servidor OPC y Cliente OPC
Para deshabilitar la configuración del DCOM se debe realizar tanto en cliente
como en el Servidor y se debe seguir los siguientes pasos.
Paso 1: Configuración de seguridad DCOM: OPC utiliza COM ActiveX y
DCOM para comunicarse, se debe abrir los permisos DCOM para permitir eso,
la configuración es sencilla. Se tiene que habilitar DCOM(COM distribuida) en
el servidor, de esta forma se tiene los permisos para intercambiar objetos con
otros equipos de la red. Para ellos tenemos que seleccionar la Configuración de
Administrador de Componentes de Windows. El acceso puede ser de dos formas:
• Desde Inicio Û Panel de control Û Herramientas Administrativas Û Servi-
cios de componentes.
• O ejecutando dcomcnfg.
a) En la ventana ir a Console Root Û Component Services Û Computers Û
My Computer. Click derecho en My computer y seleccione Properties.
b) Luego ir a Default Properties y realizar lo siguiente: check en Enable Distri-
buted COM on this computer, en default Authentication Level elegir Connect,
en Default Impersonation level elegir Identity, y luego OK.
c) Ir a COM Security y en Access Permissions, click en el botón Edit Limits.
d) Se tiene que asegurar que se ha permitido permisos para Anonymous Logon,
Everyone, Interactive, Network, y System; Luego hacer click en OK.
e) Estas dos últimas operaciones se debe realizar de igual modo para Access
Permissions: Edit Limits y Edit Default, y para Launch and Activation Per-
missions: Edit Limits y Edit Default.
Con estos pasos se ha configurado correctamente la configuración del DCOM, se
hace click en OK para volver a la ventana Component Services windows.
Paso 2: Configurar las propiedades para las aplicaciones usadas: Es
necesario establecer permisos para que el ordenador remoto o cliente sea capaz
148
de lanzar las aplicaciones OpcEnum ası́ como otros servidores OPC instalados.
Se sigue los siguientes pasos:
a) En la ventana de Component Services windows en la carpeta My Computer
se abre la carpeta llamada DCOM Config se busca OpcEnum y hacer click
derecho y propiedades (se requiere hacer estos mismos pasos para todas las
aplicaciones OPC utilizadas).
b) En la ventana OpcEnum Properties, en la pestaña General establecer en
Authentication Level a Connect.
c) Luego ir a la pestaña Security, en cada una de las opciones elegir Customize
y elegir el botón Edit. Verificar si se ha permitido todos los permisos de
Everyone, Interactive, Network, y System.
d) Ir a la pestaña Identity, seguidamente seleccione la opción The interactive
user o si se está ejecutando como un servicio selecciones The system ac-
count. Después click en OK para volver a la ventana de Component Services
Windows.
e) Reiniciar el equipo.
Paso 3: Desactivar el cortafuegos de Windows: Es necesario desactivar
el cortafuegos y configurar otros antivirus que puedan restringir el intercambio
de datos entre servidor y cliente. Si el Firewall de Windows está funcionando,
infiere la comunicación entre aplicaciones del sistema. Para desactivar sigue los
siguientes pasos:
Se accede a través de Panel de Control Û Firewall de Windows Û Desactivar.
Paso 4: Prevención de ejecución de datos: Prevención de ejecución de da-
tos (Data Execution Prevention, DEP), es un conjunto de hardware y software.
Tecnologı́a que realizan comprobaciones adicionales de la memoria que ayudan a
prevenir código malicioso a ejecutarse en un sistema.
DEP también evitará que muchas instalaciones se ejecuten y problemas de soft-
ware. Para inhabilitar se sigue los siguientes pasos.
a) Desde el Menú Inicio, se da click derecho en My Computer y se selecciona
properties.
b) Ir a la pestaña Advanced en Performance clic hacer en el botón Settings.
c) En la pestaña Data Execution Prevention, se selecciona el botón Turn on
DEP for essential... y después clic en el botón OK, es necesario reiniciar
equipo.
Paso 5: Polı́tica de seguridad local: Polı́tica de seguridad local (Local Se-
curity Policy, LSP). Si está utilizando grupos de trabajo en lugar de dominio,
los siguientes pasos pueden establecer la comunicación, se toma en cuenta que
estos cambios pueden comprometer la seguridad del sistema, hablar con su ad-
ministrador con red si tiene alguna inquietud. seguir los siguiente pasos para la
LSP.
a) Ir a Start Û Settings Û Control Panel Û Administrative Tools Û Local
Security Policy.
149
b) Ir a Security Settings Û Local Policies Û Security Options.
c) Clic derecho en DCOM: Machine Access Restrictions.. y seleccionar Proper-
ties.
d) Pulse el botón Edit Security.
e) Se asegura que Everyone, Interactive, Network y System estén agregados a
los grupos o de usuarios permitidos como se muestra en la figura y luego
clic en OK.
f) Realizar los dos últimos pasos para las siguiente opción: DCOM: Machine
Launch Restrictions...
g) Ir a la opción Network access: Let Everyone permissions apply to anonymous
users y clic derecho en Properties, luego seleccionar Enabled y clic en OK.
h) Acceder a Network access: Sharing and security model for local accounts
y hacer clic derecho en Properties. Luego seleccionar Classic - local users
authenticate as themselves y hacer clic en el botón OK.
Con todos estos pasos la seguridad DCOM está configurada para aceptar todas
las conexiones entrantes.
150
Anexo B
Configuración del Cogent DataHub
Maestro
En este proceso haremos la conexión del Cogent DataHub Maestro (este se
encuentra en el Servidor OPC) con el Servidor SCADA para capturar todas las señales
de las Subestaciones. Se sigue los siguientes pasos:
a) Seleccionamos la opción OPC del Menu principal del DataHub. Se activa: Act as
an OPC Client to these servers y Act as an OPC Server, seguidamente clic en el
botón Add.
b) En la ventana de Define OPC Server en Computer Name se selecciona la compu-
tadora donde se encuentra instalado el servidor SCADA “SYS1, seguidamente en
OPC Server Name se cargará los Servidores OPC instalados en el equipo y se se-
lecciona ABB MicroScada OPC DA Server. Luego se habilita las opciones: Se falled
incoming values to zero, Manually Select Items, Load All Items on Server. Luego
botón Ok.
c) En la ventana principal se agregó la conexión con el servidor SCADA que realizamos
en el anterior paso. En la pestaña Status está en Loading.. que significa que está
recargando las Señales.
d) Aplicamos configuración (clic botón Apply), y se espera que en la pestaña Status
cambie a Running.
e) Finalmente para verificar si la conexión del Cogent DataHub Maestro al Servidor
SCADA ABB MicroScada OPC DA Server se realizó correctamente le damos clic
izquierdo en el botón View Data. Nos mostrará una ventana que en la parte izquierda
tenemos todas las señales de nuestro servidor SCADA y en la parte derecha de la
imagen están los valores de cada una de las señales.
151
Anexo C
Detalles de BDHistoricoScada
Script de la inserción de variables
/ * Asignamos los parametros correctos a las variables Globales * /
DSN = " bd _ Historico " ;
user = " sa _ Historico " ;
password = " ! Eg3ms@ " ;
tablename = " hs _ SenalesOPC " ;
/ * Modulo para realizar la conexion con la BD * /
method scInserVar . Connect ()
{
/ * Creamos la Conexion * /
. env = ODBC _ AllocEnvironment () ;
. conn = . env . AllocConnection () ;
/ * Probamos la conexion con los parometros . * /
ret = . conn . Connect (. DSN , . user , . password ) ;
if ( ret ! = SQL _ SUCCESS & & ret ! = SQL _ SUCCESS _ WITH _ INFO )
error (. conn . GetDiagRec () ) ;
princ ( " conexion " ,ret , " \ n " ) ;
/ * Creamos una variable de tipo tabla * /
. tableclass = . conn . ClassFromTable ( # DataEntry , nil , . tablename )
;
/ * Establecemos el atributo Primario para la tabla * /
mykey = . conn . SetPrimaryKey (. tableclass , " cpID _ Senal " ) ;
}
method scInserVar . AlarmOccurred ( triggervalue , ! logpoint )
{
string ( logpoint ) , value ) ) ;
princ ( " El valor es Normal * * * * * * * * * * * * * * * * * :::::::::: " ,
logpoint , " , " , value , " \ n " ) ;
}
method scInserVar . FillRecord ( record , sym , newvalue )
{
local timestamp ;
local IdSenal ;
local CodSenal ;
timestamp = localtime ( PointGetUnixTime ( sym ) ) ;
timestamp = format ( " %d %02 d %02 d %02 d : %02 d : %02 d " ,
timestamp . year + 1900 , timestamp . mon + 1 ,
152
timestamp . mday , timestamp . hour , timestamp . min ,
timestamp . sec ) ;
IdSenal = string ( sym ) ;
/ * ojo al modificar la direccion OPC de las Senales * /
IdSenal = substr ( IdSenal ,16 , strlen ( IdSenal ) ) ;
record . cpSenal = IdSenal ;
record . cpRutaValor = string ( sym ) ;
record . cpValor = number ( newvalue ) ;
record . cpFechaCreacion = timestamp ;
record . cpCalidad = GetQualityName ( PointMetadata ( sym ) . quality ) ;
record ;
}
/ * Este modulo inserta el registro en la tabla hs _ SenalesOPC de
la BD * /
method scInserVar . AddRecord ( sym , newvalue )
{
local record = new DataEntry () ;
. FillRecord ( record , sym , newvalue ) ;
. conn . Insert ( record ) ;
record ;
}
Script de BDHistoricoScada
use master
go
---------------------------------------------------------------
if exists ( select name from sysdatabases where name in ( ’
BDHistoricoScada ’) )
drop database BDHistoricoScada
go
---------------------------------------------------------------
create database BDHistoricoScada
go
---------------------------------------------------------------
use BDHistoricoScada
go
---------------------------------------------------------------
-- CREACION DE TABLAS DE LA BASE DE DATOS - - - - - - - - - - - - - - - - - - - - - -
---------------------------------------------------------------
CREATE TABLE hs _ SenalesOPC (
pk _ Senal int identity primary key ,
aSenal varchar (50) ,
aRutaValor varchar (50) ,
aValor float ,
aFechaCreacion datetime ,
aCalidad varchar (20) ,
)
GO
---------------------------------------------------------------
CREATE TABLE hs _ GeneracionCHM (
pk _ CodGeneracion int identity primary key ,
aCodSenal varchar (60) not null ,
aFechaGen datetime not null ,
aLecturaGen float not null
)
GO
153
---------------------------------------------------------------
CREATE TABLE hs _ Hidrologia (
pk _ CodHidrologia int identity primary key ,
aCodSenal varchar (60) not null ,
aFechaHidro datetime not null ,
aLecturaHidro float not null
)
GO
---------------------------------------------------------------
CREATE TABLE hs _ Demanda (
pk _ CodDemanda int identity primary key ,
aFechaDemanda datetime not null ,
aDemEjecutada float not null ,
aDemProgDiaria float not null ,
aDemProgSemanal float not null
)
GO
---------------------------------------------------------------
CREATE TABLE hs _ CostoMarginal (
pk _ CodCostoMaginal int identity primary key ,
aFechaCostoMag datetime not null ,
aCostoMarginal float not null
)
GO
---------------------------------------------------------------
Script carga de señales
USE [ msdb ]
GO
---------------------------------------------------------------
/ * * * * * * Object : Job [ C a r g a r S e n a l e s G e n e r a c i o n ] Script Date :
02 / 07 / 2019 16:19:47 * * * * * * /
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/ * * * * * * Object : JobCategory [[ Uncategorized ( Local ) ]]]
Script Date : 02 / 07 / 2019 16:19:47 * * * * * * /
IF NOT EXISTS ( SELECT name FROM msdb . dbo . syscategories WHERE
name = N ’[ Uncategorized ( Local ) ] ’ AND category _ class =1)
BEGIN
EXEC @ReturnCode = msdb . dbo . sp _ add _ category @class = N ’ JOB ’ , @type
= N ’ LOCAL ’ , @name = N ’[ Uncategorized ( Local ) ] ’
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
---------------------------------------------------------------
DECLARE @jobId BINARY (16)
EXEC @ReturnCode = msdb . dbo . sp _ add _ job @job _ name = N ’
CargarSenalesGeneracion ’,
@enabled =1 ,
@notify _ level _ eventlog =1 ,
@notify _ level _ email =0 ,
@notify _ level _ netsend =0 ,
@notify _ level _ page =0 ,
@delete _ level =0 ,
@description = N ’ Carga diariamente las senales de Generacion a
la tabla ’ ,
@category _ name = N ’[ Uncategorized ( Local ) ] ’ ,
154
@owner _ login _ name = N ’ HECHI - PC \ HeVan ’ , @job _ id = @jobId OUTPUT
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/ * * * * * * Object : Step [ CargarDatos ] Script Date : 02 / 07 / 2019
16:19:47 * * * * * * /
EXEC @ReturnCode = msdb . dbo . sp _ add _ jobstep @job _ id = @jobId , @step
_ name = N ’ CargarDatos ’ ,
@step _ id =1 ,
@cmdexec _ success _ code =0 ,
@on _ success _ action =1 ,
@on _ success _ step _ id =0 ,
@on _ fail _ action =2 ,
@on _ fail _ step _ id =0 ,
@retry _ attempts =0 ,
@retry _ interval =0 ,
@os _ run _ priority =0 , @subsystem = N ’ TSQL ’ ,
@command = N ’ insert into hs _ GeneracionCHM
---------------------------------------------------------------
select aSenal , aFechaCreacion , aValor
from hs _ SenalesOPC SOPC where aSenal = ’ ’ MP _ G1MC .20 ’ ’ and
convert ( date , aFechaCreacion ) = convert ( date , DATEADD ( DD , -1 ,
GETDATE () ) )
insert into hs _ GeneracionCHM
select aSenal , aFechaCreacion , aValor
from hs _ SenalesOPC SOPC where aSenal = ’ ’ MP _ G1MC .21 ’ ’ and
convert ( date , aFechaCreacion ) = convert ( date , DATEADD ( DD , -1 ,
GETDATE () ) )
insert into hs _ GeneracionCHM
select aSenal , aFechaCreacion , aValor
from hs _ SenalesOPC SOPC where aSenal = ’ ’ MP _ G2MC .20 ’ ’ and
convert ( date , aFechaCreacion ) = convert ( date , DATEADD ( DD , -1 ,
GETDATE () ) )
insert into hs _ GeneracionCHM
select aSenal , aFechaCreacion , aValor
from hs _ SenalesOPC SOPC where aSenal = ’ ’ MP _ G2MC .21 ’ ’ and
convert ( date , aFechaCreacion ) = convert ( date , DATEADD ( DD , -1 ,
GETDATE () ) )
insert into hs _ GeneracionCHM
select aSenal , aFechaCreacion , aValor
from hs _ SenalesOPC SOPC where aSenal = ’ ’ MP _ G3MC .20 ’ ’ and
convert ( date , aFechaCreacion ) = convert ( date , DATEADD ( DD , -1 ,
GETDATE () ) )
insert into hs _ GeneracionCHM
select aSenal , aFechaCreacion , aValor
from hs _ SenalesOPC SOPC where aSenal = ’ ’ MP _ G3MC .21 ’ ’ and
convert ( date , aFechaCreacion ) = convert ( date , DATEADD ( DD , -1 ,
GETDATE () ) )
insert into hs _ GeneracionCHM
select aSenal , aFechaCreacion , aValor
from hs _ SenalesOPC SOPC where aSenal = ’ ’ MP _ G4MC .20 ’ ’ and
convert ( date , aFechaCreacion ) = convert ( date , DATEADD ( DD , -1 ,
GETDATE () ) )
insert into hs _ GeneracionCHM
select aSenal , aFechaCreacion , aValor
from hs _ SenalesOPC SOPC where aSenal = ’ ’ MP _ G4MC .21 ’ ’ and
convert ( date , aFechaCreacion ) = convert ( date , DATEADD ( DD , -1 ,
GETDATE () ) )
select aSenal , aFechaCreacion , aValor
from hs _ SenalesOPC SOPC where aSenal = ’ ’ MP _ CAUDF .27 ’ ’ and
155
convert ( date , aFechaCreacion ) = convert ( date , DATEADD ( DD , -1 ,
GETDATE () ) )
select aSenal , aFechaCreacion , aValor
from hs _ SenalesOPC SOPC where aSenal = ’ ’ MP _ CAUDF .28 ’ ’ and
convert ( date , aFechaCreacion ) = convert ( date , DATEADD ( DD , -1 ,
GETDATE () ) ) ’ ,
@database _ name = N ’ BDHistoricoScada ’ ,
@flags =0
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb . dbo . sp _ update _ job @job _ id = @jobId ,
@start _ step _ id = 1
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb . dbo . sp _ add _ jobschedule @job _ id = @jobId ,
@name = N ’ CargaDatos ’ ,
@enabled =1 ,
@freq _ type =4 ,
@freq _ interval =1 ,
@freq _ subday _ type =1 ,
@freq _ subday _ interval =0 ,
@freq _ relative _ interval =0 ,
@freq _ recurrence _ factor =0 ,
@active _ start _ date =20190207 ,
@active _ end _ date =99991231 ,
@active _ start _ time =120000 ,
@active _ end _ time =235959 ,
@schedule _ uid = N ’ a808c90d -55 e0 -44 a9 - a457 -7 e72b2d6094a ’
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb . dbo . sp _ add _ jobserver @job _ id = @jobId ,
@server _ name = N ’( local ) ’
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback :
IF ( @@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave :
GO
Script limpiar LOG
- USE [ msdb ]
GO
/ * * * * * * Object : Job [ JOB _ Limpiar _ LogBD ] Script Date : 02 / 08 /
2019 15:43:16 * * * * * * /
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/ * * * * * * Object : JobCategory [[ Uncategorized ( Local ) ]]]
Script Date : 02 / 08 / 2019 15:43:16 * * * * * * /
IF NOT EXISTS ( SELECT name FROM msdb . dbo . syscategories WHERE
name = N ’[ Uncategorized ( Local ) ] ’ AND category _ class =1)
BEGIN
EXEC @ReturnCode = msdb . dbo . sp _ add _ category @class = N ’ JOB ’ , @type
= N ’ LOCAL ’ , @name = N ’[ Uncategorized ( Local ) ] ’
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
156
DECLARE @jobId BINARY (16)
EXEC @ReturnCode = msdb . dbo . sp _ add _ job @job _ name = N ’ JOB _ Limpiar _
LogBD ’ ,
@enabled =1 ,
@notify _ level _ eventlog =0 ,
@notify _ level _ email =0 ,
@notify _ level _ netsend =0 ,
@notify _ level _ page =0 ,
@delete _ level =0 ,
@description = N ’ No description available . ’ ,
@category _ name = N ’[ Uncategorized ( Local ) ] ’ ,
@owner _ login _ name = N ’ HECHI - PC \ HeVan ’ , @job _ id = @jobId OUTPUT
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/ * * * * * * Object : Step [ LimpiarBD ] Script Date : 02 / 08 / 2019
15:43:16 * * * * * * /
EXEC @ReturnCode = msdb . dbo . sp _ add _ jobstep @job _ id = @jobId , @step
_ name = N ’ LimpiarBD ’ ,
@step _ id =1 ,
@cmdexec _ success _ code =0 ,
@on _ success _ action =1 ,
@on _ success _ step _ id =0 ,
@on _ fail _ action =2 ,
@on _ fail _ step _ id =0 ,
@retry _ attempts =0 ,
@retry _ interval =0 ,
@os _ run _ priority =0 , @subsystem = N ’ TSQL ’ ,
@command = N ’ use BDHistoricoScada
go
alter database BDHistoricoScada
set recovery simple
go
DBCC SHRINKDATABASE ( BDHistoricoScada )
GO
ALTER DATABASE BDHistoricoScada
SET RECOVERY FULL ’ ,
@database _ name = N ’ master ’ ,
@flags =0
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb . dbo . sp _ update _ job @job _ id = @jobId ,
@start _ step _ id = 1
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb . dbo . sp _ add _ jobschedule @job _ id = @jobId ,
@name = N ’ LimpiarBD ’ ,
@enabled =1 ,
@freq _ type =16 ,
@freq _ interval =1 ,
@freq _ subday _ type =1 ,
@freq _ subday _ interval =0 ,
@freq _ relative _ interval =0 ,
@freq _ recurrence _ factor =1 ,
@active _ start _ date =20190208 ,
@active _ end _ date =99991231 ,
@active _ start _ time =0 ,
@active _ end _ time =235959 ,
@schedule _ uid = N ’ 4287708 d - bf41 -45 c5 - aff9 - e8dc78739607 ’
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb . dbo . sp _ add _ jobserver @job _ id = @jobId ,
@server _ name = N ’( local ) ’
157
IF ( @@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback :
IF ( @@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave :
GO
158
Anexo D
Carta presentada a EGEMSA
Carta presentada a EGEMSA para solicitar el permiso de acceso a las instala-
ciones.
Figura D.1: Carta entregada a EGEMSA pidiendo permiso
159
Anexo E
Formato de permiso
El permiso fue remitido al área de Tecnologı́as de Información y Comunicación,
la cual fue recibida por el especialista Ing. Uberto Gonzales Bendezú.
Figura E.1: Permiso del Gerente de Administración y Finanzas
160
Anexo F
Código
A continuación se detalla todo el código desarrollado en cada una de las etapas
mas relevantes de proyecto de investigación
Librerı́as R
À KDSeries: Orientada al análisis de series de tiempo.
# instalacion del paquete
install . packages ( " devtools " )
devtools :: install _ github ( " jpison / KDSeries " )
# llamada de la libreria
library ( KDSeries )
Á dygraphs: El paquete dygraphs es una interfaz R para la biblioteca de gráfi-
cos JavaScript de dygraphs. Proporciona facilidades ricas para trazar datos de series
de tiempo en R.
# instalacion del paquete
install . packages ( " dygraphs " )
# llamada de la libreria
library ( dygraphs )
 tseries: Análisis de series de tiempo y finanzas computacionales.
# instalacion del paquete
install . packages ( " tseries " )
# llamada de la libreria
library ( tseries )
à lubridate: Liberia que ayuda en el manejo de fecha y horas.
# instalacion del paquete
install . packages ( " lubridate " )
# llamada de la libreria
library ( lubridate )
Ä xts: Series de tiempo extensibles, proporciona un manejo uniforme de las
diferentes clases de datos basadas en el tiempo de R
161
# instalacion del paquete
install . packages ( " xts " )
# llamada de la libreria
library ( xts )
Å gridExtra: Funciones extras para gráficos. Proporciona una serie de funciones
de nivel de usuario para trabajar con gráficos de cuadricula, en particular para organizar
múltiples diagramas.
# instalacion del paquete
install . packages ( " gridExtra " )
# llamada de la libreria
library ( gridExtra )
Æ ggplot2: Se basa en la gramática de los gráficos, la idea de que puede construir
todos los gráficos a partir de los mismos componentes.
# instalacion del paquete
install . packages ( " ggplot2 " )
# llamada de la libreria
library ( ggplot2 )
Código desarrollado en la Fase 2
En la fase 2 se describió, exploró y se analizó la calidad de los datos. Este código
se aplica a cada uno de los datos estudiados.
# grafico con dygraph
PotTotal _ xts1 <- xts ( Potencia $ Pot _ Total , order . by = Potencia $ Fecha ,
frequency = 365 * 24 * 2)
head ( PotTotal _ xts1 )
dygraph ( PotTotal _ xts1 , main = " POTENCIA TOTAL EN ESTIAJE Y
AVENIDA " , ylab = " Potencia ( MW ) " ) %> %
dySeries ( " V1 " , label = " Potencia " ) %> %
dyOptions ( colors = " black " ) %> %
dyShading ( from = " 2015 -07 -01 00:30:00 " , to = " 2015 -10 -31
23:30:00 " , color = " # FFE4FD " ) %> %
dyShading ( from = " 2015 -11 -01 00:30:00 " , to = " 2016 -04 -30
23:30:00 " , color = " # E1FFDF " ) %> %
dyShading ( from = " 2016 -05 -01 00:30:00 " , to = " 2016 -10 -31
23:30:00 " , color = " # FFE4FD " ) %> %
dyShading ( from = " 2016 -11 -01 00:30:00 " , to = " 2017 -04 -30
23:30:00 " , color = " # E1FFDF " ) %> %
dyShading ( from = " 2017 -05 -01 00:30:00 " , to = " 2017 -10 -31
23:30:00 " , color = " # FFE4FD " ) %> %
dyShading ( from = " 2017 -11 -01 00:30:00 " , to = " 2017 -12 -31
23:30:00 " , color = " # E1FFDF " ) %> %
dyEvent ( " 2015 -11 -01 00:30:00 " , " ESTIAJE " , labelLoc = " bottom " ,
color = " #76000 D " ) %> %
dyEvent ( " 2016 -05 -01 00:30:00 " , " AVENIDA " , labelLoc = " bottom " ,
color = " #035600 " ) %> %
dyEvent ( " 2016 -11 -01 00:30:00 " , " ESTIAJE " , labelLoc = " bottom " ,
color = " #76000 D " ) %> %
dyEvent ( " 2017 -05 -01 00:30:00 " , " AVENIDA " , labelLoc = " bottom " ,
color = " #035600 " ) %> %
162
dyEvent ( " 2017 -11 -01 00:30:00 " , " ESTIAJE " , labelLoc = " bottom " ,
color = " #76000 D " ) %> %
dyEvent ( " 2018 -01 -01 00:00:00 " , " AVENIDA " , labelLoc = " bottom " ,
color = " #035600 " ) %> %
dyLegend ( width = 600) %> %
dyRangeSelector ()
# Datos estadisticos basicos
summary ( Potencia )
sd ( Potencia $ Pot _ Act _ G1 )
# Diagrama de cajas para identificar atipicos
boxplot ( Potencia $ Pot _ Act _ G1 , border = c ( " blue " ) , main = " G1 " ,
xlab = " ( a ) " , ylab = " MW " )
# histograma
hist ( Potencia $ Pot _ Total , freq = FALSE , col = " red " , main = " Histograma
de Potencia Activa Total " )
Código desarrollado en la Fase 3
Limpieza de Datos
# quitar los mayores de 30 de la potencia activa del grupo 2
Potencia $ sf _ PAG2 <- kdfilterremove ( Potencia $ Pot _ Act _ G2 ,30 , " max " )
# quitar los mayores de 30 de la potencia activa del grupo 3
Potencia $ sf _ PAG3 <- kdfilterremove ( Potencia $ Pot _ Act _ G3 ,30 , " max " )
# quitar utilizamos mayores y menores a un rango del grupo 4
Potencia $ sf _ PAG4 <- kdfilterremove ( Potencia $ Pot _ Act _ G4 , c (0 ,105) ,
" range " )
# quitar los mayores de 60 del caudal del tunel
DatosHidro $ sf _ CauTun <- kdfilterremove ( DatosHidro $ Cau _ Tun ,60 , "
max " )
# Inicio : Grafico ggplot
g1 <- ggplot ( Potencia [41100:41300 ,] , aes ( Fecha ) ) +
geom _ line ( aes ( y = Pot _ Act _ G2 , group = 1) , color = " blue " ) +
geom _ line ( aes ( y = sf _ PAG2 , group = 1) , color = " #088 A08 " ) +
labs ( x = " ( a ) " , y = " MW " ) +
theme ( panel . background = element _ rect ( fill = " # F2F2F2 " ) , strip
. background = element _ rect ( fill = " orange " ) , legend . position =
" none " )
g2 <- ggplot ( Potencia [35490:35525 ,] , aes ( Fecha ) ) +
geom _ line ( aes ( y = Pot _ Act _ G3 , group = 1) , color = " blue " ) +
geom _ line ( aes ( y = sf _ PAG3 , group = 1) , color = " #088 A08 " ) +
labs ( x = " ( b ) " , y = " MW " ) +
theme ( panel . background = element _ rect ( fill = " # F2F2F2 " ) , strip
. background = element _ rect ( fill = " orange " ) , legend . position =
" none " )
g3 <- ggplot ( Potencia [14300:14390 ,] , aes ( Fecha ) ) +
geom _ line ( aes ( y = Pot _ Act _ G4 , group = 1) , color = " blue " ) +
geom _ line ( aes ( y = sf _ PAG4 , group = 1) , color = " #088 A08 " ) +
labs ( x = " ( c ) " , y = " MW " ) +
theme ( panel . background = element _ rect ( fill = " # F2F2F2 " ) , strip
. background = element _ rect ( fill = " orange " ) , legend . position =
" none " )
g4 <- ggplot ( DatosHidro [1417:1480 ,] , aes ( Fecha ) ) +
geom _ line ( aes ( y = Cau _ Tun , group = 1) , color = " blue " ) +
163
geom _ line ( aes ( y = sf _ CauTun , group = 1) , color = " #088 A08 " ) +
labs ( x = " ( d ) " , y = expression ( m ^3 / s ) ) +
theme ( panel . background = element _ rect ( fill = " # F2F2F2 " ) , strip
. background = element _ rect ( fill = " orange " ) , legend . position =
" none " )
grid . arrange ( g1 , g2 , g3 , g4 , ncol =2)
# Fin : Grafico ggplot
# INICIO : graficos con dygraph de las cuatro series de tiempo
# GRUPO2
Pot _ PAG2 _ xts <- xts ( Potencia $ Pot _ Act _ G2 , order . by = Potencia $
Fecha , frequency = 365 * 24 * 2)
Pot _ sfPAG2 _ xts <- xts ( Potencia $ sf _ PAG2 , order . by = Potencia $
Fecha , frequency = 365 * 24 * 2)
Pot _ G2 _ xts <- cbind ( Pot _ PAG2 _ xts , Pot _ sfPAG2 _ xts )
dygraph ( Pot _ G2 _ xts , main = " Filtro de MAX en Potencia Activa G2 "
, ylab = " MW " ) %> %
dySeries ( " ..1 " , label = " Pot _ Act _ G2 " , color = " blue " ) %> %
dySeries ( " ..2 " , label = " sf _ PAG2 " , color = " green " ) %> %
dyRangeSelector ()
# GRUPO3
Pot _ PAG3 _ xts <- xts ( Potencia $ Pot _ Act _ G3 , order . by = Potencia $
Fecha , frequency = 365 * 24 * 2)
Pot _ sfPAG3 _ xts <- xts ( Potencia $ sf _ PAG3 , order . by = Potencia $
Fecha , frequency = 365 * 24 * 2)
Pot _ G3 _ xts <- cbind ( Pot _ PAG3 _ xts , Pot _ sfPAG3 _ xts )
dygraph ( Pot _ G3 _ xts , main = " Filtro de MAX en Potencia Activa G3 "
, ylab = " MW " ) %> %
dySeries ( " ..1 " , label = " Pot _ Act _ G3 " , color = " blue " ) %> %
dySeries ( " ..2 " , label = " sf _ PAG3 " , color = " green " ) %> %
dyRangeSelector ()
# GRUPO4
Pot _ PAG4 _ xts <- xts ( Potencia $ Pot _ Act _ G4 , order . by = Potencia $
Fecha , frequency = 365 * 24 * 2)
Pot _ sfPAG4 _ xts <- xts ( Potencia $ sf _ PAG4 , order . by = Potencia $
Fecha , frequency = 365 * 24 * 2)
Pot _ G4 _ xts <- cbind ( Pot _ PAG4 _ xts , Pot _ sfPAG4 _ xts )
dygraph ( Pot _ G4 _ xts , main = " Filtro de RANGE en Potencia Activa
G3 " , ylab = " MW " ) %> %
dySeries ( " ..1 " , label = " Pot _ Act _ G4 " , color = " blue " ) %> %
dySeries ( " ..2 " , label = " sf _ PAG4 " , color = " green " ) %> %
dyRangeSelector ()
# GRUPO4
CauTun _ xts <- xts ( DatosHidro $ Cau _ Tun , order . by = DatosHidro $
Fecha , frequency = 365 * 2)
sfCauTun _ xts <- xts ( DatosHidro $ sf _ CauTun , order . by = DatosHidro $
Fecha , frequency = 365 * 2)
DH _ sfCauTun _ xts <- cbind ( CauTun _ xts , sfCauTun _ xts )
dygraph ( DH _ sfCauTun _ xts , main = " Filtro de RANGE en Potencia
Activa G3 " , ylab = " MW " ) %> %
dySeries ( " ..1 " , label = " Cau _ Tun " , color = " blue " ) %> %
dySeries ( " ..2 " , label = " sf _ CauTun " , color = " green " ) %> %
dyRangeSelector ()
# FIN : graficos con dygraph de las cuatro series de tiempo
164
Código elección del tipo de filtro
El mismo código es utilizado para los casos de potencia activa total, demanda
de engrı́a eléctrica, costo marginal y caudal.
PotenciaPrueba <- Potencia [ , c (1 ,14) ]
# agregar filtros gauss , mean y median
PotenciaPrueba $ PGauss <- kdfilter ( PotenciaPrueba $ sf _ Pot _ Total ,
WidthW =7 , Filter = " gauss " )
PotenciaPrueba $ Pmean <- kdfilter ( PotenciaPrueba $ sf _ Pot _ Total ,
WidthW =7 , Filter = " mean " )
PotenciaPrueba $ Pmedian <- kdfilter ( PotenciaPrueba $ sf _ Pot _ Total ,
WidthW =7 , Filter = " median " )
# generacion de xts
xts _ p <- xts ( PotenciaPrueba $ sf _ Pot _ Total , order . by =
PotenciaPrueba $ Fecha , frequency = 365 * 24 * 2)
xts _ p1 <- xts ( PotenciaPrueba $ PGauss , order . by = PotenciaPrueba $
Fecha , frequency = 365 * 24 * 2)
xts _ p2 <- xts ( PotenciaPrueba $ Pmean , order . by = PotenciaPrueba $
Fecha , frequency = 365 * 24 * 2)
xts _ p3 <- xts ( PotenciaPrueba $ Pmedian , order . by = PotenciaPrueba $
Fecha , frequency = 365 * 24 * 2)
# grafico para diapositivas
xts _ tol _ potencia <- cbind ( xts _p , xts _ p1 , xts _ p2 , xts _ p3 )
dygraph ( xts _ tol _ potencia , main = " Prueba de filtros en Potencia
Total " , ylab = " MW " ) %> %
dySeries ( " ..1 " , label = " Pot original " , color = " black " ) %> %
dySeries ( " ..2 " , label = " Gauss " , color = " green " ) %> %
dySeries ( " ..3 " , label = " Mean " , color = " blue " ) %> %
dySeries ( " ..4 " , label = " Median " , color = " red " ) %> %
dyRangeSelector ()
# grafico para informe
plot . ts ( PotenciaPrueba $ sf _ Pot _ Total [2000:2100] , ylab = " Potencia
( MW ) " , xlab = " Tiempo " )
lines ( PotenciaPrueba $ PGauss [2000:2100] , col = " green " )
lines ( PotenciaPrueba $ Pmean [2000:2100] , col = " blue " )
lines ( PotenciaPrueba $ Pmedian [2000:2100] , col = " red " )
Código selección mejor ancho de ventana
El mismo código es utilizado para los casos de potencia activa total, demanda
de engrı́a eléctrica, costo marginal y caudal.
# Cruces por cero para diferentes anchos
par ( mfrow = c (3 ,2) )
kdplotzcross ( Potencia $ sf _ Pot _ Total [1:100])
kdplotzcross ( kdfilter ( Potencia $ sf _ Pot _ Total [1:100] , WidthW =3 ,
Filter = " gauss " ) )
kdplotzcross ( kdfilter ( Potencia $ sf _ Pot _ Total [1:100] , WidthW =4 ,
Filter = " gauss " ) )
kdplotzcross ( kdfilter ( Potencia $ sf _ Pot _ Total [1:100] , WidthW =5 ,
Filter = " gauss " ) )
kdplotzcross ( kdfilter ( Potencia $ sf _ Pot _ Total [1:100] , WidthW =7 ,
Filter = " gauss " ) )
kdplotzcross ( kdfilter ( Potencia $ sf _ Pot _ Total [1:100] , WidthW =10 ,
Filter = " gauss " ) )
165
# Filtramos la serie con varios anchos de ventana
kdplotmat ( kdmatfilter ( Potencia $ sf _ Pot _ Total [1:100] , c
(1 ,3 ,4 ,5 ,7 ,10) , Filter = " gauss " ) )
par ( mfrow = c (1 ,1) )
# Identificacion de cruces por cero
kdplotzcross ( kdfilter ( Potencia $ sf _ Pot _ Total [1:100] , WidthW =5 ,
Filter = " gauss " ) )
# Numero de max y min con diferente anchos de ventana
kdplotnumz ( kdmatfilter ( Potencia $ sf _ Pot _ Total [1:100] , c (1:10) ,
Filter = " gauss " ) )
# Comportamiento de los max y min en diferentes anchos
kdplotscales ( kdmatfilter ( Potencia $ sf _ Pot _ Total [1:200] , c (1:25) ,
Filter = " gauss " ) )
Código suavizado de las series temporales
A continuación se detalla el tipo de filtro utilizado y el ancho de ventana selec-
cionado, para cada una de las series temporales.
Potencia $ sfs _ Potencia <- kdfilter ( Potencia $ sf _ Pot _ Total , WidthW
=5 , Filter = " gauss " )
DatosHidro $ sfs _ Cau _ Rio _ Vil <- kdfilter ( DatosHidro $ Cau _ Rio _ Vil ,
WidthW =5 , Filter = " gauss " )
DatosHidro $ sfs _ CauTun <- kdfilter ( DatosHidro $ sf _ CauTun , WidthW
=5 , Filter = " gauss " )
Demanda $ sfs _ Demanda <- kdfilter ( Demanda $ Ejecutado , WidthW =5 ,
Filter = " gauss " )
CostoMarginal $ sfs _ Costo <- kdfilter ( CostoMarginal $ Costo , WidthW
=3 , Filter = " gauss " )
Código gráfico de la ST original y suavizada
El mismo código es utilizado para todas las series de tiempo estudiadas.
# grafico con ggplot para informe
ggplot ( Potencia [2000:2150 ,] , aes ( Fecha ) ) +
geom _ line ( aes ( y = sf _ Pot _ Total , group = 1) , color = " blue " ) +
geom _ line ( aes ( y = sfs _ Potencia , group = 1) , color = " green " ) +
labs ( x = " Fecha " , y = " Potencia ( MW ) " ) +
theme ( panel . background = element _ rect ( fill = " # F2F2F2 " ) , strip
. background = element _ rect ( fill = " orange " ) , plot . title =
element _ text ( hjust =0.5) )
# grafico con dygraph para diapositivas
sf _ Pot _ Total _ xts1 <- xts ( Potencia $ sf _ Pot _ Total , order . by =
Potencia $ Fecha , frequency = 365 * 24 * 2)
sfs _ Potencia _ xts2 <- xts ( Potencia $ sfs _ Potencia , order . by =
Potencia $ Fecha , frequency = 365 * 24 * 2)
Potencia _ xts _ 12 <- cbind ( sf _ Pot _ Total _ xts1 , sfs _ Potencia _ xts2 )
dygraph ( Potencia _ xts _ 12 , main = " ST Potencia Activa total
original y suavisada " , ylab = " ( MW ) " ) %> %
dySeries ( " ..1 " , label = " Orginal " ) %> %
dySeries ( " ..2 " , label = " Filtrada " ) %> %
dyRangeSelector ()
166
Código construcción de nuevos datos
CostoMarginal $ sfs _ Costo1 <- CostoMarginal $ sfs _ Costo * 1000
Código desarrollado en la Fase 4
Código búsqueda de subpatrones
E x tr a c ci o n Su b P at r o n <- function ( TSerie , TipoPat , PatRangoX = NULL ,
PatRangoY = NULL , TipoRango = c ( " N " ," N " ) , limite = NULL , nivel =
NULL , nombrePat ) {
# Crea copia identica de la serie temporal
storage . mode ( TSerie ) <- " double "
SerieP <- list ( TSerie = TSerie )
# Normalizar la serie temporal entre 0 y 1
MinTSerie = min ( TSerie )
RangeTSerie = max ( TSerie ) - min ( TSerie )
TSerieNorm <- ( TSerie - MinTSerie ) / RangeTSerie
# Cruces por ceros con la primera derivada
Ceros <- . Call ( " zerocrossings " , TSerieNorm , PACKAGE = " KDSeries " )
Ceros [ length ( Ceros ) ] <- 1
# Se crea un vector DondeCeros
DondeCeros <- 1: length ( Ceros )
# Eliminar registros que son distintos de 1
DondeCeros <- DondeCeros [ Ceros %in % 1]
# Posicion inicial del subpatron
PosicionPat <- c (1 , DondeCeros [ - length ( DondeCeros ) ])
# Longitud del subpatron
LargoPat <- DondeCeros - PosicionPat
# Posiciones real en Y del subpatron
PosicionY <- TSerie [ PosicionPat ]
# Altura del subpatron
AltPat <- TSerie [ DondeCeros ] - TSerie [ PosicionPat ]
# Proceso INCREMENTOS
if ( TipoPat == " I " ) {
# Seleccionar alturas positivas
Cuales <- AltPat >0
# Seleccionar subpatrones dentro del limite
if ( ! is . null ( limite ) & ! is . null ( nivel ) ) {
if ( nivel == " + " ) {
Cuales <- Cuales & ( PosicionY + AltPat ) >= limite
} else if ( nivel == " -" ) {
Cuales <- Cuales & ( PosicionY ) <= limite
} else if ( nivel == " + - " ) {
Cuales <- Cuales & ( PosicionY + AltPat ) >= limite [1] & (
PosicionY ) <= limite [2]
}
}
# Almacenar resultados en los vectores
167
PosP <- PosicionPat [ Cuales ]
LarP <- LargoPat [ Cuales ]
PosY <- PosicionY [ Cuales ]
AltP <- AltPat [ Cuales ]
# Eliminar segmentos fuera del rango X
if ( ! is . null ( PatRangoX ) ) {
if ( TipoRango [1] == " N " ) {
XRange <- PatRangoX
} else {
XRange <- ( PatRangoX / 100) * length ( TSerie )
}
# Almacenar resultados en los vectores
PosP <- PosP [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
PosY <- PosY [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
AltP <- AltP [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
LarP <- LarP [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
}
# Eliminar segmentos fuera del rango Y
if ( ! is . null ( PatRangoY ) ) {
if ( TipoRango [2] == " N " ) {
YRange <- PatRangoY
} else {
YRange <- PatRangoY * RangeTSerie / 100
}
# Almacenar resultados en los vectores
PosP <- PosP [ which (( AltP >= YRange [1] & AltP <= YRange [2]) ) ]
LarP <- LarP [ which (( AltP >= YRange [1] & AltP <= YRange [2]) ) ]
PosY <- PosY [ which (( AltP >= YRange [1] & AltP <= YRange [2]) ) ]
AltP <- AltP [ which (( AltP >= YRange [1] & AltP <= YRange [2]) ) ]
}
# Asigna el nombre de subpatron
nombrePat <- rep ( nombrePat , length ( LarP ) )
# Genera la matriz de salida con los resultados
PATT <- data . frame ( PosP , LarP , PosY , AltP , nombrePat )
SerieP <- list ( SerieP = TSerie , PATT = PATT )
# Proceso DECREMENTOS
} else if ( TipoPat == " D " ) {
# Selecciona alturas con signo negativo
Cuales <- AltPat <0
# Seleccionar subpatrones dentro del limite
if ( ! is . null ( limite ) & ! is . null ( nivel ) ) {
if ( nivel == " + " ) {
Cuales <- Cuales & ( PosicionY ) >= limite
} else if ( nivel == " -" ) {
Cuales <- Cuales & ( PosicionY + AltPat ) <= limite
} else if ( nivel == " + - " ) {
Cuales <- Cuales & ( PosicionY ) >= limite [1] & ( PosicionY +
AltPat ) <= limite [2]
}
}
# Almacenar resultados en los vectores
PosP <- PosicionPat [ Cuales ]
168
LarP <- LargoPat [ Cuales ]
PosY <- PosicionY [ Cuales ]
AltP <- AltPat [ Cuales ]
# Eliminar segmentos fuera del rango X
if ( ! is . null ( PatRangoX ) ) {
if ( TipoRango [1] == " N " ) {
XRange <- PatRangoX
} else {
XRange <- ( PatRangoX / 100) * length ( TSerie )
}
# Almacenar resultados en los vectores
PosP <- PosP [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
PosY <- PosY [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
AltP <- AltP [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
LarP <- LarP [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
}
# Eliminar segmentos fuera del rango Y
if ( ! is . null ( PatRangoY ) ) {
if ( TipoRango [2] == " N " ) {
# Scale range
YRange <- abs ( PatRangoY )
} else {
YRange <- abs ( PatRangoY ) * RangeTSerie / 100
}
# Almacenar resultados en los vectores
PosP <- PosP [ which (( abs ( AltP ) >= YRange [1] & abs ( AltP ) <=
YRange [2]) ) ]
LarP <- LarP [ which (( abs ( AltP ) >= YRange [1] & abs ( AltP ) <=
YRange [2]) ) ]
PosY <- PosY [ which (( abs ( AltP ) >= YRange [1] & abs ( AltP ) <=
YRange [2]) ) ]
AltP <- AltP [ which (( abs ( AltP ) >= YRange [1] & abs ( AltP ) <=
YRange [2]) ) ]
}
# Asigna el nombre de subpatron
nombrePat <- rep ( nombrePat , length ( LarP ) )
# Genera la matriz de salida con los resultados
PATT <- data . frame ( PosP , LarP , PosY , AltP , nombrePat )
SerieP <- list ( SerieP = TSerie , PATT = PATT )
# Proceso DECREMENTOS
} else if ( TipoPat == " H " ) {
# Eliminar segmentos fuera del rango Y
if ( ! is . null ( PatRangoY ) ) {
if ( TipoRango [2] == " N " ) {
# Scale range
YRange <- PatRangoY
} else {
YRange <- PatRangoY * RangeTSerie / 100
}
Cuales <- AltPat >= YRange [1] & AltPat <= YRange [2]
} else {
Cuales <- AltPat == 0
}
169
# Seleccionar subpatrones dentro del limite
if ( ! is . null ( limite ) & ! is . null ( nivel ) ) {
if ( nivel == " + " ) {
Cuales <- Cuales & ( PosicionY + AltPat ) >= limite
} else if ( nivel == " -" ) {
Cuales <- Cuales & ( PosicionY ) <= limite
} else if ( nivel == " + - " ) {
Cuales <- Cuales & ( PosicionY + AltPat ) >= limite [1] & (
PosicionY ) <= limite [2]
}
}
# Almacenar resultados en los vectores
PosP <- PosicionPat [ Cuales ]
LarP <- LargoPat [ Cuales ]
PosY <- PosicionY [ Cuales ]
AltP <- AltPat [ Cuales ]
# Eliminar segmentos fuera del rango X
if ( ! is . null ( PatRangoX ) ) {
if ( TipoRango [1] == " N " ) {
XRange <- PatRangoX
} else {
XRange <- ( PatRangoX / 100) * length ( TSerie )
}
# Almacenar resultados en los vectores
PosP <- PosP [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
PosY <- PosY [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
AltP <- AltP [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
LarP <- LarP [ which (( LarP >= XRange [1] & LarP <= XRange [2]) ) ]
}
# Asigna el nombre de subpatron
nombrePat <- rep ( nombrePat , length ( LarP ) )
# Genera la matriz de salida con los resultados
PATT <- data . frame ( PosP , LarP , PosY , AltP , nombrePat )
SerieP <- list ( SerieP = TSerie , PATT = PATT )
}
# Entrega la matriz del subpatron
return ( SerieP )
}
Código búsqueda de patrones
BusquedaPatron <- function ( MAT , SubPatron , AnchoVentana , nomPat ,
Plot = FALSE , SerieP =0 , Xlim = c (1 , length ( SerieP ) ) , Ylim = c (0 ,
max ( SerieP ) ) )
{
# Ordena la matriz
MAT <- MAT [ order ( MAT [ ,1]) ,]
# Agrega el numero de subpatrones a NUMC
NUMC <- length ( SubPatron )
# Validaciones
if ( nrow ( MAT ) <= NUMC ) return ;
170
if ( nrow ( MAT ) <1) return ;
if ( NUMC <1) return ;
if ( AnchoVentana <1) return ;
# Se asigna a FILAS la longitud de la matriz MAT
FILAS <- nrow ( MAT )
# Se crea matriz MAT2
MAT2 <- MAT [1:(1+ FILAS - NUMC ) ,]
# Se agregar a MAT2 matrices menos los primeros
for ( h in 2: NUMC ) {
MAT2 <- data . frame ( MAT2 , MAT [ h :( h + FILAS - NUMC ) ,])
}
# Calcular ancho de ventana y agregar a MAT2
AnchoPat <- MAT2 [ , ncol ( MAT2 ) -4]+ MAT2 [ , ncol ( MAT2 ) -3] - MAT2 [ ,1]
MAT2 <- data . frame ( MAT2 , AnchoPat = AnchoPat )
# Elimina los anchos mayores al dado
MAT2 <- MAT2 [ MAT2 $ AnchoPat <= AnchoVentana ,]
# Generar vector CUALES
CUALES <- rep ( TRUE , nrow ( MAT2 ) )
# Logica para buscar patrones con grep
for ( h in 1: NUMC ) {
MASCARA <- rep ( FALSE , nrow ( MAT2 ) )
MASCARA [ grep ( SubPatron [ h ] , MAT2 [ , h * 5] , perl = TRUE ) ] <- TRUE
CUALES <- CUALES & MASCARA
}
# Quitar registros con valor FALSE
MAT2 <- MAT2 [ CUALES ,]
# Si no encuentra patrones
if ( nrow ( MAT2 ) <1) return ( list ( PATTERN = NULL , MAT2 = NULL ) )
# Genera matriz MATPAT
MATPAT <- data . frame ( PosP = MAT2 [ ,1] , LarP = MAT2 $ AnchoPat , nomPat =
nomPat )
# Cuando se desea dibujar patrones en un rango dado
if ( Plot == TRUE & & SerieP ! = 0) {
plot . ts ( SerieP , xlim = Xlim , ylim = Ylim )
for ( h in 0:( NUMC -1) ) {
segments ( x0 = MAT2 [ ,1+5 * h ] , y0 = MAT2 [ ,3+5 * h ] , x1 = MAT2 [ ,1+5 * h ]+
MAT2 [ ,2+5 * h ] , y1 = MAT2 [ ,3+5 * h ]+ MAT2 [ ,4+5 * h ] , col = h +2)
segments ( x0 = MATPAT [ ,1] , y0 = min ( SerieP [ Xlim [1]: Xlim [2]]) , x1 =
MATPAT [ ,1]+ MATPAT [ ,2] , y1 = min ( SerieP [ Xlim [1]: Xlim [2]]) ,
col =1 , lwd =3)
text ( MAT2 [ ,1+5 * h ] , MAT2 [ ,3+5 * h ] , rownames ( MAT2 ) , col = h +2)
text ( MATPAT [ ,1] , min ( SerieP [ Xlim [1]: Xlim [2]]) , row . names (
MATPAT ) )
}
}
# Devuelve matriz MATPAT
return ( list ( MATPAT = MATPAT , MAT2 = MAT2 ) )
171
}
Código clasificación
El código que se utilizó para el proceso de clasificación, se explica más a detalle
a continuación, el proceso es igual para todos los patrones.
# 1. Seleccionar columnas del patron
p1 <- Patron1 [ , c (4 ,5) ]
# 2. Calcular matriz de distancias
p1 <- scale ( p1 )
MatDis1 <- dist ( x = p1 , method = " euclidean " )
# 3. Se construye los dendogramas de prueba
# Agregacion de Ward
cj _ ward <- hclust ( d = MatDis1 , method = " ward . D2 " )
# Agregacion de salto maximo
cj _ maximo <- hclust ( d = MatDis1 , method = " complete " )
# Agregacion de salto promedio
cj _ promedio <- hclust ( d = MatDis1 , method = " average " )
# 4. Se evalua lo anterior
# Agregacion de ward
cor ( x = MatDis1 , cophenetic ( cj _ ward ) )
# Agregacion de salto maximo
cor ( x = MatDis1 , cophenetic ( cj _ maximo ) )
# Agregacion de salto promedio
cor ( x = MatDis1 , cophenetic ( cj _ promedio ) )
# el que tenga la mayor distancia de cophenetic se elige
# 5. Elegir mejor numero de cluster
custom _ silhouette <- function ( n _ clusters , dendograma , distancia ,
datos ) {
# Esta funci \ ’ on calcula el indice silueta
valores _ silhouette <- cluster :: silhouette ( stats :: cutree (
dendograma , k = n _ clusters ) , get _ dist ( x = datos , method =
distancia ) )
media _ silhouette <- summary ( valores _ silhouette ) [[4]]
return ( media _ silhouette )
}
# cj _ promedio <- hclust ( d = MatDis1 , method = " average ")
val _ med _ silhouette <- map _ dbl (. x = 2:15 , . f = custom _ silhouette ,
dendograma = cj _ promedio , distancia = " euclidean " , datos =
p1 )
# grafico de silueta
data . frame ( n _ clusters = 2:15 , media _ silhouette = val _ med _
silhouette ) %> %
ggplot ( aes ( x = n _ clusters , y = media _ silhouette ) ) +
geom _ line () +
geom _ point () +
scale _ x _ continuous ( breaks = 2:15) +
theme _ bw ()
# 6. Visualizacion dendograma
plot ( cj _ ward , cex = 0.6 , hang = -1 , ylab = " Altura " )
rect . hclust ( cj _ ward , k =4 , border = " red " )
# 7. Agregar nueva columna de cluster
Grupo <- cutree ( cj _ promedio , 3)
Patron1 <- cbind ( Patron1 , Grupo )
172
Funciones Auxiliares
Gráfico subpatrón
La función grafica los subpatrones encontrados en una serie temporal, se puede
limitar el área del gráfico tanto en la abscisa y la ordenada.
Parámetros de entrada:
Û MatrizSB: Matriz del subpatron encontrado que devuelve la función Extraccion-
SubPatron.
Û SerieT: Serie temporal suavisada.
Û Xlim: Es la escala para graficar en la abscisa X. Ej. Xlim = c(1,length(SerieT)).
Û Ylim: Es la escala para graficar en la ordenada Y. Ej. Ylim = c(0,max(SerieT)).
Û linea: Es un vector para dibujar una linea debajo del parametro, el primero indica
en que ordenada se grafica, y el segundo el nombre. Ej. linea = c(1000,950).
Û colores: Es un vector que se indica el color del subpatrón y la linea, Ej c(1,2)
donde se pueden utilizar los numeros 1:negro, 2:rojo, 3:verde, 4:azul, 5:celeste,
6:violeta, 7:amarillo, 8:plomo.
GraficaSubPatron <- function ( MatrizSP , SerieT =0 , Xlim = c (1 ,
length ( SerieT ) ) , Ylim = c (0 , max ( SerieT ) ) , linea = c (0 ,0) ,
colores = c (1 ,1) )
{
# Grafica la ST con limites X e Y
plot . ts ( SerieT , xlim = Xlim , ylim = Ylim )
# Grafica los patrones encontrados en el limite dado
segments ( x0 = MatrizSP $ PosP , y0 = MatrizSP $ PosY , x1 = MatrizSP $ PosP +
MatrizSP $ LarP , y1 = MatrizSP $ PosY + MatrizSP $ AltP , col =
colores [1])
# grafica la lines debajo de los subpatrones
segments ( x0 = MatrizSP $ PosP , y0 = linea [1] , x1 = MatrizSP $ PosP +
MatrizSP $ LarP , y1 = linea [1] , col = colores [2] , lwd =3)
# coloca el numero del subpatron
text ( MatrizSP $ PosP , MatrizSP $ PosY , row . names ( MatrizSP ) , col =
colores [1])
# coloca el numero del subpatron
text ( MatrizSP $ PosP , linea [2] , row . names ( MatrizSP ) , col = colores
[2])
}
Tabla de Frecuencia para datos cuantitativos continuos
La función TablaFrecCuanCont halla la tabla de frecuencias para datos cuan-
titativos continuos, basado en la regla de Sturges, acerca del número de clases que se
debe considerar al elaborar la tabla y el histograma.
log(M )
c=1+
log(2)
173
Donde M = Longitud de la muestra y c = Número de clases.
Parámetros de entrada:
Û Vector: Es un vector compuesto por valores cuantitativos continuos para analizar.
Û Histograma: Valor booleano, si es TRUE devuelve el histograma de la tabla de
frecuencias hallada.
Parámetros de salida:
Û TablaFrec: Es una matriz compuesta por la tabla de frecuencias hallado.
Tab laFrec CuanCo nt <- function ( Vector , Histograma = FALSE )
{
x <- Vector
# Regla de Sturges
m = nclass . Sturges ( x )
# longitud del Vector
n <- length ( x )
# Valor minimo y maximo del Vector
minx = min ( x )
maxx = max ( x )
# Amplitud del intervalo
w =( maxx - minx ) / m
# Calcula el limite superior del intervalo [a , b ]
b =(1: m ) * w + minx
# Calcula el limite inferior del intervalo
a =b - w
# Calcula la marca de clase
X =( a + b ) / 2
# Generacion las columnas de frecuencia y frecuencia acumulada
f = matrix ( NA , nrow =m , ncol =1)
F = matrix ( NA , nrow =m , ncol =1)
# calcula la frecuencia y frecuencia acumulada
for ( i in 1: m ) {
f [ i ]= length ( x [x >= a [ i ] & x < b [ i ]])
F [ i ]= length ( x [x <= b [ i ]])
}
# Calcula la frecuencia relativa
frel = f / n
# Calcula la frecuencia relativa acumulada
Frel = F / n
# Grafica el histograma
if ( Histograma == TRUE ) {
hist (x , breaks = minx + w * (0: m ) , xlim = c ( X [1] - w , X [ m ]+ w ) , ylim = c
(0 , max ( f ) ) , main = " Histograma Vs Poligono de Frecuencia " ,
ylab = " Frecuencia " , xlab = " " , col = c ( " # F79F81 " ," #9 FF781 " ) )
lines ( c ( X [1] - w , X , X [ m ]+ w ) , c (0 ,f ,0) , " b " )
}
# se construye la tabla de frecuencias
TablaFrec <- data . frame (a , b , X , f , frel , F , Frel )
# Retorna tabla de frecuencias
return ( TablaFrec )
}
174
Categorización
La función Categorizacion sirve para categorizarcion alguna columna de la tabla
de patrones encontados, de acuerdo a sus caracteristicas.
Parámetros de entrada:
Û Tabla: Matriz de sbpatrones o patrones.
Û Col: Nombre de la columna a Categorizacion. Ej. Col=.AltP”
Û nombreColumna: Nombre de la nueva columna. Ej. nombreColumna = ”ParAltP”
Û Interv: Vector compuesto por los intervalos de clase, cada grupo de dos son los
intervalos. Ej. Param = c(a1, a2, b1, b2, ...)
Û nombreCat: Vector que contiene los nombres de los grupos o categorias. Ej. nom-
brePar = c(”Grupo1”, ”Grupo2”, ...)
Parámetros de salida:
Û Tabla: Tabla inicial más la columna categorizada.
Categorizacion <- function ( Tabla , Col = NULL , nombreColumna =
NULL , Interv = NULL , nombreCat = NULL ) {
# Agregamos la nueva columna
Tabla $ nombreCol <-" "
# Categorizamos cada fila
for ( i in 1: length ( nombreCat ) ) {
for ( j in 1: dim ( Tabla ) [1]) {
if ( Tabla [ , Col ][ j ] >= Interv [ i * 2 -1] & Tabla [ , Col ][ j ] < Interv [ i
* 2])
{
Tabla $ nombreCol [ j ] <- nombreCat [ i ]
}
}
}
# Renombramos la nueva columna
colnames ( Tabla ) [ colnames ( Tabla ) == " nombreCol " ] <- nombreColumna
# Retorna la tabla
return ( Tabla )
}
Tabla de frecuencias para valores discretos
La funcion TablaFrecCuanDisc sirve para realizar un conteo de frecuencias de-
pendiendo de las clases de la primera columna a analizar, las columnas deben de ser
cuantitativos discretos y/o cualitativos nominales.
Parámetros de entrada:
Tabla: Matriz de subpatrones o patrones.
175
numColum: Vector con las columnas a contar, el orden dependerá mucho, la
primera columna son las clases. Ej. c(columna1, columna2, ...)
Parámetros de salida:
TablaFreq: Tabla de frecuencias acumuladas
Tab laFrec CuanDi sc <- function ( Matriz , numColum = NULL )
{
# Conteo por clases
TablaFreq <- table ( Matriz [ , numColum ])
# Retorna la tabla de frecuencias
return ( TablaFreq )
}
176
Bibliografı́a
Chapman, P., Clinton, J., and Kerber, R. (2000). CRISP-DM 1.0. 2000 SPSS Inc.
Chatfield, C. (2010). The Analysis of time Series an Introduction. CHAPMAN - HALL
CRC, 1 edition.
Efendiev, Y., keller, A., and Mitsui, T. (2018). Journal of Computational and Applied
Mathematics. Editorial Board, 352 edition.
EGEMSA (2018). Portal de transparencia. http://www.egemsa.com.pe/transparencia.
Elmasri, R. and Navathe, S. B. (2007). Fundamentos de sistemas bases de datos.
PEARSON EDUCACION S.A., 5 edition.
Fu, T. C. (2010). Engineering Applicaations of Artificial Intelligence. ELSEVIER, 1
edition.
Hernández Orallo, J., Ramirez Quintana, J., and Ferri Ramirez, C. (2004). Introducción
a la Minerı́a de Datos. PEARSON EDUCACION S.A., 5 edition.
Hernández Sampieri, R., Fernández, C., and Baptista, M. (2010). Metodologı́a de La
Investigación. McGrawHill, 5 edition.
Martinez, F., Sanz, A., and Fernandez, R. (2014). Kdseries: una librerı́a destinada al
tratamiento de series temporales en r. ResearchGate.
Mitsa, T. (2010). Temporal Data Mining. A CHAPMAN - HALL BOOK, 1 edition.
Palma, C., Palma, W., and Peréz, R. (2009). DATA MINING El Arte de Anticipar.
RIL editores, 1 edition.
Pérez López, C. and Santı́n González, D. (2008). Minerı́a de Datos Técnicas y Herra-
mientas. Thomson Ediciones Paraninfo S.A., 2 edition.
Rodriguez Penin, A. (2007). Sistemas SCADA. MARCOMBO S.A., 2 edition.
Silberschatz, A., Korth, H. F., and Sudarshan, S. (2006). Fundamentos de bases de
datos. McGRAW-Hill, 5 edition.
177