Caso de estudio: Modelos de Markov

Introducción y visión general del problema de decisión

Este estudio de caso amplía nuestra evaluación de las lesiones por fuegos artificiales mediante un modelo de cohortes de Markov en tiempo discreto. Mientras que el árbol de decisión que construimos ayer proporcionaba resultados y costos inmediatos para diversas estrategias, el modelo de Markov ofrece ventajas significativas para examinar las repercusiones a largo plazo sobre la salud y los costos.

Nuestro modelo de Markov nos permitirá captar la progresión de las lesiones relacionadas con los fuegos artificiales a lo largo de un periodo prolongado, lo que nos permitirá considerar las implicaciones a largo plazo. Al modelizar los eventos lesionales y las transiciones entre diferentes estados de salud a lo largo del tiempo, podemos comprender mejor los efectos crónicos de las lesiones y los beneficios a largo plazo de las estrategias de intervención.

Este enfoque proporcionará una evaluación más completa de las repercusiones sanitarias y económicas a lo largo de la vida de las estrategias propuestas, teniendo en cuenta factores como los costos sanitarios a largo plazo, los cambios en las tasas de lesiones y los niveles de cumplimiento. La capacidad del modelo de Markov para incorporar estos horizontes más amplios y los sucesos recurrentes proporcionará una visión más profunda de los enfoques más eficaces y sostenibles para mitigar las lesiones relacionadas con los fuegos artificiales en Colombia.

1. Modelo vivo-muerto

Empezaremos por construir un modelo de Markov sencillo que represente sólo dos estados de salud: “Vivo” y “Muerto”. Supondremos que los individuos pueden pasar de un estado a otro en función de las probabilidades de supervivencia calculadas a partir de los datos demográficos de la tabla de vida de Colombia. Una vez que validemos que podemos replicar con éxito la esperanza de vida desde el nacimiento, podemos empezar a aumentar el modelo con lesiones, estrategias, costos, etc. de los fuegos artificiales.

Estructura de Markov: Vivo-Muerto

La estructura del modelo de Markov para el modelo Vivo-Muerto se muestra en la siguiente figura. Amua tiene un nodo de Markov especial (representado por ). Las ramas que salen de un nodo de Markov designan todos los estados de Markov (y sólo los estados de Markov).

En este ejemplo, hay dos estados de salud: (1) Vivo, (2) Muerto. A partir de cada estado de salud, se puede crear un subárbol (también llamado árbol de ciclos) que refleje los eventos que pueden ocurrir durante un ciclo. La última rama al final de cada camino será una transición de estado, que define a qué estado de salud se pasará en el siguiente ciclo.

Note

Tenga en cuenta que en un modelo de Markov, los resultados se definen en otro lugar - NO al final de la rama, sino en el estado.

Construir el árbol

Estructura

Después de abrir Amua, haga clic en Modelo Nuevo Modelo de Markov.

  • Guarde su modelo desde el principio.

  • Ahora selecciona el nodo de decisión Custom Icon, Haz clic con el botón derecho del ratón Añadir Custom Icon Cadena de Markov .

  • Empiece por desarrollar la estructura del modelo de Markov utilizando Vivo y Muerto para los diferentes estados de salud. Las ramas de la cadena de Markov deben corresponder a los estados del modelo. Etiquete la opción de nombre a la derecha del nodo de decisión como Vivo-Muerto.

Complete la estructura del modelo de Markov utilizando la información anterior. Nota: céntrate en añadir las ramas y transiciones para este paso; los parámetros se añadirán más tarde.

  • Cuando llegue al final de la rama, seleccione el nodo de azar que desea convertir en una transición de estado, haga clic derecho, seleccione Cambiar a Transición de Estado. Esto le dará la flecha azul Custom Icon . A la derecha de esta flecha, encontrará un menú desplegable con los diferentes estados de salud que haya especificado. Seleccione el estado de salud al que pasará esta parte de la cohorte.

  • Con este botón Custom Icon puede alinear los nodos finales.

Tamaño de la cohorte y probabilidades iniciales

  • Vaya a Modelo Propiedades seleccione la pestaña Simulación. El tamaño de cohorte por defecto es 1.000. Cambie el tamaño de la cohorte a 1, para que todos los resultados sean a nivel individual (es decir, por persona).

  • En la Cadena de Markov Custom Icon , cambie las probabilidades iniciales de los estados de salud. Como todos los pacientes empiezan en el estado Vivo, cambie el p:0 de la izquierda del estado Vivo a p:1 (vea el cuadro azul de abajo).

Parámetros del modelo

En primer lugar, defina los siguientes parámetros de constante temporal para el modelo en el panel “Parámetros”.

