Skip to contents

Lleva el ajuste nacional a las ubicaciones subnacionales (departamentos, regiones, provincias...): desplaza la incidencia y la mortalidad en exceso de cada simulación según la diferencia entre el valor de cada covariable en la ubicación (su proxy) y el nacional, por su beta; vuelve a resolver la ecuación de la prevalencia en cada ubicación y renormaliza para que la suma ponderada por población de las ubicaciones sea igual al valor nacional. Con la estimación subnacional plana (subnacional.modo: plano), cada ubicación recibe las tasas nacionales. Con el reparto por razón (subnacional.modo: razon) la cascada es también la plana, y dl_repartir_razon() reemplaza las tasas subnacionales después de los AVD.

Usage

dl_cascada(
  ajuste,
  insumos,
  kappa = insumos$cfg$cascada$kappa,
  semilla,
  motor = ajuste$params$engine
)

Arguments

ajuste

Ajuste nacional de dl_ajustar().

insumos

Insumos de dl_insumos() (los mismos del ajuste).

kappa

Fracción del gradiente subnacional que se aplica, en (0, 1] (\(\kappa\)); por defecto, la de la configuración (subnacional.kappa).

semilla

Semilla (entero), obligatoria: el resultado es reproducible con la misma semilla.

motor

"mh" (R) o "rcpp" (C++) para resolver la ecuación; por defecto, el del ajuste.

Value

Objeto de clase dl_cascade (también dl_fit): el ajuste nacional, con los campos de dl_ajustar(), y

  • draws_q: las simulaciones de la nación y de cada ubicación subnacional (las mismas columnas), ya renormalizadas; draws_q_sin_renorm: las de antes de renormalizar.

  • dX: tabla con la diferencia de cada covariable por simulación (draw), location_id, sex_id, age_group_id (la banda del proxy) y covariate_name_short; vacía en la estimación plana.

  • renorm: tabla con el factor de renormalización (factor) por medida (prevalence o incidence), sex_id, age_group_id y draw.

  • kappa, departamentos (los location_id subnacionales; el nombre se conserva de la versión 0.2.2), seed_cascada (la semilla) y modo ("proxy" o "plana").

  • truncados_emr: cuántas simulaciones subnacionales (por sexo) tuvieron la mortalidad en exceso truncada al techo.

  • dx_por_edad: cómo se repartió dX entre las edades (fuera_de_banda, interpolacion y edades_sin_banda); NULL en la estimación plana.

  • sustituciones: en el formato completo, las covariables cuyo valor nacional de referencia es el de otra covariable (covariables[].sustituye), con los dos covariate_id; NULL si ninguna.

Details

Para cada sexo, simulación y ubicación subnacional d:

  1. dX: la diferencia entre la covariable en d y la nacional, en la escala de su transformación (log, logit o lineal), con una simulación de cada una según su incertidumbre.

  2. En cada edad, log i (o log f, según efecto_sobre) de d es el nacional más kappa x beta x dX, sumado sobre las covariables; log f no pasa del techo de la mortalidad en exceso. Con la mortalidad en exceso fija en 0 (mortalidad_exceso.prior: cero), f es 0 en toda ubicación y las covariables con efecto_sobre: mortalidad_exceso no tienen efecto.

  3. Con esas tasas se vuelve a resolver la ecuación de la prevalencia.

  4. Renormalización, por sexo, banda de población y simulación: la prevalencia (y la incidencia poblacional) de cada ubicación se multiplica por el factor que hace que su suma ponderada por población sea la nacional.

Las betas se simulan de su intervalo, una vez por simulación. kappa (en (0, 1]) aplica una fracción del gradiente: con 1, el gradiente completo; con menos, las ubicaciones quedan más cerca de la nación. Las ecuaciones están en vignette("el-modelo", package = "dismodlite").

See also

dl_ajustar() (el paso anterior), dl_estimaciones(), dl_avd() y dl_validar_ancla() (los pasos siguientes) y dl_proyecto() (los proxies y su requisito de cierre en el valor nacional).

Estimación subnacional: dl_repartir_razon()

Examples

# \donttest{
b <- dl_insumos(dl_proyecto(dl_ejemplo(), causa = 9100))
#> dl_insumos(): 25 fila(s) nacionales de la tabla datos quedan fuera del ajuste porque datos_en_ajuste está vacío en la configuración; las filas subnacionales se usan solo para validar la cascada
op <- dl_opciones_mcmc(simulaciones = 100, cadenas = 2, iteraciones = 2000, calentamiento = 1000)
f <- dl_ajustar(b, op, semilla = 1)
cas <- dl_cascada(f, b, semilla = 1)
cas
#> <dl_cascade> cascada subnacional por proxies | kappa 1.00 | 25 ubicaciones subnacionales | factor de renormalización [0.933, 1.029] | simulaciones subnacionales con la EMR truncada al techo: 0
#> <dl_fit> insumos 0e52c7277b9a | semilla 1 | motor mh
#>   sexos: 1, 2 | simulaciones por sexo: 100 | edades 30-99
#>   R-hat máximo 2.306 | ESS mínimo 11 | aceptación 0.26-1.00
# prevalencia de las ubicaciones subnacionales, por edad (b$loc_ancla es la ubicación nacional)
prev <- dl_estimaciones(cas)
head(prev[location_id != b$loc_ancla])
#>    location_id sex_id  edad      medida       media     inferior    superior
#>         <char>  <int> <int>      <char>       <num>        <num>       <num>
#> 1:          01      1    30 prevalencia 0.000000000 0.0000000000 0.000000000
#> 2:          01      1    31 prevalencia 0.001075617 0.0005499418 0.001855978
#> 3:          01      1    32 prevalencia 0.002158741 0.0011428881 0.003650909
#> 4:          01      1    33 prevalencia 0.003251893 0.0017790921 0.005388634
#> 5:          01      1    34 prevalencia 0.004357620 0.0024632429 0.007074119
#> 6:          01      1    35 prevalencia 0.005487855 0.0032170186 0.008727957
# con la mitad del gradiente las ubicaciones quedan más cerca de la nación: el rango de la
# prevalencia subnacional de los hombres de 60 años
rango_60 <- function(x)
  range(dl_estimaciones(x)[location_id != b$loc_ancla & sex_id == 1 & edad == 60]$media)
rango_60(cas)
#> [1] 0.03516429 0.04623325
rango_60(dl_cascada(f, b, kappa = 0.5, semilla = 1))
#> [1] 0.03673050 0.04212266
# }