addt.fit {ADDT} | R Documentation |
ADDT Model Fitting
Description
Fits degradation data using the least-squares, maximum likelihood, and semiparametric methods and estimates the thermal indices (TI).
Usage
addt.fit(formula, data, initial.val = 100, proc = "All",
failure.threshold, time.rti = 1e+05, method = "Nelder-Mead",
subset, na.action, starts = NULL, fail.thres.vec = c(70, 80),
semi.control = list(cor = F,...),...)
Arguments
formula |
A formula of type Response~Time+Temperature. The order of Time and Temperature cannot be changed. |
data |
A data frame contains the ADDT data to be analyzed. |
initial.val |
We need response measurements at time point 0 to compute the initial degradation level in the model. If the data does not contain that information, user must supply the initial.value. Otherwise, the function will give an error message. |
proc |
The type of analysis to be performed which can be "LS" (least squares), "ML" (maximum likelihood), "SemiPara" (semiparametric), or "All" (the least-squares, maximum likelihood and semiparametric methods). |
failure.threshold |
The value below which a soft failure occurs. Must be in the form of a percent of the initial value. |
time.rti |
The time associated with the thermal index (TI) or relative thermal index (RTI). Typically 100,000 hours. |
method |
An argument passed to optim specifying the optimization procedure. Default is |
subset |
An optional statement that allows the use of only part of the dataset. |
na.action |
Indicates the action required when data contain missing values. |
starts |
A vector of starting values for the maximum likelihood procedure.
See |
fail.thres.vec |
If the user does not specify “starts” argument, the user may specify a vector of two different failure.thresholds. The least-squares procedure is then used for the two different failure.thresholds to produce starting values for the maximum likelihood procedure. |
semi.control |
list=(cor=F,...), control parameters related to the semiparametric method. If not specified, default is no correlation. When cor = T in the list is specified, model assumes a correlation term. |
... |
Optional arguments. |
Details
A thermal index (TI) or relative thermal index (RTI) is often used to evaluate long-term performance of polymeric materials. Accelerated destructive degradation testing (ADDT) is widely used to calculate the TI of certain polymeric materials.
The dataset considered in addt.fit function contain repeated measurements of a response, say tensile strength, at some combinations of time and temperature.
The least squares procedure aggregates data into the average of measurements at each combination of time and temperature. Then, polynominal regression is used to interpolate the failure time for each combination. A least squares line is fitted to the failure time data and the TI is then obtained by
TI=\frac{beta1}{log10(time.rti)-beta0}-273.16.
It is important to note that observations are required after failure in order for this procedure to be successful.
The maximum likelihood procedure assumes a degradation path dependent on time and temperature. An example of a parametric form for this path can be found in Vaca-Trigo and Meeker (2009) and is the form currently used here. The error term is assumed to follow a multivariate normal distribution. A TI can be directly estimated from the parameter estimates for the degradation path. The addt.fit
function will be generalized to allow other parametric forms of the mean function, and/or other non-Guassian distribution in later versions.
The semiparametric model assembles both parametric model like Arrhenius model for degradation variable extrapolation as well as non-parametric model in order to be more compatible for various materials.
Value
An object of class "addt.fit", which is a list containing:
LS.obj |
If least-squares approach is used, a LS.obj will returned. It contains estimates of coefficients in the TI formula, estimated TI, a matrix contains the failure time by polynomial interpolation. |
ML.obj |
A ML.obj object is returned if maximum likelihood approach is specified. |
SemiPara.obj |
A SemiPara.obj is returned if SemiPara approach is specified. |
dat |
The data set used in least square/maximum likelihood approaches. |
time.rti |
An argument stored to be used for functions related to "addt.fit" object. |
initial.val |
An argument stored to be used for functions related to "addt.fit" object. |
failure.threshold |
An argument stored to be used for functions related to "addt.fit" object. |
References
Y. Hong, C. B. King, Y. Xie, J. H. Van Mullekom, S. P. Dehart, and P. A. DeFeo (2014). “A Comparison of Least Squares and Maximum Likelihood Approaches to Estimating Thermal Indices for Polymeric Materials,” Journal of Quality Technology, in press, 2016.
I. Vaca-Trigoand, W. Q. Meeker, “A statistical model for linking field and laboratory exposure results for a model coating,” in Service Life Prediction of Polymeric Materials, J. Martin, R. A. Ryntz, J. Chin, and R. A. Dickie, Eds. NY: New York: Springer, 2009, ch. 2.
Y. Xie, C. B. King, Y. Hong, and Q. Yang, “Semi-parametric models for accelerated destructive degradation test data analysis,” Preprint: arXiv:1512.03036, 2015.
See Also
plot.addt.fit, summary.addt.fit
Examples
data(AdhesiveBondB)
## Least Squares
addt.fit.lsa<-addt.fit(Response~TimeH+TempC,data=AdhesiveBondB,proc="LS",
failure.threshold=70)
## Maximum Likelihood
addt.fit.mla<-addt.fit(Response~TimeH+TempC,data=AdhesiveBondB,proc="ML",
failure.threshold=70)
## Semiparametric
## Not run: addt.fit.semi<-addt.fit(Response~TimeH+TempC,data=AdhesiveBondB,proc="SemiPara",
failure.threshold=70)
## End(Not run)
## All LS, ML and Semi-Parametric procedures
## Not run: addt.fit.all<-addt.fit(Response~TimeH+TempC,data=AdhesiveBondB,proc="All",
failure.threshold=70)
## End(Not run)
summary(addt.fit.lsa)
summary(addt.fit.mla)
## Not run: summary(addt.fit.semi)
## Not run: summary(addt.fit.all)
## Not run: plot(addt.fit.all, type="data")
## Not run: plot(addt.fit.all, type="LS")
## Not run: plot(addt.fit.all, type="ML")
## Not run: plot(addt.fit.semi, type="SEMI")
## Not run: addt.confint.ti.mle(addt.fit.mla,conflevel=0.95)