121
i Equation Chapter 1 Section 1 Trabajo Fin de Grado Grado Ingeniería en Tecnologías Industriales Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal Autor: Carlos Uribe Astolfi Tutor: Luis Onieva Giménez Dep. Organización Industrial y Gestión de Empresas II Escuela Técnica Superior de Ingeniería Sevilla, 2015

Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

i

Equation Chapter 1 Section 1

Trabajo Fin de Grado

Grado Ingeniería en Tecnologías Industriales

Estimación de afluencia a eventos multitudinarios

mediante modelo de Winters y programación lineal

Autor: Carlos Uribe Astolfi

Tutor: Luis Onieva Giménez

Dep. Organización Industrial y Gestión de

Empresas II

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2015

Page 2: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 3: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

iii

Trabajo Fin de Grado

Grado Ingeniería en Tecnologías Industriales

Estimación de afluencia a eventos multitudinarios

mediante modelo de Winters y programación lineal

Autor:

Carlos Uribe Astolfi

Tutor:

Luis Onieva Giménez

Catedrático

Dep. de Organización Industrial y Gestión de Empresas II

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2015

Page 4: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 5: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

v

Trabajo Fin de Grado: Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y

programación lineal

Autor: Carlos Uribe Astolfi

Tutor: Luis Onieva Giménez

El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros:

Presidente:

Vocales:

Secretario:

Acuerdan otorgarle la calificación de

Sevilla, 2015

El Secretario del Tribunal

Page 6: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 7: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

vii

Resumen

Este trabajo trata de realizar un modelo de previsión de afluencia a un evento

multitudinario. Para ello se realizará un análisis de los colectivos que pueden acceder

a un evento, así como de las variables indicadoras que permitan cuantificarlo.

Posteriormente se elegirán los métodos para llevar a cabo dicho modelo. Y, por

último, se implementará el modelo mediante un evento real, que ya ha transcurrido y

del cual se conocen los datos necesarios.

Page 8: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 9: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

ix

Abstract

The present final degree project tries to make a forecast model to a mass influx event.

To do an analysis of the groups that can access an event , as well as indicator variables

that allow us to quantify this will be done . Subsequently methods were chosen to

carry out this model. And finally the model is implemented by a real event which has

already elapsed and that the necessary data are known.

Page 10: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Índice

Resumen vii

Abstract ix

Índice x

Índice de Tablas xii

Índice de Figuras xiii

1 Introducción al problema 1

2 Objeto del estudio 3

3 Modelo de afluencia diaria al evento 5 3.1 Afluencia, salidas y presencia de visitantes 5 3.2 Análisis de los colectivos que acceden al recinto 7

3.2.1 Colectivos que acceden al recinto 7 3.2.2 Análisis 10

3.3 Variables indicadores 11 3.3.1 De población 11 3.3.2 De atracción 12 3.3.3 Temporales 13 3.3.4 Resumen de variables indicadoras 14

4 Previsiones de afluencia diaria al evento 17 4.1 Análisis previo 17 4.2 Variables indicadores 17 4.3 Análisis de los modelos 18

4.3.1 Modelos de extrapolación 19 4.3.2 Modelos explicativos 19

4.4 Validación de los modelos 20 4.5 Funcionamiento operativo 20

5 Marco teórico 23 5.1 Perspectiva de previsión 23 5.2 Pasos básicos para llevar a cabo la previsión 26 5.3 Criterios de evaluación de modelos de previsión 27

5.3.1 Error de previsión 27 5.3.2 Error medio, ME 27 5.3.3 Error absoluto medio, MAE 28 5.3.4 Error cuadrático medio, MSE 28 5.3.5 Raíz del error cuadrático medio, RMSE 28

5.4 Modelos de previsión 28 5.4.1 Método de Winters 29 5.4.2 Modelo de programación lineal 32

6 Implementación 35

Page 11: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

xi

6.1 Winters 37 6.2 Modelo de programación lineal 39 6.4 Ponderación de la previsión de entradas 41

7 Resultados 43

8 Conclusiones 45

ANEXO A: Tabla de datos 47

ANEXO B: Código WINTERS 53

ANEXO C: Código GEN-PRLI 75

ANEXO D: Código PROG-LIN 83

ANEXO E: Código PREVISIO 89

ANEXO F: Resultados 97

ANEXO G: Gráficas de resultados 103

Bibliografía 107

Page 12: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

ÍNDICE DE TABLAS

Tabla 3-1. Resumen de variables indicadoras 15

Tabla 7-1. Errores de previsión de entradas 43

Page 13: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

xiii

ÍNDICE DE FIGURAS

Figura 3-1. Perfil afluencia 5

Figura 3-2. Perfiles de salidas 6

Figura 3-3. Cálculo de presencia 6

Figura 3-4. Población visitante 8

Figura 5-1. Resumen métodos de previsión 24

Figura 5-2. Inicialización del método de Winters 30

Figura 6-1. Observaciones junio 35

Figura 6-2. Total observaciones 36

Figura 6-3. Observación semanal 36

Figura 6-4. Resultado pases por método de Winters 38

Figura 6-5. Resultado entradas por método de Winters 39

Figura 6-6. Solución generada por AMPL 40

Figura 6-7. Resultado entradas modelo de programación lineal 41

Figura 6-8. Solución generada por PREVISIO 42

Page 14: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 15: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

1

1 INTRODUCCIÓN AL PROBLEMA

Actualmente, debido al impacto económico que generan, se organizan grandes

eventos en cualquier parte del mundo. Eventos deportivos, ferias o exposiciones

universales son algunos ejemplos de ellos.

El principal problema que pueden encontrar los organizadores de eventos, es

cuantificar la cantidad de asistentes que acudirán diariamente, para poder planificar

adecuadamente los recursos humanos y materiales a corto plazo.

Debido a la escasa información y herramientas de las que se dispone, se pretende

abordar esta problemática mediante la aplicación de métodos estadísticos y algún

modelo de programación lineal, los cuales permitirán realizar las estimaciones

convenientes. Siendo este el objeto del trabajo.

Page 16: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 17: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

3

2 OBJETO DEL ESTUDIO

Se trata de obtener las previsiones diarias de afluencia a un recinto con antelación

suficiente para planificar adecuadamente los recursos humanos y materiales a corto

plazo. El correcto dimensionamiento de los servicios influirá de manera importante en

la calidad de los mismos. El horizonte de tiempo contemplado en las previsiones que

realice el modelo debe ser tal que permita la programación de los recursos variables

necesarios.

El objetivo concreto es la realización de la previsión de la afluencia al recinto con una

antelación de tres días. Dicho recinto será el de la Exposición Universal que tuvo

lugar en Sevilla en 1992. El modelo se adecuará a este horizonte, si bien no se excluye

para previsiones con otros horizontes temporales (mayores y menores).

Page 18: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 19: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

5

3 MODELO DE AFLUENCIA DIARIA AL EVENTO

3.1 Afluencia, salidas y presencia de visitantes

Se entiende por afluencia el número de personas que accede al interior del recinto.

Dicha afluencia se mide por unidad de tiempo, siendo la variable en función del

mismo. Su representación genérica es la de la figura 3-1.

Figura 3-1. Perfil afluencia

Esta afluencia es perfectamente medible “a posteriori”, dado que dicha información es

capturada rutinariamente por el sistema de control de accesos a través de las diversas

puertas de visitantes que disponga el recinto.

Se entiende por presencia el número de personas que se encuentran en el interior del

recinto en un momento dado. La presencia también es variable en función del tiempo,

pero no se puede medir directamente. Es una variable que se puede obtener por

diferencia entre la afluencia y los abandonos del recinto. Es la variable fundamental a

tener en cuenta para dimensionar los servicios ofertados en el interior del recinto.

El tercer concepto, íntimamente ligado a los dos anteriores es el de las salidas. Se

entiende por salidas la medida del abandono del recinto por los presentes en él. Las

salidas también son variables en función del tiempo y medibles, si bien no de forma

completa. Esto se debe a que las puertas de salidas proporcionan información fiable

cuando son el único medio de abandono del recinto. Sin embargo, existen puertas de

emergencias que pueden ser abiertas de forma esporádicas cuando se produzcan

aglomeraciones y así lo aconsejen. Dichas salidas no serán registradas por el sistema

de control de accesos. La figura 3-2 refleja un perfil genérico de las salidas

controladas.

0

2

4

6

8

10

8 10 12 14 16 18 20 22 24

Perfil de afluencia

afluencia

Page 20: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

6

Figura 3-2. Perfiles de salidas

Esta curva es una subestimación de las salidas reales puesto que no incluye las salidas

no controladas por las puertas de emergencia. Conceptualmente, si la curva de salidas

refleja todas las qué se producen, controladas y descontroladas, la presencia en el

recinto sería precisamente la diferencia entre las curvas de afluencia y de salidas

acumuladas; tal como se representa en la figura 3-3.

Figura 3-3. Cálculo de presencia

En la figura 3-3 se refleja una hipotética situación en la qué se realizan dos aperturas

de las puertas de emergencia. La imprecisión en el conocimiento exacto de la

presencia aumenta debido a las incertidumbres sobre el número, duración y caudal

que abandona el recinto durante dichas aperturas. Obsérvese que hasta la primera vez

que se abre una puerta de emergencia, las salidas registradas coinciden con las reales,

por lo que las presencias calculadas son exactas hasta dicho momento. Así, si las

puertas de emergencia se abriesen una sola vez al día, el conocimiento de la presencia

0

1

2

3

4

5

6

7

8 10 12 14 16 18 20 22 24

Perfil de salidas

salidas

Page 21: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

7

hasta dicho instante sería fiable. Con la ventaja adicional de que, con toda

probabilidad, la presencia alcanza sus valores máximos con anterioridad a la

apreciable disminución de la misma que supone la salida masiva con la apertura de las

puertas. En este caso, los niveles máximos de presencia serían perfectamente

conocidos. Si este comportamiento fuera la norma, podrían conocerse los valores

históricos máximos de cada día, y basándose en esta serie temporal realizar la

previsión de la presencia máxima de los siguientes días. Sin embargo, si la apertura de

puertas se realiza a horas más tempranas y con mayor frecuencia, no se puede evaluar

de forma tan simple la presencia máxima. En cualquier caso, es razonable suponer

que las aglomeraciones de salida nocturnas serán, cualitativa y cuantitativamente, más

importantes que las diurnas, por lo que es coherente asumir que la presencia máxima

se producirá en el periodo anterior a la misma. La información sobre las salidas hasta

dicho momento es razonable y fiable y puede tomarse como base de partida para

obtener la estimación de la presencia hasta dicho momento. Estando su máximo

contenido en ese intervalo, también su estimación será razonablemente fiable.

Sin embargo, permanecen las dificultades para estimar con precisión la presencia tras

dicha apertura si no se posee información sobre los visitantes que abandonan el

recinto durante la posible apertura de las puertas de emergencia.

3.2 Análisis de los colectivos que acceden al recinto

3.2.1 Colectivos que acceden al recinto

Distinguimos los diferentes colectivos de visitantes que acceden al recinto empleando

como criterio para diferenciarlos el tipo de factores explicativos que actúan sobre la

influencia de los mismos. La siguiente figura recoge el esquema de la clasificación

considerada.

Page 22: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

8

Figura 3-4. Población visitante

3.2.1.1 Poseedores de pases de temporada

Un primer colectivo es el de los poseedores de pases de temporada, casi todos ellos de

ámbito geográfico local. La posesión de un pase de temporada permite la afluencia

frecuente al recinto sin limitaciones de calendario ni horarias. A voluntad. La decisión

de asistir al recinto puede ser improvisada, sin estar condicionada por la duración

esperada de la visita. De la misma forma, la libre disponibilidad de acceso durante

todo el periodo de duración del evento hace suponer que este colectivo tendrá un alto

índice de repetición de accesos en el mismo día (en relación a otros colectivos).

Dado el elevado grado de libertad y discrecionalidad de las visitas de los miembros de

este grupo, no parece conveniente pretender identificar un número reducidos de

factores explicativos de su afluencia. En su lugar, un modelo de extrapolación basado

en el comportamiento histórico del mismo considera todas las concausas de forma

implícita a la hora de prever la afluencia futura.

La información que requiere este tipo de modelo será perfectamente accesible debido

a que el colectivo de poseedores de pases de temporada está completamente

Afluencia

Pases de Temporada

Entradas

Residentes No

residentes

Pernoctan No

pernoctan

Page 23: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

9

identificado como tal, registrándose todos sus accesos al recinto.

3.2.1.2 Accesos con entradas

El otro colectivo complementario es el de los visitantes que adquieren sus entradas.

Dentro de él es conveniente distinguir entre varios subgrupos.

3.2.1.2.1 Residentes en el á reá locál

Se trata de un grupo bastante heterogéneo para el cual es aventurado seleccionar

factores que permitan prever con antelación su afluencia en un día concreto. Además,

es de esperar que este colectivo tenga un peso específico apreciable sobre la afluencia

debido a la concentración de sus visitas en un número reducido de días, tales como

fines de semana, días de fiesta y fechas especiales (días de precios reducidos, etc.). De

hecho, es posible que este colectivo sea el que convierta algunas fechas en días punta.

Los componentes de este grupo, con gran comodidad de acceso por ser residentes en

el área local, no han previsto una asistencia frecuente al recinto (no ha obtenido un

pase de temporada), ya sea por un menor interés en el evento o porque sus recursos

económicos no se lo permiten. Es de suponer que serán proclives a una permanencia

prolongada en el recinto en los días que acudan, y a emplear los días de puertas

abiertas o de precio reducido para sus visitas.

3.2.1.2.2 No residentes en el á reá locál

Los no residentes pueden catalogarse como turistas, tanto nacionales como

extranjeros. A su vez, se darán dos circunstancias distintas:

Pernoctan en la zona.

Pernoctan en zonas más alejadas desde las que se desplazan en ambos sentidos

el mismo día, ya sea mediante transportes colectivos o con vehículos

particular.

Para los turistas que pernoctan existen indicadores que permiten evaluar con cierta

antelación el número de personas que los componen, debido a que la inmensa mayoría

de ellos realizarán reserva de alojamiento. Se puede elegir las reservas realizadas a

través de algunas agencias de reservas de hoteles para las correspondientes fechas.

Esta agencia debe de canalizar un volumen significativo de los visitantes de este

grupo. Estos indicadores tienen una relación explicativa parcial. Así, una persona que

pernocta en el área local puede estar asociada a una visita al recinto ese mismo día o

posiblemente el día siguiente, no existiendo medio práctico de discriminar entre

ambos comportamientos.

Los turistas que no pernoctan han de desplazarse al área local donde se encuentre el

Page 24: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

10

recinto y abandonarla en el mismo día. En la medida en que utilicen medios

colectivos de transporte, también se puede disponer de indicadores que reflejen estos

comportamientos, permitiendo dimensionar el tamaño de este grupo. Dichos

indicadores están asociados a las reservas de transportes regulares (tren, aéreo, líneas

de autobuses interurbanos) y a los medios fletados por viajes organizados por

agencias y operadores turísticos (autobuses y vuelos “chárter”).

Estos indicadores reflejan tanto los desplazamientos realizados por los turistas que no

pernoctan como los desplazamientos de los que sí lo hacen.

3.2.2 Análisis

Las consideraciones realizadas sobre los colectivos que accederán al recinto son muy

relevantes y se emplearán en los modelos que resulten, pero son meramente

conceptuales, ya que el control de accesos no tiene posibilidad de distinguir entre los

diferentes subgrupos, dentro de las visitas realizadas mediante entradas. Ello hace

imposible validar los modelos que intentarán prever la afluencia de cada uno de los

subgrupos por separado. Así pues, habrán de construirse modelos que prevean la

afluencia global, teniendo simultáneamente en cuenta todos los elementos

considerados. Adicionalmente, intervendrán otros factores que puedan ayudar a

explicar la afluencia al recinto en días concretos.

Para ser incluidos en los modelos, los factores han de poseer las siguientes

características:

Que sean medibles con la antelación que se solicita al modelo de previsión (tres

días).

Que estén correlacionados (positiva o negativamente) con la afluencia al

recinto. Dicha correlación reflejará su influencia sobre alguno de los colectivos

considerados.

Que los datos de estos factores puedan ser obtenidos por la organización en

tiempo y forma. Este aspecto puede exigir la colaboración (no necesariamente

desinteresada) de agentes externos a la organización (Renfe, Iberia, agencias

turísticas, etc.).

En resumen, se requiere identificar todos los factores objetivos que influyan sobre una

parte de la población para su acceso al recinto, que sean medibles y que se pueda

contar con datos sobre ellos de forma económica, fiable y a tiempo. La estrategia que

se propone es incluir todos los factores que reúnan las características señaladas.

Posteriormente, en la validación del modelo, podrán abandonarse aquellos que no se

