**Fundamentos**
MCVA
Fernando Sancho Caparrini
---
# Sobre la Modelización Computacional
---
## Introducción
1. La Modelización Computacional ayuda a:
- *extraer valor de los datos*,
- *plantear preguntas* sobre los comportamientos observados, y
- utilizar las respuestas para *comprender*, *diseñar*, *gestionar* y *predecir*.
2. Herramienta esencial para analizar y explicar *Sistemas Complejos*:
- facilita la toma de decisiones,
- *visualiza*, *predice*, *optimiza*, *regula* y *controla* sistemas que se resisten a modelados convencionales.
3. *Los modelos son siempre simplificaciones*, sacrifican algo del mundo real:
- difícil saber a priori de *qué prescindir* y *qué introducir*,
- parte del objetivo de modelar: *aprender a seleccionar*.
4. *Los modelos deben tener la complejidad justa*.
---
## Objetivos
1. Desmitificar las complejas tecnologías en evolución para repensar el modo en que estas tecnologías emergentes tienen importantes repercusiones en la sociedad.
2. Identificar los posibles sistemas de control y puntos de equilibrio necesarios para maximizar los efectos beneficiosos de estas tecnologías y minimizar los daños potenciales.
3. Ofrecer recomendaciones para maximizar los efectos beneficiosos que estas tecnologías pueden tener en la implementación de políticas, prestación de servicios y desarrollo.
---
# Porqué Modelar
---
## Introducción
Un mundo cada vez más complejo necesita modelos cada vez más sofisticados.
!!!
*Un modelo es cualquier representación o concepto que ayuda a entender el mundo* cuando el sentido común o las observaciones directas son inadecuadas o imposibles.
!!! Tip
La modelización computacional es una colección de herramientas muy diversas (a veces, con pequeñas diferencias), por lo que es importante saber *cuál*, *cuándo* y *para qué* usar cada una.
Tomar las decisiones adecuadas al diseñar un modelo es tan importante como los aspectos más técnicos de su desarrollo.
---
## Qué son los modelos
1. Un modelo es cualquier estructura que utilizamos para conocer un fenómeno.
2. Construir un modelo obliga a explicitar sus supuestos y límites.
!!!
*Los modelos computacionales se construyen a partir de algoritmos* que actúan para representar los fenómenos analizados. Estas representaciones codifican las relaciones matemáticas, lógicas o causales clave que son observadas en el fenómeno.
---
## Porqué es importante ahora
Nuevos retos vienen acompañados de nuevas oportunidades:
- Creciente disponibilidad de datos.
- Mejora de tecnología y potencia computacional.
- Simulaciones aplicables a cuestiones teóricas, sociales, ecológicas y económicas.
- Aprendizaje Automático que crea nuevos tipos de conocimiento y predicción.
- Técnicas de visualización/comunicación que acercan los modelos a los usuarios.
!!! Error: Método Científico
¿Modificar el propio Método Científico (inalterado desde hace más de 300 años) para incluir el modelado computacional como nueva etapa en el ciclo de trabajo?
---
## ¿Cuándo necesitamos un modelo computacional?
- *La complejidad del sistema* hace que sea difícil predecir evolución, riesgos y consecuencias del fenómeno.
- Es *inviable o poco ético hacer experimentos* con el sistema real.
- Es necesario *integrar conocimientos fiables de diferentes fuentes*.
- Es necesario conectar puntos de vista heterogéneos o teorías no unificadas.
!!!
Construir un modelo puede ser un gran esfuerzo, no tenerlo puede ser peor.
---
## Finalidad de un modelo
| Propósito del modelo | Características esenciales | Riesgos particulares |
| ------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| **Predicción**| Anticipa datos desconocidos.| Condiciones de aplicación poco claras. |
| **Explicación**| Utiliza mecanismos plausibles para ajustarse a los datos de una manera bien definida. | *Fragilidad*: pequeños cambios en la configuración provocan un mal ajuste a los datos explicados. |
| **Comprensión de la Teoría** | Establece sistemáticamente las consecuencias de algunos mecanismos. | Errores en la especificación del modelo; cobertura inadecuada de las posibilidades. |
| **Ilustración**| Muestra una idea con claridad.| Sobreinterpretación para hacer afirmaciones teóricas o empíricas. |
| **Analogía**| Se ajusta al fenómeno de forma plausible pero flexible y proporciona nuevas ideas. | Confusión entre idea y verdad: este modelo no apoya las afirmaciones empíricas. |
---
### Predicción o pronóstico
!!! Tip
Para asegurarse de que un modelo predice bien:
- Los aspectos a predecir deben estar bien descritos y ser adecuados.
- Debe probarse en casos en los que haya predicho con éxito datos desconocidos.
- Debe quedar claro qué aspectos predice, cuándo puede utilizarse, con qué precisión lo hace, y cualquier otra advertencia que deba conocer el usuario del modelo.
- Debe distribuirse su especificación para que otros puedan comprobarlo y evaluar su grado de predicción.
Los modelos de **caja negra** pueden ser útiles, pero también son arriesgados, porque la base de su poder predictivo es opaca.
---
### Explicación o exploración
!!!
Explicar significa establecer una posible cadena causal, desde su planteamiento hasta sus consecuencias, en términos de los mecanismos de un modelo.
!!! Tip
Para mejorar la calidad y la fiabilidad de la explicación, hay que:
- Asegurarse de que los mecanismos incorporados al modelo se relacionan con lo que se conoce sobre el fenómeno de forma clara.
- Ser transparente sobre qué aspectos de los datos objetivo se están explicando.
- Averiguar las condiciones para que la explicación sea cierta, introducir pequeños cambios en el modelo y comprobar la robustez de los resultados.
- Realizar experimentos para comprobar que la explicación es válida para el modelo.
---
### Entender la teoría
!!! Tip
Para asegurarse de que una teoría se entiende bien:
- Hay que comprobar el modelo a fondo.
- Precisar la especificación del modelo y su documentación (pública).
- Control de sensibilidad muy exhaustivo: versiones con ruido adicional.
- No exagerar lo que el modelo dice sobre el mundo observado.
---
### Ilustración o visualización
Un modelo ilustrativo suele referirse a una idea o situación concreta.
Una ilustración es sólo una ilustración: no una vía para predecir o explicar.
Lo más importante es la claridad de la ilustración, no su veracidad o integridad.
---
### Analogía
Pensar en un sistema de una manera determinada no lo convierte en realidad, pero puede aportar nuevas ideas sobre cómo podría comportarse el sistema.
---
# Creación y uso de modelos
---
## ¿Cómo conseguir un buen modelo?
*La calidad de un modelo, y la confianza en él, dependen de la calidad de su teoría subyacente y de sus datos*.
!!!
¿Cómo podemos asegurar que estamos construyendo un buen modelo?:
- claridad sobre lo que hace y cómo lo hace,
- acuerdo sobre sus suposiciones,
- fiabilidad de los conocimientos en los que se basa,
- grado de validación empírica,
- existencia de buenos procesos de garantía de calidad,
- oportunidad y aplicabilidad de los resultados,
- capacidad de mantenimiento a medida que cambia el contexto,
- eficacia de la comunicación de los resultados y de las hipótesis en las que se basan.
---
### Formular la pregunta correcta
Un modelo trata el tema adecuadamente y ayuda a formular la pregunta correcta.
Los modelos deben ser *necesarios*, es decir, deben tener un contexto y un objetivo identificados, con una base de conocimientos, usuarios y público bien entendidos, y posiblemente desarrollados dentro de un plazo determinado.
---
### ¿Quién hace qué?
1. **Comisionado**: especifica lo que se espera del modelo, proporcionar los recursos necesarios para que se construya y supervisar cómo se utiliza.
2. **Desarrolladores**: diseñan, construyen y validan el modelo.
3. **Analistas**: generan resultados a partir del modelo.
4. **Usuarios**: tienen el problema o la pregunta para la que el modelo está diseñado.
5. **Revisor**: audita el modelo y el modo en que se ha desarrollado para garantizar que cumple con las normas de calidad y es apto para el propósito. Externo al equipo.
---
### Especificar un modelo
Cuando es posible precisar para qué se va a utilizar un modelo y, por tanto, qué debe contener, se puede redactar una especificación y entregarla a un grupo de desarrolladores.
Un modelo debe ser visto como un proceso, en lugar de un resultado.
---
### Encontrar los datos
!!!
Algunas distinciones útiles para que un comisionado haga las preguntas correctas a los desarrolladores:
1. Diferenciar entre los datos para especificar y construir el modelo, los datos para comprobar el resultado del modelo, y los datos para el uso cotidiano del modelo.
2. Diferentes niveles en los que opera el modelo:
* **Nivel micro**: describe cómo se comportan los componentes más pequeños.
* **Nivel meso**: describe cómo se relacionan los componentes entre sí.
* **Nivel macro**: abarca las propiedades del sistema en su conjunto.
---
### Construir un modelo
* Especificar en detalle lo que debe hacer el modelo y luego construirlo para que se ajuste a esa especificación.
* Construir el modelo de manera iterativa: comenzar con un modelo básico y mejorarlo gradualmente verificando que se ajusta a los requisitos del problema (pueden cambiar al mejorar la comprensión del problema y del modelo).
Esencial: registrar las decisiones de diseño y documentar el proceso completo de desarrollo. Puede ser útil disponer de un sistema de control de versiones.
---
### Documentar un modelo
Un modelo será prácticamente inútil si carece de documentación:
- **Documentación del código del modelo**: en el código en forma de comentarios, y también con documentos separados destinados a los desarrolladores.
- **Documentación dirigida a los analistas**: explica cómo ejecutar el modelo, los requisitos técnicos que necesita, y la especificación de entradas y salidas.
- **Documentación para los usuarios**: presentaciones, tutoriales y guías de usuario, sin requisitos técnicos.
---
### Garantía de calidad
El proceso de validación comprueba que hemos modelado correctamente:
- Probarlo bajo condiciones conocidas para demostrar que es fiel y da los resultados esperados.
- Comprobar que hemos modelado de forma correcta y que el modelo satisface (o no) propiedades cruciales para el sistema que hemos modelado: *verificación*.
---
### Incertidumbre
La incertidumbre puede surgir de muchas maneras, y afecta a la fiabilidad de su uso:
- errores de medición o estimación,
- sucesos fortuitos inherentes al sistema que se modela,
- infravaloración de la diversidad de sucesos en un sistema,
- ignorancia sobre un proceso clave (como la forma en que las personas toman decisiones),
- interacciones caóticas en el sistema (un pequeño cambio puede modificar el comportamiento),
- la complejidad del propio comportamiento del modelo.
---
### Comunicar un modelo
Aunque el proceso de modelización aumenta en gran medida la comprensión de un problema, el verdadero valor de un modelo sólo se pone de manifiesto cuando se comunica.
El método de comunicación adecuado dependerá de la audiencia a la que se dirige.
---
### Mantenimiento
Razones para la pérdida de eficacia de un modelo:
- Los usuarios son reacios a abandonar el modelo.
- El uso del modelo ha cambiado.
- Ampliación del modelo.
---
## Protocolo de Preguntas
1. QUÉ: ¿Qué tema se va a tratar?
2. CÓMO: ¿Cómo se diseñará y construirá el modelo?
3. QUIÉN: ¿Quiénes van a participar?
4. ¿QUÉ DEBERÍAN PREGUNTAR LOS USUARIOS SOBRE UN MODELO?
---
# Técnicas de Modelización
---
## Marcos de referencia
Equilibran las múltiples perspectivas y los diferentes niveles de interés en el desarrollo y análisis del modelo:
* **Geográfico**.
* **Temporal**.
* **Física**.
* **Seguridad**.
* **Privacidad**.
* **Legal**.
* **Social**.
* **Económico**.
* **Fallo**.
---
## Técnicas de Modelización (no exhaustivo)
| | |
|---|---|
|1. Hojas de cálculo |2. Determinista/no determinista|
|3. Dinámico/estático |4. Discreto/continuo|
|5. Estocástico |6. Markoviano|
|7. Individuos/población |8. Lógica|
|9. Autómatas y modelos algebraicos |10. Sistemas complejos y emergentes|
|11. Dinámica de Sistemas |12. Teoría de Juegos|
|13. Aprendizaje automático |14. Modelización por Ensembles|
---
## Análisis de modelos
- Uno de los tipos de análisis más comunes es la **simulación**, normalmente a lo largo de un periodo de tiempo, en cuyo caso solemos decir que estamos *ejecutando* el modelo.
- Otro tipo de análisis utiliza la lógica para formular preguntas.
- La modelización de la dinámica del sistema también puede ayudar a los responsables de la toma de decisiones a explorar preguntas del tipo *¿qué pasaría si...?*, uno de los usos fundamentales en los que los modelos resultan ser irreemplazables.
---
## El papel de los datos
Los datos son observaciones que pueden aportar pruebas a un modelo. Su función depende de cómo se hayan obtenido y del objetivo del modelo.
Si estamos seguros de la estructura esencial del modelo pero no conocemos los límites de algunos parámetros podemos utilizar los datos para afinar parámetros (ajuste paramétrico).