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.
duane(times, failures = NULL, conf.level = 0.95)A list of class "duane" containing:
The input exact failure times.
The input number of failures.
The number of observations (failures).
The cumulative mean time between failures.
The fitted lm (linear model) object containing the regression results.
The log-likelihood of the fitted model.
Akaike Information Criterion (AIC).
Bayesian Information Criterion (BIC).
The confidence level.
The cumulative operating times.
The cumulative mean time between failures.
The fitted values on the MTBF scale.
Matrix of fitted values and confidence bounds on the MTBF scale.
Residuals on the log(MTBF) scale (from the regression).
Residuals on the MTBF scale (observed - fitted).
Either:
A numeric vector of exact failure times, or
A data frame containing two columns: times and failures. The times
column contains exact failure times, and the failures column
contains the number of failures at each corresponding time.
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.
Confidence level for the confidence bounds (default: 0.95).
Must be between 0 and 1 (exclusive).
The scaling relationship between the size of input data (numbers of observations) and speed of algorithm execution is approximately linear (O(n)). The function is efficient and can handle large data sets (e.g., thousands of observations) quickly. The function uses base R functions and does not require any additional packages. The function includes comprehensive input validation and error handling to ensure robustness. The function is tested with a standard data set from a published paper and includes unit tests to verify correctness and performance.
Other Duane functions:
plot.duane(),
print.duane()
times <- c(100, 200, 300, 400, 500)
failures <- c(1, 2, 1, 3, 2)
fit1 <- duane(times, failures, conf.level = 0.90)
print(fit1)
df <- data.frame(times = times, failures = failures)
fit2 <- duane(df, conf.level = 0.95)
print(fit2)
Run the code above in your browser using DataLab