Type: | Package |
Title: | Accelerated Life Testing Using 'WeibullR' |
Version: | 0.7.2 |
Date: | 2022-6-27 |
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). |
License: | GPL (≥ 3) |
Copyright: | copyright (c) OpenReliability.org 2022 |
Author: | David Silkworth [aut], Jacob Ormerod [cre], OpenReliability.org [cph] |
Depends: | R (≥ 3.5.0), WeibullR, methods |
URL: | http://www.openreliability.org/weibull-r-weibull-analysis-on-r/ |
LazyLoad: | yes |
NeedsCompilation: | no |
Packaged: | 2022-06-27 15:23:15 UTC; djsil |
Maintainer: | Jacob Ormerod <jake@openreliability.org> |
Repository: | CRAN |
Date/Publication: | 2022-06-28 15:50:06 UTC |
Generate example data tables as presented in "Statistical Methods for Reliability Data" by Bill Meeker and Luis Escobar
Description
This function generates life test data tables suitable for use in example scripts.
Usage
MeekerData(x)
Arguments
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." |
Details
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.
Value
The returned object is either a dataframe or a list that can be accessed by the names of the olumns or elments.
References
William Q. Meeker and Luis A. Escobar, (1998) "Statistical Methods for Reliability Data", Wiley-Interscience, New York
Examples
t10<-MeekerData("C.10")
Generate example data tables as presented in "Accelerated Testing" by Wayne Nelson
Description
This function generates life test data tables suitable for use in example scripts.
Usage
NelsonData(x)
Arguments
x |
Either a character string defining one of "table2.2", "table3.1", "table4.1" or "table5.1 or a numeric of the table digits. |
Details
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.
Value
The returned object is either a dataframe or a list that can be accessed by the names of the olumns or elments.
References
Wayne Nelson, (1990) "Accelerated Testing", Wiley-Interscience, New York
Examples
table4.1<-NelsonData("table4.1")
Create a alt.data
Object for Accelerated Life (Failure) Test Data
Description
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.
Usage
alt.data(x, s=NULL, interval=NULL, stress)
Arguments
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. |
Details
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
orfail
is provided, it is treated as a vector of (life-)time observations. Take care NOT to supply bothtime
andfail
in the same function call.If argument
event
is provided, it is treated as a vector of event indicators with possible values of0
and1
. See section "Value" for more details on event vectors.If the
x
argument is not provided as a dataframe andsusp
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)
Value
A named list of class "alt.data"
. The first list
item ($data
) is a list with up to least three items:
$stress
-
A scalar value representing the accelerating stress applied during a life test.
$data
-
A dataframe containing the provided data formatted with
"left"
,"right"
, and"qty"
columns. This conforms with the output of function"WeibullR::mleframe"
.
References
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
Examples
table2.1<-NelsonData("table2.1")
alt_da190<-alt.data(table2.1$C190, stress=190)
ClassH_goal<-alt.data(20000, stress=180)
Modify an "alt"
Object Establishing a Accelerated Life Relationship Fit
Description
This function generates a linear fit to the median or characteristic life estimates of the provided data sets.
Usage
alt.fit(x, omit_set=0)
Arguments
x |
An |
omit_set |
An optional vector listing any data set(s) that judged to be excluded from the accelerated life relationship determination. |
Details
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.
Value
The input object will be returned with the addition of a "$alt_coef"
element.
References
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
Create a alt
Object for Analysis of Accelerated Life (Failure) Test Data
Description
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
Usage
alt.make(x, dist, alt.model, method.fit="mle-rba", goal=NULL,
set_validation=NULL, view_dist_fits=TRUE)
Arguments
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. |
Details
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 .
Value
A named list of class "alt"
. The first list
item ($data
) is a list with up to least three items:
$stress
-
A dataframe containing the provided data formatted with
"left"
,"right"
, and"qty"
columns. This is the output of WeibullR function"mleframe"
. $data
-
A dataframe containing the provided data formatted with
"left"
,"right"
, and"qty"
columns. This is the output of WeibullR function"mleframe"
. $num_fails
-
The number of non-censored items in this data set.
Additional list items in the alt object generated by alt.make are:
$goal
-
A 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. $dist
-
A string defining the distribution to be used to fit life data.
$method.fit
-
A string defining the method to be used for fitting individual life test data sets.
References
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
Examples
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
)
Modify an "alt"
Object Establishing a Parallel Parametric Fit
Description
This function generates parameters for each applicable data set with the same log standard deviation or weibull slope.
Usage
alt.parallel(x, ignore_slope=0, set.exponential=FALSE, view_parallel_fits=TRUE)
Arguments
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. |
Details
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.
Value
The input object will be returned with the addition of a "$parallel_par"
element.
References
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
Description
Extract a range for depiction of an alt object in a relationship plot.
Usage
findrange.alt(alt)
Arguments
alt |
An |
Details
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.
Value
A data frame will be returned with columns denoting yrange and xrange.
References
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
Set life(time) data into the format required by mlefit
Description
Validate input data by types and build a dataframe to be used as the primary argument object to mlefit
Usage
mleframe.alt(x, s=NULL, interval=NULL)
Arguments
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. |
Value
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.
References
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/.
Examples
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)
Options list for alt
Objects
Description
This function handles the various plotting options for alt objects.
Usage
options.alt(...)
Arguments
... |
Options for plotting |
Details
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
.
Value
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.
S3 alt
Object Plotting on pretty canvax
Description
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.
Usage
## S3 method for class 'alt'
plot(x, ...)
Arguments
x |
Object of class |
... |
Options for plotting the |
Details
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
Value
Currently, the function returns no value.