igp_fit: Fit Inverse Gaussian Process Degradation Models with Frailty

View source: R/igp_frailty_fit.R

igp_fitR Documentation

Fit Inverse Gaussian Process Degradation Models with Frailty

Description

Fits an Inverse Gaussian Process (IGP) degradation model to longitudinal or repeated-measures degradation data, with optional gamma or inverse Gaussian frailty to account for unobserved unit-to-unit heterogeneity.

Usage

igp_fit(
  data,
  time_col = "t",
  deg_col = "increase",
  unit_col = "unit",
  frailty = c("none", "gamma", "ig"),
  mean_fun = "linear",
  start = NULL,
  method = "BFGS",
  control = list()
)

Arguments

data

A data frame containing degradation measurements across units over time.

time_col

Character string specifying the name of the column in data containing inspection times. Default is "t".

deg_col

Character string specifying the name of the column in data containing cumulative degradation values. Default is "increase".

unit_col

Character string specifying the name of the column in data containing unit/specimen IDs. Default is "unit".

frailty

Character string specifying the frailty distribution. Options are "none" for classical IGP, "gamma" for IGP with gamma frailty, or "ig" for IGP with inverse Gaussian frailty. Default is "none".

mean_fun

Character string or custom function specifying the mean degradation function g_\theta(t). Options are "linear" for g_\theta(t) = \theta t (default), "power" for g_\theta(t) = \theta_1 t^{\theta_2}, "exponential" for g_\theta(t) = \exp(\theta t) - 1, or a user-defined function of the form function(t, theta).

start

Optional numeric vector of initial parameter values. If NULL (default), automatic heuristic starting values are computed.

method

Character string specifying the optimization method to pass to optim. Default is "BFGS".

control

Optional list of control parameters forwarded to optim.

Details

In reliability analysis, degradation paths of high-reliability components are often monitored over time. The classical Inverse Gaussian Process (IGP) models the degradation increments \Delta D(t) = D(t + \Delta t) - D(t) as independent Inverse Gaussian random variables:

\Delta D(t) \sim \text{IG}(\Delta g_\theta(t), \eta (\Delta g_\theta(t))^2)

where g_\theta(t) is a monotone increasing mean function and \eta > 0 is the precision/scale parameter.

When experimental units exhibit unobserved heterogeneity, a multiplicative frailty variable z_i > 0 modifies the conditional hazard of unit i:

h_i(y \mid z_i) = \frac{1}{z_i} h_{\text{IGP}}(y)

Under the **IGP-Gamma** model, z_i \sim \text{Gamma}(1/\xi, \xi) with mean 1 and variance \xi > 0. Under the **IGP-IG** model, z_i \sim \text{IG}(1, 1/\xi) with mean 1 and variance \xi > 0.

Parameters are estimated via Maximum Likelihood Estimation (MLE) in unconstrained log-parameter space (\log\theta, \log\eta, \log\xi), guaranteeing strictly positive estimates. Standard errors and covariance matrices are derived using the Delta method and numerical inversion of the Hessian matrix.

Value

An object of class "igp_fit" containing:

coefficients

Named numeric vector of estimated parameters (e.g., theta, eta, and xi if frailty is present).

std_errors

Named numeric vector of asymptotic standard errors.

vcov

Variance-covariance matrix of parameter estimates.

loglik

Maximised log-likelihood value.

aic

Akaike Information Criterion (AIC).

bic

Bayesian Information Criterion (BIC).

frailty

The frailty distribution used ("none", "gamma", or "ig").

mean_fun_name

Name/type of mean function.

mean_fun

The mean function evaluated.

n_units

Number of unique experimental units.

n_obs

Total number of degradation increment observations.

convergence

Convergence code returned by optim (0 indicates successful convergence).

unit_data

List of per-unit sorted increments and inspection times.

data

Original data frame supplied.

call

The matched call.

References

Morita, L. H. M., Tomazella, V. L. D., Balakrishnan, N., Ramos, P. L., Ferreira, P. H., & Louzada, F. (2021). Inverse Gaussian process model with frailty term in reliability analysis. Quality and Reliability Engineering International, 37(2), 763-784. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1002/qre.2762")}.

Meeker, W. Q., & Escobar, L. A. (1998). Statistical Methods for Reliability Data. John Wiley & Sons.

See Also

individual_frailty, lifetime_dist, lr_test, sim_igp

Examples

# Fit Classical IGP, IGP-Gamma, and IGP-IG to laser degradation data
data(laser)
fit_none  <- igp_fit(laser, time_col = "t", deg_col = "increase",
                     unit_col = "unit", frailty = "none")
fit_gamma <- igp_fit(laser, time_col = "t", deg_col = "increase",
                     unit_col = "unit", frailty = "gamma")
fit_ig    <- igp_fit(laser, time_col = "t", deg_col = "increase",
                     unit_col = "unit", frailty = "ig")

# Summary comparison
summary(fit_none)
summary(fit_gamma)
summary(fit_ig)


IGPFrailty documentation built on Aug. 25, 2026, 9:08 a.m.