muestren significativos. De esta forma, se reducirá a un número manejable los

indicadores que intervengan en los modelos explicativos.

Page 25: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

11

3.3 Variables indicadores

Mediante el término indicador nos referimos a los factores medibles que se escojan

para ser incluidos en los modelos explicativos con la finalidad de poder prever la

afluencia (y sus variaciones) al recinto de los colectivos con los que estén

relacionados.

3.3.1 De población

Son los indicadores relacionados con la población flotante presente en el área local en

las fechas consideradas en las que tendrá lugar el evento. Y con las variaciones en las

mismas.

3.3.1.1 Ocupación hotelera

Un indicador de referencia inmediato es el número de plazas (camas) reservadas para

las dos noches (la anterior y la propia) asociadas al día en cuestión. Aunque no es

posible conocer de forma fiable todas las pernoctaciones, se intentará cuantificar, en la

medida de lo posible, con las agencias que vayan a tramitar el mayor número de

reservas y sean las más representativas.

3.3.1.2 Tren

La variable indicadora está relacionada con el incremento neto de llegadas y salidas

por dicho medio para el día en cuestión. Para ello sería deseable conocer el número de

plazas reservadas en cada uno de los trenes con origen o destino a la ciudad donde se

vaya a llevar a cabo el evento. Dada la dificultad de capturar tanta información,

pueden usarse como representativos algunos trayectos que se seleccionen. En nuestro

caso, como estudiaremos un evento que ocurre en Sevilla, las rutas Málaga-Sevilla y

Madrid-Sevilla parecen razonables. La hora de llegada (salida) a (de) la ciudad en

cuestión, es especialmente relevante en este caso, estableciéndose el balance de las

llegadas menos las salidas para representar el indicador de incremento de población

flotante producido desde las 12:00 AM del día anterior hasta la misma hora del día en

cuestión. Se toma esta hora umbral como referencia dado que permite a las llegadas

acceder al recinto ese día, mientras que las salidas no.

El indicador es incremental, recogiendo las variaciones en la afluencia que puedan

manifestarse como relacionadas con estos desplazamientos.

3.3.1.3 Vuelos regulares

Esta variable indicadora es análoga a la anterior. Como rutas significativas se propone

la consideración de Madrid-Sevilla y Barcelona-Sevilla. Adicionalmente, podría

también añadirse una ruta que comunique con una capital europea.

Este indicador también es incremental, reflejando la variación en la población de

Page 26: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

12

Sevilla debido al acceso por vuelos regulares.

3.3.1.4 Autobuses regulares

Otro medio de transporte de entidad es el de las líneas regulares de autobuses. Dado el

elevado número de ellas y su pertenencia muy mayoritaria al sector privado, habrá

que seleccionar algunas de ellas como representativas. Las candidatas a considerar

deben cubrir todo el ámbito nacional y mantener una amplia cuota de mercado con

origen (destino) la ciudad donde tenga lugar el evento.

La obtención de llegadas y salidas por este medio requiere establecer una relación de

colaboración con dichas empresas para el suministro fiable de la información

pertinente.

Es un indicador incremental.

3.3.1.5 Vuelos “chárter”

Este tipo de transporte mueve un elevado número de visitantes. Debido a ello es

necesario incluir un indicador que refleje la afluencia relacionada con los

desplazamientos realizados por este medio. Por las mismas razones señaladas en el

apartado anterior, habría que seleccionar algunas empresas con criterios análogos:

amplia cobertura internacional, importancia relativa en el sector y cuota de mercado

apreciable entre los vuelos chárter con origen (destino) la ciudad del evento. También

habrá que establecer relaciones con las empresas a seleccionar para acceder a la

información sobre las llegadas y salidas mediante vuelos “chárter”.

Es un indicador incremental.

3.3.1.6 Autobuses fletados

El movimiento de turistas mediante viajes organizados, procedentes de zonas

turísticas cercanas, será un elemento importante para la afluencia al recinto. Debido a

la multitud de agencias que organizarán este tipo de excursiones, se deben escoger

mayoristas importantes como suministradores de datos. Las relaciones de la

organización con estas entidades para la venta de entradas por grupos pueden servir

de base para esta colaboración. De forma complementaria, podría incorporarse la

información que se derive de las reservas adelantadas por grupos, si esta figura está

contemplada.

Por las mismas razones apuntadas en los apartados anteriores, este indicador también

es incremental.

3.3.2 De atracción

En este apartado se consideran factores medibles que reflejan una mayor intensidad

del interés de la opinión pública por los actos (culturales, lúdicos, deportivos,

Page 27: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

13

políticos, etc.) que se celebran esas fechas con motivo o coincidentes con el evento en

cuestión. Estas señales indicadoras, aunque casi siempre intuitivas, son en algunos

casos difíciles de incluir de forma directa en los modelos. En todo caso, podría

considerarse que están ya recogidas de forma indirecta a través de los indicadores de

población descritos en el apartado anterior.

3.3.2.1 Medios de prensa

Los periodistas se suelen acreditar ante el evento por amplios períodos de tiempo. La

concentración de su presencia en un momento dado estará correlacionada con la

ocurrencia de eventos singularmente atractivos para el público en general. Dichos

eventos inducirán, a su vez, una mayor afluencia al recinto.

Para medir con suficiente antelación y fiabilidad dicha concentración de medios de

prensa se propone utilizar la reserva de las instalaciones y equipos que un hipotético

“Centro de Prensa” ponga a disposición de los mismos.

3.3.2.2 Audiencia televisiva

Con el mismo objetivo que en el apartado anterior y de forma complementaria al

indicador antes propuesto puede considerarse la cobertura televisiva de eventos

singulares. Una medida simple de este factor es el número de cadenas que tienen

contratada la retransmisión de actos para el día de interés.

3.3.2.3 Eventos colaterales

La celebración de eventos importantes a nivel nacional, en nuestro caso España, en

fechas coincidentes con el periodo del evento influirá en la afluencia de visitantes.

Son influencias difíciles de medir.

3.3.3 Temporales

La dimensión temporal es quizás la más importante en cuanto a la afluencia de

visitantes. Todas las opiniones coinciden sobre que en los meses estivales (donde se

concentran los períodos vacacionales) la afluencia media será mayor. Igualmente, en

los días de fin de semana aumentará la afluencia en relación a la de los días laborales.

Además pueden existir días especiales programados (con el precio de entradas

reducido) en los que la afluencia se disparará. Por último, también deben considerarse

celebraciones locales y nacionales que pueden ser aprovechadas por un número

apreciable de personas para acudir al evento.

Aquellas circunstancias temporales que tienen carácter repetitivo (días festivos, meses

de verano y días especiales) pueden incorporarse directamente en los modelos. En

cambio, las circunstancias que son únicas o singulares (no recurrentes) habrán de

incorporarse mediante analogía con otros indicadores (asociación de puentes a fines

de semana, etc.) o bien directamente a través de los indicadores de población y de

Page 28: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

14

atracción, comentados en los apartados anteriores.

3.3.4 Resumen de variables indicadoras

Con el fin de situar en perspectiva los heterogéneos indicadores descritos, así como

para realizar una valoración de su relevancia, se incluye una tabla resumen en la que

se clasifican los factores, calificándolos en categorías que presentan la importancia

relativa que se les concede a priori.

Page 29: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

15

Tabla 3-1. Resumen de variables indicadoras

INDICADOR CARÁCTER REPRESENTATIVIDAD NIVEL DE

IMPORTANCIA

DE

PO

BL

AC

IÓN

Nivel de

ocupación

hotelera

Valor absoluto Alta Muy necesario

Trenes Valor

incremental

Alta Necesario

Vuelos

regulares

Valor

incremental

Alta Necesario

Autobuses

regulares

Valor

incremental

Baja Conveniente

Vuelos chárter Valor

incremental

Baja Conveniente

Autobuses

fletados

Valor

incremental

Baja Conveniente

DE

AT

RA

CC

IÓN

PRENSA Valor absoluto Baja Conveniente

TV Valor absoluto Baja Conveniente

Eventos

colaterales

----- ----- -----

DE

TIE

MP

O

Meses

vacacionales

Valor absoluto Alta Muy necesario

Días no

laborales

Valor absoluto Alta Muy necesario

Puentes Valor absoluto Alta Necesario

Fiestas locales Valor absoluto Alta Necesario

Días precio

reducido

Valor absoluto Alta Muy necesario

Page 30: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 31: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

17

4 PREVISIONES DE AFLUENCIA DIARIA AL

EVENTO

4.1 Análisis previo

La afluencia al recinto durante el transcurso del evento puede tener un

comportamiento “caótico” (en el sentido científico del término) debido a:

Alta variabilidad (variaciones grandes de la afluencia a lo largo del periodo de

duración del evento).

Alta volatilidad (grandes variaciones de la afluencia de un día para otro).

Baja memoria a corto plazo (el nivel de afluencia de un día puede deberse a

razones muy distintas de las del día siguiente o anterior).

Existencia de memoria a largo plazo (la afluencia diaria depende, en cierta

medida, de la evolución de la misma desde el inicio del evento en estudio).

Compleja dependencia de gran cantidad de factores cualitativos que, en

muchos casos, son incontrolables. Nótese la heterogeneidad del colectivo

visitante: diferentes procedencias, capacidad económica, motivación,

disponibilidad del tiempo, etc.

Las razones anteriores muestran la dificultad del problema planteado. Sin embargo

esas mismas razones refuerzan la necesidad de contar con algún mecanismo que

permita estimar el comportamiento a corto plazo de la serie temporal de afluencia el

evento en estudio.

Las previsiones proporcionadas por cualquier método que se utilice serán

forzosamente arriesgadas debido a:

Inestabilidad inherente de la serie.

No existencia de precedentes.

Limitación sobre la cantidad de información que se puede extraer de la serie

temporal debido a la “corta” (en el sentido estadístico del término) duración de

un evento.

La estrategia más razonable parece ser la de intentar captar la mayor parte de la

variabilidad de la serie sin pretender una estimación ilusoriamente precisa.

4.2 Variables indicadores

Del análisis de los colectivos de visitantes que aparece en el capitulo anterior,

Page 32: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

18

“modelo de afluencia diaria al evento”, surge la necesidad de separar la previsión de

los visitantes con entrada.

Para los poseedores de pases de temporada no existen elementos fiables que permitan

explicar con antelación su proclividad a visitar el recinto en cada fecha. Debido a ello,

la estimación de su afluencia ha de basarse únicamente en el análisis de la serie

histórica observada de su comportamiento, según transcurre el evento. Esto limita de

forma insoslayable la estimación de la afluencia de los poseedores con pases de

temporada.

Las visitas del colectivo que accede con entradas y reside en el área local donde

transcurre el evento, son aún más difícil de determinar, dado que no se dispondrá de

información sobre sus accesos anteriores al recinto (como sí ocurre con los

poseedores de pases) ni se pueden identificar elementos fiables que permitan predecir

con antelación su comportamiento. Sólo los hábitos temporales asociados al tipo de

día de la semana y las fechas de precio reducido pueden utilizarse en la previsión de

su comportamiento.

Para los visitantes con entradas que no residan en las cercanías existe la posibilidad de

utilizar variables indicadoras que permitan explicar en cierta medida el

comportamiento de la afluencia. Las variables susceptibles de ser consideradas como

indicadores han de cumplir las siguientes características:

Que sean medibles con la antelación que se le solicita al modelo de previsión

(en nuestro caso, tres días).

Que estén relacionadas (positiva o negativamente) con la variable a estimar

(afluencia al recinto del evento)

Que los valores que toman dichas variables puedan ser obtenidos en tiempo y

forma.

4.3 Análisis de los modelos

Como consecuencia del análisis previo, se han descartado, en principio, aquellos

modelos complejos que necesitan gran cantidad de datos históricos para poder hacer

estimaciones con un grado razonable de precisión. Igualmente se han descartado

algunos modelos de tipo experimental prefiriéndose métodos simples, probados y

relativamente estándares, que son los que se comentan a continuación.

Los modelos seleccionados se dividen en dos grupos:

De extrapolación, que utilizan únicamente los valores históricos de la serie a

estimar.

Explicativos, que se basan en la existencia de variables indicadores.

Como ya se ha comentado, la afluencia asociada a los Pases de Temporada no está

relacionada con las variables indicadoras seleccionadas y como es previsible que

Page 33: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

19

tengan una fuerte componente aleatoria, no es posible estimar dicha afluencia

mediante métodos explicativos. Para dicho colectivo, pues, el método de

extrapolación será el único que se utilice.

4.3.1 Modelos de extrapolación

Se basan en extraer regularidades de la serie temporal. Para ello se descomponen las

observaciones en una componente fija, otra de tendencia y unos factores de

estacionalidad. A partir de estas medidas, los modelos asumen un comportamiento

futuro cualitativamente similar al previamente observado y son capaces de realizar

previsiones para el futuro.

Nótese que este tipo de modelos no son capaces de predecir acontecimientos futuros

que no tengan una relación con el comportamiento anterior a través de las

observaciones históricas, aunque sí son capaces de adaptarse a dichos cambios de

comportamiento, lo hacen con un cierto retraso que es función de los valores de los

parámetros de los modelos.

Igualmente estos modelos incorporan muy difícilmente factores atípicos y aperiódicos

como el calendario de días familiares. Dichos factores deben ser, pues, tenidos en

cuenta a espaldas de estos modelos. Así pues, las previsiones se calculan

exclusivamente a partir de los valores históricos de la variable a estimar (acceso al

recinto del evento), sin tener en cuenta los valores de los indicadores.

Otra limitación común a todos los métodos de extrapolación es que su precisión está

íntimamente ligada a la longitud de la serie histórica de partida. En muchos casos, la

falta de historia al principio del evento, y el reducido número de observaciones en las

que ha de basarse la previsión lo hubieran hecho desaconsejable, sino fuera porque es

la única alternativa existente para estimar la afluencia de los visitantes con pase de

temporada. Teniendo en cuenta que la afluencia de este colectivo supondrá un

porcentaje apreciable del total de entradas, no puede prescindirse de su estimación.

4.3.2 Modelos explicativos

Se basan en relacionar los valores observados de la afluencia con los valores

observados de las variables indicadores. Esto equivale a intentar explicar el

comportamiento de la afluencia en base al comportamiento de los indicadores. La

bondad de las estimaciones depende de la naturaleza de dicha relación y de la

fiabilidad de los indicadores utilizados.

La relación entre los indicadores y la previsión de la afluencia toma la forma de una

función matemática cuya expresión mas sencilla es lineal. Los modelos explicativos

forzosamente asumen que dicha relación es estable, esto es, que se puede utilizar los

coeficientes calculados a partir de los datos históricos para prever el futuro.

Estos modelos no son capaces de captar directamente efectos estacionales sino que lo

hacen de forma indirecta a través de los valores de los indicadores, que ya de por si

recogerán dichas variaciones.

Page 34: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

20

Hay que recalcar la importancia de que para el buen funcionamiento de estos métodos

tiene la calidad y cantidad de las variables indicadores que estén disponibles. En este

sentido, es deseable que sean lo más representativas posible de las magnitudes que

miden y que el compromiso de suministro de dichos datos sea irreversible. En la

medida en que estas condiciones no se cumplan los métodos pierden fiabilidad,

pudiendo incluso no ser aplicables. En dicho caso se perdería la posibilidad de

completar y contrastar las previsiones de los métodos de extrapolación, los cuales,

como ya se ha indicado anteriormente, están sujetos a importantes limitaciones.

En el capitulo siguiente, se explicaran de un modo teórico los modelos que se van a

usar.

4.4 Validación de los modelos

Se entiende por validación de los modelos la calibración de los mismos (optimización

de los valores de los parámetros) y la determinación de su grado de fiabilidad a la

hora de realizar las previsiones.

Como resulta evidente, hasta el inicio del evento que se vaya a estudiar, no se podrán

tener datos reales de la afluencia, que serán los que se utilizarán para hacer la

validación definitiva. Para solventar dicho inconveniente se podrá utilizar baterías de

datos ficticios que se corresponderán con diferentes escenarios posibles, para poder

probar la eficacia de los métodos que se estén usando.

Para la previsión de la afluencia de entradas se ejecutan los modelos descritos. La

estimación definitiva de dicha afluencia se obtiene mediante la ponderación de las

previsiones de los diferentes métodos. Los pesos de la ponderación de cada uno de los

métodos son proporcionales al grado de acierto de sus estimaciones en los días ya

transcurridos. La estimación de la afluencia con entradas así obtenida se agrega con la

estimación de la afluencia con Pases de Temporada (proporcionada por el método de

extrapolación) para dar lugar a la estimación de la afluencia total.

4.5 Funcionamiento operativo

Diariamente, los responsables del suministro de los datos (afluencia, con pase y con

entrada, del día anterior y valores de los indicadores) remitirán los mismos, a la

