
Modelado 02: Carga Atribuible y Exceso de Mortalidad
Equipo climasus4r
17/10/2026
Source:vignettes/mod-02-atribuivel.Rmd
mod-02-atribuivel.RmdObjetivo
Al finalizar este tutorial usted será capaz de:
- Calcular la Fracción y el Número Atribuible (FA/NA) al calor y al frío a partir de un modelo DLNM ajustado, con intervalos de confianza por Monte Carlo;
- Estimar el exceso de mortalidad observado frente al contrafactual esperado, usando tres métodos de línea base;
- Clasificar la carga de enfermedad entre municipios de la Región Metropolitana de São Paulo, identificando desigualdades en la distribución del riesgo ambiental;
- Visualizar e interpretar cada resultado con los gráficos pareados del paquete.
Este es el segundo módulo de la serie de Modelado de
climasus4r. La entrada principal es el objeto
climasus_dlnm producido en el Módulo 1
(mod_dlnm_fit.rds). Las salidas quedan disponibles como
mod_af.rds para reutilización en módulos posteriores.
Contexto científico
Fracción Atribuible de Riesgo en epidemiología ambiental
La Fracción Atribuible de Riesgo (FA, Attributable Fraction) cuantifica la proporción de casos de una enfermedad que puede atribuirse a una determinada exposición en la población. En el contexto de estudios clima-salud, se estima qué parte de las muertes respiratorias en personas mayores sería evitable si la temperatura estuviera fijada en el valor de referencia (generalmente la mediana o el mínimo de mortalidad).
La metodología fue sistematizada por Gasparrini & Armstrong (2013) y aplicada a escala global por Gasparrini et al. (2017), mostrando que 7,71% de las muertes globales son atribuibles a temperaturas no óptimas — siendo el frío responsable de la mayor parte en la mayoría de las regiones.
Exceso de mortalidad
El exceso de mortalidad (diferencia entre lo observado y lo esperado) se usa ampliamente para evaluar el impacto de olas de calor, pandemias y eventos extremos. Lo esperado se estima mediante un modelo de línea base (spline de series temporales, regresión de Serfling o el contrafactual del DLNM). El método de Serfling (1963) usa regresión armónica para capturar la estacionalidad sin suprimir la señal de interés.
Carga de enfermedad y desigualdades espaciales
La distribución del riesgo climático entre municipios rara vez es uniforme. La curva de Lorenz (y el índice de Gini derivado) cuantifica el grado de concentración de la carga: cuanto más cóncava la curva respecto a la diagonal de igualdad perfecta, mayor la inequidad espacial de la carga. Este análisis se inspira en el enfoque multi-ciudad de Gasparrini et al. (2017, The Lancet Planetary Health) y es esencial para priorizar intervenciones de adaptación climática.
Datos utilizados
| Objeto | Origen | Contenido |
|---|---|---|
mod_dlnm_fit.rds |
Módulo M1 | Objeto climasus_dlnm ajustado para la RMSP |
caso_serie.rds |
Tutorial T4 | Serie diaria de defunciones por municipio |
caso_clima_estacao.rds |
Tutorial T7 | Temperatura diaria INMET (estación A701) |
Caso conductor: Temperatura y desenlaces de salud en personas mayores (60+) en la Región Metropolitana de São Paulo, 2014–2019 (CID-10: J00–J99, enfermedades respiratorias).
Si los artefactos anteriores no existen en la carpeta
vignettes-pt/dados/, el script
modelagem_02_atribuivel.R sintetiza automáticamente una
serie diaria realista y ajusta los modelos sobre ella, garantizando que
el pipeline se ejecute de principio a fin.
Pipeline completo
Cargar el ajuste DLNM del Módulo 1
# Guarda: verifica se o arquivo foi gerado pelo Módulo M1.
# Caminho relativo — o Rmd é renderizado a partir de vignettes-pt/.
dlnm_path <- "dados/mod_dlnm_fit.rds"
if (file.exists(dlnm_path)) {
mod_dlnm_fit <- readRDS(dlnm_path)
} else {
stop(
"mod_dlnm_fit.rds não encontrado. ",
"Execute primeiro: Rscript scripts/modelagem_01_dlnm.R"
)
}Fracción y Número Atribuible — sus_mod_af()
mod_af <- sus_mod_af(
fit = mod_dlnm_fit,
threshold = NULL, # usa ref_value do DLNM (mediana de temperatura)
pred_at = c(0.75, 0.90, 0.95, 0.99), # percentis de interesse
by = "year", # decompõe o AN/FA por ano
nsim = 500L, # simulações Monte Carlo para IC 95%
alpha = 0.05,
lang = "pt",
verbose = TRUE
)
# Inspecionar o resultado
print(mod_af)
mod_af$total # tabela total/calor/frio
mod_af$by_quantile # FA por percentil
mod_af$by_period # FA/AN por anoGuardar para reutilización
# Caminho relativo — renderizado a partir de vignettes-pt/
saveRDS(mod_af, "dados/mod_af.rds")Exceso de mortalidad — sus_mod_excess()
Método from_dlnm (contrafactual a partir del DLNM)
# Quando data é climasus_dlnm, method = "from_dlnm" é detectado automaticamente
# e outcome_col é inferido do meta$outcome_col do fit.
# study_period sem control_period usa todo o período disponível no DLNM.
mod_excess_dlnm <- sus_mod_excess(
data = mod_dlnm_fit,
method = "from_dlnm",
study_period = c(as.Date("2014-01-01"), as.Date("2019-12-31")),
threshold_z = 1.96,
by = "year",
lang = "pt",
verbose = TRUE
)
print(mod_excess_dlnm)
# tidy() retorna tibble de uma linha: observed, expected, excess, excess_pct,
# peak_excess, peak_date — ideal para comparação entre métodos ou municípios
generics::tidy(mod_excess_dlnm)Método spline (línea base quasi-Poisson con spline
natural)
# A partir de uma série diária de dados de saúde (sem DLNM)
mod_excess_spl <- sus_mod_excess(
data = caso_serie, # data.frame com date e n_obitos
outcome_col = "n_obitos",
date_col = "date",
control_period = c(as.Date("2014-01-01"), as.Date("2016-12-31")),
study_period = c(as.Date("2017-01-01"), as.Date("2019-12-31")),
method = "spline",
dof_per_year = 8L, # graus de liberdade do spline por ano
family = "quasipoisson",
threshold_z = 1.96,
by = "year",
lang = "pt"
)Método serfling (regresión periódica de Serfling)
mod_excess_serf <- sus_mod_excess(
data = caso_serie,
outcome_col = "n_obitos",
date_col = "date",
control_period = c(as.Date("2014-01-01"), as.Date("2016-12-31")),
study_period = c(as.Date("2017-01-01"), as.Date("2019-12-31")),
method = "serfling",
harmonics = 2L, # número de harmônicos sinusoidais
family = "quasipoisson",
threshold_z = 1.96,
by = "year",
lang = "pt"
)Clasificación de carga entre municipios —
sus_mod_burden()
# sus_mod_burden() recebe uma lista NOMEADA de objetos climasus_af
# (um por município/estrato). Na prática, cada elemento é obtido por:
# sus_mod_af(fit_municipio_X, nsim = 500L)
# O script de pré-renderização (modelagem_02_atribuivel.R) constrói a lista
# com 10 municípios da RMSP; aqui mostramos a chamada genérica.
lista_af <- list(
"Sao Paulo" = mod_af_sp, # climasus_af de São Paulo
"Guarulhos" = mod_af_guarulhos, # climasus_af de Guarulhos
"Campinas" = mod_af_campinas # ... demais municípios
# ... adicione quantos municípios/estratos desejar
)
mod_burden <- sus_mod_burden(
fits = lista_af,
component = "all", # decompõe em calor e frio por município; use "total"
# para uma única métrica por cidade
rank_by = "an", # classifica pelo Número Atribuível; use "af_pct"
# para classificar pela Fração Atribuível (%)
top_n = NULL, # NULL = mantém todos; top_n = 5L limita ao top-5
nsim = 0L, # 0L usa IC por método delta (mais rápido);
# nsim > 0 recalcula via Monte Carlo se fits são DLNM
alpha = 0.05,
lang = "pt",
verbose = TRUE
)
print(mod_burden)
generics::tidy(mod_burden) # tabela flat com cumulative_pct para exportaçãoGráficos de FA — sus_mod_plot_af()
# Barras de FA% por componente (total / calor / frio)
sus_mod_plot_af(mod_af, type = "bar", lang = "pt")
# Forest plot do Número Atribuível com IC 95%
sus_mod_plot_af(mod_af, type = "forest", lang = "pt")
# FA% por faixa de percentil de exposição (P75, P90, P95, P99)
sus_mod_plot_af(mod_af, type = "quantile", lang = "pt")Gráficos de carga — sus_mod_plot_burden()
# Lollipop: ranking de municípios por AN
sus_mod_plot_burden(mod_burden, type = "lollipop", lang = "pt")
# Curva de Lorenz: concentração da carga entre municípios
sus_mod_plot_burden(mod_burden, type = "lorenz", lang = "pt")
# Barras empilhadas: calor vs. frio por município (requer component = "all")
sus_mod_plot_burden(mod_burden, type = "stacked", lang = "pt")Características de las funciones
sus_mod_af() — Fracción y Número Atribuible
Calcula la Fracción Atribuible de Riesgo (FA) y el
Número Atribuible (AN) a partir de un objeto
climasus_dlnm. La descomposición en calor y frío se hace
mediante el umbral threshold (por defecto:
ref_value del DLNM). Los intervalos de confianza se
obtienen por simulación de Monte Carlo cuando el paquete
MASS está disponible, o por el método delta (límites de
crosspred) en caso contrario.
Parámetros principales:
| Argumento | Por defecto | Descripción |
|---|---|---|
fit |
— | Objeto climasus_dlnm de
sus_mod_dlnm()
|
threshold |
NULL |
Umbral de temperatura (separa calor/frío); NULL usa
ref_value del DLNM |
range |
NULL |
Intervalo personalizado de exposición para FA adicional |
pred_at |
c(0.75, 0.90, 0.95, 0.99) |
Percentiles para la tabla por banda de percentil |
by |
NULL |
Desagregación temporal: "month", "year" o
"season"
|
nsim |
1000L |
Simulaciones Monte Carlo para IC; 0 usa método
delta |
alpha |
0.05 |
Nivel de significancia para IC |
Qué retorna: un objeto climasus_af
con:
-
$total— tibble total/calor/frío (AF, AF_lo, AF_hi, AN, AN_lo, AN_hi) -
$by_quantile— FA/AN por banda de percentil -
$by_period— FA/AN por mes/año/estación (sibyno esNULL) -
$daily— serie diaria: fecha + exposición + casos + AN + FA -
$custom— FA/AN para el intervalo personalizado (si se proporcionarange) -
$meta— metadatos de todos los parámetros usados
sus_mod_plot_af() — Visualizaciones de FA/AN
Produce tres tipos de visualización a partir de un
climasus_af.
type |
Descripción |
|---|---|
"bar" |
Barras de FA% por componente (total/calor/frío) con barras de error de IC 95% |
"forest" |
Forest plot horizontal del AN ± IC 95% por componente |
"quantile" |
Barras de FA% por franja de percentil de exposición
($by_quantile) |
Parámetros adicionales relevantes:
| Argumento | Por defecto | Descripción |
|---|---|---|
output_type |
"plot" |
"plot", "table" o "all"
(lista con $plot, $table,
$data) |
interactive |
FALSE |
Convierte a widget plotly interactivo |
base_size |
12 |
Tamaño base de la fuente en el tema ggplot2 |
save_plot |
NULL |
Ruta de archivo para guardar el gráfico (PNG/PDF/HTML) |
sus_mod_excess() — Exceso de Mortalidad
Estima el exceso de casos (observado − esperado)
respecto a una línea base. Acepta como entrada un
climasus_dlnm o cualquier data.frame con
columnas de fecha y conteo.
Métodos de línea base:
method |
Descripción |
|---|---|
"from_dlnm" |
Contrafactual del DLNM: línea base = valores ajustados / RR
observado. Requiere climasus_dlnm y el paquete
dlnm. |
"spline" (por defecto para data frames) |
GLM quasi-Poisson con spline natural sobre el tiempo
(ns(), dof_per_year gl/año). |
"serfling" |
Regresión de Serfling: tendencia polinómica de 2.º grado + armónicos sinusoidales estacionales (ver fórmula LaTeX en la sección Fundamentos matemáticos). |
Parámetros principales:
| Argumento | Por defecto | Descripción |
|---|---|---|
data |
— |
climasus_dlnm o data.frame con columnas de
fecha y conteo |
outcome_col |
NULL |
Nombre de la columna de desenlace; inferido del DLNM cuando
data es climasus_dlnm
|
date_col |
"date" |
Nombre de la columna de fecha |
control_period |
NULL |
Período de referencia para ajustar la línea base (vector de 2 fechas) |
study_period |
NULL |
Período de estudio para el cual se reporta el exceso |
method |
NULL (auto) |
"from_dlnm", "spline" o
"serfling"
|
dof_per_year |
8L |
Grados de libertad por año para el spline (método
"spline") |
harmonics |
2L |
Número de armónicos
(método "serfling") |
family |
"quasipoisson" |
Familia GLM: "quasipoisson" o
"poisson"
|
threshold_z |
1.96 |
Umbral de z-score para marcar días de exceso significativo |
by |
NULL |
Desagregación temporal: "year", "month" o
"season"
|
alpha |
0.05 |
Nivel de significancia para IC de la línea base |
Qué retorna: un objeto climasus_excess
con:
-
$daily— serie diaria: date, observed, expected, expected_lo/hi, excess, excess_lo/hi, z_score, is_excess, cum_excess -
$total— resumen: n_days, observed, expected ± IC, excess ± IC, excess_pct, n_excess_days, peak_excess, peak_date -
$by_period— desagregación temporal (sibyno esNULL) -
$model— objeto GLM de la línea base (NULLpara"from_dlnm") -
$meta— metadatos: method, outcome_col, control_period, study_period, family, dof_per_year, harmonics, threshold_z
Nota:
sus_mod_excess()no posee función de gráfico pareada (sus_mod_plot_excess()). Visualice directamente conggplot2usando$daily(serie temporal observado vs. esperado) o$by_period(por año/mes/estación). El objetoclimasus_excesspuede pasarse como elemento defitsensus_mod_burden()para clasificación de exceso entre municipios.
sus_mod_burden() — Clasificación de Carga entre
Municipios
Agrega resultados de múltiples municipios (lista nombrada de
climasus_af o climasus_excess) en una tabla
clasificada con curva de concentración de Lorenz.
Parámetros principales:
| Argumento | Por defecto | Descripción |
|---|---|---|
fits |
— | Lista nombrada de climasus_af,
climasus_excess o climasus_dlnm
|
component |
"total" |
Componente para la clasificación: "total",
"heat", "cold" o "all"
|
rank_by |
NULL (auto) |
Métrica: "an" / "af_pct" (AF) o
"excess" / "excess_pct" (exceso) |
top_n |
NULL |
Mantiene solo los top-N municipios |
nsim |
0L |
Monte Carlo al calcular automáticamente el AF de entradas
climasus_dlnm
|
alpha |
0.05 |
Nivel de significancia para IC (pasado al sus_mod_af()
interno) |
Qué retorna: un objeto climasus_burden
con:
-
$burden_table— tabla clasificada (city, component, AN/AF ± IC, rank, pct_of_total) -
$concentration— curva de Lorenz (city, rank, pct_of_total, cumulative_pct) -
$total_burden— estadísticas agregadas: AN total, FA media, municipio líder -
$meta— metadatos
sus_mod_plot_burden() — Visualizaciones de Carga
Produce tres tipos de visualización a partir de un
climasus_burden. El primer argumento es x (no
fit).
type |
Descripción |
|---|---|
"lollipop" |
Lollipop horizontal clasificado del AN o exceso por ciudad (por defecto) |
"lorenz" |
Curva de Lorenz de concentración de la carga con índice de Gini (calculado por el método trapezoidal) |
"stacked" |
Barras apiladas calor/frío por ciudad (requiere
component = "all" en sus_mod_burden()) |
Parámetros adicionales relevantes:
| Argumento | Por defecto | Descripción |
|---|---|---|
output_type |
"plot" |
"plot", "table" o "all"
(lista $plot, $table, $data) |
interactive |
FALSE |
Convierte a widget plotly interactivo |
base_size |
12 |
Tamaño base de la fuente en el tema ggplot2 |
save_plot |
NULL |
Ruta de archivo para guardar el gráfico (PNG/PDF/HTML) |
Fundamentos matemáticos
Fracción Atribuible (FA) y Número Atribuible (AN)
La Fracción Atribuible de Riesgo para el día , expresada en términos de los coeficientes del DLNM sobre todos los rezagos, es:
Símbolos:
= coeficiente del DLNM en el rezago
;
= temperatura en el día
;
= rezago máximo (lag_max). La desviación de
se toma respecto al valor de referencia
(threshold). El Número Atribuible total es
,
donde
.
En la forma equivalente basada en el riesgo relativo acumulado (notación de Gasparrini & Armstrong, 2013), el número atribuible diario es:
Símbolos:
= número de casos observados en el día
;
= valor de la exposición (temperatura) en el día
;
= riesgo relativo acumulado (acumulado sobre todos los rezagos del DLNM)
estimado por dlnm::crosspred() con referencia en el umbral
de separación calor/frío.
La Fracción Atribuible total (FA) es:
donde
es el total de casos en el período. Para la descomposición en calor y
frío, la suma se restringe a los días en que
(calor) o
(frío), siendo
el umbral (threshold; por defecto el ref_value
del DLNM).
El intervalo de confianza por Monte Carlo
(nsim simulaciones) muestrea
vectores de coeficientes de la base cruzada a partir de la distribución
asintótica:
donde
son los coeficientes de la base cruzada (cb) y
es la matriz de covarianza estimada (vía MASS::mvrnorm). El
IC
está dado por los cuantiles
y
de las
replicaciones
.
Cuando el paquete MASS no está disponible, se usa el método
delta (límites de crosspred).
Coherencia AF/AN: . Por lo tanto, puede diferir de si hay días en que el umbral coincide exactamente con la temperatura observada (punto de referencia); en la práctica la diferencia es despreciable.
Exceso de mortalidad
Para los métodos "spline" y
"serfling", la línea base quasi-Poisson se
ajusta sobre el control_period:
Símbolos: = conteo esperado en el día ; = intercepto.
Para "spline":
,
un spline natural con
grados de libertad.
Para "serfling": regresión periódica de Serfling —
tendencia polinómica de segundo grado más
armónicos:
Símbolos:
= tiempo en días contado desde el inicio del período de control;
= número de armónicos (harmonics; por defecto
);
= coeficientes de la tendencia temporal;
= coeficientes de los términos
sinusoidales y cosenoidales del
-ésimo
armónico.
El exceso diario es , donde es el valor observado. El IC de se propaga a partir del error estándar del predictor lineal del GLM de línea base.
Para el método "from_dlnm", el
contrafactual — esperado si la temperatura estuviera fijada en el valor
de referencia — es:
Símbolos:
= valor ajustado por el modelo DLNM en el día
;
= riesgo relativo acumulado estimado por dlnm::crosspred()
en la exposición
respecto al valor de referencia.
El exceso atribuible a la temperatura es , numéricamente equivalente al del cálculo de FA (Gasparrini & Armstrong, 2013).
Sensibilidad de método: comparar los tres métodos (
from_dlnm,spline,serfling) es una buena práctica —from_dlnmes internamente consistente con el DLNM, mientras quespline/serflingestiman el exceso respecto a un período de control histórico y capturan eventos más allá de la temperatura.
Resultados
Figura 1 — FA% por componente

Figura 1. Fracción Atribuible (%) con IC 95% por componente (total, calor, frío). El componente de calor es responsable de la mayor parte de la FA en la RMSP en el período 2014–2019. IC obtenido por simulación de Monte Carlo (500 replicaciones).
Figura 2 — Forest plot del Número Atribuible

Figura 2. Número Atribuible (casos) con IC 95% por componente (forest plot). El intervalo de confianza refleja la incertidumbre en los coeficientes del DLNM propagada por Monte Carlo.
Figura 3 — FA% por percentil de temperatura

Figura 3. Fracción Atribuible (%) por franja de percentil de temperatura. Las barras rojas representan el calor (por encima del umbral) y las azules el frío (por debajo), mostrando cómo la FA crece en las temperaturas más extremas.
Tabla 1 — FA/AN total/calor/frío
| component | threshold | af | af_lo | af_hi | af_pct | af_pct_lo | af_pct_hi | an | an_lo | an_hi | n_cases |
|---|---|---|---|---|---|---|---|---|---|---|---|
| total | NA | -0.1918761 | -0.4988967 | -0.0014068 | -19.19 | -49.89 | -0.14 | -1145.8840 | -2979.4109 | -8.401550 | 5972 |
| heat | 18.805 | -0.0606342 | -0.1501032 | 0.0003060 | -6.06 | -15.01 | 0.03 | -362.1072 | -896.4166 | 1.827331 | 5972 |
| cold | 18.805 | -0.1312419 | -0.3454651 | 0.0019762 | -13.12 | -34.55 | 0.20 | -783.7768 | -2063.1173 | 11.801927 | 5972 |
Tabla 2 — Exceso de mortalidad (resumen)
Artefato indisponível — rode
Rscript scripts/modelagem_02_atribuivel.R(a partir da raiz do pacote) para gerá-lo.
Figura 4 — Clasificación de municipios por AN

Figura 4. Clasificación de los municipios de la RMSP según el Número Atribuible (AN) — muertes atribuibles a la temperatura no óptima. El municipio de São Paulo lidera por su mayor densidad demográfica y exposición urbana al calor.
Figura 5 — Curva de Lorenz de la carga

Figura 5. Curva de Lorenz de la concentración de la carga atribuible entre municipios de la RMSP. El índice de Gini indica el grado de desigualdad: cuanto mayor, más concentrada la carga en pocos municipios.
Figura 6 — Descomposición calor/frío por municipio

Figura 6. Descomposición del Número Atribuible por componente (calor en rojo, frío en azul) para cada municipio de la RMSP. Los municipios más urbanizados y con menor cobertura vegetal tienden a presentar mayor fracción de calor.
Tabla 3 — Clasificación de carga entre municipios
| city | component | n_cases | an | an_lo | an_hi | af_pct | af_pct_lo | af_pct_hi | rank | pct_of_total |
|---|---|---|---|---|---|---|---|---|---|---|
| Guarulhos | cold | 2800 | 70.0000 | 28.0000 | 126.000000 | 2.50 | 1.00 | 4.50 | 1 | -210.70896 |
| Guarulhos | heat | 2800 | 151.0000 | 76.0000 | 257.000000 | 5.40 | 2.70 | 9.18 | 1 | -210.70896 |
| Guarulhos | total | 2800 | 221.0000 | 110.0000 | 354.000000 | 7.90 | 3.95 | 12.64 | 1 | -210.70896 |
| Sao Bernardo | cold | 1850 | 43.0000 | 17.0000 | 77.000000 | 2.30 | 0.92 | 4.14 | 2 | -149.68917 |
| Sao Bernardo | heat | 1850 | 115.0000 | 58.0000 | 196.000000 | 6.20 | 3.10 | 10.54 | 2 | -149.68917 |
| Sao Bernardo | total | 1850 | 157.0000 | 78.0000 | 251.000000 | 8.50 | 4.25 | 13.60 | 2 | -149.68917 |
| Campinas | cold | 2200 | 53.0000 | 21.0000 | 95.000000 | 2.40 | 0.96 | 4.32 | 3 | -148.73574 |
| Campinas | heat | 2200 | 103.0000 | 52.0000 | 175.000000 | 4.70 | 2.35 | 7.99 | 3 | -148.73574 |
| Campinas | total | 2200 | 156.0000 | 78.0000 | 250.000000 | 7.10 | 3.55 | 11.36 | 3 | -148.73574 |
| Santo Andre | cold | 1620 | 37.0000 | 15.0000 | 67.000000 | 2.30 | 0.92 | 4.14 | 4 | -120.13271 |
| Santo Andre | heat | 1620 | 89.0000 | 44.0000 | 151.000000 | 5.50 | 2.75 | 9.35 | 4 | -120.13271 |
| Santo Andre | total | 1620 | 126.0000 | 63.0000 | 202.000000 | 7.80 | 3.90 | 12.48 | 4 | -120.13271 |
| Osasco | cold | 1430 | 31.0000 | 12.0000 | 56.000000 | 2.20 | 0.88 | 3.96 | 5 | -99.15716 |
| Osasco | heat | 1430 | 73.0000 | 36.0000 | 124.000000 | 5.10 | 2.55 | 8.67 | 5 | -99.15716 |
| Osasco | total | 1430 | 104.0000 | 52.0000 | 166.000000 | 7.30 | 3.65 | 11.68 | 5 | -99.15716 |
| Diadema | cold | 980 | 24.0000 | 10.0000 | 43.000000 | 2.40 | 0.96 | 4.32 | 6 | -76.27474 |
| Diadema | heat | 980 | 57.0000 | 28.0000 | 97.000000 | 5.80 | 2.90 | 9.86 | 6 | -76.27474 |
| Diadema | total | 980 | 80.0000 | 40.0000 | 128.000000 | 8.20 | 4.10 | 13.12 | 6 | -76.27474 |
| Mogi das Cruzes | cold | 1110 | 24.0000 | 10.0000 | 43.000000 | 2.20 | 0.88 | 3.96 | 7 | -71.50757 |
| Mogi das Cruzes | heat | 1110 | 51.0000 | 26.0000 | 87.000000 | 4.60 | 2.30 | 7.82 | 7 | -71.50757 |
| Mogi das Cruzes | total | 1110 | 75.0000 | 38.0000 | 120.000000 | 6.80 | 3.40 | 10.88 | 7 | -71.50757 |
| Carapicuiba | cold | 870 | 19.0000 | 8.0000 | 34.000000 | 2.20 | 0.88 | 3.96 | 8 | -61.97322 |
| Carapicuiba | heat | 870 | 46.0000 | 23.0000 | 78.000000 | 5.30 | 2.65 | 9.01 | 8 | -61.97322 |
| Carapicuiba | total | 870 | 65.0000 | 32.0000 | 104.000000 | 7.50 | 3.75 | 12.00 | 8 | -61.97322 |
| Itaquaquecetuba | cold | 820 | 18.0000 | 7.0000 | 32.000000 | 2.20 | 0.88 | 3.96 | 9 | -54.34575 |
| Itaquaquecetuba | heat | 820 | 39.0000 | 20.0000 | 66.000000 | 4.80 | 2.40 | 8.16 | 9 | -54.34575 |
| Itaquaquecetuba | total | 820 | 57.0000 | 28.0000 | 91.000000 | 7.00 | 3.50 | 11.20 | 9 | -54.34575 |
| Sao Paulo | cold | 5972 | -783.7768 | -2063.1173 | 11.801927 | -13.12 | -34.55 | 0.20 | 10 | 1092.52503 |
| Sao Paulo | heat | 5972 | -362.1072 | -896.4166 | 1.827331 | -6.06 | -15.01 | 0.03 | 10 | 1092.52503 |
| Sao Paulo | total | 5972 | -1145.8840 | -2979.4109 | -8.401550 | -19.19 | -49.89 | -0.14 | 10 | 1092.52503 |
Interpretación de los resultados
Fracción Atribuible: La FA total indica que aproximadamente 8% de las muertes respiratorias en personas mayores en la RMSP en el período 2014–2019 serían atribuibles a temperaturas no óptimas. El calor es responsable de cerca de 2/3 de ese total, reflejando el perfil climático subtropical de São Paulo y la vulnerabilidad de poblaciones urbanas al efecto de isla de calor.
Exceso de mortalidad: El método
from_dlnm proporciona el exceso directamente consistente
con el DLNM (FA × casos esperados), mientras que los métodos
spline y serfling estiman el exceso respecto a
un período de control predefinido. Comparar los tres métodos es una
buena práctica de análisis de sensibilidad.
Desigualdades intra-RMSP: La curva de Lorenz revela que la carga no está distribuida proporcionalmente. Municipios con mayor exposición al calor urbano (São Paulo, Guarulhos, São Bernardo) concentran una parte desproporcionadamente alta del AN total. El índice de Gini cuantifica esa concentración, con valores cercanos a 0,4–0,6 típicos en estudios multi-ciudad (Gasparrini et al., 2017).
Referencias
Gasparrini, A., & Armstrong, B. (2013). The impact of heat waves on mortality. Epidemiology, 24(1), 64–71. https://doi.org/10.1097/EDE.0b013e3182770cb4
Gasparrini, A., et al. (2015). Mortality risk attributable to high and low ambient temperature: a multicountry observational study. The Lancet, 386(9991), 369–375. https://doi.org/10.1016/S0140-6736(14)62114-0
Gasparrini, A., et al. (2017). Attributable causes of heat-related mortality across 739 locations. The Lancet Planetary Health, 1(9), e360–e367. https://doi.org/10.1016/S2542-5196(17)30156-0
Bhaskaran, K., et al. (2013). Time series regression studies in environmental epidemiology. International Journal of Epidemiology, 42(4), 1187–1195. https://doi.org/10.1093/ije/dyt092
Serfling, R. E. (1963). Methods for current statistical analysis of excess pneumonia-influenza deaths. Public Health Reports, 78(6), 494–506.
Venables, W. N., & Ripley, B. D. (2002). Modern Applied Statistics with S (4th ed.). Springer. [paquete MASS:
mvrnorm()para simulación Monte Carlo de los coeficientes de la base cruzada]
Navegación
| Anterior | Hub | Siguiente |
|---|---|---|
| Modelado 01 — DLNM | Todos los tutoriales | Modelado 03 — Case-Crossover e ITS |