Statistical Methods for Reliability Data

Chapter 1 - Reliability Concepts and Reliability Data

W. Q. Meeker and L. A. Escobar

20 May 2020

CHAPTER OVERVIEW

This chapter explains…

1.1.1 - Quality And Reliability

What is reliability?

What is quality?

What is maintainability?

What is availability?

What is reliability engineering?

…is engineering in its most practical form… James R. Schlesinger U.S. Secretary of Defense (1973-1975)

Why study reliability?

Approaches to meeting reliability requirements

The product reliability environment

par(mar = c(0,0,0,0))
plot(NA, 
     xlim = range(0,500), 
     ylim = range(25,525), 
     axes = FALSE, 
     xlab = '', 
     ylab = '')

points(x = 250, 
       y = 250, 
       col = 'green', 
       cex = 13, 
       lwd = 4, 
       pch = 16)

text(x = c(100,250,400), 
     y = c(475,250,475),
     labels = c(expression(underline('  Producers  ')),
                '$', 
                expression(underline('  Consumers  '))),
     cex = c(4, 6, 4), 
     font = 2, 
     col = c(1, 0, 1))

text(x = rep(100, 5), 
     y = seq(425, 75, -75), 
     labels = c('Quick to Market',
                'Minimize Warranty Costs',
                'Reduce LCC',
                'Reduce Liability Costs', 
                'Maintain Market Share'),  
     cex = rep(2.5, 5), 
     family = 'serif')

text(x = rep(400, 5), 
     y = seq(425, 75, -75), 
     labels = c('Newer Capabilities', 
                'Improve Current Functions',
                'Merge Functions',
                'Expect High Performance',
                'Expect to Last'), 
     cex = rep(2.5,5), 
     family = 'mono')

The EXTENDED product reliability environment

1.1.2 - Reasons For Collecting Reliability Data

Why should reliability data be collected?

1.1.3 - Distinguishing Features of Reliability Data

EXAMPLES OF RELIABILITY DATA

1.2.1 - Failure Data (No Explanatory Variables)

Explanatory variables

1.2.1 - Failure Data (No Explanatory Variables) - Example 1.1

Example 1.1 - Ball Bearing Fatigue Test (Liebling & Zelen, 1956)

library(SMRD)
library(DT)

DT::datatable(SMRD::lzbearing)
library(SMRD)

par(family = 'serif', font = 2)

hist(SMRD::lzbearing$megacycles,
     breaks = seq(0,200,20),
     col = 'black',
     border = 'white',
     prob = TRUE,
     main = '',
     las = 1)
Figure 1.1 - Histogram of the ball bearing failure data

Figure 1.1 - Histogram of the ball bearing failure data

library(SMRD)

par(family='serif', font=2)

lzbearing.ld <- frame.to.ld(SMRD::lzbearing, 
                            response.column = 1, 
                            time.units = 'Megacycles')

event.plot(lzbearing.ld)
Figure 1.2 - Event plot of the ball bearing failure data

Figure 1.2 - Event plot of the ball bearing failure data

1.2.1 - Failure Data (No Explanatory Variables) - Example 1.2

Example 1.2 - Integrated Circuit Life Test (Meeker, 1987)

library(SMRD)
library(DT)

DT::datatable(SMRD::lfp1370)
library(SMRD)

par(family = 'serif',font = 2,bg = NA)

IC.ld <- SMRD::frame.to.ld(frame = lfp1370,
                           response.column = 1,
                           censor.column = 2,
                           case.weight.column = 3,
                           time.units = 'Hours')

event.plot(IC.ld)
Figure 1.3 - Event plot for the lfp1370 failure data

Figure 1.3 - Event plot for the lfp1370 failure data

1.2.1 - Failure Data (No Explanatory Variables) - Example 1.5

Example 1.5 - Heat Exchanger Tube Crack Data (Meeker & Escobar, 1996)

library(SMRD)
library(DT)

DT::datatable(SMRD::heatexchanger)
par(family = 'serif',font = 2, mar = c(0,0,0,0))

plot(NA, 
     axes = FALSE, 
     xlab = '', 
     ylab = '',
     xlim = range(-50,350),
     ylim = range(-10,300))