persona encargada de la ejecución de los modelos, de acuerdo con el siguiente

procedimiento:

1. La afluencia del día “D” deberá estar disponible a primera hora de la mañana

del día “D+1”, introduciéndolas en el sistema informático. Dicha captura

consta de la fecha “D” y de la afluencia de pases y de entradas medidas en

miles de personas.

2. De igual forma, a primera hora de la mañana del día “D+1” deberá disponerse

de los valores de las variables indicadoras, consistentes en las reservas para el

Page 35: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

21

día “D+3”. Todo ello deberá ser introducido en el sistema informático en miles

de personas.

3. Si el día “D+3” es “familiar”, debe ser comunicado al sistema informático

como tal. La introducción de la condición de día “familiar” puede realizarse

con antelación, pero nunca después de haber sido realizada la previsión para

dicho día “D+3”.

4. El día “D+1”, una vez capturados todos los datos anteriores, se ejecutará la

opción de calcular la previsión. La duración de este proceso informático es

breve, del orden de pocos minutos.

5. El resultado de la previsión, puede visualizarse e imprimirse en forma de tabla

o gráfica.

NOTAS:

El sistema no calculará la previsión antes de disponer de los datos de los

primeros catorce días. Por tanto, la primera previsión el día nº 15, con los datos

del día 14 y anteriores, para el día nº 17.

El sistema no funcionará el día “D+1” si no están disponibles los valores de las

observaciones del día “D” y todas las reservas para el día “D+3”. La captura

incorrecta de la condición de día familiar no es obstáculo para el cálculo de la

previsión, aunque, evidentemente, ésta será errónea.

El modelo funcionará por última vez tres días antes de la finalización del

evento.

Page 36: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 37: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

23

5 MARCO TEÓRICO

En este capítulo se explicará con mayor profundidad los métodos y modelos usados

para llevar a cabo la previsión. Para ello, como veremos, se ha usado el método de

Winters, que usa los valores históricos de la serie, y un modelo de programación

lineal, usando variables indicadoras.

5.1 Perspectiva de previsión

Comenzamos presentan una visión global de los distintos métodos que existen para

llevar a cabo una previsión, basándonos en lo que narra Spyros Makridakis en su libro

[1] .

Los métodos de previsión pueden dividirse en dos grandes categorías: cuantitativos y

cualitativos.

Page 38: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

24

Figura 5-1. Resumen métodos de previsión

Los métodos cuantitativos son aquellos donde la información cuantitativa de la que

se dispone es suficiente, así encontramos:

Series de tiempo: utilizan únicamente los valores históricos de la serie a

estimar.

Explicativo: se basan en existencia de variables indicadoras; así, por ejemplo, la

variable ventas de un determinado producto puede explicarse a través del

precio, la calidad y la publicidad de ese producto.

Distribución de probabilidad.

Cuantitativos

Series de tiempo

Descomposición

AR, MA, ARMA

Medias móviles

Suavización exponencial

Simple

Holt

Winters

Explicativos

Regresión simple

Regresión múltiple

Econometría Distribución de

probabilidad

Cualitativos

Individual

Grupos

Método Delphi

Investigación de mercado

Analogías de productos

Page 39: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

25

Los métodos cualitativos son aquellos donde la información cuantitativa es escasa o

inexistente, pero del que disponemos un conocimiento cualitativo suficiente.

Individual: opiniones subjetivas de personas muy vinculadas al mercado.

Grupos: comisiones que estudian el problema, aunque suele prevalecer la

jerarquía.

Método Delphi: Su objetivo es la consecución de un consenso basado en la

discusión entre expertos. Es un proceso repetitivo. Su funcionamiento se basa

en la elaboración de un cuestionario que ha de ser contestado por los expertos.

Una vez recibida la información, se vuelve a realizar otro cuestionario basado

en el anterior para ser contestado de nuevo hasta obtener un consenso final.

Investigación de mercado: encuestas.

Analogías de productos: comparación con el comportamiento conocido de

productos análogos.

Para poder aplicar la previsión cuantitativa se deben cumplir las siguientes

condiciones:

I. Disponer de información sobre el pasado.

II. Dicha información se podrá cuantificar en forma de dato numérico.

III. Se puede asumir que algunos aspectos de las pautas del pasado podrán

continuar en el futuro.

Esta última condición se conoce como assumption of continuity (hipótesis de la

continuidad); es la base fundamental tanto para los métodos cuantitativos como para

muchos cualitativos, sin importar lo sofisticados que sean.

Los métodos de previsión cuantitativos varían considerablemente, se pueden

encontrar de distintos tipos con objetivos diversos. Cada uno cuenta con sus propias

Page 40: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

26

características, precisión y costes que deben ser considerados a la hora de elegir un

método específico. Los procedimientos de previsión cuantitativos están comprendidos

entre dos límites: los métodos intuitivos y los métodos formales basados en principios

estadísticos. Los métodos intuitivos están basados en la experiencia empírica que

varía ampliamente entre distintos negocios, productos e investigadores. Estos son

menos exactos que los métodos formales y, además, dan poca o escasa información

sobre la exactitud de la previsión. Debido a estos factores, su uso se ha ido

extinguiendo dando paso a los métodos formales.

Los métodos formales estadísticos consisten en hacer aproximaciones intentando

minimizar el error de la previsión. Estos métodos recurren a datos históricos, que son

fáciles de usar y pueden aplicarse de forma mecánica. Además, son útiles cuando se

requiere un gran número de elementos y cuando los errores de previsión de un simple

elemento no son extremadamente costosos.

Las personas que no están familiarizadas con los métodos cuantitativos creen que el

pasado no puede predecir con certeza lo que sucederá en el futuro, porque este está

cambiando continuamente. Cuando logran familiarizarse con los datos y métodos de

previsión queda claro que algunos aspectos de la historia se repite aunque no sea

exactamente igual. La aplicación del método correcto puede identificar a menudo la

relación entre la variable que está siendo pronosticada y el tiempo (o alguna otra

variable), haciendo posible una previsión más precisa.

5.2 Pasos básicos para llevar a cabo la previsión

A la hora de realizar cualquier previsión con datos cuantitativos existen varios pasos

que hay que seguir. A continuación se presentan de forma resumida, según [1]:

1. Definición del problema.

Incluye la compresión de cómo se usará la previsión, quien las utilizará y para qué se

usará. Será necesaria la formación de las personas encargadas en la recogida de datos

y el mantenimiento de la base de datos.

2. Recabar información.

Es necesario recoger datos históricos de las variables de interés, de la variable a

prever, así como de las variables explicativas que se encuentren al alcance.

Esta información puedes ser cuantitativa (datos numéricos) o cualitativa (criterios

acumulados por la experiencia de los expertos).

3. Estudio preliminar.

El estudio de algunos datos estadísticos simples (media, desviación típica, varianza,

mínimo, máximo, correlaciones) puede ayudar a la selección del método adecuado.

4. Elección y ajustes de modelos.

Page 41: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

27

Este paso incluye la elección y la elaboración de algunos modelos de previsión. Un

modelo de previsión consiste en un sistema de ecuaciones que relacionan los valores a

prever de una variable con los valores actuales y pasados de esa variable y de las

variables explicativas. El ajuste del modelo se basa en la adecuación de las

características del modelo, minimizando el error de predicción para el conjunto de

datos con los que se ha elaborado.

5. Empleo del modelo y valoración de la previsión.

Cuando se ha seleccionado el modelo de forma razonada y sus parámetros

correctamente, el modelo podrá ser utilizado para llevar a cabo la previsión.

Se realizará una distinción entre los errores de previsión y los de construcción del

modelo. Se avaluará los errores de previsión, que permitirá la comparación de

resultados entre distintos modelos y la elección de aquel que cometa el menor error de

previsión.

5.3 Criterios de evaluación de modelos de previsión

En este punto abordaremos una preocupación fundamental a la hora de llevar acabo

una previsión: como cuantificar lo adecuado que es un modelo para un conjunto de

datos. Para ello tendremos en cuenta como se ajusta el modelo de previsión a los datos

que ya conocemos.

A continuación se presentan los indicadores estadísticos más importantes a la hora de

evaluar distintos modelos de previsión.

5.3.1 Error de previsión

Es la diferencia entre el valor real y el valor de la previsión.

𝑒𝑡 = 𝑌𝑡 − �̅�𝑡

Donde;

𝑒𝑡: Error de la predicción en el instante t.

𝑌𝑡: Representa el verdadero valor de la variable.

�̅�𝑡: Valor previsto para esa variable en el instante t.

5.3.2 Error medio, ME

Si existen observaciones y previsiones para n periodos, se obtendrán n términos de

Page 42: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

28

error. Entonces definiremos la medida estándar del error como:

𝑀𝐸 = 1

𝑛∑ 𝑒𝑡

𝑛

𝑡=1

Probablemente, el ME sea muy pequeño debido a que las desviaciones positivas se

irán contrarrestando con las negativas. Para solucionar esto, se utiliza el MAE.

5.3.3 Error absoluto medio, MAE

Es una medida del error global de la previsión para un modelo, esta se calcula

mediante la suma de los valores absolutos de los errores de la previsión y dividiéndolo

entre el número de periodo n.

𝑀𝐴𝐸 = 1

𝑛∑|𝑒𝑡|

𝑛

𝑡=1

5.3.4 Error cuadrático medio, MSE

El MSE es una idea similar a la del MAE, elevando al cuadrado los errores y

sumándolos para luego hacer la media. A diferencia del MAE, que resulta más fácil

de interpretar para los usuarios que no sean especialistas, en el MSE encontramos

mayor facilidad en su manejo matemático, siendo comúnmente usado en problemas

de optimización.

𝑀𝑆𝐸 = 1

𝑛∑ 𝑒𝑡

2

𝑛

𝑡=1

5.3.5 Raíz del error cuadrático medio, RMSE

El RMSE se calcula como la raíz del error medio cuadrático. Cuenta con las mismas

unidades que la serie temporal que predecimos.

𝑅𝑀𝑆𝐸 = √1

𝑛∑ 𝑒𝑡

2

𝑛

𝑡=1

5.4 Modelos de previsión

Como adelantamos, a continuación se presenta la base teórica de los métodos usados

en nuestro trabajo.

Page 43: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

29

5.4.1 Método de Winters

A continuación abordaremos el método de Winters, que es el que se ha usado para

realizar nuestro modelo de previsión. Para ellos nos basamos en la teoría encontrada

en [2].

5.4.1.1 Demanda estacional

Sea la serie temporal representada por el siguiente modelo:

𝐷𝑡 = (𝐷 + 𝑝 ∗ 𝑡)𝐹𝑡 + 𝜉𝑡 𝐸(𝜉𝑡) = 0 𝑉(𝜉𝑡) = 𝜎2

Donde:

D: Componente permanente

P: Componente de tendencia o pendiente

𝐹𝑡: Componente estacional o factor multiplicativo

𝜉𝑡: Componente aleatoria

La longitud de la estación se supone que es de L periodos. Los factores estacionales están definidos de forma que sumen la longitud de la estación, es decir:

∑ 𝐹𝑡𝐿𝑡=1 = 𝐿 L=longitud de la estación

La estimación requiere un proceso iterativo con tres fases: una para la componente permanente D, otra para la pendiente p y una tercera para el factor estacional de ese periodo 𝐹𝑡.

5.4.1.2 Algoritmo: Método de Winters

Al final del periodo T, una vez conocida la demanda real del periodo 𝐷𝑡:

1) Estimación de la componente permanente:

𝑆𝑇 = 𝛼 ∗𝐷𝑇

𝐹𝑇−𝐿+ (1 − 𝛼) ∗ [𝑆𝑇−1 + 𝑝𝑇−1]

2) Estimación de la tendencia:

𝑝𝑇 = 𝛽 ∗ [𝑆𝑇 + 𝑆𝑇−1] + (1 − 𝛽) ∗ 𝑝𝑇−1

Page 44: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

30

3) Estimación del factor estacional:

�̅�𝑇 = 𝛾 ∗𝐷𝑇

𝑆𝑇+ (1 − 𝛾) ∗ 𝐹𝑇−𝐿

4) Normalización de los factores estacionales:

𝐹𝑇 = 𝐿 ∗�̅�𝑡

∑ �̅�𝑡𝐿𝑡=1

𝑡 = 𝑛𝐿 + 1, 𝑛𝐿 + 2, … , (𝑛 + 1)𝐿

5) La previsión para el periodo 𝑇 + 𝜏 será:

𝐷 𝑇+ 𝜏(𝑇) = 𝑊 𝑇+ 𝜏 = (𝑆𝑇 + 𝜏 ∗ 𝑝𝑇) ∗ 𝐹 𝑇+ 𝜏−𝐿

5.4.1.3 Selección de valores iniciales

El proceso de inicialización requiere la estimación inicial de los siguientes

parámetros: las tres constantes de alisamiento, la componente permanente y las

tendencias iniciales y los factores estacionales para cada uno de los períodos que

componen la estación:

𝛼, 𝛽, 𝛾, 𝐷0, 𝑝0, 𝐹1−𝐿 , 𝐹2−𝐿, … , 𝐹0

Para lo cual se necesitan 2L observaciones 𝐷1,…, 𝐷2𝐿

Figura 5-2. Inicialización del método de Winters

a) Pendiente:

Page 45: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

31

𝑝0 =1

𝐿∗ ∑

𝐷𝑡+𝐿 − 𝐷𝑡

𝐿

𝐿

𝑡=1

=𝜇2 − 𝜇1

𝐿

b) Componente permanente:

𝐷0 = 𝜇2 +(𝐿 − 1)

2∗ 𝑝0

c) Componentes estacionales:

�̅�𝑖(1) =𝐷𝑖

𝐷0′ + 𝑝0𝑖

=𝐷𝑖

𝜇1 − (𝐿 + 1

2− 𝑖) ∗ 𝑝0

Para 𝑖 = 1, 2, … , 𝐿. Al disponer de dos ciclos de observaciones se pueden

calcular análogamente los factores de estacionalidad para el segundo ciclo,

L+1, …, 2L, que tomarán la forma:

�̅�𝑖(2) =𝐷𝑖+𝐿

𝜇2 − (𝐿 + 1

2− 𝑖) ∗ 𝑝0

En este caso emplearemos como factor estacional la media de los obtenidos

para los ciclos de los que disponemos de datos. En nuestro caso, al disponer de

dos ciclos:

�̅�𝑖−𝐿 =�̅�𝑖(1) + �̅�𝑖(2)

2 𝑖 = 1, … , 𝐿

Que normalizamos, para que sume la longitud de la estación:

𝐹𝑖−𝑙 = 𝐿 ∗�̅�𝑖−𝐿

∑ �̅�𝑖−𝐿𝐿𝑖=1

𝑖 = 1 , … , 𝐿

d) Constantes de alisamiento: 𝛼, 𝛽 y 𝛾.

Se hará por simulación. Creando una rutina que produzca el error mínimo.

Page 46: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

32

5.4.2 Modelo de programación lineal

Además del método de Winters, para calcular la previsión se usará un modelo de

programación lineal. Este modelo se presenta a continuación:

Función objetivo:

min 𝑤0 ∗ 𝐻𝑀𝐴𝑋 + ∑ (𝑤𝑝𝑖 ∗ 𝐻𝑃𝑖 + 𝑤𝑛𝑖 ∗ 𝐻𝑁𝑖)

𝑛º 𝑜𝑏𝑠𝑒𝑟𝑣𝑎𝑐𝑖𝑜𝑛𝑒𝑠

𝑖=1

Restricciones:

𝐷𝑖 : ∑ (𝑟𝑒𝑔𝑟𝑒𝑠𝑖𝑗 ∗ 𝑃𝑗)

𝑛º 𝑟𝑒𝑔𝑟𝑒𝑠𝑜𝑟𝑒𝑠

𝑗=1

+ 𝐻𝑃𝑖 − 𝐻𝑁𝑖 = 𝑜𝑏𝑠𝑒𝑟𝑣𝑖 ∀𝑖 = 1 … 𝑛º 𝑜𝑏𝑠𝑒𝑟𝑣𝑎𝑐𝑖𝑜𝑛𝑒𝑠

𝐻𝑖: 𝐻𝑃𝑖 + 𝐻𝑁𝑖 − 𝐻𝑀𝐴𝑋 ≤ 0 ∀𝑖 = 1 … 𝑛º 𝑜𝑏𝑠𝑒𝑟𝑣𝑎𝑐𝑖𝑜𝑛𝑒𝑠

𝑃1,𝐻𝑀𝐴𝑋 ≥ 0

𝐻𝑃𝑖, 𝐻𝑁𝑖 ≥ 0 ∀𝑖 = 1 … 𝑛º 𝑜𝑏𝑠𝑒𝑟𝑣𝑎𝑐𝑖𝑜𝑛𝑒𝑠

