• Arduino Tomasi

¿Guayas indisciplinado?

De todos los casos registrados de COVID-19 en Ecuador hasta el 28 de marzo de 2020, el 73,3% se concentran en la provincia del Guayas, y el 51,3% en la ciudad de Guayaquil. Para Lenín Moreno, presidente de la República, y para Alexandra Ocles, directora del Servicio Nacional de Riesgos, el aumento progresivo del virus se debe a la "indisciplina" de los guayaquileños de seguir las órdenes de cuarentena (ver acá y acá). En las últimas horas, la idea de un Guayaquil indisciplinado ha ido calando hasta ebullir en periodistas (ver acá) sugiriendo aislar (¿separar?) a la ciudad (¿del Ecuador?).

Gráfico 1. Evolución de contagios por provincia

Fuente: Reportes del Servicio Nacional de Gestión de Riesgos y Emergencia, 2020

La pregunta natural a analizar es:


¿Cómo sería la evolución de contagios si, en una provincia como Guayas, cada persona cooperase con las políticas de aislamiento? 

Un modelo reciente de Hjorth y Nartišs (ver acá), específico para el COVID-19, puede ser últil. Para que el modelo sea informativo a las condiciones de Ecuador, le realicé muy ligeras modificaciones a su código (al cual lo hago abierto al final).  Para aplicarlo, necesitamos cuatro insumos que podemos operacionalizar como: para una población,


  1. El network de cada persona por hogar,

  2. La cantidad de camas hospitalarias disponibles,

  3. La probabilidad de infección (la probabilidad de que un portador transmita el virus), y

  4. La frecuencia de interacción entre las personas.


Indicadores de vivienda


Como muestra la Tabla 1, en comparación con Pichincha y Azuay, Guayas está en rojo. Guayas tiene un déficit importante de servicios residenciales básicos —i.e. "viviendas particulares que no reciben agua por red pública dentro de la vivienda, que no tienen conexión a red de alcantarillado, y no poseen suministro eléctrico público" (SiCES, 2017).

Tabla 1. Indicadores varios de vivienda

Existe también alta pobreza medida por necesidades básicas insatisfechas —i.e. viviendas "que no satisfacen una o más de las necesidades consideradas básicas [por ejemplo, si la vivienda tiene características físicas inadecuadas, como piso de tierra]" (SiCES, 2017). Finalmente, Guayas está hacinado —i.e. "[s]e considera que un hogar está hacinado si cada uno de los dormitorios con los que cuenta sirve, en promedio, a un número de miembros mayor a tres" (SiCES, 2017).


Vis-à-vis la propagación de contagios, la tasa de hacinamiento y de servicios básicos son de particular importancia: en el margen extensivo, un hogar hacinado debería aumentar la cantidad de personas con las que un portador interactúa (aún si este coopera con la cuarentena); y, en el margen intensivo, la falta de servicios básicos debería aumentar la probabilidad de que un portador transmita el virus —por ejemplo, porque los no infectados tienen menores posibilidades de una higiene adecuada.


Normalizando a cien la cantidad de personas, con los datos anteriores podemos pensar en una distribución de personas en casas hacinadas versus casas no hacinadas; y dadas las definiciones técnicas de hacinamiento, podemos inferir un límite inferior al tamaño del network de cada persona.

Tabla 2. Primer insumo: network por provincias y por condiciones de hacinamiento

Para derivar la probabilidad de infección, uso los datos anteriores para poner un peso al margen intensivo. En concreto, asumo que si un portador tiene un virus, la probabilidad de que contagie a alguien en su network está dada en función al déficit de servicios residenciales básicos. Por ejemplo, una persona portadora del virus que vive en nuestro Guayas normalizado a cien personas, y en un hogar hacinado, tiene una probabilidad de contagiar de 34.8%. Esto es, claramente, un límite superior  —dado que la preocupación de contraer el virus puede llevar a precauciones extras para cada ciudadano.


Indicadores de salud


Como muestra la Tabla 3, Guayas tiene menor número de camas hospitalarias por cada mil habitantes, menor porcentaje de establecimientos de salud públicos, y mayor número de establecimientos de salud privados con fines de lucro.


Tabla 3. Indicadores de salud por provincia

Para los propósitos de esta entrada, nos compete simplemente la cantidad de camas a las que tiene acceso cada ciudadano de cada provincia. Para nuestra problación de cien personas para la simulación, no es obvia la efectividad que a nivel agregado debería tener cada cama. Dado que el INEC mide el número de camas por cada mil habitantes, puedo interpretar esto como cada provincia teniendo un distinto umbral de saturación. Por ejemplo, para Guayas, el sistema se desabastece si el 0,16% de la población se enferma y requiere hospitalización. Para nuestro modelo de cien personas, esto significaría que el sistema se satura si dos personas se enferman y requieren hospitalización simultáneamente. Para el segundo insumo, asumo que la cantidad de camas es (a nivel mínimo), 1.6*2 para Guayas, 2.2*2 para Pichincha y 1.8*2 para Azuay.


Finalmente, fijo la probabilidad de interacción entre personas a un 15% dada la política de cuarentena   — 5% menos que Hjorth y Nartišs (2020). Aquí una simulación de la proporción de contagios, bajo el supuesto de un Guayas "disciplinado".