Esta variable indica a Amua que vamos a modelizar una cohorte de recién nacidos. Sin embargo, podríamos adaptarla fácilmente para modelar una cohorte de personas de 20 años, etc.

Probabilidades de transición

La matriz de probabilidades de transición subyacente tiene la siguiente forma:

Sin embargo, como estamos modelando una cohorte de recién nacidos hasta la muerte, necesitamos incluir en el modelo probabilidades de transición de muerte que varíen según la edad (es decir, el ciclo). En otras palabras, habrá una probabilidad de muerte diferente en cada ciclo.

Important

En Amua, los inputs variables en el tiempo se operacionalizan como variables Custom Icon en lugar de parámetros.

Las variables Custom Icon pueden definirse para realizar un seguimiento de los eventos del modelo y actualizar dinámicamente las expresiones a medida que el modelo se ejecuta. Así, a diferencia de los parámetros Custom Icon que son fijos para una ejecución determinada del modelo, las variables pueden cambiar dentro de una simulación. Las variables pueden cambiar entre individuos, lo que permite modelar la heterogeneidad, o pueden cambiar con el tiempo.

Por lo tanto, definiremos p_die como una variable Custom Icon que hace referencia a valores de una tabla de consulta Custom Icon, siguiendo los pasos que se indican a continuación.

Important

Una tabla de consulta devuelve el valor que corresponde a un índice determinado. La primera columna de una tabla de consulta contiene los índices de la tabla, y pueden definirse una o varias columnas de valores de consulta. Los valores de los índices deben ser únicos y estar en orden ascendente. Hay 3 métodos de búsqueda, (1) exacto, (2) interpolar, y (3) truncar, para más detalles sobre estos métodos visite el Amua Wiki en GitHub.

Primero definimos una tabla de consulta Custom Icon tbl_death para leer la mortalidad de fondo dependiente de la edad construida a partir de las tablas de vida Colombianas.

Descarga de datos

Descargue el archivo titulado colombia-life-table-death-probabilities.csv de la página web del taller. Esta tabla contiene la probabilidad de mortalidad anual indexada por edad para Colombia. A continuación se muestra una captura de pantalla de las primeras filas de este archivo .csv. La columna index es la edad, mientras que p_die es la probabilidad anual de muerte a cada edad.

Vaya al panel “Tablas”, haga clic en Custom Icon para añadir una tabla, y debería ver una ventana “Definir tabla” (véase la captura de pantalla siguiente). Haga clic en el botón Importar Custom Icon y seleccione el archivo .csv descargado para importarlo. La tabla se redimensionará automáticamente para ajustarse a los datos importados. La primera fila del archivo se utilizará como encabezado de la tabla.

Introduzca “tbl_p_die” como nombre para esta variable. “Lookup” es el tipo de tabla por defecto (que es lo que queremos aquí). Elija “Interpolar” como método de búsqueda. Haga clic en Guardar para aplicarlo.

A continuación, podemos definir la variable variable en el tiempo p_die (que lee de la tabla que acabamos de definir y funciona como la probabilidad de mortalidad de fondo en el ciclo actual del modelo, \(t\)).

Asegúrese de crear una variable y no un parámetro. En “Variables”, haga clic en Custom Icon para añadir una variable p_die = tbl_p_die[age_initial + t, 1].

Note

La primera columna de una tabla se utiliza siempre para la indexación en las tablas. Por lo tanto, el número “1” aquí indicará en realidad la segunda columna de la tabla como valor correspondiente. También puede utilizar el nombre de la columna para leer un valor, por ejemplo, tbl_p_die[edad_inicial + t, “p_die”].

Tip

En Amua, “t” es una variable integrada que registra el número de ciclos. Se actualiza automáticamente cuando se ejecuta el modelo. Por ejemplo, en el ciclo 10 del modelo de Markov, t = 10. Por lo tanto, en la fórmula “tbl_p_die[edad_inicial + t, 1]”, edad_inicial + t será igual a la edad modelada del individuo en el ciclo t, y la fórmula completa leerá la mortalidad de fondo dependiente de la edad basada en la edad actual del individuo (en lugar de la edad inicial).

Amua utiliza por defecto un tiempo de ciclo de \(t=0\). Por lo tanto, si pulsa “Evaluar”, el campo Valor esperado debería calcular la probabilidad de muerte de un recién nacido como se muestra en la tabla de consulta .csv.

Ahora tenemos definidas todas las probabilidades de transición. Añada estas entradas a las ramas del modelo. Recuerda añadir también las probabilidades complementarias usando “C”.

Condición de terminación

  • Especifique la terminación del modelo seleccionando [terminación] y escriba t==110. Esto permitirá que su modelo funcione durante 110 ciclos, entonces el modelo terminará.

Recompensas