𝑃𝑗 𝑙𝑖𝑏𝑟𝑒 ∀𝑗 = 1 … 𝑛º 𝑟𝑒𝑔𝑟𝑒𝑠𝑜𝑟𝑒𝑠

Donde:

𝑜𝑏𝑠𝑒𝑟𝑣𝑖: Valor de la observación del día i.

𝑟𝑒𝑔𝑟𝑒𝑠𝑖𝑗: Valor del regresor j el día i.

𝑤0: Peso del error absoluto máximo.

𝑤𝑝𝑖: Pesos de las desviaciones positivas.

𝑤𝑛𝑖: Pesos de las desviaciones negativas.

Una vez resuelto el modelo, se obtiene el valor de los coeficientes P (uno por

regresor) que hacen mínimas las holguras.

Para calcular el valor de la previsión (para el día nº observaciones + 3) se hará

mediante la siguiente fórmula:

Page 47: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

33

𝑝𝑟𝑒𝑣𝑖𝑠𝑖ó𝑛 = ∑ 𝑃𝑗 ∗ 𝑟𝑒𝑔𝑟𝑒𝑠𝑛º𝑜𝑏𝑠𝑒𝑟𝑣𝑎𝑐𝑖𝑜𝑛𝑒𝑠+3,𝑗

𝑛º 𝑟𝑒𝑔𝑟𝑒𝑠𝑜𝑟𝑒𝑠

𝑗=1

Page 48: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 49: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

35

6 IMPLEMENTACIÓN

En este capítulo se procede a la implementación de un modelo para prever la afluencia

de un evento real. Para ello, se elige la Exposición Universal que se celebró en Sevilla

en 1992. Se escoge este caso debido a la accesibilidad de los datos.

Se dispone de un total de 147 observaciones. Desde el 20 de abril de 1992 que se

inaguró la Exposición. De estas observaciones, como se aprecia en el anexo A,

obtendremos el número de personas que accedieron al recinto con pases de temporada

y con entradas cada uno de los días que tubo lugar el evento.

Figura 6-1. Observaciones junio

En la gráfica anterior se observa la afluencia al evento en el mes de junio, donde los

picos de afluencia representan las afluencias correspondientes a los fines de semana.

0,00

50,00

100,00

150,00

200,00

250,00

300,00

350,00

400,00

450,00

43 50 57 64 71

Pases

Entradas

Total

Page 50: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

36

Figura 6-2. Total observaciones

En la gráfica anterior se muestra el número total de observaciones, pases de

temporada y entradas, que se dio durante la duración de la Exposición. Como es

previsible y se puede observar durante los meses estivales se produjo un aumento de

la afluencia.

Figura 6-3. Observación semanal

En la gráfica anterior se han representado tres semanas de forma aleatoria, queriendo

demostrar lo que se había comentado anteriormente. En la gráfica se observa que en

todas ellas la afluencia aumenta los fines de semana. Con esto se demuestra que

representan los picos que observamos en las gráficas 6-1 y 6-2.

Además de los datos las entradas y pases de temporadas, también se dispone de los

valores de las variables indicadoras. Que las utilizaremos mas adelante en los métodos

0,00

50,00

100,00

150,00

200,00

250,00

300,00

350,00

400,00

450,00

1 31 61 91 121 151

Total de observaciones

Total

0,00

50,00

100,00

150,00

200,00

250,00

300,00

350,00

20 al 26 abril

8 al 14 de junio

3 al 9 de agosto

Page 51: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

37

elegidos.

Estas variables indicadoras son las reservas de hoteles que se produjeron en Sevilla y

en su extrarradio, los billetes de tren de Renfe con salida/destino Sevilla cada día, los

billetes de Iberia de pasajeros que aterrizaban y despegaban del aeropuerto de Sevilla

y el número de autobuses que salían/entraban en Sevilla por día. Todos ellos, así

como las entradas y pases de temporadas, expresados en miles de personas. Toda esta

información se puede encontrar en el anexo A.

Tras este breve análisis de los datos, se procede a implementar el modelo, el cual se

hará mediante el método de Winters y el modelo de programación lineal previamente

explicado.

Previamente, destacar que el desarrollo de todos los métodos se ha llevado a cabo en

el software Visual BASIC® en su versión 6, y sus códigos se pueden encontrar en los

anexos.

6.1 Winters

“Winters” es el nombre que se le ha proporcionado al código donde se ha

implementado el método de Winters, podemos encontrarlo en el anexo B. Este

método nos proporciona una previsión para las entradas y otra para los pases,

realizando dos pasadas del mismo método, basados en los valores históricos de las

observaciones que se dispongan.

Para su funcionamiento se deben especificar varios parámetros, que se recogerán en

“WINTERS_PAR” y dependiendo del valor de cada uno ellos, el código se ejecutara

de formar distintas. Estos son: “flag_depura”, “long_esta”, “num_per”, “flag_ctes”,

“flag_inic”, “num_inicia” y “porc_dia_fam”.

A continuación se explica la función de cada uno de ellos:

Flag_depura: este parámetro es útil a la hora de programar el método, porque

nos dice donde está fallando el código (si falla). Su valor será 0 si no tenemos

errores de compilación o lo pondremos a 1 si detectamos algún error para

localizar donde está ese error.

Long_esta: se refiere a la longitud de la estación. En nuestro caso será de una

semana (7 días).

Num_per: periodo futuro a prever. Como hemos explicado, haremos una

previsión para tres días después del último día que se conozcan los datos.

Flag_ctes: este parámetro nos permite introducir unas constantes de

alisamiento si su valor es 0 o calcularlas si su valor es 1. En el caso que sea 0

se darán los valores de α, β, y γ. Si el valor es 1, se proporcionará los valores

mínimos y máximos de estos. Así como, el paso para calcularlos.

Flag_inic: es parecido al anterior, ya que si vale 0, se leerán los valores

Page 52: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

38

iniciales de WINTERS_PAR, o si vale 1 el programa los calculará como

hemos visto en el apartado 5.4.1.3.

Num_inicia: número de observaciones para inicializar el modelo. En nuestro

caso se consideran las dos primeras semanas, por lo tanto 14 días.

Porc_dia_fam: porcentaje que aumenta el número de entradas si el día es

familiar respecto a un día normal.

Además del fichero de parámetros, se proporcionará el fichero “RESERVAS_DAT”

que contiene los valores de las observaciones y las variables indicadoras (datos).

Aunque estas últimas no serán útil en este modelo, si lo serán para los modelos que se

presentarán más adelante. Cabe destacar que el número de observaciones es del cual

se dispone en el momento de realizar la observación y no del total de las

observaciones.

Una vez que se tienen bien definidos los parámetros en WINTERS_PAR y

RESERVAS_DAT, se procede a realizar la previsión. El resultado de esta previsión

será imprimida en los archivos WINTERS_PAS y WINTERS_ENT. En el primero,

se recogen la previsión correspondiente a los pases de temporada. En

WINTERS_ENT, la de las entradas.

Figura 6-4. Resultado pases por método de Winters

Page 53: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

39

Figura 6-5. Resultado entradas por método de Winters

Las imágenes anteriores muestran como imprime el modelo de Winters las

previsiones de pases y entradas.

6.2 Modelo de programación lineal

Para realizar la previsión mediante este modelo, se han codificado dos códigos. El

primero que generará el modelo, para poder resolverlo mediante el software AMPL.

El segundo, una vez obtenida la solución del modelo, realizará la previsión a partir de

esta solución.

Comenzamos explicando el primero, “GEN-PRLI”, que será el que genera el modelo

y el cual podemos encontrar en el anexo C.

Para hacerlo funcionar, al igual que el método de Winters, necesitamos definir una

serie de parámetros. Estos se recogen en PROG-LIN_PAR y son los siguientes:

Num_reg: que es el número de regresores (1 + nº de variables indicadoras). En

nuestro caso tenemos 9 variables indicadoras, luego serán 10. Indicar que,

aparte de las 8 variables que obtenemos de los datos, añadiremos una más que

será entradas vendidas en día familiar. Este indicador será 0 si el día no es

familiar y 125 si lo es. Esto representa el número mínimo de entradas que se

espera vender en un día familiar y será útil para corregir el modelo en caso de

fallo y proponga una previsión menor a 125.

Flag_depura: mismo funcionamiento que en WINTERS_PAR.

Alfa: representa el peso inicial de las holguras positivas.

Page 54: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

40

Beta: peso inicial de las holguras negativas.

Gamma: peso del máximo error.

A alfa y beta, les daremos un valor de 0,3 y 0,5 respectivamente para que el modelo

no sea extremadamente lento ni rápido, ante variaciones de las observaciones. El

criterio de selección del valor de gamma ha sido que, al estar relacionado con el peso

del error absoluto máximo (𝑤0), se le quería proporcionar menor importancia respecto

a HP y HN en la función objetivo. Luego se elige un valor que cumpla que 𝑤0 ≤0,3, este ha sido de 1,7.

Una vez definido PROG-LIN_PAR y teniendo el archivo RESERVAS_DAT bien

dimensionado, se procede a generar el modelo. Este quedará recogido en PROG-

LIN.mod, donde estará el modelo a resolver por AMPL.

Una vez generado el modelo, se ejecutará AMPL para proceder a la resolución del

mismo. Para evitar confusiones, el programa proporcionará una ventana donde nos

muestra el comando que hay que ejecutar en AMPL para generar la solución. Dicha

solución quedará recogida en PROG-LIN_SOL. De la siguiente forma:

Figura 6-6. Solución generada por AMPL

Una vez obtenida la solución, se ejecutará el código PROG-LIN (anexo D). Este

calcula las previsiones a partir de los coeficientes calculados por el AMPL, en PROG-

LIN_SOL y las reservas de dentro de tres días, en RESERVAS_DAT.

La solución se imprime en el archivo PRO-LIN_ENT, como vemos en la siguiente

figura:

Page 55: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

41

Figura 6-7. Resultado entradas modelo de programación lineal

Hasta ahora hemos obtenido tres ficheros: la previsión de pases y entradas por

Winters y la de entradas por el modelo de programación lineal. A continuación se

realizará la previsión de entrada ponderando la de los diferentes métodos.

6.4 Ponderación de la previsión de entradas

Por último, se ha programado “PREVISIO” (anexo E). Este es un programa para

calcular las previsiones ponderando las de los diferentes métodos. Todas ellas están

guardadas en PREVISIO_DAT. La ponderación se realiza en base a las desviaciones

históricas de los diferentes métodos, y utilizando como peso el definido en

PREVISIO_PAR.

En el archivo PREVISIO_DAT, como se ha indicado, se encuentran los resultados de

pases y entradas obtenidos por Winters y los de entradas obtenidos por programación

lineal. Este archivo será generado por la persona encargada de realizar la previsión,

una vez que esta se haya completado por los dos métodos anteriores.

El programa PREVISIO imprimirá la solución en el archivo PREVISIO_RES, y este

será el resultado total de nuestro modelo. En la siguiente figura se puede observar

como se proporciona esta solución.

Page 56: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

42

Figura 6-8. Solución generada por PREVISIO

Page 57: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

43

7 RESULTADOS

En este capítulo se presentan los resultados obtenidos por los distintos métodos y

modelos usados.

En el anexo F se muestran los resultados obtenidos, para el conjunto de datos (en

anexo A). Obsérvese que los primeros días de la Exposición no se calcula la

previsión, ya que los modelos no pueden actuar hasta que no se disponga de un

número mínimo de observaciones, por lo que se proporcionan previsiones a partir del

día 17. En él aparecen:

A que día corresponde la previsión.

Los pases y entradas, respectivamente, calculados por Winters.

Las entradas calculadas por el modelo de regresión lineal.

La previsión de entradas ponderando los diferentes métodos. Comentar que la

previsión total que aparece, es la suma de la previsión de pases de Winters más

la de entradas ponderada.

En el anexo G se puede observar gráficamente los resultados obtenidos. En la primera

gráfica, se observa la previsión de entradas obtenida por el método de Winters, el de

programación lineal y la previsión ponderada por PREVISIO.

En la segunda, se representan las observaciones de entradas frente a la previsión de

entradas (ponderada). El error cometido por estos métodos para estas previsiones (de

entradas) se presenta en la siguiente tabla:

WINTERS PROG-LIN PREVISIO

MAE 32,27 57,43 34,30

Tabla 7-1. Errores de previsión de entradas

Se observa que el modelo de Winters proporciona resultados considerablemente

mejores el modelo de programación. El error cometido es mucho menor que el de este

último. Cabe destacar que el error del modelo de programación lineal se puede deber

tanto al error propio del método como a la falta de precisión de los valores de las

variables indicadoras.

Por último, en la tercera gráfica, se presentan la previsión total obtenida, pases de

Page 58: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

44

temporada más entradas, frente a las observaciones totales. Obteniendo un MAE de

38,11. Gráficamente, se observa en la tercera gráfica del anexo G, que la previsión se

ajusta bastante bien a las observaciones, por lo tanto se consideran válidos los

métodos usados para llevar a cabo dicha previsión.

Page 59: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

45

8 CONCLUSIONES

A pesar de la dificultad del modelo planteado, los métodos escogidos pueden

proporcionar estimaciones aproximadas de la afluencia total diaria. Esta afirmación

está condicionada a la disponibilidad y registro fidedigno de los datos sobre las

reservas de todos y cada uno de los días de la Exposición.

Del análisis de los experimentos realizados se puede extraer las siguientes

conclusiones:

1. Los modelos son robustos

2. Los resultados obtenidos dan lugar a aproximaciones razonables de la afluencia

total.

Por último, debido a que los primeros 14 días de la Exposición se utilizan para

calibrar inicialmente los parámetros de los modelos, las primeras previsiones que

calculen los modelos podrán tener un mayor grado de desviación.

Page 60: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 61: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

47

ANEXO A: TABLA DE DATOS

Día Día

familiar

Pases Entradas Total Hotel

Sevilla

Hotel

Extrarradio

Renfe

entradas

Renfe

salidas

Iberia

entradas

Iberia

salidas

Bus

entradas

Bus

salidas

1 0 50,00 42,00 92,00 16,38 0,80 2,05 1,53 5,05 5,35 70,12 65,98

2 0 40,00 119,00 159,00 17,56 1,00 2,12 4,65 5,25 6,64 75,62 67,89

3 0 41,00 104,00 145,00 20,00 0,70 2,10 2,70 5,75 5,03 71,46 70,45

4 0 36,00 100,00 136,00 20,96 1,20 2,00 1,84 6,50 4,86 68,95 78,25

5 0 53,00 72,00 125,00 16,16 0,20 2,26 4,16 5,59 4,61 69,65 65,50

6 0 106,00 170,00 276,00 16,51 0,80 1,70 3,40 5,78 5,78 73,27 63,25

7 0 118,00 174,00 292,00 14,92 3,70 2,78 5,13 5,05 7,14 65,85 74,21

8 0 43,00 97,00 140,00 13,84 3,80 4,53 3,13 5,25 5,35 70,12 65,98

9 1 49,00 181,00 230,00 15,47 3,80 5,01 2,88 5,75 5,36 75,62 67,89

10 0 52,00 66,00 118,00 16,38 3,80 7,23 3,78 6,50 5,03 71,46 70,45

11 0 31,00 75,00 106,00 26,61 3,40 14,57 3,39 5,59 4,86 68,95 78,25

12 0 136,00 143,00 279,00 44,76 6,80 8,35 3,37 5,78 4,61 69,65 65,50

13 0 132,00 168,00 300,00 47,85 11,80 2,84 4,60 6,95 5,78 73,27 63,25

14 0 111,00 166,00 277,00 45,96 11,90 2,74 14,20 5,25 4,88 65,85 74,21

15 0 47,00 59,00 106,00 29,62 0,40 3,12 9,27 7,35 5,35 70,12 65,98

16 0 59,00 117,00 176,00 21,29 0,30 1,66 2,15 6,50 6,64 75,62 67,89

17 0 32,00 42,00 74,00 21,45 0,10 2,15 1,91 8,01 5,03 71,46 70,45

18 0 47,00 62,00 109,00 23,54 0,80 3,67 2,45 5,78 4,86 68,95 78,25

19 0 69,00 113,00 182,00 39,23 8,90 7,36 1,66 5,25 4,61 69,65 65,50

20 1 100,00 170,00 270,00 34,73 9,20 3,05 3,03 5,25 5,78 73,27 63,25

21 0 125,00 165,00 290,00 28,13 9,40 4,66 8,57 5,75 7,14 65,85 74,21

22 0 37,00 201,00 238,00 22,10 0,80 4,13 2,26 7,39 5,35 70,12 65,98

23 0 43,00 47,00 90,00 22,07 0,20 1,90 1,62 5,59 6,64 75,62 67,89

