Learn R Programming

weibulltools (version 1.0.1)

ml_estimation: ML Estimation for Parametric Lifetime Distributions

Description

This method estimates the parameters and calculates normal approximation confidence intervals for a two- or three-parametric lifetime distribution in the frequently used (log-) location-scale parameterization. ml_estimation uses the Lifedata.MLE function which is defined in the SPREDA package. For the Weibull the estimates are transformed such that they are in line with the parameterization provided by the stats package like pweibull. The method is applicable for complete and (multiple) right censored data.

Usage

ml_estimation(x, event, distribution = c("weibull", "lognormal",
  "loglogistic", "normal", "logistic", "sev", "weibull3", "lognormal3",
  "loglogistic3"), wts = rep(1, length(x)), conf_level = 0.95,
  details = TRUE)

Arguments

x

a numeric vector which consists of lifetime data. Lifetime data could be every characteristic influencing the reliability of a product, e.g. operating time (days/months in service), mileage (km, miles), load cycles.

event

a vector of binary data (0 or 1) indicating whether unit i is a right censored observation (= 0) or a failure (= 1).

distribution

supposed distribution of the random variable. The value can be "weibull", "lognormal", "loglogistic", "normal", "logistic", "sev" (smallest extreme value), "weibull3", "lognormal3" or "loglogistic3". Other distributions have not been implemented yet.

wts

optional vector of case weights. The length of wts must be the same as the number of observations x. Default is that wts is a vector with all components being 1 (same weights).

conf_level

confidence level of the interval. The default value is conf_level = 0.95.

details

a logical variable, where the default value is TRUE. If FALSE the output consists of a list that only contains the estimated parameters. If TRUE the output is a detailed list with many more information. See below (Value).

Value

Returns a list with the following components (depending on details argument):

  • coefficients : Provided, if distribution is "weibull". \(\eta\) is the estimated scale and \(\beta\) the estimated shape parameter.

  • confint : Provided, if distribution is "weibull". Confidence interval for \(\eta\) and \(\beta\).

  • loc_sc_coefficients : Estimated location-scale parameters.

  • loc_sc_confint : Confidence interval for location-scale parameters.

  • loc_sc_vcov : Estimated Variance-Covariance matrix of the used location-scale distribution.

  • logL : The log-likelihood value.

  • aic : Akaike Information Criterion.

  • bic : Bayesian Information Criterion.

References

Meeker, William Q; Escobar, Luis A., Statistical methods for reliability data, New York: Wiley series in probability and statistics, 1998

Examples

Run this code
# NOT RUN {
# Example 1: Fitting a two-parameter Weibull:
obs   <- seq(10000, 100000, 10000)
state <- c(0, 1, 1, 0, 0, 0, 1, 0, 1, 0)

mle <- ml_estimation(x = obs, event = state,
                     distribution = "weibull", conf_level = 0.90)

# Example 2: Fitting a three-parameter Weibull:
# Alloy T7987 dataset taken from Meeker and Escobar(1998, p. 131)
cycles   <- c(300, 300, 300, 300, 300, 291, 274, 271, 269, 257, 256, 227, 226,
              224, 213, 211, 205, 203, 197, 196, 190, 189, 188, 187, 184, 180,
              180, 177, 176, 173, 172, 171, 170, 170, 169, 168, 168, 162, 159,
              159, 159, 159, 152, 152, 149, 149, 144, 143, 141, 141, 140, 139,
              139, 136, 135, 133, 131, 129, 123, 121, 121, 118, 117, 117, 114,
              112, 108, 104, 99, 99, 96, 94)
state <- c(rep(0, 5), rep(1, 67))

mle_weib3 <- ml_estimation(x = cycles, event = state,
                           distribution = "weibull3", conf_level = 0.95)

# }

Run the code above in your browser using DataLab