La recompensa por defecto en Amua es el costo. Tenemos que cambiar esto para tener la esperanza de vida (EV) como una recompensa. Ir a Modelo Propiedades seleccione la pestaña Análisis y cambie la dimensión de costo a EV. Utilice EV como símbolo y ajuste a 4 decimales.

Añada la esperanza de vida a la izquierda de cada estado de salud después de “R: (EV)”.

Aplicar la corrección de medio ciclo. Ir a Modelo Propiedades seleccione la pestaña Markov y marque la casilla Corrección de medio ciclo. Haga clic en OK para aplicar.

Ahora, hemos terminado de construir el modelo Vivo-Muerto. Analice el modelo utilizando una simulación de cohortes haciendo clic en Ejecutar Ejecutar modelo.

**Ejecuta el modelo vivo-muerto y calcula la esperanza de vida total.

2. Modelo de lesiones por fuegos artificiales

Nuestro siguiente paso es construir sobre el modelo Vivo-Muerto añadiendo una nueva probabilidad de lesión por fuegos artificiales entre los que sobreviven en cada ciclo. Recordemos las siguientes probabilidades del caso de estudio del Árbol de Decisión de Lesiones por Fuegos Artificiales:

Descripción Valor Inicial Nombre de parámetro
Probabilidad de lesión 0.0000292 p_lesión
Probabilidad de lesión mortal 0.0046 p_fatalidad

A continuación ampliaremos el modelo para incluir dos posibles sucesos:

  1. Lesión por fuegos artificiales
  2. Entre los lesionados, lesión mortal por fuegos artificiales.

Añadir Nodos de Probabilidad de Herida

Desde el estado de salud “Vivo”, convierte la flecha azul Custom Icon en un nodo de azar usando el botón de cambio de tipo Custom Icon. A partir de este nodo de probabilidad, incluya la probabilidad de que se produzca una lesión por fuegos artificiales. La probabilidad de una lesión debe basarse en un nuevo parámetro fijo llamado p_lesión.

A partir de la rama lesión, añade otro nodo de azar para saber si la lesión es mortal o no. Completa la estructura del modelo añadiendo flechas de transición al estado de salud “Vivo” si el individuo no tiene ninguna lesión o tiene una lesión no mortal por fuegos artificiales. Añade una flecha de transición al estado de muerte si el individuo muere a causa de su lesión por fuegos artificiales.

El árbol de Markov debería tener este aspecto:

Añadir Lesiones y Lesiones Mortales como Resultados

A continuación, añada los resultados de lesiones por fuegos artificiales (INJ) y lesiones mortales por fuegos artificiales (FINJ) al modelo (Modelo Propiedades Análisis ).

A continuación, tenemos que añadir un “rastreador” de una sola vez para registrar cada instancia en la que un miembro de la cohorte es herido y fatalmente herido. Podemos hacerlo haciendo clic-derecho en el nodo de azar después de “Herida de Fuego”, y luego haciendo clic en Custom Icon Add Cost.

**Añade a tu árbol de Markov los resultados de cualquier lesión (LES) y de las lesiones mortales (MORT).

Cambiar el tamaño de la cohorte

Nuestro modelo actual está estructurado para un tamaño de cohorte de 1 individuo. Esto suele ser útil, especialmente para calcular la esperanza de vida como resultado, pero utilizar otros tamaños de cohorte puede ser útil para producir información relevante para la toma de decisiones políticas.

Ahora cambiaremos el modelo de modo que capturemos la experiencia vital de una cohorte de 100.000 recién nacidos. Esto nos permitirá modelizar el número esperado de lesiones totales y mortales por fuegos artificiales a lo largo de la vida para una cohorte grande y, finalmente, ver cómo disminuye el número total de lesiones a lo largo de la vida bajo diferentes opciones políticas.

  • Ir a Modelo Propiedades seleccione la pestaña Simulación. Cambie el tamaño de la cohorte a 100.000.
Tip

Su resultado de esperanza de vida (EV) devolverá ahora el total de años de vida esperados para una cohorte de 100.000 personas. Para obtener un resultado de esperanza de vida estándar, puede redefinir el “resultado” para el resultado EV como \(1/100000\).

Apply Half-Cycle Correction

  • Aplicar corrección de medio ciclo. Vaya a Modelo Propiedades seleccione la pestaña Markov y marque la casilla Corrección de medio ciclo. Haga clic en Aceptar para aplicarla.

Ejecutar el Modelo

Verifique que su modelo es capaz de funcionar haciendo clic en el botón Custom Icon check model. Una vez corregidos todos los errores, Custom Icon ejecute el modelo.