24 0 35,00 70,00 105,00 22,79 0,20 4,49 1,88 5,78 5,03 65,41 70,45

25 0 36,00 46,00 82,00 27,18 4,50 12,97 2,16 5,05 4,86 68,95 78,25

Page 62: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

48

26 0 79,00 96,00 175,00 31,76 4,50 7,15 3,94 6,85 4,61 69,65 65,50

27 0 114,00 169,00 283,00 25,10 0,40 6,65 4,53 5,75 5,78 73,27 63,25

28 0 137,00 180,00 317,00 23,30 0,60 12,42 11,04 6,50 4,14 65,85 74,21

29 0 58,00 112,00 170,00 14,95 0,60 11,05 10,03 5,59 5,35 70,12 65,98

30 0 49,00 82,00 131,00 15,03 0,10 4,76 4,21 5,78 6,64 75,62 67,89

31 0 42,00 55,00 97,00 16,86 9,40 3,10 3,88 6,14 5,03 71,46 70,45

32 0 51,00 95,00 146,00 18,74 9,40 7,00 5,40 5,25 4,86 68,95 78,25

33 0 73,00 79,00 152,00 28,39 9,60 5,68 6,00 5,75 4,61 69,65 65,50

34 0 109,00 174,00 283,00 27,40 9,60 6,98 2,36 7,11 5,78 73,27 63,25

35 0 129,00 170,00 299,00 21,67 9,80 8,99 5,70 5,59 4,46 65,85 74,21

36 0 53,00 100,00 153,00 23,43 0,10 3,38 3,73 5,78 5,35 70,12 65,98

37 0 35,00 116,00 151,00 26,33 0,10 2,14 1,78 5,05 6,64 75,62 67,89

38 0 46,00 82,00 128,00 27,02 18,00 3,20 2,40 6,64 5,03 71,46 56,89

39 0 32,00 99,00 131,00 34,61 18,00 3,96 3,20 5,75 4,86 68,95 78,25

40 0 70,00 117,00 187,00 40,11 0,20 3,04 6,08 6,50 4,61 69,65 65,50

41 0 116,00 155,00 271,00 38,70 0,20 3,79 2,43 5,59 5,78 73,27 63,25

42 0 137,00 145,00 282,00 31,45 0,20 6,24 6,23 5,78 7,14 65,85 74,21

43 0 43,00 66,00 109,00 24,18 0,20 21,38 21,14 7,11 5,35 70,12 65,98

44 0 49,00 103,00 152,00 19,87 0,20 17,87 15,07 5,25 6,64 75,62 58,74

45 0 35,00 65,00 100,00 20,08 4,30 17,29 14,53 5,75 5,03 71,46 70,45

46 0 52,00 92,00 144,00 25,89 6,10 18,79 13,46 6,50 4,86 68,95 78,25

47 0 59,00 60,00 119,00 31,89 6,10 19,84 14,62 7,20 4,61 69,65 65,50

48 0 110,00 162,00 272,00 41,21 6,10 15,80 11,93 5,78 5,78 73,27 59,88

49 0 101,00 158,00 259,00 11,70 0,30 14,33 14,05 7,16 5,36 65,85 74,21

50 0 56,00 43,00 99,00 27,06 1,20 15,09 12,16 5,25 5,35 70,12 65,98

51 0 43,00 94,00 137,00 23,19 0,90 14,71 11,38 8,14 6,64 75,62 67,89

52 0 55,00 104,00 159,00 15,80 0,30 11,45 9,57 6,50 5,03 71,46 70,45

53 0 59,00 109,00 168,00 19,45 0,40 21,14 17,20 8,39 4,86 68,95 78,25

54 0 55,00 53,00 108,00 26,02 0,70 21,36 17,59 5,78 4,61 69,65 59,87

Page 63: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

49

55 0 107,00 163,00 270,00 25,62 0,70 17,69 13,50 7,97 5,78 73,27 63,25

56 0 139,00 150,00 289,00 24,76 0,70 13,59 19,47 5,25 7,14 65,85 68,75

57 0 71,00 129,00 200,00 12,40 0,30 16,55 13,92 7,47 5,35 70,12 65,98

58 0 43,00 63,00 106,00 9,90 0,30 10,97 7,75 6,50 6,64 75,62 67,89

59 0 39,00 152,00 191,00 17,77 0,30 11,60 10,12 5,59 5,03 71,46 70,45

60 0 40,00 145,00 185,00 19,70 0,30 13,47 11,04 7,47 4,86 68,95 78,25

61 0 97,00 137,00 234,00 27,05 0,30 14,45 12,69 8,39 4,61 69,65 65,50

62 0 133,00 214,00 347,00 27,27 0,30 14,03 10,20 8,22 5,78 73,27 63,25

63 0 133,00 240,00 373,00 39,40 0,30 12,27 17,27 5,75 7,14 65,85 74,21

64 0 63,00 106,00 169,00 28,65 0,30 10,28 9,29 6,50 5,35 70,12 59,87

65 0 45,00 52,00 97,00 28,10 0,30 7,96 7,34 5,59 6,64 75,62 67,89

66 0 77,00 88,00 165,00 31,33 0,30 11,00 8,90 8,50 5,03 71,46 70,45

67 0 62,00 131,00 193,00 31,88 0,30 11,55 9,63 8,78 4,86 68,95 78,25

68 0 69,00 104,00 173,00 30,25 0,30 21,67 19,78 6,75 4,61 69,65 65,50

69 0 146,00 220,00 366,00 27,65 0,30 19,71 19,13 5,75 5,78 73,27 63,25

70 0 173,00 241,00 414,00 25,80 0,30 17,82 25,12 6,50 7,14 65,85 74,21

71 0 59,00 85,00 144,00 13,42 0,30 16,98 24,11 5,59 5,35 70,12 65,98

72 0 45,00 72,00 117,00 10,25 0,30 15,40 16,42 5,78 4,86 75,62 67,89

73 0 67,00 69,00 136,00 14,43 0,30 11,98 9,30 5,88 5,03 71,46 70,45

74 0 41,00 59,00 100,00 12,73 0,30 12,42 8,54 5,25 4,86 68,95 64,59

75 0 100,00 154,00 254,00 13,91 0,30 12,05 9,10 5,75 4,61 69,65 65,50

76 0 140,00 197,00 337,00 14,78 0,30 13,39 15,02 6,50 5,78 73,27 63,25

77 0 139,00 208,00 347,00 15,72 0,30 12,59 17,48 5,59 7,14 65,85 74,21

78 0 45,00 142,00 187,00 11,70 0,30 14,33 14,05 5,78 5,35 70,12 65,98

79 0 56,00 154,00 210,00 15,90 0,30 7,85 7,88 8,14 6,64 75,62 67,89

80 1 47,00 175,00 222,00 14,48 0,30 6,08 7,90 5,25 5,03 71,46 70,45

81 0 54,00 104,00 158,00 20,01 0,50 9,32 8,54 7,11 4,86 68,95 58,75

82 0 71,00 143,00 214,00 22,65 0,50 11,21 8,55 6,50 4,61 69,65 65,50

83 0 178,00 228,00 406,00 21,71 0,70 6,33 8,10 5,59 5,78 73,27 63,25

Page 64: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

50

84 0 164,00 218,00 382,00 21,80 0,90 11,58 21,04 8,31 7,14 65,85 74,21

85 0 57,00 124,00 181,00 15,40 0,70 16,47 16,54 7,97 5,35 70,12 65,98

86 0 39,00 88,00 127,00 12,61 0,70 12,55 11,15 5,25 6,64 75,62 67,89

87 0 73,00 112,00 185,00 11,85 0,70 9,39 10,62 5,75 5,03 71,46 70,45

88 0 48,00 131,00 179,00 11,04 0,70 16,73 14,73 6,50 4,86 68,95 78,25

89 0 80,00 113,00 193,00 13,85 1,20 19,72 14,19 5,59 4,61 69,65 65,50

90 0 146,00 220,00 366,00 14,27 1,50 11,29 11,20 5,78 5,78 73,27 63,25

91 0 176,00 238,00 414,00 14,61 1,50 11,70 20,51 7,39 7,14 65,85 58,75

92 0 43,00 64,00 107,00 13,62 1,00 17,38 15,01 7,70 5,35 70,12 65,98

93 0 58,00 93,00 151,00 16,07 1,00 9,85 10,43 7,64 6,64 75,62 67,89

94 0 61,00 133,00 194,00 21,52 1,00 9,41 9,89 6,50 5,03 71,46 70,45

95 0 47,00 61,00 108,00 22,12 1,20 8,78 9,78 5,59 4,86 68,95 78,25

96 0 66,00 152,00 218,00 21,35 1,50 11,36 8,68 5,78 4,61 69,65 65,50

97 0 102,00 141,00 243,00 22,02 1,50 10,50 9,32 8,87 5,78 73,27 63,25

98 0 175,00 236,00 411,00 17,43 1,00 10,25 17,88 7,86 7,14 65,85 74,21

99 0 49,00 111,00 160,00 13,11 0,30 15,43 16,13 5,75 5,35 70,12 65,98

100 0 57,00 60,00 117,00 13,22 0,30 10,78 10,32 6,50 6,64 75,62 67,89

101 1 45,00 213,00 258,00 17,53 0,50 7,86 8,99 7,56 5,03 71,46 70,45

102 0 50,00 138,00 188,00 14,74 0,50 8,29 12,40 5,78 4,86 68,95 78,25

103 0 66,00 131,00 197,00 17,01 0,80 14,03 12,01 7,46 4,61 69,65 65,50

104 0 142,00 249,00 391,00 14,74 0,30 14,05 9,80 7,64 5,78 73,27 63,25

105 0 135,00 245,00 380,00 36,14 0,58 9,58 6,52 5,75 7,14 65,85 74,21

106 0 54,00 101,00 155,00 42,65 0,58 4,49 13,35 6,50 5,35 70,12 65,98

107 0 68,00 99,00 167,00 30,66 0,43 2,39 3,10 5,59 6,64 75,62 67,89

108 0 71,00 57,00 128,00 30,89 0,14 3,10 2,75 5,78 5,03 71,46 70,45

109 0 41,00 145,00 186,00 33,90 1,15 5,28 3,53 8,14 4,86 68,95 56,90

110 0 97,00 103,00 200,00 56,49 12,82 10,60 2,39 8,50 4,61 69,65 65,50

111 0 139,00 252,00 391,00 50,01 13,25 4,39 4,36 5,75 5,78 73,27 63,25

112 0 135,00 234,00 369,00 40,51 13,54 6,71 12,34 6,50 7,14 65,85 74,21

Page 65: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

51

113 0 55,00 124,00 179,00 21,53 0,86 15,91 14,44 5,59 5,35 70,12 65,98

114 0 65,00 138,00 203,00 21,64 0,14 6,85 6,06 5,78 6,64 75,62 67,89

115 0 52,00 114,00 166,00 24,28 13,54 4,46 5,59 7,54 5,03 71,46 70,45

116 0 62,00 145,00 207,00 26,99 13,54 10,08 7,78 7,14 4,86 68,95 78,25

117 0 81,00 82,00 163,00 40,88 13,82 8,18 8,64 5,75 4,61 69,65 65,50

118 0 105,00 177,00 282,00 39,46 13,82 10,05 3,40 6,50 5,78 73,27 63,25

119 0 170,00 203,00 373,00 31,20 14,11 12,95 8,21 5,59 7,14 65,85 74,21

120 0 45,00 84,00 129,00 33,74 0,14 4,87 5,37 5,78 5,35 70,12 65,98

121 0 45,00 122,00 167,00 37,92 0,14 3,08 2,56 8,56 6,64 75,62 67,89

122 0 71,00 127,00 198,00 38,91 25,92 4,61 3,46 8,10 5,03 71,46 70,45

123 0 48,00 86,00 134,00 49,84 25,92 5,70 4,61 8,75 4,86 68,95 68,75

124 0 80,00 134,00 214,00 57,76 0,29 4,38 8,76 6,50 4,61 69,65 65,50

125 0 137,00 198,00 335,00 55,73 0,29 5,46 3,50 5,59 5,78 73,27 63,25

126 0 152,00 197,00 349,00 45,29 0,29 8,99 8,97 5,78 5,36 65,85 74,21

127 0 44,00 155,00 199,00 42,65 0,58 4,49 13,35 8,14 5,35 70,12 65,98

128 0 45,00 59,00 104,00 30,66 0,43 2,39 3,10 5,25 6,64 75,62 67,89

129 0 68,00 124,00 192,00 30,89 0,14 3,10 2,75 5,75 5,03 71,46 70,45

130 0 44,00 72,00 116,00 33,90 1,15 5,28 3,53 6,50 4,86 68,95 78,25

131 0 102,00 84,00 186,00 56,49 12,82 10,60 2,39 8,00 4,61 69,65 65,50

132 0 134,00 255,00 389,00 50,01 13,25 4,39 4,36 5,78 5,78 73,27 63,25

133 0 169,00 232,00 401,00 40,51 13,54 6,71 12,34 5,05 7,14 65,85 74,21

134 0 44,00 106,00 150,00 57,46 0,78 6,05 17,98 5,25 5,35 70,12 65,98

135 0 56,00 49,00 105,00 41,30 0,58 3,22 4,17 5,75 6,64 75,62 67,89

136 0 32,00 47,00 79,00 41,61 0,19 4,17 3,71 6,50 5,03 71,46 70,45

137 0 55,00 102,00 157,00 45,67 1,55 7,12 4,75 5,59 4,86 68,95 78,25

138 0 54,00 89,00 143,00 76,11 17,27 14,28 3,22 5,78 4,61 69,65 65,50

139 0 107,00 158,00 265,00 67,38 17,85 5,92 5,88 8,85 5,78 73,27 63,25

140 0 132,00 144,00 276,00 54,57 18,24 9,04 16,63 5,25 4,46 65,85 74,21

141 0 31,00 42,00 73,00 29,00 1,16 21,44 19,46 5,75 5,35 70,12 65,98

Page 66: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

52

142 0 58,00 86,00 144,00 29,16 0,19 9,23 8,17 6,50 6,64 75,62 67,89

143 1 46,00 149,00 195,00 32,71 18,24 6,01 7,53 7,76 5,03 71,46 70,45

144 0 36,00 87,00 123,00 36,36 18,24 13,58 10,48 5,78 4,86 68,95 78,25

145 0 60,00 59,00 119,00 55,08 18,62 11,02 11,64 5,05 4,61 69,65 65,50

146 0 129,00 167,00 296,00 53,16 18,62 13,54 4,58 5,25 5,78 73,27 63,25

147 0 136,00 149,00 285,00 42,04 19,01 17,44 11,06 5,75 4,14 65,85 74,21

Page 67: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

53

ANEXO B: CÓDIGO WINTERS

'************************************************************************************

' WINTERS.BAS

'

'Ficheros de parametros: WINTERS_PAR

'Ficheros de datos historicos: RESERVAS_DAT

'ficherso de previsiones: WINTERS_PAS (para pases)

' WINTERS_ENT (para entradas)

'

'*************************************************************************************

Option Explicit

Option Base 1

DefInt I-N

DefSng A-H, O-Z

'definicion de variables

'-----------------------

Dim observ(200) As Single 'observaciones

Dim perman(200) As Single 'estimacion de la componente permanente

Dim tenden(200) As Single 'estimacion de la tendencia

Dim estaci(200) As Single 'estimacion del factor estacional

Dim previs(200) As Single 'prevision

Dim previs_aux(200) As Single 'previvion auxliar

Dim err_pr(200) As Single 'error de prevision

Dim ts_acum As Single 'tracking signal del error acumulado

Dim ts_alis As Single 'tracking signal del error alisado

Dim dia_fam(200) As Single 'dias familiares

Dim n_obs As Integer 'nº de observaciones de la serie

Dim num_inicia As Integer 'nº de obervac. para inicializar el modelo

Dim flag_ctes As Integer 'para calcular las ctes. alisamiento (si=1)

Dim flag_inic As Integer 'para los valores iniciales (si=1)

Page 68: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

54

Dim long_esta As Integer 'longitud de la estacion

Dim num_per As Integer 'periodo futuro a prever

Dim alfa As Single '1º cte de alisamiento

Dim beta As Single '2º cte de alisamiento

Dim gamma As Single '3º cte de alisamiento

Dim alfa_min As Single 'Alfa min, max y paso(para optimizar)

Dim alfa_pas As Single

Dim alfa_max As Single

Dim beta_min As Single 'beta min, max y paso(para optimizar)

Dim beta_pas As Single

Dim beta_max As Single

Dim gamma_min As Single 'gamma min, max y paso(para optimizar)

Dim gamma_pas As Single

Dim gamma_max As Single

Dim perm_ini As Single 'valor inicial de la componente permanente

Dim tend_ini As Single 'idem de la tendencia

Dim estaci_ini(24) As Single 'idem de los factores estacionales

