Este es el repositorio con el contenido del curso en simulación de la licenciatura en Actuaría del ITAM impartido por el Prof. Alfredo Garbuno.
Este el curso de EST-24107: Simulación
. Lo conoceremos como simulación estocástica
o cuantificación de incertidumbre
.
El curso se imparte en el plan de estudios de Actuaría (sexto semestre
).
Esta materia también es ofrecida de manera simultánea para alumnos en las
licenciaturas de matemáticas aplicadas, ciencia de datos y economía como materia
optativa.
El objetivo del curso es introducir al estudiante a distintos métodos de simulación
de variables aleatorias. Esto con la intención de aprender y conocer
herramientas útiles y bien fundamentadas que pueden utilizarse en distintas
aplicaciones en matemáticas aplicadas, actuaría, estadística o ciencia de
datos.
El curso, además, utilizará distintas herramientas computacionales para brindar al estudiante un marco de trabajo reproducible. Al final del curso, lxs estudiantes tendrán las competencias para:
implementar
principios de modelado estadístico de ciertos fenómenos relevantes en el quehacer de un científico aplicado;- ser capaces de
interpretar
resultados computacionales basados en simulación estocástica; apreciar
la necesidad de un ambiente reproducible de entrega de resultados; por nombrar algunas.
El curso en particular utilizará herramientas de código abierto: R
como
lenguaje de programación y GitHub
como gestor de entrega y avance de tareas y
trabajos.
El curso está pensando para cursarse después de haber acreditado Cálculo de Probabilidades II
(o equivalente). Sin embargo, se aprovechará mejor si se
lleva a la par junto con Procesos Estocásticos I
y Estadística Matemática
(o
equivalentes).
El temario para el semestre de Otoño 2023 se puede encontrar aqui. Este es un plan preliminar que está sujeto al avance del curso a lo largo del semestre.
En el curso estudiaremos métodos de simulación estocástica
con el fin de
explorar realizaciones aleatorias de modelos de probabilidad. Esto nos permitirá:
Explorar
de manera computacionaldistribuciones de probabilidad generales
.- Resolver problemas numéricos de
integración
. - Resolver problemas numéricos de
optimización
.
El enfoque del curso es poder utilizar lo que sabemos de modelado probabilístico y utilizarlo en tareas donde es necesario cuantificar la incertidumbre expresada en dicho modelo. Además de cref:fig-uq
No hay un libro que utilice la misma línea argumentativa que seguiremos en el curso, pero secciones se tomarán de [cite:@Glasserman2013;@Robert2013a;@Efron1993].
El repositorio tiene la siguiente estructura:
.
├── docs # Handouts de las notas de clase.
├── images
├── notas # Código fuente que utilizo para generar las notas.
├── renv # Archivos de estructura del proyecto.
└── rscripts # Scripts de R con el código de clase.
5 directories
Las notas y el material estará construido a partir de R. En particular,
utilizaremos algunas herramientas del tidyverse como herramienta de programación
dentro de R
. Esto ofrece un ambiente unificado de distintas librerías enfocadas
al manejo de estructura de datos y visualizaciones, lo cual será muy útil para
las aplicaciones de nuestro curso.
En particular utilizaremos:
- tibble para estructura de datos.
- dplyr para manipular las estructuras de datos.
- tidyr para manipular estructuras tabulares de datos.
- purrr para tener una ambiente funcional de programación.
- ggplot2 para crear visualizaciones con una gramática.
- rsample para utilizar técnicas de remuestreo.
Como herramienta de trabajo se sugiere utilizar Rstudio Visual Studio Code para
poder trabajar en sus proyectos y sus tareas. En particular, el material de
clase es editado en GNU Emacs a través de orgfiles
(archivos de texto plano con
sufijo .org
) pero pueden ser visualizados en Github
.
Importante: Es necesario tener instalada la versión 4.3.1
de R
para tener la mejor
compatibilidad con el código del curso.
Utilizaremos renv
para mantener actualizada las herramientas de R
junto con el
contenido del curso. En la carpeta se encuentran los archivos de requerimientos
(renv.lock
) con el que podrán usar los archivos que se vayan decantando en la
carpeta rscripts
. Aún asi, la configuración se irá construyendo en los
ejercicios de tarea que vayamos utilizando en el curso.
Si utilizas MacOS
o alguna distribución Linux
se recomienda escribir en el
archivo ~/.Renviron
la siguiente línea lo cual mantendrá el cache de renv
en un
lugar centralizado
RENV_PATHS_ROOT=~/.renv
Mi idea de ambiente computacional es el que se puede reproducir en cualquier
sistema operativo. Para esto Docker
es la herramienta ideal y el uso de los
Codespaces
de GitHub ha resultado increíble para una solución dentro de un
ámbito educativo.
Para la imagen agarbuno/simulacion
consideren que:
- El tag
notas
basado en una distribución linux en una emulación con un procesadorIntel
, tiene la configuración mínima necesaria para poder reproducir el ambiente de cómputo para poder ejecutar el material del curso
Esto no les puede decir mucho, pero básicamente con el combo
Docker
+ Visual Code Studio
, ¡tod@s tenemos la misma computadora para trabajar! 🥲.
Y si lo quieren correr en la nube entonces: Docker
+ Visual Code Studio
+ Github Codespaces
🥲 $× 1078$.
Importante
: No espero que sepan reproducir ustedes la configuración del ambiente de
trabajo. Si les interesa podemos organizar una sesión para discutir esto a profundidad.
Lo importante es que lo sepan utilizar en su computadora o en un explorador de internet.
Esto es, que pueden utilizarlo para las prácticas del curso.