Unified interface for loss ratio projection from a "Triangle" object.
Three projection methods are available:
"sa"(default)Uses exposure-driven (ED) estimation before maturity and chain ladder (CL) after maturity.
Before maturity: age-to-age factors are volatile, so exposure-driven projection \(\Delta C^L = g_k \cdot C^P_k\) anchors the estimate to premium volume.
After maturity: age-to-age factors are stable, so chain ladder projection \(C^L_{k+1} = f_k \cdot C^L_k\) preserves the cohort's observed level.
"ed"Exposure-driven for all development periods. All future increments are \(g_k \cdot C^P_k\).
"cl"Chain ladder for all development periods. Equivalent to classical Mack model.
In all cases, exposure is projected forward using chain ladder: $$\hat{C}^P_{i,k+1} = f^P_k \cdot \hat{C}^P_{i,k}$$
Usage
fit_lr(
x,
method = c("sa", "ed", "cl"),
loss_var = "closs",
exposure_var = "crp",
loss_alpha = 1,
exposure_alpha = 1,
delta_method = c("simple", "full"),
rho = 0,
conf_level = 0.95,
sigma_method = c("min_last2", "locf", "loglinear"),
recent = NULL,
regime_break = NULL,
maturity_args = NULL,
bootstrap = FALSE,
B = 1000,
seed = NULL
)Arguments
- x
An object of class
"Triangle".- method
One of
"sa","ed", or"cl". Default is"sa".- loss_var
Cumulative loss variable. Default is
"closs".- exposure_var
Cumulative exposure variable. Default is
"crp".- loss_alpha
Numeric scalar controlling the variance structure for loss estimation. Default is
1.- exposure_alpha
Numeric scalar for exposure chain ladder. Default is
1.- delta_method
Method for computing
se_lr = SE(L/E). One of:"simple"(default)se_lr = se_proj / exposure_proj, treats exposure as fixed."full"Full delta method with exposure uncertainty and loss-exposure correlation: $$\mathrm{Var}(L/E) \approx \frac{\mathrm{Var}(L)}{E^2} + \frac{L^2 \mathrm{Var}(E)}{E^4} - \frac{2 \rho L \mathrm{SE}(L) \mathrm{SE}(E)}{E^3}$$
- rho
Numeric scalar in
(-1, 1); assumed correlation between ultimate loss and ultimate exposure. Only used whendelta_method = "full". Default is0.- conf_level
Confidence level used for
ci_lower/ci_upperin the cohort summary. Default is0.95.- sigma_method
Sigma extrapolation method. One of
"min_last2"(default),"locf", or"loglinear".- recent
Optional positive integer for estimation window. Default is
NULL.- regime_break
Optional cohort cutoff for the regime break. Accepts:
NULL(default, no filter), a singleDate/character coercible to Date, a vector of dates (uses the latest), or aCohortRegimeobject (extracts the latest from$breakpoints). Behavior depends onmethod:"sa"Hybrid filter. Pre-break cohorts are dropped only for development periods at or before the maturity point (ED phase); post-maturity (CL) cells use the
recent-diagonal window across all cohorts. This preserves CL stability while protecting the ED intensities from a regime shift."ed","cl"Simple cohort cut: all cohorts strictly before the break date are excluded from estimation.
- maturity_args
A named list forwarded to
find_ata_maturity(), orNULL(default) to skip maturity filtering. Whenmethod = "sa", this also determines the switch point between ED and CL. Passlist()to use all defaults.- bootstrap
Logical; if
TRUE, parameter and process variance are derived via residual bootstrap rather than the analytical delta method. Default isFALSE.- B
Integer number of bootstrap replications. Used only when
bootstrap = TRUE. Default is1000.- seed
Optional integer seed for reproducible bootstrap. Default is
NULL.
Examples
if (FALSE) { # \dontrun{
data(experience)
exp <- as_experience(experience)
tri <- build_triangle(exp[cv_nm == "SUR"], group_var = cv_nm)
# Stage-adaptive (default): ED before maturity, CL after
lr_sa <- fit_lr(tri, method = "sa")
summary(lr_sa)
plot(lr_sa)
# Pure exposure-driven for all development periods
lr_ed <- fit_lr(tri, method = "ed")
# Pure chain ladder (Mack-style) for all development periods
lr_cl <- fit_lr(tri, method = "cl")
} # }
