Estimates the parameters of the Modified Weibull Distribution (MWD) using classical estimation methods.
fitMWD(
data,
est.method,
opt.method,
starts,
lower = NULL,
upper = NULL,
verbose = FALSE,
...
)Numeric vector of observations.
Character string specifying the estimation method.
Options include "MLE", "LSE", "WLSE", and "MPS".
Character string specifying the optimization method
used in optim, such as "Nelder-Mead", "BFGS",
"CG", "L-BFGS-B", "SANN", or "Brent".
Numeric vector of initial values for the parameters
Numeric vector of lower bounds for parameters in constrained optimization.
Ignored if NULL.
Numeric vector of upper bounds for parameters in constrained optimization.
Logical. If TRUE, prints optimization progress.
Additional arguments passed to optim.
A list containing:
Named numeric vector of estimated parameters \((a, b, \lambda)\).
Numeric vector of model selection criteria (log-likelihood, AIC, BIC).
Initial values used in the optimization.
Full output from optim.
Fit the Modified Weibull Distribution (MWD)
The Modified Weibull Distribution (Lai et al., 2003) has cumulative distribution function (CDF) and probability density function (PDF):
$$ F(x) = 1 - \exp\left(-a x^b \exp(\lambda x)\right), $$ $$ f(x) = a (b + \lambda x) x^{b - 1} \exp(\lambda x) \exp\left(-a x^b \exp(\lambda x)\right), $$
where \(x > 0\), \(a > 0\) is a scale parameter, \(b \ge 0\) is a shape parameter, and \(\lambda \ge 0\) is a flexibility parameter controlling the growth rate of the hazard function.
The parameters are estimated using the following methods:
Maximum Likelihood Estimation (MLE): Maximizes the log-likelihood under the MWD model.
Least Squares Estimation (LSE): Minimizes squared differences between empirical and theoretical CDFs. The empirical CDF uses Benard's approximation: \(F(x_{(i)}) = (i - 0.3)/(n + 0.4)\), for \(i = 1, \dots, n\).
Weighted Least Squares Estimation (WLSE): A modification of LSE that assigns weights to the squared differences. Uses weights \(w_i = \frac{(n+1)^2(n+2)}{i(n-i+1)}\), for \(i = 1, \dots, n\).
Maximum Product of Spacings (MPS): Maximizes the product of spacings of the fitted CDF.
Further details are provided in Kizilaslan (2026).
Kizilaslan, F. (2026). Reliability estimation in dependent stress–strength model with Clayton copula and modified Weibull margins. arXiv preprint. Available at arXiv:2604.12130.
Lai, C. D., Xie, M., and Murthy, D. N. P. (2003). A modified Weibull distribution. IEEE Transactions on Reliability, 52(1), 33–37.
# generate data from MWD(a, b, lambda)
n <- 100
a <- 0.75; b <- 1.25; lambda <- 0.60
set.seed(123)
dat <- rMweibull(n, a, b, lambda)
init <- runif(3)
# Fit MWD to dat.
fit.mle <- fitMWD(data = dat, est.method = "mle", opt.method = "L-BFGS-B", starts = init,
lower = c(1e-05,1e-05,1e-05), upper = c(Inf,Inf,Inf), hessian = FALSE )
fit.mle$estimates
#> a b lambda
#> 0.7231634 1.2600843 0.6559157
fit.lse <- fitMWD(data = dat, est.method = "lse", opt.method = "L-BFGS-B", starts = init,
lower = c(1e-05,1e-05,1e-05), upper = c(Inf,Inf,Inf), hessian = FALSE )
fit.lse$estimates
#> a b lambda
#> 0.9299033 1.4069386 0.4020883
fit.wlse <- fitMWD(data = dat, est.method = "wlse", opt.method = "L-BFGS-B", starts = init,
lower = c(1e-05,1e-05,1e-05), upper = c(Inf,Inf,Inf), hessian = FALSE )
fit.wlse$estimates
#> a b lambda
#> 0.9220048 1.4228131 0.4207337
fit.mps <- fitMWD(data = dat, est.method = "mps", opt.method = "L-BFGS-B", starts = init,
lower = c(1e-05,1e-05,1e-05), upper = c(Inf,Inf,Inf), hessian = FALSE )
fit.mps$estimates
#> a b lambda
#> 0.714056 1.189107 0.646072