Después de ejecutar el modelo, verá los resultados esperados en la parte inferior de la pantalla. Esta información nos dice que la esperanza de vida total es de 77,04 años y que se esperan 222,07 lesiones por fuegos artificiales y 1,02 lesiones mortales por cada 100.000 recién nacidos en Colombia.

Amua también mostrará una nueva ventana con una figura y una tabla de hoja de cálculo. La figura muestra el número total de personas de la cohorte en cada estado de salud (“Vivo” y “Muerto”) en cada ciclo del modelo. La tabla de la hoja de cálculo contiene la información trazada (en las columnas “Vivo” y “Muerto”), así como los cálculos específicos de cada ciclo para la esperanza de vida y el recuento de lesiones.

Las columnas que empiezan por Cum_ son recuentos acumulados de cada resultado. El resultado que se muestra a continuación, por ejemplo, indica que en el ciclo \(t=20\) (que corresponde a la edad=20 de nuestra cohorte), se prevén 58.951 lesiones relacionadas con fuegos artificiales en nuestra cohorte de 100.000 recién nacidos.

Probabilidades de lesión dependientes de la edad

El modelo anterior se construyó con una única probabilidad de lesión fija (0,0000292). En esta sección, modificaremos nuestro modelo para permitir que la probabilidad de lesión varíe en función de la edad.

Nuestros colegas han calculado la siguiente tabla que resume la probabilidad de lesión por fuegos artificiales según el grupo de edad:

age

p_injury

0

0.00000759144

4

0.00000759144

9

0.00003007530

14

0.00005061400

19

0.00005131960

24

0.00005054530

29

0.00004356370

34

0.00003462230

39

0.00002484560

44

0.00001977440

49

0.00001652430

54

0.00001478010

59

0.00000575704

64

0.00000875774

69

0.00000851172

74

0.00000639868

79

0.00000474151

84

0.00000325532

110

0.00000261095

Añadir la tabla de búsqueda de probabilidades de lesión

Al igual que hicimos anteriormente con las probabilidades de mortalidad por edad, descargue el archivo de datos cases-by-age.csv del sitio web del taller.

Vaya al panel “Tablas”, haga clic en Icono personalizado para añadir una tabla, y debería ver una ventana “Definir tabla” (véase la captura de pantalla siguiente). Haga clic en el botón Importar Custom Icon y seleccione el archivo .csv descargado para importarlo. La tabla se redimensionará automáticamente para ajustarse a los datos importados. La primera fila del archivo se utilizará como encabezado de la tabla.

Introduzca “tbl_p_injury” como nombre para esta variable. “Lookup” es el tipo de tabla por defecto (que es lo que queremos aquí). Elija “Interpolar” como método de búsqueda. Haga clic en Guardar para aplicar.

Important

Amua también puede incluir filas en blanco adicionales cuando importa la tabla. Antes de continuar, elimine todas las filas en blanco haciendo clic en la fila y, a continuación, utilizando el botón Custom Icon situado junto a “Rows” (vea los rectángulos rojos a continuación).

Definir una probabilidad de lesión específica por edad

A continuación, podemos definir la variable en el tiempo variable p_injury_t (que lee de la tabla que acabamos de definir y opera como la probabilidad de mortalidad de fondo en el ciclo actual del modelo, \(t\)).

Asegúrese de crear una variable y no un parámetro. En “Variables”, haga clic en Custom Icon para añadir una variable p_injury_t = tbl_p_injury[age_initial + t, 1].

Vuelva a ejecutar el modelo utilizando probabilidades de lesión específicas para cada edad. ¿Cómo cambia el número esperado de lesiones totales y mortales respecto a cuando utilizamos las probabilidades fijas anteriores?

3. Añadir escenarios de regulación y prohibición

Al igual que en el caso práctico del Árbol de decisiones, añada dos estrategias adicionales destinadas a reducir la probabilidad de lesiones:

Tip

Recuerda que puedes “copiar” y “pegar” árboles para reducir la cantidad de trabajo que tienes que hacer.

Descripción Valor Inicial Nombre de parámetro
Reducción relativa del riesgo: probabilidad de lesión en la hipótesis de la política “Ban 0.40 rr_lesión_prohibir
Reducción relativa del riesgo: probabilidad de lesión en el escenario político “Regular 0.80 rr_lesión_regular

4. Añadir consecuencias a largo plazo

Añada nodos de azar (tras la lesión inicial) y estados de salud a largo plazo (cadena de Markov) correspondientes a la recuperación frente a las secuelas de la lesión:

Description Base Case Value Parameter Name
Probabilidad de lesiones graves 0.30 p_grave
Probabilidad de lesión leve o moderada 0.70 p_mod
Probabilidad de recuperación: Lesión leve/moderada 0.85 p_recuperar_mod
Probabilidad de recuperación: Lesión grave 0.1 p_recuperar_grave