Constructs a likelihood model for series systems with masked component cause
of failure, where components are arbitrary dfr_dist
distributions. Supports exact, right-censored, left-censored, and
interval-censored observations with candidate sets satisfying C1-C2-C3.
Usage
dfr_series_md(
series = NULL,
components = NULL,
par = NULL,
n_par = NULL,
lifetime = "t",
lifetime_upper = "t_upper",
omega = "omega",
candset = "x"
)Arguments
- series
A
dfr_dist_seriesobject. Ignored ifcomponentsis provided.- components
A list of
dfr_distobjects. If provided, adfr_dist_seriesis built from these.- par
Optional concatenated parameter vector.
- n_par
Optional integer vector of parameter counts per component.
- lifetime
Column name for system lifetime (default
"t").- lifetime_upper
Column name for interval upper bound (default
"t_upper").- omega
Column name for observation type (default
"omega").- candset
Column prefix for candidate set indicators (default
"x").
Details
The model computes the masked-cause log-likelihood for series systems where the system lifetime is the minimum of independent component lifetimes, and the causing component is partially observed through candidate sets.
Observation types (stored in the omega column):
"exact"Failed at time t, cause masked among candidates
"right"Right-censored: survived past time t
"left"Left-censored: failed before time t
"interval"Failed in interval (t, t_upper)
Masking conditions:
- C1
Failed component is in candidate set with probability 1
- C2
Uniform probability for candidate sets given component cause
- C3
Masking probabilities independent of system parameters
See also
is_dfr_series_md for the type predicate,
dfr_dist_series for the series distribution,
loglik for the likelihood interface
Examples
# \donttest{
library(flexhaz)
library(serieshaz)
# From components
model <- dfr_series_md(components = list(
dfr_exponential(0.1),
dfr_exponential(0.2),
dfr_exponential(0.3)
))
# From pre-built series
sys <- dfr_dist_series(list(
dfr_weibull(shape = 2, scale = 100),
dfr_exponential(0.05)
))
model2 <- dfr_series_md(series = sys)
# }