Dim estaci_aux(24) As Single 'factores estacionales auxiliares

Dim flag_depura As Integer 'flag de depuracion (1=>imprime)

'registro del fichero de observaciones y reservas

Dim dia(180) As Integer 'nº de dia

Dim fec(180) As Single 'fecha(dd.mm)

Dim fam(180) As Integer 'dia familiar (0/1)

Dim obpas(180) As Single 'observacion pase

Dim obent(180) As Single ' entradas

Dim obtot(180) As Single ' total

Dim corsev(180) As Single 'hotele Sevilla

Page 69: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

55

Dim corext(180) As Single 'hoteles extraradio

Dim renent(180) As Single 'Renfe entradas

Dim rensal(180) As Single ' salidas

Dim ibeent(180) As Single 'Iberia entradas

Dim ibesal(180) As Single ' salidas

Dim busent(180) As Single 'buses entradas

Dim bussal(180) As Single ' salidas

Dim entfam(180) As Single 'entradas vendidas en dia familiar

Dim wpas As Single 'Winters pases

Dim wdpas As Single ' desviacion

Dim went As Single 'WInters entradas

Dim wdent As Single ' desviacion

Dim rent As Single 'Regresion entradas

Dim rdent As Single ' desviacion

Dim plent As Single 'Prog lineal entradas

Dim pment As Single 'Prog matematica entradas

Dim prevent As Single 'prevision que se hizo de entradas

Dim prevtot As Single 'prevision de que se hizo de la Afluencia total

Sub main()

'defino variables que no estaban definidas, y me las pide el programa

'--------------------------------------------------------------------

Dim num_pasada As Integer

Dim i As Integer

Dim porc_dia_fam As Single

Dim e_min As Single

Dim suma_res As Single

Page 70: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

56

Dim suma_res_c As Single

Dim x_mad As Single

Dim il As Integer

Dim ils As Integer

Dim suma_err As Single

Dim suma_err_c As Single

Dim Err_med As Single

Dim varianz As Single

Dim desviac As Single

Dim I_exc As Integer

Dim Err_acum As Single

Dim Err_alis As Single

Dim N_dat As Integer

Dim flag_n_obs As Integer 'permite que se lean todos los regresores almacenando correctamente n_obs

Dim j As Integer

num_pasada = 0

MsgBox ("Asegurese que RESERVAS_DAT los decimales aparecen con puntos(.) ")

'hacemos 2 pasadas: 1)para pases y 2)para el total

empezar:

num_pasada = num_pasada + 1

'Lectura del fichero de observaciones

'------------------------------------

Open "\\Vboxsvr\tfg\PRUEBAS\WINTERS_prueba\RESERVAS_DAT.txt" For Input As #1

For i = 1 To 176

Input #1, dia(i), fec(i), fam(i), obpas(i), obent(i), obtot(i), corsev(i), corext(i), renent(i), rensal(i), ibeent(i),

ibesal(i), busent(i), bussal(i), entfam(i)

Page 71: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

57

'observ(I) = obpas 'pases

'observ(I) = obent 'entradas

'observ(I) = obtot 'total

If num_pasada = 1 Then

'pasada para pases de temporada

observ(i) = obpas(i) 'pases

dia_fam(i) = 0

Else

'pasada para las entradas

observ(i) = obent(i) 'entradas

dia_fam(i) = entfam(i)

End If

'paramos cuando encontremos el primer 0 en las observaciones

If observ(i) = 0 And flag_n_obs = 0 Then

n_obs = i - 1

flag_n_obs = 1

End If

Next i

If n_obs > 173 Or n_obs = 0 Then

MsgBox "Se ha terminado la EXPO"

Close

End

End If

If n_obs < 14 Then

MsgBox "Nº insuficientes de observaciones"

Close

End

End If

'Leemos el dia familiar de "n_obs+3"

Page 72: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

58

dia_fam(n_obs + 3) = entfam(n_obs + 3)

Close #1

MsgBox "Calculando..."

'Lectura del fichero de parametros

'---------------------------------

Open "\\Vboxsvr\tfg\PRUEBAS\WINTERS_prueba\WINTERS_PAR.txt" For Input As #1

Input #1, flag_depura, long_esta, num_per, flag_ctes, flag_inic, num_inicia, porc_dia_fam

If flag_ctes = 0 Then

'las ctes de alisamiento se leen

Input #1, alfa, beta, gamma

Else

'las ctes de alisamiento se calculan

Input #1, alfa_min, alfa_pas, alfa_max

Input #1, beta_min, beta_pas, beta_max

Input #1, gamma_min, gamma_pas, gamma_max

End If

'en el fichero de resultados metemos los calculos intermedios

If flag_depura = 1 Then

Open "\\Vboxsvr\tfg\PRUEBAS\WINTERS_prueba\WINTERS_cac.txt" For Append As #2

Print #2, "OBSERVACIONES:"

Print #2,

For i = 1 To n_obs

Print #2, observ(i)

If i Mod 10 = 0 Then Print #2,

Next i

Print #2,

Page 73: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

59

End If

'decrementamos las observaciones de los dias familiares

For i = 1 To n_obs

If observ(i) > porc_dia_fam * dia_fam(i) Then

observ(i) = observ(i) - porc_dia_fam * dia_fam(i)

End If

Next i

If flag_inic = 0 Then

'Los valores iniciales

Input #1, perm_ini, tend_ini

For i = 1 To long_esta

Input #1, estaci_ini(i)

estaci_aux(i) = estaci_ini(i)

Next i

Close #1

Else

Close #1

'los valores iniciales se calculan

calcular_valores_iniciales perm_ini, tend_ini, estaci_ini()

End If

If flag_depura = 1 Then

Print #2,: Print #2,

Print #2, "Valores iniciales:"

Print #2,

Print #2, " Permanente="; perm_ini

Print #2, " Tendencia ="; tend_ini

Print #2,

For j = 1 To long_esta

Print #2, Tab(5); j, estaci_ini(j)

Next j

End If

Page 74: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

60

MsgBox "Valores iniciales:"

If flag_inic = 0 Then

MsgBox "LEIDOS"

Else

MsgBox "CALCULADOS"

End If

If flag_ctes = 1 Then

MsgBox "Calculando ctes. de alisamiento..."

optimizar_ctes_alisa alfa, beta, gamma, e_min

End If

If flag_depura = 1 Then

Print #2,

Print #2, Tab(10); "alfa, beta, gamma, e2=";

Print #2, alfa; beta; gamma;

If flag_ctes = 0 Then

Print #2, " LEIDAS";

Else

Print #2, e_min;

Print #2, " OPTIMAS";

End If

End If

MsgBox "Ctes de alisamiento:"

If flag_ctes = 0 Then

'Print "leidas "

Page 75: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

61

MsgBox "LEIDAS"

Else

'Print "calculadas";

MsgBox "CALCULADAS"

End If

'Calculo de las componentes permanente, tendencia y estacionalidad

'con el numero de datos para inicializar el modelo (num_inicia)

'-----------------------------------------------------------------

For i = 1 To long_esta

estaci_ini(i) = estaci_aux(i)

Next i

'estimaciones iniciales de perm, tend y estacionalidad

perman(1) = fnper(alfa, observ(1), estaci_ini(1), perm_ini, tend_ini)

tenden(1) = fnten(beta, perman(1), perm_ini, tend_ini)

estaci_ini(1) = fnest(gamma, observ(1), perman(1), estaci_ini(1))

'prevision y error

previs_aux(1) = fnpre(perman(1), num_per, tenden(1), estaci_ini(num_per + 1))

estaci(1) = estaci_ini(1)

previs(1 + num_per) = previs_aux(1)

err_pr(1 + num_per) = observ(1 + num_per) - previs_aux(1)

suma_res = err_pr(1)

suma_res_c = err_pr(1) ^ 2

x_mad = Abs(err_pr(1))

'Siguientes estimaciones

Page 76: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

62

For i = 2 To num_inicia

il = i Mod long_esta

If il = 0 Then il = long_esta

perman(i) = fnper(alfa, observ(i), estaci_ini(il), perman(i - 1), tenden(i - 1))

tenden(i) = fnten(beta, perman(i), perman(i - 1), tenden(i - 1))

estaci_ini(il) = fnest(gamma, observ(i), perman(i), estaci_ini(il))

estaci(i) = estaci_ini(il)

ils = il + num_per

If ils > long_esta Then ils = ils - long_esta

previs_aux(i) = fnpre(perman(i), num_per, tenden(i), estaci_ini(ils))

previs(i + num_per) = previs_aux(i)

err_pr(i + num_per) = observ(i + num_per) - previs_aux(i)

suma_res = suma_res + err_pr(i)

suma_res_c = suma_res_c + err_pr(i) ^ 2

x_mad = x_mad + Abs(err_pr(i))

Next i

'Comienzo de la fase de prevision

'--------------------------------

suma_err = 0

suma_err_c = 0

For i = 1 To num_per

err_pr(i) = 0

previs(i) = 0

Next i

For i = num_inicia + 1 To n_obs

il = i Mod long_esta

Page 77: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

63

If il <= 0 Then il = long_esta

previs(i) = fnpre(perman(i - num_per), num_per, tenden(i - num_per), estaci_ini(il))

perman(i) = fnper(alfa, observ(i), estaci_ini(il), perman(i - 1), tenden(i - 1))

tenden(i) = fnten(beta, perman(i), perman(i - 1), tenden(i - 1))

estaci_ini(il) = fnest(gamma, observ(i), perman(i), estaci_ini(il))

estaci(i) = estaci_ini(il)

err_pr(i) = observ(i) - previs(i)

suma_err = suma_err + err_pr(i)

suma_err_c = suma_err_c + err_pr(i) ^ 2

Next i

'IMPRESION DE RESULTADOS

'------------------------

MsgBox "Previsión calcuada"

If flag_depura = 1 Then

Print #2, Chr$(12);

Print #2, Tab(15); "SALIDA DE LA FASE DE INICIALIZACION"

Print #2, " Per Observ Perman Tendenc F.Estac Previs Residuo"

For i = 1 To num_inicia

Print #2, i;

Print #2, observ(i);

Print #2, perman(i);

Print #2, tenden(i); estaci(i);

Print #2, previs(i); err_pr(i)

If i Mod 60 = 0 Then

Print #2, Chr$(12);

Print #2, Tab(15); "SALIDA DE LA FASE DE INICIALIZACION (Cont)"

Print #2, " Per Observ Perman Tendenc F.Estac Previs Residuo"

Page 78: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

64

End If

Next i

End If

'Error medio, varianza y desviacion tipica

'de la fase de inicializacion(residuos)

Err_med = suma_res / num_inicia

varianz = (suma_res_c - num_inicia * Err_med ^ 2) / (num_inicia - 1)

desviac = Sqr(varianz)

x_mad = x_mad / num_inicia

I_exc = 0

For i = 1 To num_inicia

If err_pr(i) < desviac * (-2) Or err_pr(i) > desviac * 2 Then I_exc = I_exc + 1

Next i

If flag_depura = 1 Then

Print #2,

Print #2, "sumatorio residuos= "; suma_res; " Error medio= "; Err_med; " MAD= "; x_mad

Print #2, "Varianza= "; varianz; "Desv. Tipica= "; desviac

Print #2, "Nº de residuos que exceden 2*(sigma)= "; I_exc

Print #2, Chr$(12);

Print #2, Tab(20); "SALIDA DE LA FASE DE PREVISION"

Print #2, Tab(10); "Long de la estacion:"; long_esta, "Periodo a prever:"; num_per

Print #2, " Per Observ Perman Tendenc F.Estac Previs Residuo Tracking Signals"

Print #2, " Err Acum Err Alis"

End If

'

'Calculo de tracking signals

Err_acum = 0

Err_alis = 0

For i = num_inicia + 1 To n_obs

Err_acum = Err_acum + err_pr(i)

Page 79: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

65

Err_alis = 0.1 * err_pr(i) + 0.9 * Err_alis

x_mad = 0.1 * Abs(err_pr(i)) + 0.9 * x_mad

ts_acum = Err_acum / x_mad

ts_alis = Err_alis / x_mad

If flag_depura = 1 Then

Print #2, i;

Print #2, observ(i);

Print #2, perman(i);

Print #2, tenden(i); estaci(i);

Print #2, previs(i); err_pr(i);

Print #2, ts_acum; ts_alis

If i Mod 60 = 0 Then

Print #2, Chr$(12);

Print #2, Tab(20); "SALIDA DE LA FASE DE PREVISION(Cont)"

Print #2, Tab(10); "Long de la estacion:"; long_esta, "Periodo a prever:"; num_per

Print #2, " Per Observ Perman Tendenc F.Estac Previs Residuo Tracking Signals"

Print #2, " Err Acum Err Alis"

End If

End If

Next i

'

'Error medio, varianza y desviacion tipica

N_dat = n_obs - num_inicia

If N_dat > 1 Then

Err_med = suma_err / N_dat

varianz = (suma_err_c - N_dat * Err_med ^ 2) / (N_dat - 1)

desviac = Sqr(varianz)

Else

Err_med = 0

varianz = 0

desviac = 0

End If

Page 80: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

66

If flag_depura = 1 Then

Print #2,

Print #2, "Sumatorio errores de prev="; suma_err; " Error de prev medio= "; Err_med

Print #2, " Varianza= "; varianz; " Desv. tipica= "; desviac

End If

'

'

'PREVISIONES PARA EL FUTURO

'---------------------------

previs(n_obs + 3) = (perman(n_obs) + 3 * tenden(n_obs)) * estaci(n_obs + 3 - long_esta)

previs(n_obs + 3) = previs(n_obs + 3) + porc_dia_fam * dia_fam(n_obs + 3)

If flag_depura = 1 Then

Print #2,

Print #2, Tab(15); "Prevision para el dia"; n_obs + 3; ":"; previs(n_obs + 3)

Print #2,

Close #2

End If

'

'Impresion de datos estadisticos

'-------------------------------

If num_pasada = 1 Then

'

'abrimos ficheros de pases

'

Open "\\Vboxsvr\tfg\PRUEBAS\WINTERS_prueba\WINTERS_PAS.txt" For Append As #1

Else

'

Page 81: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

67

'abrimos ficheros de entradas

'

Open "\\Vboxsvr\tfg\PRUEBAS\WINTERS_prueba\WINTERS_ENT.txt" For Append As #1

End If

Print #1, "numero de observaciones:"; n_obs

Print #1, "prevision: "; previs(n_obs + 3), "desviacion: "; desviac

Print #1, "alfa: "; alfa, "beta: "; beta, "gamma: "; gamma

Print #1, perm_ini, tend_ini

For i = 1 To long_esta

Print #1, estaci_ini(i)

Next i

Print #1,

Close #1

'

'siguiente pasada(si ha lugar)

'-----------------------------

If num_pasada = 1 Then

GoTo empezar

End If

Page 82: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

68

End Sub

'Definicion de FUNCIONES y RUTINAS

'---------------------------------

'RUTINA para optimizar las ctes de alisamiento

Sub optimizar_ctes_alisa(ByRef alfa As Single, ByRef beta As Single, ByRef gamma As Single, ByRef

error_pre As Single)

'***************************************************

'Rutina para calcular las ctes de alisamiento

'que produzcan el error minimo

'***************************************************

'variables que no estaban definidas

'----------------------------------

Dim i_alfa As Single

Dim i_beta As Single

Dim i_gamma As Single

Dim v_alfa As Single

Dim ii As Integer

Dim v_beta As Single

Dim ij As Integer

Dim v_gamma As Single

Dim ik As Integer

Dim i As Integer

Dim prev As Single

Dim e_prev As Single

Dim il As Integer

Dim ils As Integer

Page 83: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

69

'

'Nº de iteraciones que hacen falta para cada cte

'

i_alfa = ((alfa_max - alfa_min) / alfa_pas) + 1

i_beta = ((beta_max - beta_min) / beta_pas) + 1

i_gamma = ((gamma_max - gamma_min) / gamma_pas) + 1

'El error minimo lo hacemos lo mayor posible

error_pre = 1E+30

v_alfa = alfa_min

For ii = 1 To i_alfa

v_beta = beta_min

For ij = 1 To i_beta

v_gamma = gamma_min

For ik = 1 To i_gamma

For i = 1 To long_esta

estaci_ini(i) = estaci_aux(i)

Next i

'

'Estimaciones iniciales de perm, tend, y estacionalidad

'

perman(1) = fnper(v_alfa, observ(1), estaci_ini(1), perm_ini, tend_ini)

tenden(1) = fnten(v_beta, perman(1), perm_ini, tend_ini)

estaci_ini(1) = fnest(v_gamma, observ(1), perman(1), estaci_ini(1))

'

'prevision y error

'

prev = fnpre(perman(1), num_per, tenden(1), estaci_ini(1 + num_per))

