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 $time and $event columns and optionally a $qty column, or a vector of class "numeric" or "integer" with (life-)time observations.

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.

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 "alt" object as modified by "alt.parallel".

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 "alt" object as generated by "alt.make".

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 "alt" object as generated by "alt.make".

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 alt objects using the WeibullR package.

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 "alt".

...

Options for plotting the alt object; see section "Details".

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.