Skip to contents

This function performs a Duane analysis (1962) doi:10.1109/TA.1964.4319640 on failure data by fitting a log-log linear regression of cumulative Mean Time Between Failures (MTBF) versus cumulative time. The function accepts either two numeric vectors (times, failures) or a data frame containing both.

Usage

duane(times, failures = NULL, conf.level = 0.95)

Arguments

times

Either:

  • A numeric vector of cumulative failure times, or

  • A data frame containing two columns: times and failures. The times column contains cumulative failure times, and the failures column contains the number of failures at each corresponding time.

failures

A numeric vector of the number of failures at each corresponding time in times. Ignored if times is a data frame. Must be the same length as times if both are vectors. All values must be positive and finite.

conf.level

Confidence level for the confidence bounds (default: 0.95). Must be between 0 and 1 (exclusive).

Value

A list of class "duane" containing:

model

The fitted lm (linear model) object containing the regression results.

logLik

The log-likelihood of the fitted model.

AIC

Akaike Information Criterion (AIC).

BIC

Bayesian Information Criterion (BIC).

conf.level

The confidence level.

Cumulative_Time

The cumulative operating times.

Cumulative_MTBF

The cumulative mean time between failures.

Fitted_Values

The fitted values on the MTBF scale.

Confidence_Bounds

Matrix of fitted values and confidence bounds on the MTBF scale.

See also

Other Duane functions: plot.duane(), print.duane()

Examples

times <- c(100, 200, 300, 400, 500)
failures <- c(1, 2, 1, 3, 2)
fit1 <- duane(times, failures, conf.level = 0.90)
print(fit1)
#> Duane Analysis Result
#> ----------------------
#> Linear model (log-log scale): log(MTBF) ~ log(Time)
#> 
#> Coefficients:
#>                Estimate Std. Error
#> (Intercept)   3.6144974 0.35199619
#> log_cum_times 0.2013244 0.05624037
#> 
#> Log-likelihood: 4.78
#> AIC: -3.55, BIC: -4.72
#> Confidence level: 90.0%

df <- data.frame(times = times, failures = failures)
fit2 <- duane(df, conf.level = 0.95)
print(fit2)
#> Duane Analysis Result
#> ----------------------
#> Linear model (log-log scale): log(MTBF) ~ log(Time)
#> 
#> Coefficients:
#>                Estimate Std. Error
#> (Intercept)   3.6144974 0.35199619
#> log_cum_times 0.2013244 0.05624037
#> 
#> Log-likelihood: 4.78
#> AIC: -3.55, BIC: -4.72
#> Confidence level: 95.0%