e_prev = (observ(1 + num_per) - prev) ^ 2

'

'siguiente estimaciones

'

Page 84: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

70

For i = 2 To num_inicia

il = i Mod long_esta

If il = 0 Then il = long_esta

perman(i) = fnper(v_alfa, observ(i), estaci_ini(il), perman(i - 1), tenden(i - 1))

tenden(i) = fnten(v_beta, perman(i), perman(i - 1), tenden(i - 1))

estaci_ini(il) = fnest(v_gamma, observ(i), perman(i), estaci_ini(il))

ils = il + num_per

If ils > long_esta Then ils = ils - long_esta

prev = fnpre(perman(i), num_per, tenden(i), estaci_ini(ils))

e_prev = e_prev + (observ(i + num_per) - prev) ^ 2

Next i

'

'Comprobacion del error

'

If e_prev < error_pre Then

alfa = v_alfa

beta = v_beta

gamma = v_gamma

error_pre = e_prev

End If

'

'incrementar gamma

v_gamma = v_gamma + gamma_pas

Next ik

'

'incrementar beta

v_beta = v_beta + beta_pas

Next ij

'

Page 85: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

71

'incrementar alfa

v_alfa = v_alfa + alfa_pas

Next ii

End Sub

'RUTINA para calcular los valores iniciales de la serie

Sub calcular_valores_iniciales(ByRef perm_ini As Single, ByRef tend_ini As Single, ByRef estaci_ini() As

Single)

'

'*******************************************

'Rutina para calcular los valores iniciales

'*******************************************

'variables que no estaban definidas

Dim numero_ini As Integer

Dim n_esta As Single

Dim j_1 As Integer

Dim j_2 As Integer

Dim i As Integer

Dim j As Integer

Dim v As Single

Dim x As Single

numero_ini = num_inicia

'

'utilizamos el mayor numero de observaciones posibles para inicializar

num_inicia = n_obs

'

'nº de estaciones (n_esta) a usar

n_esta = num_inicia / long_esta

Page 86: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

72

If n_esta = 1 Then n_esta = 2 'como minimo 2 estaciones

If n_esta = 0 Then

If flag_depura = 1 Then

Print #2,: Print #2,

Print #2, Tab(10); "No existe suficientes datos para calcular los valores iniciales."

Print #2, Tab(10); "Introduzcalos como datos si quiere realizar operaciones"

Close #2

Else

MsgBox "nº de datos insuficientes(winters)"

End If

'

'se acabo

End

End If

If n_esta * long_esta <> num_inicia Then

num_inicia = n_esta * long_esta

End If

'Media de las observaciones en cada estacion de datos disponibles

Dim media_esta(176) As Single

j_1 = 1

j_2 = long_esta

For i = 1 To n_esta

For j = j_1 To j_2

media_esta(i) = media_esta(i) + observ(j)

Next j

media_esta(i) = media_esta(i) / long_esta

'

'siguiente estacion

j_1 = j_2 + 1

Page 87: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

73

j_2 = j_1 + long_esta - 1

Next i

j_1 = num_inicia - long_esta

tend_ini = (media_esta(n_esta) - media_esta(1)) / j_1

perm_ini = media_esta(1) - (long_esta / 2!) * tend_ini

Dim ff(176, 24) As Single

j_1 = 0

For i = 1 To n_esta

For j = 1 To long_esta

j_2 = j + j_1 * long_esta

v = (((long_esta + 1!) / 2!) - j) * tend_ini

ff(i, j) = observ(j_2) / (media_esta(i) - v)

Next j

j_1 = j_1 + 1

Next i

'

'normalizacion de los factores estacionales

'

v = 0

For j = 1 To long_esta

x = 0

For i = 1 To n_esta

x = x + ff(i, j)

Next i

estaci_ini(j) = x / n_esta

v = v + estaci_ini(j)

Next j

For j = 1 To long_esta

estaci_ini(j) = estaci_ini(j) * (long_esta / v)

estaci_aux(j) = estaci_ini(j)

Next j

Page 88: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

74

'

'restauramos el nº de periodos para inicializar la serie

'para utilizarlo para calcular las ctes de alisamiento

'

num_inicia = numero_ini

End Sub

'Estimacion de la componente permanente

' al=alfa x=observ e=fact est p=comp perm t=tenden

Function fnper(al As Single, x As Single, e As Single, p As Single, t As Single)

fnper = al * (x / e) + (1 - al) * (p + t)

End Function

'Estimacion de la tendencia

' be=beta p1=nue comp perm p0=ant comp per t=tenden

Function fnten(be As Single, p1 As Single, p0 As Single, t As Single)

fnten = be * (p1 - p0) + (1 - be) * t

End Function

'estimacion de la estacionalidad

' ga=gamma x=observ p=comp per e=factor estac

Function fnest(ga As Single, x As Single, p As Single, e As Single)

fnest = ga * (x / p) + (1 - ga) * e

End Function

'Calculo de la prevision

' p=comp perm t=tenden e=fact est n=Nº de per futuro a prever

Function fnpre(p As Single, N As Integer, t As Single, e As Single)

fnpre = (p + N * t) * e

End Function

Page 89: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

75

ANEXO C: CÓDIGO GEN-PRLI

'**************************************************

' GEN-PRLI

'Fichero de parametros: PROG-LIN_PAR

'Fichero de datos historicos: RESERVAS_DAT

'Fichero del modelo: PROG-LIN_DAT

'Genera el modelo (en el fichero PROG-LIN_DAT)

'que resolvera AMPL

'

'**************************************************

Option Base 1

DefInt I-N

DefSng A-H, O-Z

'

'Definicion de funciones y rutinas

'---------------------------------

'

'Registro del fichero observaciones y reservas

'---------------------------------------------

Dim dia(180) As Integer 'nº de dia

Dim fec(180) As Single 'fecha(dd.mm)

Dim fam(180) As Integer 'dia familiar (0/1)

Dim obpas(180) As Single 'observacion pase

Dim obent(180) As Single ' entradas

Dim obtot(180) As Single ' total

Dim corsev(180) As Single 'hoteles Sevilla

Dim corext(180) As Single 'hoteles extraradio

Dim renent(180) As Single 'Renfe entradas

Dim rensal(180) As Single ' salidas

Dim ibeent(180) As Single 'Iberia entradas

Dim ibesal(180) As Single ' salidas

Page 90: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

76

Dim busent(180) As Single 'buses entradas

Dim bussal(180) As Single ' salidas

Dim entfam(180) As Single 'entradas vendidas en dia familiar

'Declaracion de parametros

'-------------------------

Dim n_obs As Integer 'nº de observaciones

Dim num_reg As Integer 'nº de regresores(1+nº de variables indicadoras)

Dim flag_depura As Integer 'flag de depuracion(1=>imprime)

Dim alfa As Single 'peso inicial de las holguras positivas

Dim beta As Single 'peso inicial de las holguras negativas

'beta debe ser > que alfa

Dim gamma As Single 'peso del maximo error

Sub main()

'

'Lectura de los parametros

'-------------------------

Open "\\Vboxsvr\tfg\PRUEBAS\GEN_PRLI_prueba\PROG-LIN_PAR.txt" For Input As #1

Input #1, num_reg, flag_depura, alfa, beta, gamma

Close #1

'Definicion de matrices

'----------------------

Dim observ(200, 1) As Single 'observaciones

Dim regres(200, 10) As Single 'regresores

Dim wp(200) As Single 'pesos de las desviaciones positivas

Dim wn(200) As Single 'pesos de las desviaciones negativas

Page 91: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

77

Dim w0 As Single 'peso del error absoluto maximo

'

'Lectura del fichero de observaciones

'------------------------------------

Open "\\Vboxsvr\tfg\PRUEBAS\WINTERS_prueba\RESERVAS_DAT.txt" For Input As #1 'Len = 56

For i = 1 To 176

Input #1, dia(i), fec(i), fam(i), obpas(i), obent(i), obtot(i), corsev(i), corext(i), renent(i), rensal(i), ibeent(i),

ibesal(i), busent(i), bussal(i), entfam(i)

'observ(i, 1) = rr.obtot 'total

observ(i, 1) = obent(i) 'solo entradas

regres(i, 1) = 1

regres(i, 2) = corsev(i)

regres(i, 3) = corext(i)

regres(i, 4) = renent(i)

regres(i, 5) = rensal(i)

regres(i, 6) = ibeent(i)

regres(i, 7) = ibesal(i)

regres(i, 8) = busent(i)

regres(i, 9) = bussal(i)

regres(i, 10) = entfam(i)

Next i

Close #1

'Paramos cuando encontremos el primer 0 en las observaciones

For i = 1 To 176

If observ(i, 1) = 0 Then

n_obs = i - 1

Exit For

End If

Page 92: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

78

Next i

MsgBox ("Preparando...")

If n_obs <= num_reg Then

MsgBox ("Nº insuficiente de observaciones")

End

End If

'Si algunos de los regresores para "n_obs+3" es 0 => parar

'---------------------------------------------------------

For i = 2 To 9

If regres(n_obs + 3, i) = 0 Then

MsgBox ("No existen los regresores del dia")

MsgBox (n_obs + 3)

End

End If

Next i

'

'Vectores de pesos de las desviaciones de las observaciones pasadas

'------------------------------------------------------------------

uno_m_alfa = 1 - alfa

If uno_m_alfa < 0 Then uno_m_alfa = alfa - 1

uno_m_beta = 1 - beta

If uno_m_beta < 0 Then uno_m_beta = beta - 1

wp(n_obs) = alfa

wn(n_obs) = beta

Page 93: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

79

For i = n_obs - 1 To 1 Step -1

wp(i) = wp(i + 1) * alfa

wn(i) = wn(i + 1) * beta

Next i

'

'peso asignado al maximo error absoluto

'

w0 = (alfa / (1 - alfa)) / gamma

'

'Fichero del modelo

'------------------

Open "\\Vboxsvr\tfg\PRUEBAS\GEN_PRLI_prueba\PROG-LIN.mod" For Output As #1

Print #1, "#Modelo de programacion lineal"

'

'Cotas: las P's son libres

'-------------------------

Print #1, "#Variables"

'

'La cte(P1) la obligamos a que sea >=0

'

Print #1, "var HMAX >= 0;"

For i = 1 To n_obs

Print #1, "var HP"; LTrim$(Str$(i)); " >= 0;"

Print #1, "var HN"; LTrim$(Str$(i)); " >= 0;"

Next i

Print #1, "var P1"; " >= "; "0 ;"

Page 94: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

80

For j = 2 To num_reg

Print #1, "var P"; LTrim$(Str$(j)); " ; "

Next j

'Funcion objetivo

'----------------

Print #1, "#Funcion objetivo"

Print #1, "minimize z : + "; w0; "* HMAX";

For i = 1 To n_obs

Print #1, " + "; wp(i);

Print #1, "* HP"; LTrim$(Str$(i));

Print #1, " + "; wn(i);

Print #1, "* HN"; LTrim$(Str$(i));

If i Mod 2 = 0 Then Print #1,

Next i

'

'las que no estan en la funcion objetivo

'

If n_obs Mod 2 <> 0 Then Print #1,

Print #1, "+ 0*(";

For i = 1 To num_reg

Print #1, " + P"; LTrim$(Str$(i));

Next i

Print #1, ");"

'

Page 95: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

81

'Restricciones

'-------------

Print #1, "#Restricciones"

For i = 1 To n_obs

'

'nombre de la restriccion

'

Print #1, "subject to D"; LTrim$(Str$(i)); " : ";

For j = 1 To num_reg

Print #1, " +";

Print #1, regres(i, j);

Print #1, "* P"; LTrim(Str$(j));

Next j

If num_reg Mod 5 <> 0 Then

Print #1,

Print #1, Spc(5);

End If

Print #1, " + HP"; LTrim$(Str$(i));

Print #1, " - HN"; LTrim$(Str$(i));

Print #1, " = ";

Print #1, observ(i, 1); " ; "

Next i

'Restricciones de maximo error absoluto

'--------------------------------------

For i = 1 To n_obs

'

'nombre de la restriccion

'

Print #1, "subject to H"; LTrim$(Str$(i)); " : ";

Page 96: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

82

Print #1, " + HP"; LTrim$(Str$(i));

Print #1, " + HN"; LTrim$(Str$(i));

Print #1, " - HMAX <=0 ;"

Next i

Close #1

MsgBox ("Cambiar comas por puntos (en nº decimales) en el fichero: PROG-LIN.mod ")

Shell ("\\Vboxsvr\tfg\OPT\AMPL\PFE32.exe")

MsgBox ("¿Ha realizado el cambio?")

'Ejecutamos ampl

MsgBox ("Asegurese que PROG-LIN_SOL está vacio")

MsgBox ("escriba en ampl: include \\Vboxsvr\tfg\PRUEBAS\GEN_PRLI_prueba\PROG-LIN.run ;")

MsgBox ("solución en: PROG-LIN_SOL")

End Sub

Page 97: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

83

ANEXO D: CÓDIGO PROG-LIN

'**************************************************

' PROG-LIN

'Fichero de parametros: PROG-LIN_PAR

'Fichero de datos historicos: RESERVAS_DAT

'Fichero de salida del AMPL: PROG-LIN_SOL

'Fichero de previsiones: PROG-LIN_ENT

'

'

'Calcula las previsiones a partir de los coeficientes calculados

'por el AMPL y las reservas de dentro de tres dias

'

'**************************************************

Option Base 1

DefInt I-N

DefSng A-H, O-Z

'

'Declaracion de parametros

'-------------------------

Dim n_obs As Integer 'nº de observaciones

Dim num_reg As Integer 'nº de regresores(1+nº de variables indicadoras)

Dim flag_depura As Integer 'flag de depuracion(1=>imprime)

Dim alfa As Single 'peso inicial de las holguras positivas

Dim beta As Single 'peso inicial de las holguras negativas

'beta debe ser > que alfa

Page 98: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

84

'Registro del fichero observaciones y reservas

'---------------------------------------------

Dim dia(180) As Integer 'nº de dia

Dim fec(180) As Single 'fecha(dd.mm)

Dim fam(180) As Integer 'dia familiar (0/1)

Dim obpas(180) As Single 'observacion pase

Dim obent(180) As Single ' entradas

Dim obtot(180) As Single ' total

Dim corsev(180) As Single 'hoteles Sevilla

Dim corext(180) As Single 'hoteles extraradio

Dim renent(180) As Single 'Renfe entradas

Dim rensal(180) As Single ' salidas

Dim ibeent(180) As Single 'Iberia entradas

Dim ibesal(180) As Single ' salidas

Dim busent(180) As Single 'buses entradas

Dim bussal(180) As Single ' salidas

Dim entfam(180) As Single 'entradas vendidas en dia familiar

Dim linea As String

Sub main()

'Lectura de parametros

'---------------------

Open "\\Vboxsvr\tfg\PRUEBAS\GEN_PRLI_prueba\PROG-LIN_PAR.txt" For Input As #1

Input #1, num_reg, flag_depura, alfa, beta

Close #1

'

'Definicion de matrices

'------------------------

Page 99: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

85

Dim observ(200, 1) As Single 'observaciones

Dim regres(200, 10) As Single 'regresores

Dim coef(200) As Single 'coeficientes (P) calculados por AMPL

'lectura del fichero de observaciones

'------------------------------------

Open "\\Vboxsvr\tfg\PRUEBAS\WINTERS_prueba\RESERVAS_DAT.txt" For Input As #1

For i = 1 To 176

Input #1, dia(i), fec(i), fam(i), obpas(i), obent(i), obtot(i), corsev(i), corext(i), renent(i), rensal(i), ibeent(i),

ibesal(i), busent(i), bussal(i), entfam(i)

'observ(i, 1) = rr.obtot 'total

observ(i, 1) = obent(i) 'solo entradas

regres(i, 1) = 1

regres(i, 2) = corsev(i)

regres(i, 3) = corext(i)

regres(i, 4) = renent(i)

regres(i, 5) = rensal(i)

regres(i, 6) = ibeent(i)

regres(i, 7) = ibesal(i)

regres(i, 8) = busent(i)

regres(i, 9) = bussal(i)

regres(i, 10) = entfam(i)

Next i

Close #1

'Paramos cuando encontremos el primer 0 en las observaciones

For i = 1 To 176

If observ(i, 1) = 0 Then

Page 100: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

86

n_obs = i - 1

Exit For

End If

Next i

MsgBox ("Calculando...")

If n_obs <= num_reg Then

MsgBox ("Nº insuficiente de observaciones")

End

End If

'Fichero solucion del AMPL

'------------------------

Open "\\Vboxsvr\tfg\PRUEBAS\PROG-LIN_prueba\PROG-LIN_SOL.txt" For Input As #1

'Buscamos las P's

'-----------------

While Not EOF(1)

Line Input #1, linea

