The document summarizes a Bayesian webinar on general Bayesian methods for reliability data analysis. It provides an outline of the webinar covering traditional vs Bayesian reliability frameworks, examples of applying Bayesian methods to Weibull distribution, accelerated life test data and repeated measure degradation data. OpenBUGS code is presented for the examples. The webinar aims to illustrate how Bayesian methods allow incorporating prior knowledge and provide advantages over traditional methods in certain applications.
2. ASQ Reliability Division
ASQ Reliability Division
English Webinar Series
English Webinar Series
One of the monthly webinars
One of the monthly webinars
on topics of interest to
reliability engineers.
To view recorded webinar (available to ASQ Reliability
Division members only) visit asq.org/reliability
) /
To sign up for the free and available to anyone live
webinars visit reliabilitycalendar.org and select English
Webinars to find links to register for upcoming events
http://reliabilitycalendar.org/The_Re
liability_Calendar/Webinars_
liability Calendar/Webinars ‐
_English/Webinars_‐_English.html
3. General Bayesian Methods for
Typical Reliability Data Analysis
Ming Li
GE Global Research
A joint work with William Q. Meeker at Iowa State University.
Webinar
ASQ Reliability Division
June 14 2012
4. Outline
• Traditional Reliability Framework
Problems / Concepts / Methods
• Bayesian Reliability Framework
Prior knowledge / Concepts / Methods
• Bayesian Reliability Examples
Weibull distribution
Accelerated life test
Repeated measure degradation
• Common Mistakes and Pitfalls
• Conclusions
2/ 2
GE Title or job number /
5/25/2012
5. Traditional Reliability Framework
Reliability Problems
Statistical Concepts
Computational Methods
3/ 3
GE Title or job number /
5/25/2012
6. Reliability Problems
Life of a product
Degradation of performance
Repairable system
Warranty
Prognostic
Service availability or guarantee
4/ 4
GE Title or job number /
5/25/2012
7. Statistical Concepts
Data
Field data, Lab data, simulated data
Failure modes, system or component level data
Exact, left, right, interval and window censored data
Model
Life distribution estimation (Weibull, Lognormal …)
Accelerated testing planning and analysis
Degradation modeling (physics + statistics)
Poisson process for repairable system
Non-parametric statistical models (e.g. Kaplan Meier)
5/ 5
GE Title or job number /
5/25/2012
8. Computational Methods
To calculate point estimates and confidence
intervals for statistical uncertainty:
Maximum likelihood method
Bootstrap re-sampling method
Nonparametric method
About methods are pure data driven, and prior knowledge is not used.
Simulation based Bayesian method
Could integrate prior knowledge or information
Solution to certain problems that are difficult to solve by
other methods (i.e. computation advantages)
6/ 6
GE Title or job number /
5/25/2012
9. Bayesian Reliability Framework
Why Not the Bayesian Method?
Prior Knowledge
Concept Illustration
Implementation through BUGs
7/ 7
GE Title or job number /
5/25/2012
10. Why Not the Bayesian Method?
• No user friendly Bayesian computer program
Engineers do not want to write MCMC
There are many non Bayesian program
ReliaSoft’s Weibull++, ALTA, etc.
JMP, Minitab, etc.
Many companies have site licenses
• Need justification of prior knowledge
Sources of prior knowledge
Management approval
Impact of biased or bad priors
8/ 8
GE Title or job number /
5/25/2012
11. Prior Knowledge
• Physics of failure mechanism
Activation energy is around 0.2ev
• Previous empirical experience
30 year experience of Weibull shape
parameter of 2.5
• Sensitivity analysis and scenario test
What if the activation energy changes to a
range (0.4,0.6)
Bayesian method combines data and prior knowledge,
big impact when data is limited.
9/ 9
GE Title or job number /
5/25/2012
12. Concept Illustration
Model for
Data
Likelihood
Posterior
Inference
Data Distribution
Bayes’
Theorem
Prior
Information
10 10
/
GE Title or job number /
5/25/2012
13. Implementation Through BUGs
http://www.openbugs.info/w/
# (1) model specification
model {
Features
} Easy to download and install
# (2) data input
Simple user interface
list() Detailed manual with a lot of examples
Many build in distributions and functions
# (3) initial value
list() Steps
list()
list() Define the statistics problem clearly
Prepare the input data accordingly
Setup reasonable initial values
Bernoulli, Binomial, Poisson … If it converges….
Check the history plot
Beta, Chi-square, Normal, Check the density plot
Gamma, Weibull, Logistic … Check BGR diagnostic plot
Multinomial, Dirichlet, Look the posterior summary statistics
Multivariate Normal, Wishart … Extract the data for each MCMC steps 11 11
/
GE Title or job number /
Mean, median and Credible intervals 5/25/2012
14. Bayesian Reliability Example
Weibull Distribution
Accelerated Life Test
Repeated Measure Degradation
12 12
/
GE Title or job number /
5/25/2012
15. Weibull Distribution for the Bearing-Cage Field Data
Data from Meeker and Escobar Example 8.16.
Data Summary
• 6 failures
• 1697 right censored
• Different censoring time
• Heavy censoring
• Weibull distribution
• Data driven MLE
Bayesian implementation
• Prior on B01 (i.e., t0.01 quantile) and weibull shape parameter
• Interested in estimate B10
13 13
/
GE Title or job number /
5/25/2012
16. Weibull Distribution
1
t t
T ~ weibull t , ,
exp t 1 exp t
Parameter of t p and sigma Parameter of original ME book
1
t p [ log(1 p)]
t p [ log(1 p)]
1
1
T ~ dweib x, v, v x v 1 exp x v
1
v Parameter used in WinBUGs
1
1
t p [ log(1 p)]
t [ log(1 p )]
p
14 14
/
GE Title or job number /
5/25/2012
17. OpenBUGs Implementation
model {
log.B01 ~ dunif(4.6051,8.5172)
B01 <- exp(log.B01) Priors
log.sigma ~ dnorm(-1.151,31.562)
sigma <- exp(log.sigma) log t0.01 ~ unif log 100 , log 5000
v <- 1/sigma log ~ dnorm mean 1.151,sd 0.178
lamda <- pow(B01,-v)*0.01005034 Informative prior: 99% of the probability of
between 0.2 and 0.5.
for (iii in 1:6){ 24 exact failures
x.exact[iii] ~ dweib(v,lamda)
}
for (jjj in 1:19){
dummy[jjj] <- 0 1697 right censored
dummy[jjj] ~ dloglik(logLike[jjj])
logLike[jjj] <- weight[jjj]*(-lamda*pow(lower[jjj],v))
observation in groups
}
}
15 15
/
GE Title or job number /
5/25/2012
18. Accelerated Life Test for Device-A
Data from Meeker and Escobar Example 19.2.
Data Summary
• Three accelerated levels
(10C, 40C, 60C, and 80C)
• Usage level 10C
• Arrhenius model for
temperature.
• Log-normal life
distribution.
Y log Hours ~ N K , 2
11605
K 0 1
K
16 16
/
GE Title or job number /
5/25/2012
19. Re-parameterization
• Replace the intercept by B01 at 40C
• It will break the strong correlation between the slope and intercept
11605
B01.40 0 1 z0.01
273 40
B01.40 11605 z
0
1
273 40
0.01
• Use informative prior for 1 such that 99% of the probability will
between 0.5 and 0.8.
• Interested in the B10 life and the usage temperature 10C (i.e. 283K)
11605 11605
K B01.40 z0.01 1
K 273 40
17 17
/
GE Title or job number /
5/25/2012
20. OpenBUGs Implementation
model {
### For Temp=60C, i.e. 11605/(273+60) = 34.849850
B01.40 ~ dgamma(0.001,0.0001) ### 11 censored observations, and 9 exact observations
b1 ~ dnorm(0.65,294.8843) ## informative prior ### 11605/(273+60) - 11605/(273+40) = -2.226827
tau ~ dgamma(0.001,0.0001) mu.60 <- B01.40 + 2.326348*sigma - b1*2.226827
sigma <- 1/sqrt(tau) for (i in 1:11){
dummy.60[i] <- 0
b0 <- B01.40 + 2.326348*sigma - b1*37.076677 dummy.60[i] ~ dloglik(logLike.60[i])
B10.10 <- mu.10 - 1.281552*sigma logLike.60[i] <- ( 1-phi((8.517193-mu.60)*sqrt(tau)) )
}
### For Temp=10C, i.e. 11605/(273+10) = 41.007067 for (j in 1:9){
### All 30 observations are censored. Y.log.60[j] ~ dnorm(mu.60,tau)
### 11605/(273+10) - 11605/(273+40) = 3.93039 }
mu.10 <- B01.40 + 2.326348*sigma + b1*3.93039
for (i in 1:30){
dummy.10[i] <- 0 ### For Temp=80C, i.e. 11605/(273+80) = 32.875354
dummy.10[i] ~ dloglik(logLike.10[i]) ### 11 censored observations, and 9 exact observations
logLike.10[i] <- ( 1-phi((8.517193-mu.10)*sqrt(tau)) ) ### 11605/(273+80) - 11605/(273+40) = -4.201323
} mu.80 <- B01.40 + 2.326348*sigma - b1*4.201323
for (i in 1:1){
### For Temp=40C, i.e. 11605/(273+40) = 37.076677 dummy.80[i] <- 0
### 90 censored observations, and 10 exact observations dummy.80[i] ~ dloglik(logLike.80[i])
### 11605/(273+40) - 11605/(273+40) = 0 logLike.80[i] <- ( 1-phi((8.517193-mu.80)*sqrt(tau)) )
mu.40 <- B01.40 + 2.326348*sigma }
for (i in 1:90){ for (j in 1:14){
dummy.40[i] <- 0 Y.log.80[j] ~ dnorm(mu.80,tau)
dummy.40[i] ~ dloglik(logLike.40[i]) }
logLike.40[i] <- ( 1-phi((8.517193-mu.40)*sqrt(tau)) )
} }
for (j in 1:10){
Y.log.40[j] ~ dnorm(mu.40,tau)
}
18 18
/
GE Title or job number /
5/25/2012
21. Repeated Measure for Device B Degradation
Data from Meeker and Escobar Example 21.1.
Data Summary
• 3 levels of temperature
• Usage temperature 80C
• ~ 10 devices per temp.
• Interval of 125 hours to
measure the degradation
• Mixed effect model
• Nonlinear path
• Normal distribution for
residuals
19 19
/
GE Title or job number /
5/25/2012
22. Model Details
yij ~ Dij ij 1 i=1,. . . ,n: index for device
ij ~ N 0, 2 j=1,…,m : index of time of observation for each device
j
Dij tij ; temp Di , 1 exp Ri 195 AF temp tij
11605 11605 In stable
AF temp exp Ea parameterization
195 273 temp 273
Di , : The asymptote for each device.
Ri 195 The reaction rate at 195C for each device
1,i
1,i log Ri 195 ~ MVN mean.β,prec.β
2,i
2,i log D ,i mean.β : 2x1 mean vector of a bivariate normal
3 Ea
prec.β : 2x2 precision matrix of a bivariate normal
sigma inv prec.β : Variance and covariance matrix 20 /
20
for the bivariate normal. or job5/25/2012
GE Title number /
23. OpenBUGs Implementation
*(1-exp(-R195[iii+7]*data[231+(iii-1)*17+jjj,2]))
model { data[231+(iii-1)*17+jjj,1] ~ dnorm(mu.195[(iii-1)*17+jjj],tau)
}
for(iii in 1:34){ }
bbb[iii,1:2] ~ dmnorm(mean.bbb[1:2],prec.bbb[1:2,1:2])
Dinf[iii] <- -exp(bbb[iii,2])
R195[iii] <- exp(bbb[iii,1]) #### Data and Model for Temp=237 ###
} #### 11605/(195+273) - 11605/(237+273) = 2.042107
#### Index shift for data is: 33*7 + 12*17 = 435
sigma[1:2,1:2] <- inverse(prec.bbb[1:2,1:2]) #### Index shift for group is: 7+12=19
mean.bbb[1:2] ~ dmnorm(M[1:2], A[1:2,1:2]) for(iii in 1:15){
prec.bbb[1:2,1:2] ~ dwish(B[1:2,1:2 ], 2) for(jjj in 1:9){
mu.237[(iii-1)*9+jjj] <- Dinf[iii+19]
b3 ~ dnorm(0.7,663.5) *(1-exp(-R195[iii+19]*exp(b3*2.042107)
tau ~ dgamma(0.001,0.001) *data[435+(iii-1)*9+jjj,2]) )
sigma.error <- 1/sqrt(tau) data[435+(iii-1)*9+jjj,1] ~ dnorm(mu.237[(iii-1)*9+jjj],tau)
}
#### Data and Model for Temp=150C ### }
#### 11605/(195+273) - 11605/(150+273) = -2.637980
for(iii in 1:7){ }
Priors
for(jjj in 1:33){
mu.150[(iii-1)*33+jjj] <- Dinf[iii]*(1-exp(-R195[iii] 0 106 0
mean.β ~ dmnorm , 6
*exp(-b3*2.637980) *data[(iii-1)*33+jjj,2]) ) 0
data[(iii-1)*33+jjj,1] ~ dnorm(mu.150[(iii-1)*33+jjj],tau) 0 10
}
} 103 0
prec.β ~ dwish
0 103
,2
#### Data and Model for Temp=195 ###
#### 11605/(195+273) - 11605/(195+273) = 0
#### Index shift for data is: 33*7=231 ~ dgamma 0.001, 0.001
#### Index shift for group is: 7
3 ~ dnorm 0.7, 663.5
for(iii in 1:12){
for(jjj in 1:17){
mu.195[(iii-1)*17+jjj] <- Dinf[iii+7] Informative prior: put 99% of the 21 21
/
probability between 0.6 and 0.8 for 35/25/2012
.
GE Title or job number /
24. Cautious and Pitfalls
• Be aware of the effect of prior selection
• Do a sensitivity analysis and compare with
non-informative priors
• Inappropriate priors for biased results
• Understand the assumptions
22 22
/
GE Title or job number /
5/25/2012
25. Conclusions
• Reliability engineers have prior knowledge for
the model parameters
• Bayesian analysis provides a formal way to
implement prior knowledge
• OpenBUGs/WinBUGs provides user-friendly
tool for Bayesian reliability analysis
• Most reliability models can be implemented
through OpenBUGs/WinBUGs
23 23
/
GE Title or job number /
5/25/2012
26. Thank you!
24 24
/
GE Title or job number /
5/25/2012
27. Zero-trick in OpenBUGs
Reason for quick convergence: The likelihood contribution for censored
observation is determined by the censoring time and use the OpenBUGs
zero-trick to include the censored observation likelihood contribution.
For Weibull right censored observation at censor time T, the likelihood is:
T
f x dx 1 f x dx
T 0
T
exp ME Book parameterization
exp T v OpenBUGs parameterization
25 25
/
GE Title or job number /
5/25/2012
28. Traditional method in OpenBUGs
• C( , ): the build-in censoring function in
OpenBUGs
• Very slow in convergence for heavy censoring!
• Reason for slow convergence: each censor
data point is treated as a random node in
OpenBUGs and a stochastic MCMC chain will
be established for each random node.
26 26
/
GE Title or job number /
5/25/2012