Title: Reliability Growth Analysis
Version: 0.2
Description: Modeling and plotting functions for Reliability Growth Analysis (RGA). Models include the Duane (1962) <doi:10.1109/TA.1964.4319640>, Non-Homogeneous Poisson Process (NHPP) by Crow (1975) https://apps.dtic.mil/sti/citations/ADA020296, Piecewise Weibull NHPP by Guo et al. (2010) <doi:10.1109/RAMS.2010.5448029>, and Piecewise Weibull NHPP with Change Point Detection based on the 'segmented' package by Muggeo (2024) https://cran.r-project.org/package=segmented.
Imports: stats, graphics, segmented
License: CC BY 4.0
Encoding: UTF-8
Suggests: ellmer, knitr, rmarkdown, spelling, testthat (≥ 3.0.0), vdiffr
Language: en-US
URL: https://paulgovan.github.io/ReliaGrowR/, https://github.com/paulgovan/ReliaGrowR
Config/testthat/edition: 3
VignetteBuilder: knitr
BugReports: https://github.com/paulgovan/ReliaGrowR/issues
RoxygenNote: 7.3.3
NeedsCompilation: no
Packaged: 2025-09-20 02:41:55 UTC; paulgovan
Author: Paul Govan ORCID iD [aut, cre, cph]
Maintainer: Paul Govan <paul.govan2@gmail.com>
Repository: CRAN
Date/Publication: 2025-09-21 22:10:24 UTC

ReliaGrowR: Reliability Growth Analysis

Description

Modeling and plotting functions for Reliability Growth Analysis (RGA). Models include the Duane (1962) doi:10.1109/TA.1964.4319640, Non-Homogeneous Poisson Process (NHPP) by Crow (1975) https://apps.dtic.mil/sti/citations/ADA020296, Piecewise Weibull NHPP by Guo et al. (2010) doi:10.1109/RAMS.2010.5448029, and Piecewise Weibull NHPP with Change Point Detection based on the 'segmented' package by Muggeo (2024) https://cran.r-project.org/package=segmented.

Author(s)

Maintainer: Paul Govan paul.govan2@gmail.com (ORCID) [copyright holder]

See Also

Useful links:


Duane Analysis

Description

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 MTBF versus cumulative time.

Usage

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

Arguments

times

A numeric vector of cumulative failure times.

failures

A numeric vector of the number of failures at each corresponding time in times.

conf.level

Confidence level for the confidence bounds (default: 0.95).

Value

A list of class "duane" containing:

model

The fitted lm object.

logLik

The log-likelihood of the fitted model.

AIC

Akaike Information Criterion.

BIC

Bayesian Information Criterion.

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)
fit <- duane(times, failures, conf.level = 0.90)
print(fit)


Plot Method for Duane Analysis

Description

Generates a Duane plot (log-log or linear scale) with fitted regression line and optional confidence bounds.

Usage

## S3 method for class 'duane'
plot(
  x,
  log = TRUE,
  conf.int = TRUE,
  legend = TRUE,
  legend.pos = "topleft",
  ...
)

Arguments

x

An object of class "duane".

log

Logical; whether to use logarithmic scales for axes (default: TRUE).

conf.int

Logical; whether to plot confidence bounds (default: TRUE).

legend

Logical; whether to include a legend (default: TRUE).

legend.pos

Position of the legend (default: "topleft").

...

Further arguments passed to plot().

Value

Invisibly returns NULL.

See Also

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

Examples

times <- c(100, 200, 300, 400, 500)
failures <- c(1, 2, 1, 3, 2)
fit <- duane(times, failures)
plot(fit, main = "Duane Plot", xlab = "Cumulative Time", ylab = "Cumulative MTBF")

Plot Method for RGA Objects

Description

This function generates plots for objects of class rga.

Usage

## S3 method for class 'rga'
plot(
  x,
  conf_bounds = TRUE,
  legend = TRUE,
  log = FALSE,
  legend_pos = "bottomright",
  ...
)

Arguments

x

An object of class rga, which contains the results from the RGA model.

conf_bounds

Logical; include confidence bounds (default: TRUE).

legend

Logical; show the legend (default: TRUE).

log

Logical; use a log-log scale (default: FALSE).

legend_pos

Position of the legend (default: "bottomright").

...

Additional arguments passed to plot().

Value

Invisibly returns NULL.

See Also

Other Reliability Growth Analysis: print.rga(), rga()

Examples

times <- c(100, 200, 300, 400, 500)
failures <- c(1, 2, 1, 3, 2)
result <- rga(times, failures)
plot(result, main = "Reliability Growth Analysis",
xlab = "Cumulative Time", ylab = "Cumulative Failures")

P-P Plot for RGA Objects

Description

This function creates a P-P plot for a fitted Reliability Growth Analysis (RGA) model Currently only supports the Crow-AMSAA model.

Usage

ppplot.rga(x, main = "P-P Plot", ...)

Arguments

x

An object of class rga.

main

Title of the plot.

...

Additional arguments passed to plot().

Value

A P-P plot comparing empirical and theoretical CDFs.

See Also

Other goodness-of-fit: qqplot.rga()

Examples

times <- c(5, 10, 15, 20, 25)
failures <- c(1, 2, 1, 3, 2)
fit <- rga(times, failures)
ppplot.rga(fit)

Print method for duane objects.

Description

This function prints a summary of the Duane analysis result.

Usage

## S3 method for class 'duane'
print(x, ...)

Arguments

x

An object of class "duane" returned by the duane_plot function.

...

Additional arguments (not used).

Value

Invisibly returns the input object.

See Also

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

Examples

