Local influence diagnostics for the Extreme-Value
Birnbaum-Saunders (EVBS) regression model of Ferreira, Gomes and Leiva
(2012): joint maximum likelihood estimation, conformal normal curvature
diagnostics under case-weight, response and explanatory-variable
perturbation, randomized quantile residuals with simulation envelope, the
density, distribution and quantile functions, the finite upper endpoint,
return levels and expected shortfall, moving-block bootstrap standard
errors, a prospective index of endpoint identifiability, the same
diagnostics for generalized extreme-value regression, and a 'gamlss'
family allowing the tail-shape parameter to depend on covariates. The
methods are described in Lima, Ospina, Barros and Macedo (2025)

Local influence diagnostics for the Extreme-Value Birnbaum–Saunders (EVBS) regression model.
It provides joint maximum likelihood estimation, conformal normal curvature
(CNC) diagnostics under three perturbation schemes, randomized quantile
residuals with simulation envelope, the EVBS distribution family (density,
distribution, quantile), the finite upper endpoint, return levels and
expected shortfall, moving-block bootstrap standard errors, and the same
local influence diagnostics for the generalized extreme-value (GEV)
regression model, used as a benchmark. evbs_monitor() combines the
curvature diagnostic with the finite upper endpoint into a prospective index
of endpoint identifiability with a natural control limit. See NEWS.md for
the changelog and the vignette for a reproducible walk-through.
The methodology is described in
Ospina, R., Lima, J. I. C., Barros, M., and Macêdo, A. M. S. (2026). Local influence diagnostics for extreme-value Birnbaum–Saunders regression, with an application to wind-gust extremes. Submitted. Preliminary version: arXiv:2507.22967.
From CRAN:
install.packages("evbsreg")
Or the development version from GitHub:
# install.packages("remotes")
remotes::install_github("Raydonal/evbsreg")
Dependencies: ggplot2 (density plots) besides base R. gamlss is needed only to fit the optional
logEVBS() family with the gamlss package itself.
library(evbsreg)
data(itajai)
# 1. Fit the EVBS regression model
X <- cbind(1, itajai$pressure)
fit <- evbsreg.fit(X, itajai$wind)
round(fit$coeff, 4)
# 2. Local influence diagnostics
diag <- cnc_diagnostics(fit)
plot_cnc(diag, q = 7)
# 3. Most influential observation
which(diag$Bj[7, ] > diag$bq[7])
# 4. Refit without it and measure the impact
fit82 <- evbsreg.fit(X[-82, ], itajai$wind[-82])
round(100 * (fit82$coeff - fit$coeff) / abs(fit$coeff), 2)
The tail-shape parameter changes by about −73.67% when the catastrophic event of 26 April 2017 (observation 82) is removed, while the regression structure remains stable.
| Function | Purpose |
|---|---|
evbsreg.fit() |
Joint maximum likelihood fit of the EVBS regression model |
cnc_diagnostics() |
Conformal normal curvature diagnostics |
plot_cnc() |
Two-panel diagnostic figure (eigenvalues + contributions) |
rqrandomized(), rcoxsnell() |
Quantile and Cox–Snell residuals |
envelope_qq() |
Normal probability plot with simulation envelope |
revbs(), devbs(), pevbs(), qevbs() |
EVBS density, distribution, quantile, and random generation |
evbs_endpoint() |
Finite upper endpoint of the fitted model (Weibull domain) |
evbs_return_level() |
Return levels and expected shortfall from the EVBS quantile function |
evbs_block_boot() |
Moving-block bootstrap standard errors for serially dependent series |
evbsreg.fit.mc() |
Monte Carlo simulation study |
plot_evbs_alpha() … |
Density plots (Figures 1–2 of the paper) |
gevreg.fit(), gev_scores(), cnc_diagnostics_gev() |
GEV regression fit and matching local influence diagnostics |
logEVBS(), dlogEVBS(), plogEVBS(), qlogEVBS() |
gamlss.family for a log-EVBS model with covariate-dependent shape |
evbs_monitor(), plot.evbs_monitor() |
Prospective endpoint-identifiability control chart |
See vignette("evbsreg") for the full worked example.
Five standalone scripts reproduce every figure, table, and simulation:
source(system.file("scripts/script_01_density_figures.R", package = "evbsreg"))
source(system.file("scripts/script_02_itajai_application.R", package = "evbsreg"))
source(system.file("scripts/script_03_simulation_scenario1.R", package = "evbsreg"))
source(system.file("scripts/script_04_simulation_scenario2.R", package = "evbsreg"))
source(system.file("scripts/script_05_simulation_scenario3.R", package = "evbsreg"))
Each simulation script defaults to m = 5000 replicates (matching the
paper). Set m <- 500 at the top of a script for a quick check.
Full documentation, including the reference index and the "Get started" vignette, is available at the package website: https://raydonal.github.io/evbsreg/.
MIT © Raydonal Ospina