| Title: | Accelerated Life Testing Using 'WeibullR' |
|---|---|
| Description: | Graphical data analysis of accelerated life tests. Methods derived from Wayne Nelson (1990, ISBN: 9780471522775), William Q. Meeker and Lois A. Escobar (1998, ISBN: 1-471-14328-6). |
| Authors: | David Silkworth [aut], Jacob Ormerod [cre], OpenReliability.org [cph] |
| Maintainer: | Jacob Ormerod <[email protected]> |
| License: | GPL (>= 3) |
| Version: | 0.7.2 |
| Built: | 2026-05-20 08:22:53 UTC |
| Source: | https://github.com/cran/WeibullR.ALT |
alt.data Object for Accelerated Life (Failure) Test Data
This function reads life test data for a single stress level using the flexible input format
also provided for "WeibullR::mleframe" to create an "alt.data" object.
alt.data(x, s=NULL, interval=NULL, stress)alt.data(x, s=NULL, interval=NULL, stress)
x |
Either a dataframe containing at least |
s |
An optional vector of right-censored data, or suspensions. |
interval |
An optional dataframe of interval data having columns specifically named "left" and "right". Left values are the last time at which no failure was evident and may be zero for discovery. Right values are the earliest time at which failure was observed. |
stress |
A scalar value representing the accelerating stress applied during a life test. |
There are several methods to passing arguments for building an alt.data
object.
If argument x is of class "data.frame",
then it must contain $time and $event
columns. Additional columns in the dataframe will be ignored.
When a single unnamed vector of class "numeric"
or "integer" is supplied, it is treated as a vector
of (life-)time observations.
If argument time or fail is provided, it is treated as
a vector of (life-)time observations. Take care NOT to supply both
time and fail in the same function call.
If argument event is provided, it is treated as
a vector of event indicators with possible values of
0 and 1. See section "Value" for more details on
event vectors.
If the x argument is not provided as a dataframe and susp is provided,
it is treated as a vector of right-censored (life-)time observations
(also called suspended observations or suspensions).
While "WeibullR::mleframe" is used for data sets with 3 or more failures (including intervals)
alt.data will also prepare conforming dataframe for sets with less failuers or even no failures (ie. all censored items)
A named list of class "alt.data". The first list
item ($data) is a list with up to least three items:
$stressA scalar value representing the accelerating stress applied during a life test.
$dataA dataframe containing the provided data formatted with "left", "right", and "qty" columns.
This conforms with the output of function "WeibullR::mleframe".
Wayne Nelson, (1990) "Accelerated Testing", Wiley-Interscience, New York
William Q. Meeker and Luis A. Escobar, (1998) "Statistical Methods for Reliability Data", Wiley-Interscience, New York
table2.1<-NelsonData("table2.1") alt_da190<-alt.data(table2.1$C190, stress=190) ClassH_goal<-alt.data(20000, stress=180)table2.1<-NelsonData("table2.1") alt_da190<-alt.data(table2.1$C190, stress=190) ClassH_goal<-alt.data(20000, stress=180)
"alt" Object Establishing a Accelerated Life Relationship Fit
This function generates a linear fit to the median or characteristic life estimates of the provided data sets.
alt.fit(x, omit_set=0)alt.fit(x, omit_set=0)
x |
An |
omit_set |
An optional vector listing any data set(s) that judged to be excluded from the accelerated life relationship determination. |
A linear model fit is made of the median or characteristic life estimates of applicable data sets weighted by number of failure points per each.
The returned object can be plotted using S3 function "plot.alt" placing the failure points (taking intervals
as mean time points) in accordance with the specified alt.model relationship. The fitted relationship line will be displayed
as well as the default percentile "c(10,90)" lines.
The input object will be returned with the addition of a "$alt_coef" element.
Wayne Nelson, (1990) "Accelerated Testing", Wiley-Interscience, New York
William Q. Meeker and Luis A. Escobar, (1998) "Statistical Methods for Reliability Data", Wiley-Interscience, New York
Pascual F., Meeker W., Escobar L. (2006) Accelerated Life Test Models and Data Analysis. In: Pham H. (eds) Springer Handbook of Engineering Statistics. Springer Handbooks. Springer, London. https://doi.org/10.1007/978-1-84628-288-1_22
alt Object for Analysis of Accelerated Life (Failure) Test Data
This function creates an initial alt object based on a list of alt.data objects, a distribution, an accelerated life relationship model, and a method for distrubtion fitting
alt.make(x, dist, alt.model, method.fit="mle-rba", goal=NULL, set_validation=NULL, view_dist_fits=TRUE)alt.make(x, dist, alt.model, method.fit="mle-rba", goal=NULL, set_validation=NULL, view_dist_fits=TRUE)
x |
A list of alt.data objects describing varied stress level life test data. |
dist |
A string argument defining the distribution to be used to fit life data. Accepted values are "lognormal" or "weibull". |
alt.model |
A string argument defining the relationship model to be applied to the accelerated life tests. Accepted values are "arrhenius" or "power". |
method.fit |
A string argument defining the method to be used for fitting individual life test data sets. Default value is "mle-rba". Other accpeted values are "lslr", "mle", and "mle-unbias". |
goal |
An optional alt.data object defining a proposed goal for the component under test. |
set_validation |
An optional list to modify defaults hard coded in alt.make. A set is deemed valid for wblr construction and normal distribution fitting if it has at least these elements hard coded as (fail_points=2, num_fails=3, fail_range=.03). |
view_dist_fits |
A logical defining whether to generate a probability plot of the distribution fits on the input data objects. |
The input data is scanned to reveal sufficient data for generation of an accelerated relationship model
while identifying sets with sparse failure data for future estimation as details are added during
execution of "alt.parallel" and ultimatly "alt.fit".
A probability plot view of the data sets will be generated by default permitting a pre-view of the parametric distribution fitting as specified.
The returned object can be plotted using S3 function "plot.alt" placing the failure points (taking intervals
as mean time points) in accordance with theas specified alt.model relationship .
A named list of class "alt". The first list
item ($data) is a list with up to least three items:
$stressA dataframe containing the provided data formatted with "left", "right", and "qty" columns.
This is the output of WeibullR function "mleframe".
$dataA dataframe containing the provided data formatted with "left", "right", and "qty" columns.
This is the output of WeibullR function "mleframe".
$num_failsThe number of non-censored items in this data set.
Additional list items in the alt object generated by alt.make are:
$goalA list containing an alt.data object containing a stress item and a single line dataframe containing the goal data formatted with "left", "right", and "qty" columns.
$distA string defining the distribution to be used to fit life data.
$method.fitA string defining the method to be used for fitting individual life test data sets.
Wayne Nelson, (1990) "Accelerated Testing", Wiley-Interscience, New York
William Q. Meeker and Luis A. Escobar, (1998) "Statistical Methods for Reliability Data", Wiley-Interscience, New York
Pascual F., Meeker W., Escobar L. (2006) Accelerated Life Test Models and Data Analysis. In: Pham H. (eds) Springer Handbook of Engineering Statistics. Springer Handbooks. Springer, London. https://doi.org/10.1007/978-1-84628-288-1_22
table4.1<-NelsonData("table4.1") set170<-alt.data(x=table4.1$C170f, s=table4.1$C170s, stress=170) set190<-alt.data(x=table4.1$C190f, s=table4.1$C190s, stress=190) set220<-alt.data(x=table4.1$C220f, s=table4.1$C220s, stress=220) goal<-alt.data(x=35000, stress=130) ClassB_obj<-alt.make(list(set170, set190, set220), goal=goal, dist="lognormal", alt.model="arrhenius", view_dist_fits=FALSE )table4.1<-NelsonData("table4.1") set170<-alt.data(x=table4.1$C170f, s=table4.1$C170s, stress=170) set190<-alt.data(x=table4.1$C190f, s=table4.1$C190s, stress=190) set220<-alt.data(x=table4.1$C220f, s=table4.1$C220s, stress=220) goal<-alt.data(x=35000, stress=130) ClassB_obj<-alt.make(list(set170, set190, set220), goal=goal, dist="lognormal", alt.model="arrhenius", view_dist_fits=FALSE )
"alt" Object Establishing a Parallel Parametric Fit
This function generates parameters for each applicable data set with the same log standard deviation or weibull slope.
alt.parallel(x, ignore_slope=0, set.exponential=FALSE, view_parallel_fits=TRUE)alt.parallel(x, ignore_slope=0, set.exponential=FALSE, view_parallel_fits=TRUE)
x |
An |
ignore_slope |
An optional vector listing any data set(s) that judged to be excluded from parallel parameter determination. |
set.exponential |
A logical used to establish an exponential assumption for the provided life data. |
view_parallel_fits |
A logical defining whether to generate a probability plot of the parallelized fits on the input data objects. |
A probability plot view of the data sets will be generated by default permitting a view of the parallelized parametric fitting.
The returned object can be plotted using S3 function "plot.alt" placing the failure points (taking intervals
as mean time points) in accordance with theas specified alt.model relationship. By using the is.plot.fit_points an
marker will be overlayed defining the median or characteristic life estimate for each set.
The input object will be returned with the addition of a "$parallel_par" element.
Wayne Nelson, (1990) "Accelerated Testing", Wiley-Interscience, New York
William Q. Meeker and Luis A. Escobar, (1998) "Statistical Methods for Reliability Data", Wiley-Interscience, New York
Pascual F., Meeker W., Escobar L. (2006) Accelerated Life Test Models and Data Analysis. In: Pham H. (eds) Springer Handbook of Engineering Statistics. Springer Handbooks. Springer, London. https://doi.org/10.1007/978-1-84628-288-1_22
Extract a range for depiction of an alt object in a relationship plot.
findrange.alt(alt)findrange.alt(alt)
alt |
An |
All $data elements and any $goal element are scanned to identify the bounds of data entry. If element $parallel_par exists the P1 values will also be scanned for possible expansion of the bounds.
A data frame will be returned with columns denoting yrange and xrange.
Wayne Nelson, (1990) "Accelerated Testing", Wiley-Interscience, New York
William Q. Meeker and Luis A. Escobar, (1998) "Statistical Methods for Reliability Data", Wiley-Interscience, New York
Pascual F., Meeker W., Escobar L. (2006) Accelerated Life Test Models and Data Analysis. In: Pham H. (eds) Springer Handbook of Engineering Statistics. Springer Handbooks. Springer, London. https://doi.org/10.1007/978-1-84628-288-1_22
This function generates life test data tables suitable for use in example scripts.
MeekerData(x)MeekerData(x)
x |
Either a character string ending with "3", "10", "13", "15" or "16" or a numeric of the table digits. In the book these tables were all prefixed with a "C." |
Table C.3 Presents degeneration data on some carbon-film resistors.
Table C.10 "Temperature-Accelerated Life Test Data for Device-A". This data is used for the first (perhaps simplest) example of the analysis steps for accelerated test data. Pages 494-500 in Meeker text.
Table C.13 "Minutes to Failure of Mylar-Polyurethane Laminated DC HV Insulating Structure. This data is exampled by Meeker on pages 504-507. It is also discussed in earlier chapters.
Table C.15 "Accelerated Life Test Data on a New-Technology Integrated Circuit Device". This data is exampled by Meeker on pages 508-511.
Table C.16 "Temperature and Voltage-Accelerated Life Test Data for Tantalum Electrolytic Capacitors". This data is the basis for multiple variable acceleration exampled by Meeker on pages 513-515.
The returned object is either a dataframe or a list that can be accessed by the names of the olumns or elments.
William Q. Meeker and Luis A. Escobar, (1998) "Statistical Methods for Reliability Data", Wiley-Interscience, New York
t10<-MeekerData("C.10")t10<-MeekerData("C.10")
Validate input data by types and build a dataframe to be used as the primary argument object to mlefit
mleframe.alt(x, s=NULL, interval=NULL)mleframe.alt(x, s=NULL, interval=NULL)
x |
An expected vector of failure data. Alternative support is provided for a dataframe holding time and event columns, where event markers for failure occurrences are 1 and suspensions (right censored data) are 0. |
s |
An optional vector of suspension data. |
interval |
A dataframe holding interval bounds for failure data in columns named 'left' and 'right'. The left(early) interval bound for left-censored data must be entered as zero (NA is not accepted). An optional column named 'qty' may contain the integer quantity of data entries having same interval values. |
Returns a dataframe of the life[time] data in columns named 'left', 'right', and 'qty' with an attribute of fsiq set to TRUE. Exact failure data (occurrences) have same time entered in both 'left' and 'right' columns. Suspension data has last known life[time] entered in 'left' column and -1 entered in 'right' column. The interval dataframe argument is appended. The 'qty' field is populated with a value of 1 for all failure and suspension entries and interval rows where qty was not provided.
William Q. Meeker and Luis A. Escobar, (1998) "Statistical Methods for Reliability Data", Wiley-Interscience, New York
Robert B. Abernethy, (2008) "The New Weibull Handbook, Fifth Edition"
John I. McCool, (2012) "Using the Weibull Distribution: Reliability, Modeling and Inference"
Marie Laure Delignette-Muller, Christophe Dutang (2015). "fitdistrplus: An R Package for Fitting Distributions". Journal of Statistical Software, 64(4), 1-34. URL http://www.jstatsoft.org/v64/i04/.
fail<-c(10,40,40,50) susp<-c(20,60) left<-c(0,0,0,20,10) right<-c(30,70,100,80,85) qty<-c(2,1,1,2,1) interval_ex<-data.frame(left,right,qty) input_frame<-mleframe.alt(fail,susp,interval_ex) ## time_event dataframe argument failDF<-data.frame(time=fail, event=1) suspDF<-data.frame(time=susp, event=0) time_event_frame<-rbind(failDF, suspDF) input_frame2<-mleframe.alt(time_event_frame) ## now a time_event_qty dataframe argument fa<-c(10,40,50) fq<-c(1,2,1) su<-susp faDF<-data.frame(time=fa, event=rep(1,length(fa)), qty=fq) ## note: data.frame is forgiving about repeated single column entry suDF<-data.frame(time=su, event=0, qty=1) time_event_qty<-rbind(faDF, suDF) input_frame3<-mleframe.alt(time_event_qty)fail<-c(10,40,40,50) susp<-c(20,60) left<-c(0,0,0,20,10) right<-c(30,70,100,80,85) qty<-c(2,1,1,2,1) interval_ex<-data.frame(left,right,qty) input_frame<-mleframe.alt(fail,susp,interval_ex) ## time_event dataframe argument failDF<-data.frame(time=fail, event=1) suspDF<-data.frame(time=susp, event=0) time_event_frame<-rbind(failDF, suspDF) input_frame2<-mleframe.alt(time_event_frame) ## now a time_event_qty dataframe argument fa<-c(10,40,50) fq<-c(1,2,1) su<-susp faDF<-data.frame(time=fa, event=rep(1,length(fa)), qty=fq) ## note: data.frame is forgiving about repeated single column entry suDF<-data.frame(time=su, event=0, qty=1) time_event_qty<-rbind(faDF, suDF) input_frame3<-mleframe.alt(time_event_qty)
This function generates life test data tables suitable for use in example scripts.
NelsonData(x)NelsonData(x)
x |
Either a character string defining one of "table2.2", "table3.1", "table4.1" or "table5.1 or a numeric of the table digits. |
This method of data provision has been found necessary since inclusion of table3.1 and table5.1 created a problem with a "Warning: object '.Random.seed' is created by more than one data call" which prevented lazyData=yes to be in the package definition. Without lazyData I could never seem to make data files avialable to example scripts within the package.
Table 2.1 is presented on page115 of Wayne Nelson's book "Accelerated Testing". It purports to represent a series tests on a Class H insulation at elevated temperatures (in deg C)
Table 3.1 is presented on page129 of Wayne Nelson's book "Accelerated Testing". It purports to represent a series tests on an insulating fluid at elevated voltages.
Table 4.1 is presented on page135 of Wayne Nelson's book "Accelerated Testing". It purports to represent a series tests on a Class B insulation at elevated temperatures (in deg C)
Table 5.1 is presented on page 393 of Wayne Nelson's book "Accelerated Testing". It is interesting to note that items $T190, $T220, $T240, and $T260 represent a Table 5.1 presented on page 140. In Chapter 7 this data forms an example of competing modes analysis covering modes of failure on motorette turns, phase, and ground.
The returned object is either a dataframe or a list that can be accessed by the names of the olumns or elments.
Wayne Nelson, (1990) "Accelerated Testing", Wiley-Interscience, New York
table4.1<-NelsonData("table4.1")table4.1<-NelsonData("table4.1")
alt Objects
This function handles the various plotting options for alt objects.
options.alt(...)options.alt(...)
... |
Options for plotting |
As a function, options.alt, borrows its internal structure from
the par function of package graphics.
Unlike its corresponding function in WeibullR options.wblr this function
is intended to only be called within plot.alt.
Executing options.alt without arguments returns a named list
containing the default options for plotting a alt object.
Should arguments be supplied, these are returned in a named list.
alt Object Plotting on pretty canvax
This function adds the .alt method to plot.default
from the graphics package.
Currently, the function plots the failure time observations at designated stress levels from the $data list item a alt object on a relationship plot based on the $alt.model list item.
## S3 method for class 'alt' plot(x, ...)## S3 method for class 'alt' plot(x, ...)
x |
Object of class |
... |
Options for plotting the |
The ... argument can be any graphical parameter that can be
supplied to plot.default, and any option that can be
set by the function options.alt. The options set
in this way are applied to all graphical elements of the plot, overriding
any of the following default options:
dev.width=5, dev.height=7, xlab= "Stress", ## expression(paste("Temperature ",degree,"C")) ## "Voltage in kV" ylab= "Time To Failure", ##"HOURS", "MINUTES"
is.plot.grid=TRUE, col.grid="gray",
## unknown effect of these controls coordinate.text.size=.7, mar=c(5.1,4.1,5.1,2.1),
points.col="black", points.pch=21, points.lwd=2, points.cex=1, points.jf= .003,
interval.col="black", interval.lty="dashed", interval.lwd=1,
fit.type = "l", fit.lwd=2, fit.col="red", is.plot.fit_points=TRUE,
parallel_params.pch=4, parallel_params.cex=2, parallel_params.col="red", is.plot.parallel_params=FALSE,
is.plot.fit=TRUE, fit.lty="solid", fit.col="red", fit.lwd=2,
is.plot.goal=TRUE, goal.pch=8, goal.cex=2, goal.col="orange", goal.lwd=2,
percentiles = c(10,90), ## percentiles are no longer an arguement to alt.fit is.plot.percentiles=TRUE, percentile.col="blue", percentile.lty="solid", percentile.lwd=2,
# something about percent label?
persistent=TRUE
Currently, the function returns no value.