times <- c(100, 200, 300, 400, 500)
failures <- c(1, 2, 1, 3, 2)
fit <- duane(times, failures)
print(fit)

Print method for rdt objects

Description

This function provides a formatted print method for objects of class rdt.

Usage

## S3 method for class 'rdt'
print(x, ...)

Arguments

x

An object of class rdt.

...

Additional arguments (not used).

Value

Invisibly returns the input object.

Examples

plan <- rdt(target=0.9, mission_time=1000, conf_level=0.9, beta=1, n=10)
print(plan)

Print method for rga objects.

Description

Print method for rga objects.

Usage

## S3 method for class 'rga'
print(x, ...)

Arguments

x

An object of class rga, which contains the results from the RGA model.

...

Additional arguments (not used).

Value

Invisibly returns the input object.

See Also

Other Reliability Growth Analysis: plot.rga(), rga()

Examples

times <- c(100, 200, 300, 400, 500)
failures <- c(1, 2, 1, 3, 2)
result <- rga(times, failures)
print(result)

Q-Q Plot for RGA Objects

Description

This function creates a Q-Q plot for a fitted Reliability Growth Analysis (RGA) model Currently only supports the Crow-AMSAA model.

Usage

qqplot.rga(x, main = "Q-Q Plot", ...)

Arguments

x

An object of class rga.

main

Title of the plot.

...

Additional arguments passed to stats::qqplot().

Value

A Q-Q plot comparing empirical and theoretical quantiles.

See Also

Other goodness-of-fit: ppplot.rga()

Examples

times <- c(5, 10, 15, 20, 25)
failures <- c(1, 2, 1, 3, 2)
fit <- rga(times, failures)
qqplot.rga(fit)

Reliability Demonstration Test (RDT) Plan Calculator

Description

This function calculates the required test time or sample size for a Reliability Demonstration Test (RDT) based on specified reliability, mission time, confidence level, and Weibull shape parameter.

Usage

rdt(target, mission_time, conf_level, beta = 1, n = NULL, test_time = NULL)

Arguments

target

Required reliability at mission time (0 < target < 1).

mission_time

Mission duration (time units).

conf_level

Desired confidence level (e.g., 0.9 for 90% confidence).

beta

Weibull shape parameter (beta=1 corresponds to exponential distribution).

n

Sample size (optional, supply if solving for test_time).

test_time

Test time per unit (optional, supply if solving for n).

Value

The function returns an object of class rdt that contains:

Distribution

Type of distribution used (Exponential or Weibull).

Beta

Weibull shape parameter.

Target_Reliability

Specified target reliability.

Mission_Time

Specified mission time.

Required_Test_Time

Calculated required test time (if n is provided).

Input_Sample_Size

Provided sample size (if test_time is calculated).

Required_Sample_Size

Calculated required sample size (if test_time is provided).

Input_Test_Time

Provided test time (if n is calculated).

Examples

#' # Example 1: Calculate required test time
plan1 <- rdt(target=0.9, mission_time=1000, conf_level=0.9, beta=1, n=10)
print(plan1)
# Example 2: Calculate required sample size
plan2 <- rdt(target=0.9, mission_time=1000, conf_level=0.9, beta=1, test_time=2000)
print(plan2)

Reliability Growth Analysis.

Description

This function performs reliability growth analysis using the Crow-AMSAA model by Crow (1975) https://apps.dtic.mil/sti/citations/ADA020296 or piecewise NHPP model by Guo et al. (2010) doi:10.1109/RAMS.2010.5448029.

Usage

rga(
  times,
  failures,
  model_type = "Crow-AMSAA",
  breaks = NULL,
  conf_level = 0.95
)

Arguments

times

A vector of cumulative failure times.

failures

A vector of the number of failures at each corresponding time in times.

model_type

The model type. Either Crow-AMSAA (default) or ⁠Piecewise NHPP⁠ with change point detection.

breaks

An optional vector of breakpoints for the ⁠Piecewise NHPP⁠ model.

conf_level

The desired confidence level, which defaults to 95%.

Value

The function returns an object of class rga that contains:

model

The fitted model object (lm or segmented).

logLik

The log-likelihood of the fitted model.

AIC

Akaike Information Criterion.

BIC

Bayesian Information Criterion.

breakpoints

Breakpoints (log scale) if applicable.

fitted_values

Fitted cumulative failures on the original scale.

lower_bounds

Lower confidence bounds (original scale).

upper_bounds

Upper confidence bounds (original scale).

betas

Estimated beta(s).

lambdas

Estimated lambda(s).

See Also

Other Reliability Growth Analysis: plot.rga(), print.rga()

Examples

times <- c(100, 200, 300, 400, 500)
failures <- c(1, 2, 1, 3, 2)
result <- rga(times, failures)
print(result)


Weibull to RGA

Description

Converts Weibull data (failure, suspension, and interval-censored times) into a format suitable for reliability growth analysis (RGA).

Usage

weibull_to_rga(
  failures,
  suspensions = NULL,
  interval_starts = NULL,
  interval_ends = NULL
)

Arguments

failures

A numeric vector of exact failure times.

suspensions

A numeric vector of suspension (right-censored) times.

interval_starts

A numeric vector of interval start times (lower bound of censoring).

interval_ends

A numeric vector of interval end times (upper bound of censoring).

Value

A data frame with cumulative time and failure counts suitable for RGA.

Examples

failures <- c(100, 200, 200, 400)
suspensions <- c(250, 350, 450)
interval_starts <- c(150, 300)
interval_ends <- c(180, 320)
result <- weibull_to_rga(failures, suspensions, interval_starts, interval_ends)
print(result)