segments( x0 = c(0,0,0,0,0,rep(0,5),rep(100,5),rep(200,5),100,200,300),
          y0 = c(0,100,200,300,0,seq(232,280,12),seq(132,180,12),seq(32,80,12),0,0,0),
          x1 = c(350,350,350,350,0,rep(300,15),100,200,300),
          y1 = c(0,100,200,300,300,seq(232,280,12),seq(132,180,12),seq(32,80,12),300,300,300),
          lwd = c(rep(2,5), rep(1,18)))

text(x = rep(-25,3),
     y = seq(56,256,100),
     labels = c('Plant 3',
                'Plant 2',
                'Plant 1'),
     cex = rep(0.9,3))

text(x = c(50,rep(150,2),rep(250,3)),
     y = c(rep(290,2),190,290,190,90),
     labels = c('1 failure',
                '2 failures',
                '2 failures',
                '2 failures',
                '3 failures',
                '1 failure'),
     cex = rep(0.8,6))

text(x = seq(50,250,100),
     y = rep(-8,3),
     labels = c('1981',
                '1982',
                '1983'),
     cex = rep(0.9,3))

text(x = rep(310,3),
     y = seq(56,256,100),
     labels = c('99','95','95'),
     cex = rep(0.9,3))

segments(x0 = rep(320,3),
         y0 = seq(56,256,100),
         x1 = rep(345,3),
         y1 = seq(56,256,100),
         lty = rep(2,3))

arrows(x0 = rep(295,15),
       y0 = c(seq(232,280,12),seq(132,180,12),seq(32,80,12)),
       rep(300,15),
       length = 0.1)

arrows(x0 = rep(345,3),
       y0 = seq(56,256,100),
       x1 = rep(350,3),
       length = 0.1)
Figure 1.6 - Diagram of the raw heatexchanger data

Figure 1.6 - Diagram of the raw heatexchanger data

par(family = 'serif',font = 2,mar = c(0,0,0,0))

plot(NA,
     axes = FALSE,
     xlab = '',
     ylab = '',
     xlim = range(-50,350),
     ylim = range(-10,300))

segments( x0 = c(0,0,0,0,0,rep(0,15),100,200,300),
          y0 = c(0,100,200,300,0,seq(232,280,12),seq(132,180,12),seq(32,80,12),0,0,0),
          x1 = c(350,350,350,350,0,rep(300,5),rep(200,5),rep(100,5),100,200,300),
          y1 = c(0,100,200,300,300,seq(232,280,12),seq(132,180,12),seq(32,80,12),300,300,300),
          lwd = c(rep(2,5),rep(1,18)))

text(x = rep(-25,3),
     y = seq(56,256,100),
     c('Plant 3','Plant 2','Plant 1'),
     cex=rep(0.9,3))

text(x = c(rep(50,3),rep(150,2),250),
     y = c(90,190,290,190,rep(290,2)),
     labels = c('1 failure',
                '2 failures',
                '1 failures',
                '3 failures',
                '2 failures',
                '2 failure'),
     cex = rep(0.8,6))

text(x = seq(50,250,100),
     y = rep(-8,3),
     labels = c('Year 1',
                'Year 2',
                'Year 3'),
     cex = rep(0.9,3))

text(x = c(110,210,310),
     y = seq(56,256,100),
     labels = c('99',
                '95',
                '95'),
     cex = rep(0.9,3))

segments(x0 = c(120,220,320),
         y0 = seq(56,256,100),
         x1 = c(345,345,345),
         y1 = seq(56,256,100),
         lty = rep(2,3))

arrows(x0 = c(rep(295,5),rep(195,5),rep(95,5)),
       y0 = c(seq(232,280,12),seq(132,180,12),seq(32,80,12)),
       x1 = c(rep(300,5),rep(200,5),rep(100,5)),
       length = 0.1)

arrows(x0 = rep(345,3),
       y0 = seq(56,256,100),
       x1 = rep(350,3),
       length = 0.1)
Figure 1.7 - Diagram of the transformed heatexchanger data

Figure 1.7 - Diagram of the transformed heatexchanger data

1.2.2 - Failure Data (w/ Explanatory Variables)

