## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 4, dpi = 96 ) run_models <- requireNamespace("gamlss", quietly = TRUE) && requireNamespace("gamlss.dist", quietly = TRUE) ## ----data--------------------------------------------------------------------- library(clis) vaccination <- load_vaccination() str(vaccination) mean(vaccination$dtp3 == 1) # fraction at the upper boundary ## ----fit, eval = run_models--------------------------------------------------- library(gamlss) fit <- gamlss( dtp3 ~ ln_gdp + urb, sigma.formula = ~ ln_gdp + ln_pop, nu.formula = ~ hdi, family = gamlss.dist::BEOI, data = vaccination, control = gamlss.control(trace = FALSE) ) ## ----screen, eval = run_models------------------------------------------------ res <- clis_screen(fit, alpha = 0.1, seed = 1) res ## ----plot-clis, eval = run_models--------------------------------------------- plot_clis(res) ## ----summary, eval = run_models----------------------------------------------- summary(res) ## ----cnc-panels, eval = run_models-------------------------------------------- info <- bic_info(fit) delta <- delta_caseweights(fit) cnc <- cnc_matrix(delta$Delta, info$info_inv) sc <- cnc_scores(cnc) dec <- cnc_block_decomp(delta, info) plot_cnc_panels(cnc, sc, dec) ## ----prec, eval = run_models-------------------------------------------------- res_prec <- clis_screen(fit, scheme = "preccovar", p = 2, alpha = 0.1, seed = 1) res_prec ## ----workflow, eval = run_models---------------------------------------------- # (2) classical index plot -- the familiar picture, no error control plot_influence(fit, labels = vaccination$iso3c) # (3) error-controlled screen at FDR 10% res <- clis_screen(fit, alpha = 0.10, seed = 1) # (5) stability across seeds: keep declarations that persist decl <- lapply(1:10, function(s) clis_screen(fit, alpha = 0.10, seed = s)$influential_global) stable <- Reduce(intersect, decl) vaccination$iso3c[stable] ## ----semipar, eval = FALSE---------------------------------------------------- # fit_s <- gamlss( # dtp3 ~ pb(ln_gdp) + urb, # sigma.formula = ~ pb(ln_gdp) + ln_pop, # nu.formula = ~ pb(hdi), # family = gamlss.dist::BEOI, # data = vaccination, # control = gamlss.control(trace = FALSE) # ) # res_s <- clis_screen(fit_s, alpha = 0.1, penalised = TRUE, seed = 1) # res_s