Gráfico 2. Simulación: Evolución en proporción de contagios


El mensaje es simple: la misma medida para provincias que son estructuralmente distintas, va a tener diferentes niveles de efectividad. ¿Previeron esto los políticos?


Nota 1: Abajo un ejemplo del network generado aleatoriamente con los insumos, que da cuenta de las posibilidades de propagación dadas las diferencias en hacinamiento.


Gráfico 3. Network generado para la simulación


Nota 2: En cuanto al código, la única diferencia con Hjorth y Nartišs (2020, acá) es añadir diferencias de networks entre personas para permitir hacinamiento.


turtles-own [
  infected?
  infected-on
  sick?
  hospital?
  immune?
]
breed [people a-person]
breed [people2 a-person2]
globals [
  pen-color
  exp-risk
  exp-interaction
  max-sick-proportion
  max-hospitalization
  max-hospital-occupation
  ]

to setup
  ca
  create-people number-of-people [
    setxy random-xcor random-ycor
    set infected? false
    set sick? false
    set immune? false
    set color blue
    set shape "person"
  ]
  repeat count people * avg-relationships-per-person [
    ask one-of people [
      create-link-with min-one-of other people with [not member? self [link-neighbors] of myself] [distance myself]
    ]
  ]
   create-people2 number-of-people2 [
    setxy random-xcor random-ycor
    set infected? false
    set sick? false
    set immune? false
    set color blue
    set shape "person"
  ]
  repeat count people2 * 6 [
    ask one-of people2 [
      create-link-with min-one-of other people with [not member? self [link-neighbors] of myself] [distance myself]
    ]
  ]
  set exp-interaction 0
end

to setup-experiment
  reset-ticks
  set max-sick-proportion 0
  set max-hospitalization 0
  set max-hospital-occupation 0
  if exp-interaction != probability-of-interaction [
    set pen-color 12 + (6 * probability-of-interaction) / 100
  ]
  ask people [
    set infected? false
    set immune? false
    set sick? false
    set hospital? false
    set infected-on 0
    set color blue
  ]
  ask people2 [
    set infected? false
    set immune? false
    set sick? false
    set hospital? false
    set infected-on 0
    set color blue
  ]
  set-current-plot "Infected"
  create-temporary-plot-pen (word "Interaction: " probability-of-interaction)
  set-plot-pen-color pen-color
  plot-pen-down
  set exp-interaction probability-of-interaction
  ask one-of people [
    set infected? true
    set color 45
    set infected-on ticks
  ]
    ask one-of people2 [
    set infected? true
    set color 45
    set infected-on ticks
  ]
end

to go
  if not any? turtles with [sick?] and not any? turtles with [infected?] [
    plot-pen-up
    plotxy 1 0
    stop
  ]
  ask people with [(infected? or sick?) and not hospital?] [
    ask my-links with [random 100 < probability-of-interaction] [
      if random 100 < probability-of-infection [
        ask other-end [
          if not infected? and not immune? and not sick? [
            set infected? true
            set infected-on ticks
            set color 45
          ]
        ]
      ]
    ]
  ]
    ask people2 with [(infected? or sick?) and not hospital?] [
    ask my-links with [random 100 < probability-of-interaction] [
      if random 100 < probability-of-infection [
        ask other-end [
          if not infected? and not immune? and not sick? [
            set infected? true
            set infected-on ticks
            set color 45
          ]
        ]
      ]
    ]
  ]
  let current-infection  ( count ( people with [infected? or sick?] )  + count ( people2 with [infected? or sick?] ) ) / 100  
  let cur-hospital-occupation count people with [hospital?] + count people2 with [hospital?]
  let cur-require-hospitalization floor ( ( (count people with [sick?] + count people2 with [sick?] ) * require-hospitalization-pcnt )) / 100
  set max-sick-proportion max (list max-sick-proportion current-infection )
  set max-hospitalization max (list max-hospitalization cur-require-hospitalization )
  set max-hospital-occupation max (list max-hospital-occupation cur-hospital-occupation)
  ; At the end of incubation period, person turns sick
  ask people with [infected? and (ticks - infected-on) > incubation-period] [
    set infected? false
    set sick? true
    set color red
  ]
    ask people2 with [infected? and (ticks - infected-on) > incubation-period] [
    set infected? false
    set sick? true
    set color red
  ]
  ; Recovery gives infinite immunity
  ask people with [sick? and (ticks - infected-on) > (recovery-time + incubation-period)] [
    set sick? false
    set immune? true
    set hospital? false
    set color gray
  ]
    ask people2 with [sick? and (ticks - infected-on) > (recovery-time + incubation-period)] [
    set sick? false
    set immune? true
    set hospital? false
    set color gray
  ]
  ; Only some sick persons require hospitalization
  let cur-to-hospital 0
  if (cur-require-hospitalization - cur-hospital-occupation) > 0 [
    set cur-to-hospital cur-require-hospitalization - cur-hospital-occupation
  ]
  ask n-of cur-to-hospital people with [sick?] [
    if cur-hospital-occupation < hospital-beds [
      set hospital? true
      set color lime
      set cur-hospital-occupation cur-hospital-occupation + 1
    ]
  ]
  plotxy ticks current-infection
  tick
end

14,318 vistas4 comentarios