Construye el prior informativo de la mortalidad en exceso f por sexo y banda de edad a partir del ancla. Como las muertes por la causa son csmr = f p, el prior centra log f en log(csmr / p), con la fracción aguda del csmr descontada, y propaga a log f la incertidumbre de las dos medidas:
Arguments
- insumos
Insumos de
dl_insumos()(con el ancla de mortalidad o, con el prior por tabla, con esa tabla).
Value
Tabla (data.table) con una fila por sexo y banda del ancla: sex_id, age_group_id, age_start,
age_end (la banda es [age_start, age_end)), mu_log y sd_log (media y desviación estándar de log f, con f
por persona-año). Con el prior por tabla, una fila por sexo y tramo de edad de la tabla, sin age_group_id.
Details
mu_log = log(csmr) + log(1 - fraccion_aguda) - log(p) y
sd_log = factor_sd * sqrt(sigma_p^2 + sigma_csmr^2),
donde sigma_p y sigma_csmr son las desviaciones estándar en log del ancla (sigma_log, de sus intervalos del 95 %),
fraccion_aguda es emr_prior.fraccion_aguda.valor (0 por defecto) y factor_sd es emr_prior.factor_sd.valor
(1 por defecto).
dl_ajustar() lo usa con el prior por defecto (mortalidad_exceso.prior: desde_ancla): cada nudo toma el prior
de la banda del ancla que lo contiene (un nudo fuera de las bandas, el de la más cercana, con el doble de
desviación estándar) y log f queda truncado bajo el techo de la mortalidad en exceso (mortalidad_exceso.techo o,
sin él, 3 veces el máximo de csmr / p del ancla). Con mortalidad_exceso.prior: plano el prior de log f es plano
bajo el techo y esta tabla no se usa. Con mortalidad_exceso.prior: cero la mortalidad en exceso está fija en 0,
no hay prior y esta función se detiene con un error.
Con mortalidad_exceso.prior: tabla el prior no sale del ancla: es el de la tabla prior_mortalidad_exceso del
proyecto (ver dl_tablas), y esta función la devuelve tal como entra al ajuste. Cada nudo toma el tramo de edad
que lo contiene (todos los nudos deben caer en un tramo) y log f queda truncado bajo el techo, como con el prior
del ancla: mu_log es el centro de la Normal antes de truncarla, y dl_insumos() se detiene si el de algún nudo
supera el techo. Sirve para dar al modelo una mortalidad en exceso conocida por otra vía: un estudio de
seguimiento, otra corrida o un año vecino.
See also
dl_ajustar(), dl_configuracion() (las claves mortalidad_exceso.*).
Funciones avanzadas:
dl_edo(),
dl_edo_resolver(),
dl_esquema(),
dl_esquema_tabla(),
dl_mh(),
dl_mh_cadenas(),
dl_severidad_desde_particion(),
dl_validar_estimaciones(),
dl_validar_tabla()
Examples
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
prior <- dl_prior_emr(b)
head(prior)
#> Key: <sex_id, age_group_id, age_start, age_end>
#> sex_id age_group_id age_start age_end mu_log sd_log
#> <int> <int> <num> <num> <num> <num>
#> 1: 1 13 40 45 -4.253818 0.212132
#> 2: 1 14 45 50 -4.073958 0.212132
#> 3: 1 15 50 55 -3.946815 0.212132
#> 4: 1 16 55 60 -3.749431 0.212132
#> 5: 1 17 60 65 -3.528606 0.212132
#> 6: 1 18 65 70 -3.489496 0.212132
# la mortalidad en exceso central del prior, por persona-año
head(exp(prior$mu_log))
#> [1] 0.01420987 0.01700992 0.01931612 0.02353112 0.02934580 0.03051623
# El mismo prior dado por tabla (mortalidad_exceso.prior: tabla), como si viniera de otra fuente.
# El prior del ancla empieza en su primera banda (40) y el primer nudo es 30: el primer tramo se
# extiende hasta él.
tabla <- data.frame(sexo = ifelse(prior$sex_id == 1, "hombres", "mujeres"),
edad_inicio = prior$age_start, edad_fin = prior$age_end,
mu_log = prior$mu_log, sd_log = prior$sd_log)
tabla$edad_inicio[tabla$edad_inicio == 40] <- 30
config <- yaml::read_yaml(file.path(dl_ejemplo(), "config", "9100.yaml"))
config$mortalidad_exceso$prior <- "tabla"
b_tabla <- dl_insumos(dl_proyecto(dl_ejemplo(), causa = 9100, configuracion = config,
prior_mortalidad_exceso = tabla))
#> 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
head(dl_prior_emr(b_tabla))
#> sex_id age_start age_end mu_log sd_log
#> <int> <num> <num> <num> <num>
#> 1: 1 30 45 -4.253818 0.212132
#> 2: 1 45 50 -4.073958 0.212132
#> 3: 1 50 55 -3.946815 0.212132
#> 4: 1 55 60 -3.749431 0.212132
#> 5: 1 60 65 -3.528606 0.212132
#> 6: 1 65 70 -3.489496 0.212132