Analyzing data with explanatory variables

1.2.2 - Failure Data (w/ Explanatory Variables) - Example 1.8

Example 1.8 - Printed Circuit Board ALT Data (Meeker & LuValle, 1995)

library(SMRD)
library(DT)

DT::datatable(SMRD::printedcircuitboard)
par(family = 'serif', font = 2)

plot(lower~rh, 
     data = SMRD::printedcircuitboard,
     pch = 'X', 
     cex = .85, 
     log = 'y',
     ylim = c(10,10000),
     xlim = c(45,85),
     las = 1,
     ylab = 'Hours',
     xlab = "% RH")

text(x = c(50,63,75,82), 
     y = c(7000,6000,1000,350), 
     labels = c('48/70 censored',
              '11/68 censored',
              '0/70 censored',
              '0/70 censored'))
Figure 1.9 - Scatter plot of the printedcircuitboard failure data at four different stress levels

Figure 1.9 - Scatter plot of the printedcircuitboard failure data at four different stress levels

1.2.3 - Degradation Data (No Explanatory Variables)

Degradation failures

1.3.1 - Define The Target Population Or Process

Enumerative studies

Analytic Studies

1.3.2 - Causes of Failure and Degradation Leading To Failure

Most failures result from physical degradation

teachingApps::teachingApp('stress_strength')

1.3.3 - Environmental Effects Of Reliability

1.3.4 - Definition Of Time-Scale

Most systems lifetimes can be quantified with more than one “time-scale”

1.3.5 - Defining Time Origin And Failure Time

When does a product’s life begin? (This can be tricky)

Likewise, defining when a product’s life ends can be difficult

How we’ll define time origin and failure time in this course?

1.4 - Repairable Systems and Non-Repairable Units

Non-repairable systems are replaced (not repaired) upon failure

Mat1 <- matrix(NA, nrow = 3, ncol = 3)

AA <- as.data.frame(Mat1)
AA[[2,1]] <- 'F[0:1]'
AA[[3,1]] <- 'F[0:2]'

name <- c(expression(0[Alive]), 
          expression(1[Dead]), 
          expression(2[Dead]))

par(family='serif')

diagram::plotmat(A = AA, pos = 3, curve = .575, 
         name = name, lwd = 2, arr.len = 0.6, 
         arr.width = 0.25, my = .25, box.size = 0.08, 
         arr.type = 'triangle', dtext = -1,
         relsize=.99, box.cex=1.5, cex=1.25)

Repairable systems

library(diagram)

DiffMat <- matrix(NA, nrow = 4, ncol = 4)

AA <- as.data.frame(DiffMat)
AA[[1,2]] <- 'F[1:0]'
AA[[1,3]] <- 'F[2:0]'
AA[[2,1]] <- 'F[0:1]'
AA[[3,1]] <- 'F[0:2]'
AA[[4,1]] <- 'F[0:3]'

name <- c(expression(0[Alive]), 
          expression(1[Failed]), 
          expression(2[Failed]), 
          expression(3[Dead]))

par(family='serif', mar = c(0,0,0,0))

diagram::plotmat(A = AA, pos = 4, curve = .575, 
         name = name, lwd = 2, arr.len = 0.6, 
         arr.width = 0.25, my = .15, box.size = 0.08, 
         arr.type = 'triangle', dtext = -1,
         relsize=.99, box.cex=1.5, cex=1.25)

1.5.1 - Planning A Reliability Study

Clearly define the purpose of the current test

Types of reliability tests

Define the test resources available (test equip, ranges, personnel, time)

Understand the environment(s) in which the fielded system will operate

What metric(s) will be used to validate performance?

Define how precise the results should be (sample size)

1.5.2 - Study For Data Analysis And Modeling

This process will be used throughout the course to assess reliability data

  1. Assess the data nonparametrically - using simple graphical methods

  2. Fit one or more simple parametric models to the data

  3. Check for violations of model assumptions

  4. Compute model parameter estimates and confidence intervals

  5. Use numeric and graphical methods to check fit to data

  6. Perform sensitivity analyses on parameter values and model assumptions

CHAPTER 1 SUMMARY

This chapter presented: