
Modelización 04: Análisis Multiciudad — Pooling, Meta-regresión y Sensibilidad
Equipo climasus4r
17/10/2026
Source:vignettes/mod-04-multicidade.Rmd
mod-04-multicidade.RmdObjetivo
Al final de este tutorial usted será capaz de:
- Ajustar un DLNM por ciudad y reunir los modelos en una lista con nombre.
-
Agrupar las estimaciones mediante meta-análisis
multivariado de dos etapas (
sus_mod_pool()), obteniendo una curva exposición-respuesta combinada con estadísticas de heterogeneidad (Q de Cochran, I²) y BLUPs (Best Linear Unbiased Predictors) por ciudad. -
Aplicar meta-regresión
(
sus_mod_metaregression()) para probar si una covariable de ciudad (por ejemplo, el IDH) explica parte de la heterogeneidad entre municipios. -
Comparar subgrupos poblacionales
(
sus_mod_sensitivity()) — por ejemplo, franjas etarias de adultos mayores — identificando cuáles son más vulnerables al calor y al frío. -
Visualizar todos los resultados con las funciones
emparejadas
sus_mod_plot_pool()ysus_mod_plot_sensitivity().
Este es el Tutorial 4 de Modelización de la serie de
climasus4r, enmarcado por el sombrero del
bioestadístico / epidemiólogo ambiental. Los datos de
entrada son las salidas encadenadas de los tutoriales anteriores:
dados/caso_serie.rds (serie diaria de salud) y
dados/caso_clima_estacao.rds (temperatura INMET
alineada).
Contexto científico
El enfoque de dos etapas en epidemiología ambiental
Los estudios multiciudad estiman la asociación clima-salud en cada localidad por separado (Etapa 1) y luego combinan las estimaciones en un único estimador promedio (Etapa 2), permitiendo además cuantificar la variación entre localidades (heterogeneidad). Esta estructura se conoce como análisis de dos etapas (Gasparrini et al., 2012; Gasparrini & Armstrong, 2013).
En el contexto de los Modelos de Rezago Distribuido No Lineal (DLNM), cada ciudad aporta un vector de coeficientes de la cross-basis y su matriz de varianza-covarianza. La segunda etapa combina esos vectores mediante meta-análisis multivariado (Berkey et al., 1995; White, 2011), preservando toda la dimensión de rezago (lag) del efecto.
Heterogeneidad entre ciudades
La heterogeneidad real en las asociaciones temperatura-mortalidad entre ciudades brasileñas fue documentada en estudios como el de Zhao et al. (2021) y en análisis regionales que señalan un gradiente Norte-Sur influido por la temperatura media, la altitud y la estructura demográfica. El IDH se emplea frecuentemente como proxy de la capacidad adaptativa local (Gasparrini et al., 2015).
Sensibilidad por subgrupos
El análisis de sensibilidad compara curvas exposición-respuesta entre estratos poblacionales (grupos etarios, sexo, quintil de ingreso), identificando qué subgrupos exhiben mayor riesgo relativo frente a extremos térmicos — información directamente utilizable en planes de acción en salud.
Caso conductor. En este tutorial investigamos la temperatura y los desenlaces respiratorios (J00–J99) en adultos mayores (60+) en la Región Metropolitana de São Paulo, 2014–2019. Ajustamos un DLNM para cada uno de los seis mayores municipios de la RMSP, los agrupamos mediante
sus_mod_pool()(REML, BLUPs), aplicamossus_mod_metaregression()con el IDH como covariable de ciudad y evaluamos la sensibilidad por franja etaria (60–74 vs. 75+) consus_mod_sensitivity(). El objetomod_poolajustado se guarda endados/mod_pool.rdspara reutilizarlo en los tutoriales siguientes.
Datos utilizados
| Objeto | Origen | Contenido |
|---|---|---|
caso_serie.rds |
Tutorial 4 (Variables/Agregación) | Serie diaria de defunciones por municipio de la RMSP |
caso_clima_estacao.rds |
Tutorial 7 (Clima — Estaciones) | Temperatura media diaria INMET alineada por municipio |
mod_fits_cidades.rds |
Este tutorial (Bloque 3) | Lista de climasus_dlnm por municipio |
mod_pool.rds |
Este tutorial (salida) |
climasus_pool — resultado del pooling REML |
Si los archivos de entrada no están presentes, el script
scripts/modelagem_04_multicidade.R sintetiza series con
señal temperatura-mortalidad en V, lo suficientemente realistas para
ilustrar el funcionamiento de las funciones.
Pipeline completo
Cargue el paquete y la infraestructura de tutorial:
library(climasus4r)Bloque 0 — Verificar paquetes Suggests
Las funciones de pooling dependen de dlnm,
splines y mvmeta (Suggests). Proteja toda
llamada:
tem_dlnm <- all(vapply(c("dlnm", "splines"),
function(p) requireNamespace(p, quietly = TRUE),
logical(1L)))
tem_mvmeta <- requireNamespace("mvmeta", quietly = TRUE)
if (!tem_mvmeta)
message("Instale mvmeta: install.packages('mvmeta')")Bloque 1 — Cargar o sintetizar series por municipio
# Nota: os caminhos abaixo são relativos à RAIZ do pacote
# (scripts/ e vignettes-pt/ estão no mesmo nível).
# Em sessão interativa, defina o diretório de trabalho com setwd() antes.
MUNICIPIOS <- c("Sao_Paulo", "Guarulhos", "Osasco",
"Santo_Andre", "Mogi_das_Cruzes", "Carapicuiba")
# Carregar caso_serie.rds e caso_clima_estacao.rds se disponíveis
# (produzidos pelos Tutoriais 4 e 7 do pipeline, respectivamente)
path_saude <- file.path("vignettes-pt", "dados", "caso_serie.rds")
path_clima <- file.path("vignettes-pt", "dados", "caso_clima_estacao.rds")
if (file.exists(path_saude) && file.exists(path_clima)) {
# Usa dados reais do pipeline anterior
caso_serie <- readRDS(path_saude)
caso_clima <- readRDS(path_clima)
# series_municipios: lista nomeada com um tibble por município
series_municipios <- split(caso_serie, caso_serie$municipio)
} else {
message("Dados encadeados ausentes — o script gerará séries sintéticas realistas.")
# O script modelagem_04_multicidade.R constrói series_municipios internamente
}Bloque 2 — Construir columnas de rezago (crossbasis input)
VAR_TEMP <- "tair_dry_bulb_c"
DESFECHO <- "n_obitos"
LAG_MAX <- 21L
DOF_ANO <- 6L
# Função auxiliar: adiciona colunas de lag 0-LAG_MAX e promove a climasus_df
.construir_df_lags <- function(serie, nome_mun) {
df_lags <- serie |> dplyr::arrange(date)
for (k in 0L:LAG_MAX) {
df_lags[[paste0(VAR_TEMP, "_lag", k)]] <- dplyr::lag(df_lags[[VAR_TEMP]], n = k)
}
df_lags <- df_lags |>
dplyr::select(date, dplyr::all_of(DESFECHO),
dplyr::all_of(paste0(VAR_TEMP, "_lag", 0L:LAG_MAX))) |>
tidyr::drop_na()
attr(df_lags, "sus_meta") <- list(
system = "SIM", stage = "climate", type = "distributed_lag",
backend = "tibble",
history = paste0("[derivado] ", nome_mun, " — lags")
)
class(df_lags) <- c("climasus_df", class(df_lags))
df_lags
}
# series_municipios: lista nomeada de tibbles (carregada/sintetizada no Bloco 1)
dfs_lags <- lapply(seq_along(MUNICIPIOS), function(i) {
.construir_df_lags(series_municipios[[i]], MUNICIPIOS[[i]])
})
names(dfs_lags) <- MUNICIPIOSBloque 3 — Ajuste del DLNM por municipio (Etapa 1)
fits_cidades <- lapply(MUNICIPIOS, function(nm) {
sus_mod_dlnm(
df = dfs_lags[[nm]],
outcome_col = DESFECHO,
climate_col = VAR_TEMP,
lag_max = LAG_MAX,
argvar = list(fun = "ns", df = 4L),
arglag = list(fun = "ns", df = 3L),
family = "quasipoisson",
dof_per_year = DOF_ANO,
lang = "pt",
verbose = FALSE
)
})
names(fits_cidades) <- MUNICIPIOSBloque 4 — sus_mod_pool(): meta-análisis multivariado
(Etapa 2)
mod_pool <- sus_mod_pool(
fits = fits_cidades, # lista nomeada de climasus_dlnm
exposure_range = NULL, # deriva do intervalo observado em todas as cidades
n_grid = 100L, # pontos na grade de predição
pred_at = c(0.75, 0.90, 0.95, 0.99), # quantis para tabela-resumo
blup = TRUE, # calcula BLUPs cidade-específicos
method = "reml", # estimação REML (recomendado)
lang = "pt",
verbose = TRUE
)
print(mod_pool)Bloque 5 — sus_mod_metaregression(): explicando la
heterogeneidad
# Covariável de cidade: IDH municipal (padronizado internamente)
cov_idh <- data.frame(
idh = c(Sao_Paulo = 0.805, Guarulhos = 0.763, Osasco = 0.776,
Santo_Andre = 0.815, Mogi_das_Cruzes = 0.783, Carapicuiba = 0.749),
row.names = MUNICIPIOS
)
mod_meta <- sus_mod_metaregression(
fits = fits_cidades,
covariates = cov_idh,
covariate_cols = "idh", # colunas numéricas a usar como preditoras
city_col = NULL, # usa rownames de covariates como identificador
pred_at = c(0.75, 0.90, 0.95, 0.99),
blup = TRUE,
method = "reml",
alpha = 0.05,
lang = "pt",
verbose = TRUE
)
print(mod_meta)Bloque 6 — sus_mod_sensitivity(): sensibilidad por
franja etaria
# Estratificação: usa a série de São Paulo dividida proporcionalmente por faixa
# etária (60-74 anos ≈ 55 % dos óbitos; 75+ ≈ 45 %). Em fluxo real, as séries
# viriam de caso_serie.rds filtrado por faixa etária.
serie_sp <- series_municipios[["Sao_Paulo"]]
set.seed(99L)
n_sp <- nrow(serie_sp)
serie_60_74 <- serie_sp |>
dplyr::mutate(n_obitos = stats::rbinom(n_sp, size = n_obitos, prob = 0.55))
serie_75mais <- serie_sp |>
dplyr::mutate(n_obitos = n_obitos - serie_60_74$n_obitos)
# Constrói dfs com colunas de lag para cada faixa (mesma função do Bloco 2)
df_lags_60_74 <- .construir_df_lags(serie_60_74, "60_74_anos")
df_lags_75mais <- .construir_df_lags(serie_75mais, "75_mais_anos")
# Ajuste DLNM por faixa etária (Estágio 1 da sensibilidade)
fits_faixas <- list(
`60-74 anos` = sus_mod_dlnm(
df = df_lags_60_74,
outcome_col = DESFECHO,
climate_col = VAR_TEMP,
lag_max = LAG_MAX,
argvar = list(fun = "ns", df = 4L),
arglag = list(fun = "ns", df = 3L),
family = "quasipoisson",
dof_per_year = DOF_ANO,
lang = "pt"
),
`75+ anos` = sus_mod_dlnm(
df = df_lags_75mais,
outcome_col = DESFECHO,
climate_col = VAR_TEMP,
lag_max = LAG_MAX,
argvar = list(fun = "ns", df = 4L),
arglag = list(fun = "ns", df = 3L),
family = "quasipoisson",
dof_per_year = DOF_ANO,
lang = "pt"
)
)
mod_sens <- sus_mod_sensitivity(
fits = fits_faixas,
hot_percentile = 0.99, # p99 como ponto de comparação do calor
cold_percentile = 0.01, # p01 como ponto de comparação do frio
stratum_labels = NULL, # usa nomes de fits_faixas como rótulos
alpha = 0.05,
lang = "pt",
verbose = TRUE
)
print(mod_sens)Bloque 7 — Visualizaciones con sus_mod_plot_pool() y
sus_mod_plot_sensitivity()
# Curva pooled — três tipos de visualização
sus_mod_plot_pool(mod_pool, type = "overall", lang = "pt")
sus_mod_plot_pool(mod_pool, type = "forest", lang = "pt")
sus_mod_plot_pool(mod_pool, type = "spaghetti", lang = "pt")
# Sensibilidade — três tipos de visualização
sus_mod_plot_sensitivity(mod_sens, type = "curves", lang = "pt")
sus_mod_plot_sensitivity(mod_sens, type = "scatter", lang = "pt") # RR calor × RR frio
sus_mod_plot_sensitivity(mod_sens, type = "bar", lang = "pt")Características de las funciones
sus_mod_pool()
Realiza el meta-análisis multivariado de dos etapas de los coeficientes de la cross-basis.
| Argumento | Descripción |
|---|---|
fits |
Lista con nombre de climasus_dlnm (uno por ciudad).
Todos deben compartir climate_col, lag_max,
argvar y arglag. |
exposure_range |
Intervalo de la grilla de predicción; NULL lo deriva
del conjunto de todas las ciudades. |
n_grid |
Número de puntos en la grilla de predicción continua. Por defecto
100L. |
pred_at |
Cuantiles de la distribución de exposición para la tabla-resumen.
Por defecto c(.75, .90, .95, .99). |
blup |
¿Calcular BLUPs ciudad-específicos? Por defecto
TRUE. |
method |
Método de estimación de mvmeta: "reml"
(por defecto), "ml", "fixed". |
lang |
Idioma de los mensajes: "pt" (por defecto),
"en", "es". |
verbose |
¿Mostrar progreso en la consola? Por defecto TRUE. |
Retorno — objeto climasus_pool con:
-
$mvmeta_fit— modelomvmetabruto. -
$pooled_pred— objetodlnm::crosspredcon coeficientes combinados. -
$exposure_response— tabla de RR agrupado en los cuantiles depred_at. -
$exposure_curve— curva completa (100 puntos) de RR con IC. -
$lag_response— curva rezago-respuesta en el p75 de la exposición. -
$blup_preds— lista con nombre decrosspredBLUP por ciudad. -
$city_table— RR original y BLUP por ciudad en el p75. -
$heterogeneity— tibble con Q, df, valor-p e I². -
$meta— metadatos (ciudades, método, grilla, tiempo).
Métodos S3 disponibles: print(), summary(),
coef(), vcov(), tidy().
sus_mod_plot_pool()
Visualizaciones del meta-análisis agrupado.
type = |
Descripción |
|---|---|
"overall" |
Curva exposición-respuesta agrupada con franja de IC95%. |
"forest" |
Forest plot ciudad-específico en el p75: estimación original (diamante) + BLUP (círculo). |
"spaghetti" |
Curvas BLUP de cada ciudad (gris) superpuestas a la curva agrupada (color sólido). |
Argumento output_type: "plot" (por
defecto), "table" (tibble de los datos graficados), o
"all" (lista $plot, $table,
$data). interactive = TRUE convierte a widget
plotly.
sus_mod_metaregression()
Extiende el pooling incluyendo covariables de ciudad para explicar la heterogeneidad.
| Argumento | Descripción |
|---|---|
fits |
Lista con nombre de climasus_dlnm. Todas las ciudades
deben compartir climate_col, lag_max,
argvar y arglag. |
covariates |
data.frame con una fila por ciudad y covariables
numéricas. Nombres de fila = nombres de las ciudades (o use
city_col). |
covariate_cols |
Columnas a usar como predictoras. NULL usa todas las
columnas numéricas disponibles. |
city_col |
Columna en covariates con el identificador de ciudad
(alternativa a los rownames). Por defecto NULL. |
pred_at |
Cuantiles para la tabla-resumen de RR. Por defecto
c(.75, .90, .95, .99). |
blup |
¿BLUPs ajustados por covariable? Por defecto TRUE. |
method |
Método mvmeta: "reml" (por defecto),
"ml", "fixed". |
alpha |
Nivel de significancia para los IC. Por defecto
0.05. |
lang |
Idioma de los mensajes: "pt" (por defecto),
"en", "es". |
verbose |
¿Mostrar progreso? Por defecto TRUE. |
Retorno — objeto
climasus_metaregression con:
-
$mvmeta_fit— modelomvmetacon covariables (o modelo nulo si el ajuste falla). -
$null_fit— modelo solo-intercepto (para comparación de heterogeneidad). -
$pooled_pred—dlnm::crosspredpara la ciudad promedio (covariables estandarizadas = 0, es decir, el intercepto). -
$blup_preds— lista con nombre decrosspredBLUP por ciudad, ajustados por la covariable (cuandoblup = TRUE). -
$city_table— tibble con RR bruto y BLUP por ciudad en el p75. -
$covariate_tests— tabla de pruebas de Wald por covariable (chi-cuadrado multivariado, df = n.º de coeficientes de la cross-basis, valor-p). -
$heterogeneity— tibble comparando modelo nulo vs. completo: Q de Cochran, df, valor-p, I², R²_het. -
$cov_scales— tibble con media y DE usados para estandarizar cada covariable (para la retro-transformación). -
$meta— metadatos (ciudades, covariables, método, grilla, tiempo).
Métodos S3 disponibles: print(), summary(),
coef(), vcov(), tidy().
sus_mod_sensitivity()
Compara curvas exposición-respuesta y RR acumulados entre estratos poblacionales.
| Argumento | Descripción |
|---|---|
fits |
Lista con nombre de climasus_dlnm — uno por
estrato. Mínimo: 2. |
hot_percentile |
Cuantil “cálido” de referencia. Por defecto 0.99. |
cold_percentile |
Cuantil “frío” de referencia. Por defecto 0.01. |
stratum_labels |
Vector con nombre de etiquetas legibles para los estratos
(opcional). NULL usa los nombres de fits. |
alpha |
Nivel de significancia para los IC. Por defecto
0.05. |
lang |
Idioma de los mensajes: "pt" (por defecto),
"en", "es". |
verbose |
¿Mostrar progreso? Por defecto TRUE. |
Retorno — objeto climasus_sensitivity
con:
-
$rr_table— tabla larga: un par (calor/frío) por estrato, con exposición, RR, IC95% y referencia. -
$comparison— una fila por estrato con hot_rr, cold_rr, hot_rank, cold_rank y sensitivity_index (SI = log RR_calor + log RR_frío). -
$stratum_curves— curva ERC completa (100 puntos) por estrato, para superposición. -
$meta— metadatos.
Métodos S3 disponibles: print(), summary(),
tidy().
sus_mod_plot_sensitivity()
Visualizaciones del análisis de sensibilidad multiestrato.
type = |
Descripción | Dato usado |
|---|---|---|
"curves" |
ERCs de cada estrato superpuestas con franja de IC. Leyenda ordenada por el SI (estrato más vulnerable primero). | $stratum_curves |
"scatter" |
Dispersión RR_calor (eje Y) vs. RR_frío (eje X); tamaño del punto
proporcional al sensitivity_index. Útil para identificar
estratos vulnerables a ambos extremos. |
$comparison |
"bar" |
Forest plot horizontal con estimaciones de calor (rojo) y frío (azul) por estrato, ordenado por el SI. Equivalente a un forest plot de dos lados. | $rr_table |
Argumentos adicionales compartidos: output_type
("plot", "table", "all"),
interactive (convierte a plotly),
base_size, save_plot, lang,
verbose.
Fórmulas clave
Meta-análisis multivariado de dos etapas
Sea el vector -dimensional de coeficientes de la cross-basis para la ciudad , estimado con varianza . El modelo de efectos aleatorios multivariados es:
donde
es la matriz de covarianza entre ciudades, estimada por REML. El
estimador combinado
se obtiene minimizando la log-verosimilitud restringida de
mvmeta, y se pasa a dlnm::crosspred() para
producir la curva exposición-respuesta agrupada.
BLUPs ciudad-específicos
Los BLUPs contraen las estimaciones brutas de cada ciudad hacia la media agrupada:
Cuanto mayor sea la incertidumbre local ( grande) o menor la heterogeneidad ( pequeño), mayor será la contracción hacia la media.
Heterogeneidad: Q de Cochran e I²
La heterogeneidad entre ciudades se evalúa mediante la prueba Q de Cochran:
y se cuantifica mediante el I² (proporción de la varianza total que es heterogeneidad):
Resultados ilustrados
Curva exposición-respuesta agrupada (REML)

Figura 1. Curva exposición-respuesta agrupada del análisis de dos etapas (REML). El RR es relativo a la temperatura mediana de la serie combinada. La franja sombreada representa el IC95%. La asociación en forma de J o V indica exceso de riesgo tanto en las temperaturas más bajas (frío prolongado, rezagos mayores) como en las más altas (calor agudo, rezagos cortos).
Forest plot: estimaciones por municipio

Figura 2. Forest plot de las estimaciones ciudad-específicas en el percentil 75 de la temperatura (p75). El diamante corresponde a la estimación bruta del DLNM individual; el círculo corresponde al BLUP, contraído hacia la estimación agrupada. Los municipios con muestras menores exhiben mayor contracción (menor peso efectivo).
| Q | df | p_value | i2 |
|---|---|---|---|
| 52.77 | 60 | 0.7347 | 0 |
| city | n | rr | lo | hi | blup_rr | blup_lo | blup_hi |
|---|---|---|---|---|---|---|---|
| Sao_Paulo | 2170 | 1.0544343 | 0.9030486 | 1.231198 | 1.0313123 | 0.9024391 | 1.178589 |
| Guarulhos | 2170 | 0.9643129 | 0.7791105 | 1.193540 | 0.9756899 | 0.8411172 | 1.131793 |
| Osasco | 2170 | 1.1508155 | 0.8637346 | 1.533314 | 1.1364066 | 0.9700327 | 1.331316 |
| Santo_Andre | 2170 | 1.0189653 | 0.7617108 | 1.363103 | 1.0014877 | 0.8593937 | 1.167076 |
| Mogi_das_Cruzes | 2170 | 0.8073053 | 0.5829996 | 1.117911 | 0.9315521 | 0.7988684 | 1.086273 |
| Carapicuiba | 2170 | 0.9723797 | 0.7030920 | 1.344806 | 1.0184589 | 0.8705082 | 1.191555 |
Curvas BLUP por municipio (spaghetti)

Figura 3. Curvas de exposición-respuesta BLUP por municipio (gris) superpuestas a la estimación agrupada (color sólido con IC). La variación entre las líneas grises refleja la heterogeneidad residual tras la contracción; los municipios con mayor concordancia con la media presentan curvas más cercanas a la pooled.
Sensibilidad por franja etaria: ERCs superpuestas

Figura 4. Curvas de exposición-respuesta por franja etaria (60–74 años vs. 75+ años), obtenidas por DLNMs individuales. La leyenda está ordenada por el Índice de Sensibilidad Combinado (SI = log RR_calor + log RR_frío), con el estrato más vulnerable listado primero.
Sensibilidad por franja etaria: dispersión RR calor × RR frío

Figura 5. Gráfico de dispersión del RR en el calor (eje Y, p99) versus RR en el frío (eje X, p01) por franja etaria. El tamaño del punto es proporcional al Índice de Sensibilidad. Los estratos posicionados en el cuadrante superior-derecho (RR calor > 1 y RR frío > 1) son vulnerables a ambos extremos térmicos.
Sensibilidad por franja etaria: forest calor/frío

Figura 6. Forest plot del RR en el calor (p99, rojo) y en el frío (p01, azul) por franja etaria, ordenado por el Índice de Sensibilidad. Los adultos mayores de 75 años tienden a presentar RR más elevados en ambos extremos térmicos, reflejando mayor vulnerabilidad fisiológica y menor capacidad de termorregulación.
Referencias
- Berkey, C. S., Hoaglin, D. C., Mosteller, F., & Colditz, G. A. (1995). A random-effects regression model for meta-analysis. Statistics in Medicine, 14(4), 395–411.
- Berkey, C. S., Hoaglin, D. C., Antczak-Bouckoms, A., Mosteller, F., & Colditz, G. A. (1998). Meta-analysis of multiple outcomes by regression with random effects. Statistics in Medicine, 17(22), 2537–2550.
- Gasparrini, A., Armstrong, B., & Kenward, M. G. (2012). Multivariate meta-analysis for non-linear and other multi-parameter associations. Statistics in Medicine, 31(29), 3821–3839. doi:10.1002/sim.5471
- Gasparrini, A., & Armstrong, B. (2013). Reducing and meta-analysing estimates from distributed lag non-linear models. BMC Medical Research Methodology, 13, 1. doi:10.1186/1471-2288-13-1
- Gasparrini, A., Guo, Y., Hashizume, M., et al. (2015). Mortality risk attributable to high and low ambient temperature: a multicountry observational study. The Lancet, 386(9994), 369–375.
- Zhao, Q., Guo, Y., Ye, T., et al. (2021). Global, regional, and national burden of mortality associated with non-optimal ambient temperatures from 2000 to 2019: a three-stage modelling study. The Lancet Planetary Health, 5(7), e415–e425.
- Baccini, M., Biggeri, A., Accetta, G., et al. (2008). Heat effects on mortality in 15 European cities. Epidemiology, 19(5), 711–719.
- White, I. R. (2011). Multivariate random-effects meta-regression: updates to mvmeta. The Stata Journal, 11(2), 255–270.
Navegación
- Anterior: Modelización 03 — Case-Crossover y Series Interrumpidas
- Siguiente: Modelización 05 — Aprendizaje Automático (XGBoost)
- Volver al hub de tutoriales
Cómo reproducir las figuras y tablas. Ejecute una única vez, desde la raíz del paquete:
Rscript scripts/modelagem_04_multicidade.REl script guarda las figuras envignettes-pt/figuras/(prefijomodpool_), las tablas envignettes-pt/dados/y el objetomod_pool.rdspara su uso en los tutoriales siguientes.