MyNixOS website logo
Description

Series System Distributions from Dynamic Failure Rate Components.

Compose multiple dynamic failure rate distributions into series system distributions where the system hazard equals the sum of component hazards. Supports hazard, survival, cumulative distribution function, density, sampling, and maximum likelihood estimation fitting via the dfr_dist() class from 'flexhaz'. Series distributions implement the 'dist.structure' protocol so structural queries (phi, min_paths, min_cuts, system_signature, structural importance, reliability, dual) and the importance measures from 'dist.structure' work directly on serieshaz objects. Methods for series system reliability follow Barlow and Proschan (1975, ISBN:0898713692).

serieshaz

Series System Distributions from Dynamic Failure Rate Components

serieshaz composes multiple dfr_dist objects into a series system distribution. A series system fails when any component fails, so the system hazard is the sum of component hazards:

$$h_{sys}(t) = \sum_{j=1}^{m} h_j(t, \theta_j)$$

The resulting object inherits from dfr_dist, so all existing methods — hazard, survival, CDF, density, sampling, log-likelihood, and MLE fitting — work automatically.

Installation

Install from r-universe:

install.packages("serieshaz", repos = "https://queelius.r-universe.dev")

Quick Start

library(serieshaz)

# Three-component server with different failure modes
server <- dfr_dist_series(list(
    dfr_weibull(shape = 2, scale = 500),     # disk wear-out
    dfr_exponential(0.001),            # random memory failure
    dfr_gompertz(a = 0.0001, b = 0.02)       # PSU degradation
))

# Evaluate system hazard and survival
h <- hazard(server)
S <- surv(server)

h(100)   # system hazard at t = 100
#> [1] 0.002538906
S(100)   # probability of surviving past t = 100
#> [1] 0.8420252
# Sample system lifetimes
set.seed(42)
samp <- sampler(server)
times <- samp(5)
times
#> [1] 294.9884 302.0998 150.3888 274.2224 236.8369
# Introspect: which component contributes most at t = 200?
for (j in 1:ncomponents(server)) {
    hj <- component_hazard(server, j)
    cat(sprintf("Component %d hazard at t=200: %.6f\n", j, hj(200)))
}
#> Component 1 hazard at t=200: 0.001600
#> Component 2 hazard at t=200: 0.001000
#> Component 3 hazard at t=200: 0.005460

Key Features

  • Composition: Combine any dfr_dist objects (Weibull, exponential, Gompertz, log-logistic, custom) into series systems
  • Full interface: All distribution methods (hazard, survival, CDF, density, quantile, sampling) work out of the box
  • MLE fitting: Fit series system parameters to observed failure data with fit()
  • Introspection: ncomponents(), component(), param_layout(), component_hazard(), sample_components()
  • Nesting: Series systems can be nested as components of larger series systems
  • Analytical cumulative hazard: When all components provide closed-form cumulative hazard, the series system does too

Ecosystem

serieshaz builds on:

Documentation

  • vignette("series-overview") — Package overview and quick start
  • vignette("series-math") — Mathematical foundations
  • vignette("series-fitting") — MLE fitting and inference
  • vignette("series-advanced") — Advanced composition patterns.
Metadata

Version

0.2.0

License

Unknown

Platforms (80)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    uefi
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-freebsd
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64-uefi
  • aarch64-windows
  • aarch64_be-none
  • arc-linux
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-linux
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • sh4-linux
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-uefi
  • x86_64-windows