If InStr(linea, "P") > 0 Then

posi = InStr(linea, "P")

i = Val(Mid(linea, posi + 1, 2))

coef(i) = Val(Mid(linea, posi + 5, 14))

End If

Wend

Page 101: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

87

Close #1

'Calculamos la prevision

'------------------------

previs = 0

For i = 1 To num_reg

previs = previs + coef(i) * regres(n_obs + 3, i)

Next i

'Fichero de estadisticas

'-----------------------

Open "\\Vboxsvr\tfg\PRUEBAS\PROG-LIN_prueba\PROG-LIN_ENT.txt" For Append As #1

Print #1, "Nº de observaciones: "; n_obs;

Print #1, "Previsión: "; previs

Print #1, "Coeficientes P's: "

For i = 1 To num_reg

Print #1, coef(i);

Next i

Print #1,

Print #1,

Close #1

End Sub

Page 102: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 103: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

89

ANEXO E: CÓDIGO PREVISIO

'*******************************************************************

'

' PREVISIO

'

' Programa para calcular las previsiones ponderando las de

' los diferentes metodos. Todas ellas estan guardadas en

' PREVISIO_DAT. La ponderación se realiza en base a las

' desviaciones historicas de lo diferentes métodos, y utilizando

' como peso el definido en PREVISIO_PAR.

'*******************************************************************

Option Base 1

DefInt A-Z

'registro del fichero de observaciones y reservas

Dim dia(200) As Integer 'nº de dia

Dim fec(200) As Single 'fecha(dd.mm)

Dim fam(200) As Integer 'dia familiar (0/1)

Dim obpas(200) As Single 'observacion pase

Dim obent(200) As Single ' entradas

Dim obtot(200) As Single ' total

Dim corsev(200) As Single 'Hoteles Sevilla

Dim corext(200) As Single ‘ extraradio

Dim renent(200) As Single 'Renfe entradas

Dim rensal(200) As Single ' salidas

Dim ibeent(200) As Single 'Iberia entradas

Dim ibesal(200) As Single ' salidas

Dim busent(200) As Single 'buses entradas

Dim bussal(200) As Single ' salidas

Dim entfam(200) As Single 'entradas vendidas en dia familiar

Page 104: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

90

Dim wpas(200) As Single 'Winters pases

Dim went(200) As Single 'WInters entradas

Dim plent(200) As Single 'Prog lineal entradas

Dim prevent(200) As Single 'prevision que se hizo de entradas

Dim prevtot(200) As Single 'prevision de que se hizo de la Afluencia total

'

'Declaracion de parametros

'-------------------------

Dim n_obs As Integer 'nº de observaciones

Dim alfa As Single 'peso inicial de las desviaciones mas cercanas

Dim pesos(200) As Single 'pesos de las observaciones

Dim pri_int_ent As Integer 'primer umbral de nº de entradas previstas

Sub main()

'

'Lectura de parametros

'---------------------

Open "\\Vboxsvr\tfg\PRUEBAS\PREVISIO_prueba\PREVISIO_PAR.txt" For Input As #1

Input #1, alfa, pri_int_ent

Close #1

'Definicion del vector de desviaciones

'-------------------------------------

' desv(,1)=winters desv_ac(1)= suma pesos()*desv(,1)

' desv(,2)=prog lin desv_ac(2)

Dim desv(200, 2) As Single

Dim desv_ac(2) As Single

Page 105: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

91

Dim desv_tot As Single

'sacamos el numero de observaciones del fichero reserva

'------------------------------------------------------

Open "\\Vboxsvr\tfg\PRUEBAS\WINTERS_prueba\RESERVAS_DAT.txt" For Input As #1

For i = 1 To 176

Input #1, dia(i), fec(i), fam(i), obpas(i), obent(i), obtot(i), corsev(i), corext(i), renent(i), rensal(i), ibeent(i),

ibesal(i), busent(i), bussal(i), entfam(i)

'detectar nº de observaciones en n_obs

'-------------------------------------

If obtot(i) = 0 Then

n_obs = i - 1

Exit For

End If

Next i

Close #1

'OJO con el nº de observaciones

'------------------------------

If n_obs = 0 Or n_obs > 173 Then

MsgBox ("Se ha terminado la EXPO")

End

End If

'Veamos si hay 14 dias

'---------------------

If n_obs < 14 Then

MsgBox ("Nº insuficientes de observaciones")

Page 106: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

92

End

End If

'Leemos el contenido del fichero

'-------------------------------

Open "\\Vboxsvr\tfg\PRUEBAS\PREVISIO_prueba\PREVISIO_DAT.txt" For Input As #1

For i = 14 To n_obs

Input #1, wpas(i), went(i), plent(i)

'Calculamos la desviacion de cada prevision de entradas con

'respecto a la observacion del dia 17 en adelante

'----------------------------------------------------------

desv(i, 1) = Abs(went(i) - obent(i))

desv(i, 2) = Abs(plent(i) - obent(i))

Next i

'formacion del vector peso

'-------------------------

For j = 1 To 2

desv_ac(j) = desv(n_obs, j)

Next j

pesos(n_obs) = alfa

For i = n_obs - 1 To 1 Step -1

pesos(i) = pesos(i + 1) * alfa 'alfa al cuadrado, cubo....

For j = 1 To 2

desv_ac(j) = desv_ac(j) + pesos(i) * desv(i, j)

Page 107: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

93

Next j

Next i

Close #1

'Leemos las previsiones para n_obs+3

'-----------------------------------

Open "\\Vboxsvr\tfg\PRUEBAS\PREVISIO_prueba\PREVISIO_DAT.txt" For Input As #1

For i = 14 To n_obs + 3

Input #1, wpas(i), went(i), plent(i)

Next i

'Acumulamos las desv_ac() de los metodos que tengan prevision <> 0

'para el dia n_obs+3

'------------------------------------------------------------------

desv_tot = 0

If desv_ac(1) <> 0 Then desv_tot = desv_tot + (1 / desv_ac(1))

If desv_ac(2) <> 0 Then desv_tot = desv_tot + (1 / desv_ac(2))

'Formamos la prevision de entradas

'---------------------------------

If desv_tot = 0 Then

'todos lo metodos coinciden(por la razon que sea) y cogemos

'como prevision la que dé (por ejemplo) Winters

prevent(n_obs + 3) = went(n_obs + 3)

Else

prevent(n_obs + 3) = 0

If desv_ac(1) <> 0 Then

If went(n_obs + 3) > pri_int_ent Then

Page 108: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

94

prevent(n_obs + 3) = prevent(n_obs + 3) + ((1 / desv_ac(1)) / desv_tot) * went(n_obs + 3)

Else

prevent(n_obs + 3) = prevent(n_obs + 3) + ((1 / desv_ac(1)) / desv_tot) * pri_int_ent

End If

End If

If desv_ac(2) <> 0 Then

If plent(n_obs + 3) > pri_int_ent Then

prevent(n_obs + 3) = prevent(n_obs + 3) + ((1 / desv_ac(2)) / desv_tot) * plent(n_obs + 3)

Else

prevent(n_obs + 3) = prevent(n_obs + 3) + ((1 / desv_ac(2)) / desv_tot) * pri_int_ent

End If

End If

End If

'Calculamos la prevision total

'-----------------------------

prevtot(n_obs + 3) = prevent(n_obs + 3) + wpas(n_obs + 3)

'Las grabamos en el registro

'---------------------------

MsgBox "Pases: " & wpas(n_obs + 3)

MsgBox "Entradas: " & prevent(n_obs + 3)

MsgBox "TOTAL: " & prevtot(n_obs + 3)

Close #1

Open "\\Vboxsvr\tfg\PRUEBAS\PREVISIO_prueba\PREVISIO_RES.txt" For Append As #1

Print #1, "Prevision dia: "; n_obs + 3

Print #1, "Pases: "; wpas(n_obs + 3)

Page 109: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

95

Print #1, "Entradas: "; prevent(n_obs + 3)

Print #1, "TOTAL: "; prevtot(n_obs + 3)

Print #1,

Close #1

End Sub

Page 110: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 111: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

97

ANEXO F: RESULTADOS

DIA WINTERS PROG.

LINEAL

PREVISIO

PASES ENTRADAS ENTRADAS ENTRADAS TOTAL

17 59,34 83,92 179,21 92,82 152,16

18 41,79 69,52 43,68 75,00 116,79

19 117,51 67,98 119,88 99,07 216,58

20 163,09 205,82 224,63 210,64 373,73

21 112,29 96,58 255,44 142,43 254,72

22 36,25 43,43 73,73 75,00 111,25

23 41,02 98,91 120,14 107,72 148,73

24 42,92 62,66 42,24 75,00 117,92

25 33,25 92,70 -36,19 83,03 116,28

26 72,13 116,19 145,44 129,02 201,14

27 95,42 173,93 80,82 145,56 240,98

28 109,31 174,08 110,98 151,14 260,45

29 34,85 82,99 -0,26 80,57 115,42

30 40,77 88,08 189,68 96,24 137,01

31 44,00 72,32 148,27 81,25 125,26

32 47,28 72,82 64,84 75,00 122,28

33 89,44 108,57 104,82 108,31 197,75

34 120,10 168,38 123,90 161,74 281,84

35 148,85 202,39 108,13 168,28 317,13

36 45,06 85,37 125,66 105,48 150,54

37 48,15 89,56 122,89 94,32 142,48

38 42,26 64,70 239,93 130,08 172,34

39 44,33 73,98 91,35 80,77 125,11

Page 112: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

98

40 68,33 98,15 72,49 81,57 149,90

41 116,91 164,77 101,14 157,58 274,48

42 112,80 137,50 234,26 190,76 303,56

43 42,78 109,12 140,81 118,80 161,58

44 42,37 108,46 222,35 128,08 170,45

45 44,37 71,40 151,08 81,64 126,01

46 36,64 81,92 78,96 80,91 117,54

47 81,38 105,66 77,39 103,68 185,06

48 101,06 168,23 119,12 164,52 265,58

49 151,80 142,95 106,23 131,56 283,36

50 43,05 73,62 76,60 76,09 119,13

51 43,49 93,74 38,39 90,19 133,68

52 35,09 64,97 93,95 79,37 114,46

53 43,77 75,83 83,61 79,33 123,11

54 74,21 88,65 27,72 87,88 162,08

55 137,90 156,13 114,86 126,91 264,81

56 133,40 112,50 130,92 122,94 256,35

57 59,67 74,22 87,78 82,45 142,13

58 44,99 91,65 62,03 88,64 133,63

59 45,05 69,03 71,06 75,00 120,05

60 56,29 80,60 113,00 99,03 155,31

61 79,71 85,12 142,98 134,86 214,58

62 111,04 156,78 80,31 117,43 228,47

63 114,44 137,65 132,44 134,28 248,72

64 62,08 89,18 115,81 111,65 173,72

65 52,01 99,86 164,21 120,57 172,58

66 47,15 101,97 155,13 127,32 174,48

67 51,21 113,14 166,24 142,23 193,44

Page 113: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

99

68 80,92 114,10 67,36 101,95 182,87

69 173,84 203,16 50,22 177,45 351,29

70 158,53 163,95 215,77 180,43 338,96

71 71,31 101,50 103,37 101,93 173,24

72 55,54 80,74 220,19 94,08 149,62

73 59,18 98,30 101,73 100,53 159,72

74 54,04 114,60 92,34 103,84 157,88

75 81,10 105,57 89,91 104,39 185,48

76 153,86 197,15 97,80 157,61 311,48

77 137,99 163,87 132,93 145,57 283,56

78 72,58 94,57 74,88 85,96 158,55

79 54,49 84,35 235,39 92,78 147,27

80 71,76 109,13 134,79 118,06 189,82

81 42,50 101,92 138,06 116,46 158,96

82 86,76 113,98 106,33 110,51 197,27

83 124,78 197,25 132,06 158,46 283,24

84 139,03 192,21 209,08 195,64 334,67

85 51,29 134,36 132,71 133,65 184,94

86 57,42 105,36 153,79 117,62 175,04

87 59,73 113,15 116,88 115,42 175,15

88 52,66 114,07 76,63 94,44 147,09

89 74,20 130,70 101,70 124,26 198,46

90 163,55 221,79 119,67 198,83 362,38

91 147,43 194,13 122,65 177,16 324,59

92 57,07 117,92 109,16 113,23 170,30

93 52,15 98,47 216,41 102,78 154,92

94 61,32 114,33 111,90 113,69 175,01

Page 114: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

100

95 44,37 116,15 95,74 105,98 150,35

96 89,12 126,78 104,16 124,95 214,07

97 152,39 220,23 87,41 170,09 322,48

98 168,10 192,96 144,54 164,60 332,71

99 41,29 98,53 115,15 104,67 145,96

100 42,12 92,87 105,34 100,15 142,26

101 75,10 135,11 179,05 150,22 225,32

102 45,90 101,74 72,36 86,56 132,46

103 87,67 129,82 116,40 124,13 211,80

104 122,03 199,17 108,90 138,08 260,11

105 188,82 303,33 130,25 236,26 425,07

106 43,64 118,89 167,70 130,58 174,22

107 50,30 89,22 147,36 104,60 154,90

108 49,90 145,77 100,22 130,72 180,62

109 47,33 116,39 192,35 134,09 181,42

110 97,62 139,67 98,21 131,95 229,57

111 173,83 221,13 115,32 153,23 327,07

112 162,88 238,10 184,25 216,01 378,89

113 61,37 97,97 142,19 133,05 194,42

114 56,31 90,78 142,38 101,33 157,64

115 52,91 122,01 124,77 122,33 175,24

116 48,06 123,63 122,50 123,06 171,11

117 94,68 130,10 131,44 131,24 225,92

118 138,82 230,54 164,79 196,77 335,59

119 174,18 272,41 218,34 245,57 419,75

120 61,20 109,14 134,93 121,88 183,08

121 49,04 104,06 219,82 193,34 242,38

Page 115: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

101

122 56,87 121,11 131,32 129,36 186,23

123 44,60 129,91 164,23 143,14 187,74

124 71,31 118,03 56,22 110,28 181,58

125 152,70 217,83 131,39 185,17 337,87

126 157,80 213,07 79,10 165,26 323,05

127 53,65 106,46 165,41 117,75 171,40

128 53,34 108,34 158,89 119,92 173,26

129 56,23 122,89 111,63 121,44 177,68

130 43,55 119,67 95,74 103,35 146,90

131 70,93 122,79 172,22 139,67 210,60

132 146,84 213,58 130,92 194,05 340,89

133 134,83 191,73 133,71 154,66 289,48

134 60,97 98,29 158,35 117,66 178,63

135 54,95 94,25 200,49 121,71 176,66

136 61,69 124,36 80,42 111,68 173,37

137 44,65 106,18 52,82 101,04 145,69

138 84,64 111,44 132,95 116,36 201,00

139 95,60 224,29 147,50 176,43 272,03

140 143,13 180,01 205,01 184,53 327,66

141 34,22 91,86 157,73 113,79 148,01

142 41,88 75,60 141,17 128,55 170,43

143 64,72 113,51 221,27 156,82 221,54

144 32,96 98,67 86,06 94,74 127,71

145 77,84 98,55 108,43 100,49 178,33

146 116,59 196,50 62,72 157,50 274,09

147 125,03 194,19 109,30 142,42 267,45

Page 116: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 117: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

103

ANEXO G: GRÁFICAS DE RESULTADOS

-100

-50

0

50

100

150

200

250

300

350

17 24 31 38 45 52 59 66 73 80 87 94 101 108 115 122 129 136 143

went

plent

ent_prev

Page 118: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

104

0

50

100

150

200

250

300

17 24 31 38 45 52 59 66 73 80 87 94 101 108 115 122 129 136 143

ent_prev

obent

Page 119: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

Estimación de afluencia a eventos multitudinarios mediante modelo de Winters y programación lineal

105

0

50

100

150

200

250

300

350

400

450

17 24 31 38 45 52 59 66 73 80 87 94 101 108 115 122 129 136 143

prevtot

obtot

Page 120: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios
Page 121: Trabajo Fin de Grado Grado Ingeniería en Tecnologías ...bibing.us.es/proyectos/abreproy/90332/fichero/MEMORIA_CarlosUrib… · Estimación de afluencia a eventos multitudinarios

107

BIBLIOGRAFÍA

[1] S. C. W. y. R. J. H. Spyros Makridakis, Forecasting: Methods and applications, vol. 2, Wiley.

[2] J. G. L. Luis Onieva, Metodos modernos de gestión de la producción, Alianza Universidad Textos, 1988.

[3] F. J. Ceballos, Enciclopedia de Visual Basic, Ra-Ma.

[4] J. E. M. d. Cervalho, Visual Basic, McGraw-Hill.

[5] D. M. G. a. B. W. K. Robert Fourer, AMPL: A Modeling Language.