## ----include = FALSE---------------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) inla_available <- bdlnm::check_inla() ## ----setup, message=FALSE----------------------------------------------------- library(bdlnm) library(dlnm) library(splines) library(utils) ## ----------------------------------------------------------------------------- head(london) ## ----------------------------------------------------------------------------- # Exposure-response and lag-response spline parameters dlnm_var <- list( var_prc = c(10, 75, 90), var_fun = "ns", lag_fun = "ns", max_lag = 21, lagnk = 3 ) # Cross-basis parameters argvar <- list(fun = dlnm_var$var_fun, knots = quantile(london$tmean, dlnm_var$var_prc/100, na.rm = TRUE), Bound = range(london$tmean, na.rm = TRUE)) arglag <- list(fun = dlnm_var$lag_fun, knots = logknots(dlnm_var$max_lag, nk = dlnm_var$lagnk)) # Create crossbasis cb <- crossbasis(london$tmean, lag = dlnm_var$max_lag, argvar, arglag) ## ----------------------------------------------------------------------------- # Seasonality of mortality time series seas <- ns(london$date, df = round(8 * length(london$date) / 365.25)) ## ----------------------------------------------------------------------------- # Prediction values (equidistant points) temp <- round(seq(min(london$tmean), max(london$tmean), by = 0.1), 1) ## ----eval = inla_available---------------------------------------------------- mod <- bdlnm(mort_75plus ~ cb + factor(dow) + seas, data = london, family = "poisson", sample.arg = list(n = 1000, seed = 5243)) ## ----eval = inla_available---------------------------------------------------- str(mod, max.level = 1) ## ----eval = inla_available---------------------------------------------------- mmt <- optimal_exposure(mod, exp_at = temp) str(mmt) ## ----fig.width = 7, eval = inla_available------------------------------------- plot(mmt, xlab = "Temperature (ºC)", main = paste0("MMT (Median = ", round(mmt$summary[["0.5quant"]], 1), "ºC)")) ## ----eval = inla_available---------------------------------------------------- cen <- mmt$summary[["0.5quant"]] cen ## ----eval = inla_available---------------------------------------------------- cpred <- bcrosspred(mod, exp_at = temp, cen = cen) ## ----eval = inla_available---------------------------------------------------- str(cpred) ## ----eval = inla_available---------------------------------------------------- cpred$coefficients |> head(c(5, 5)) ## ----eval = inla_available---------------------------------------------------- cpred$matRRfit[, , "sample1"] |> head() ## ----eval = inla_available---------------------------------------------------- cpred$allRRfit |> head(c(5, 5)) ## ----eval = inla_available---------------------------------------------------- cpred$matRRfit.summary |> head(5) cpred$allRRfit.summary |> head(5) ## ----fig.width = 7, fig.height = 4, eval = inla_available--------------------- plot(cpred, "overall", xlab = "Temperature (ºC)", ylab = "Relative Risk", col = 4, main="Overall", log = "y") ## ----fig.width = 7, fig.height = 4, eval = inla_available--------------------- plot(cpred, "overall", xlab = "Temperature (ºC)", ylab = "Relative Risk", col = 4, main="Overall", log = "y", ci = "sampling") ## ----fig.width = 7, fig.height = 6, eval = inla_available--------------------- plot(cpred, "3d", zlab = "Relative risk", col = 4, lphi = 60, cex.axis = 0.6, xlab = "Temperature (ºC)", main = "3D graph of temperature effect") ## ----fig.width = 7, fig.height = 6, eval = inla_available--------------------- plot(cpred, "contour", xlab = "Temperature (ºC)", ylab = "Lag", main = "Contour plot") ## ----fig.width = 7, fig.height = 6, eval = inla_available--------------------- htemp <- round(quantile(london$tmean, 0.99), 1) plot(cpred , "slices", ci = "bars", type = "p", pch = 19, exp_at = htemp, ylab="RR", main=paste0("Association for a high temperature (", htemp, "ºC)")) ## ----fig.width = 7, fig.height = 6, eval = inla_available--------------------- plot(cpred , "slices", lag_at = 0, col=4, ylab="RR", main=paste0("Association at lag 0"))