SMRD:::vinny()
library(SMRD)
library(DT)

In this echapter...

Nelson's Insulation Breakdown degradation data

## create the ddd data object
Insulation.ddd <- frame.to.ddd(insulation,
                               response.column = 3, 
                               time.column = 1,
                               x.columns = 2,
                               data.title = "Voltage Breakdown Data",
                               response.units = "Volts",
                               time.units = "Weeks")

DT::datatable(Insulation.ddd)

Plot the data

plot(Insulation.ddd,
     transformation.Response = "log",
     transformation.time = "linear")

tmp <- groupi.Dest.Degrad.indivplots(Insulation.ddd,
                                     transformation.response = "log", 
                                     transformation.time = "linear",
                                     distribution = "normal")

groupi.Dest.Degrad.oneplot(Insulation.ddd,
                           transformation.response = "log", 
                           transformation.time = "linear",
                           distribution = "normal")

Fit model using Nelson's parameterization and base 10 logs

groupm.Dest.Degrad(Insulation.ddd, 
                   distribution = "normal",
                   transformation.response = "log10",
                   transformation.x = "invtemp",
                   transformation.time = "linear")


groupm.Dest.Degrad(Insulation.ddd, 
                   distribution = "normal",
                   transformation.response = "log",
                   transformation.x = "arrhenius",
                   transformation.time = "linear")

Do individual analyses at each level of temperature

Insulation.groupi.Dest.Degrad <- 
  groupi.Dest.Degrad(Insulation.ddd,
                     distribution = "normal",
                     transformation.response = "log",
                     transformation.time = "sqrt")

plot(Insulation.groupi.Dest.Degrad,
     transformation.x = "Arrhenius")

Fit the arrhenius model; specify new data

Insulation.groupm.Dest.Degrad <-
  groupm.Dest.Degrad(Insulation.ddd,
                     distribution = "normal", 
                     transformation.response = "log",
                     transformation.x = "arrhenius", 
                     transformation.time = "sqrt")

Insulation.groupm.Dest.Degrad <- 
  groupm.Dest.Degrad(Insulation.ddd,
                     distribution = "normal",
                     transformation.response = "log",
                     transformation.x = "arrhenius",
                     transformation.time = "sqrt",
                     new.data = c("150,260"))

residual.plots(Insulation.groupm.Dest.Degrad)

Plot the failure time distribution for given failure levels

plot(Insulation.groupm.Dest.Degrad,
     FailLevel = 2)

quantiles(Insulation.groupm.Dest.Degrad,
          FailLevel = 10, 
          use.condition = 150)

quantiles(Insulation.groupm.Dest.Degrad,
          FailLevel = 10, 
          use.condition = 150,
          prob = 0.2)

quantiles(Insulation.groupm.Dest.Degrad,
          FailLevel = 2,
          use.condition = 150)

failure.probabilities(Insulation.groupm.Dest.Degrad,
                      FailLevel = 2,
                      use.condition = 150, 
                      time.vec = seq(6000,8000, by = 200))

Adhesive Strength example ignoring the groups

This is a really messy set of data with slopes going in the wrong direction for some temps

AdhesiveStrength.ddd <- frame.to.ddd(adhesivestrength, 
                                     response.column = "pounds",
                                     time.column = "days",
                                     x.columns = "celsius",
                                     data.title = "AdhesiveStrength Strength Data",
                                     time.units = "Days")

AdhesiveStrength.gmle <- dest.degrad.mle(AdhesiveStrength.ddd,
                                         distribution = "normal",
                                         transformation.response = "log", 
                                         transformation.x = "arrhenius", 
                                         transformation.time = "linear")

get.sub.model(AdhesiveStrength.gmle,
              c(50,60,70))

plot(AdhesiveStrength.ddd,
     transformation.response = "linear")

plot(AdhesiveStrength.ddd,
     transformation.response = "log",
     transformation.time = "sqrt")


AdhesiveStrength.groupi <- 
  groupi.Dest.Degrad(AdhesiveStrength.ddd,
                     transformation.response = "log",
                     transformation.time = "sqrt",
                     distribution = "normal")

AdhesiveStrength.groupi <- 
  groupi.Dest.Degrad(AdhesiveStrength.ddd,
                     transformation.response = "log",
                     transformation.time = "sqrt",
                     distribution = "normal",
                     sep = T)

plot(AdhesiveStrength.groupi,
     transformation.x = "Arrhenius")

AdhesiveStrength.groupm <-  
  groupm.Dest.Degrad(AdhesiveStrength.ddd, 
                     distribution = "normal", 
                     transformation.response = "log",
                     transformation.x = "Arrhenius", 
                     transformation.time = "sqrt")

Test using Nelson's Insulation Breakdown degradation data times 100

This is used to compare with asym variances

## create the dd data object

Insulation.test.ddd <- frame.to.ddd(insulation,
                                    response.column = 3, 
                                    time.column = 1, 
                                    x.columns = 2,
                                    data.title = "Voltage Breakdown Data",
                                    response.units = "Volts",
                                    time.units = "Weeks")

DT::datatable(Insulation.test.ddd)
## plot the data
plot(Insulation.test.ddd,
     transformation.response = "log",
     transformation.time = "linear")

Compare with Wayne Nelson's parameterization. Plots of voltage versus weeks will be the same, but coefficients depend on transformation details shown in the title

plot(Insulation.test.ddd,
     transformation.response = "log10")

Insulation.groupi.Dest.Degrad <- 
  groupi.Dest.Degrad(Insulation.test.ddd,
                     distribution = "normal",
                     transformation.response = "log10",
                     transformation.time = "linear")

plot(Insulation.groupi.Dest.Degrad,
     transformation.x = "arrhenius")

plot(Insulation.groupi.Dest.Degrad,
     transformation.x = "invtemp")

Insulation.groupi.Dest.Degrad <- 
  groupi.Dest.Degrad(Insulation.test.ddd,
                     distribution = "normal",
                     transformation.response = "log",
                     transformation.time = "linear")

plot(Insulation.groupi.Dest.Degrad,
     transformation.x = "arrhenius")

plot(Insulation.groupi.Dest.Degrad,
     transformation.x = "invtemp")

tmp10 <- groupm.Dest.Degrad(Insulation.test.ddd,
                            distribution = "normal",
                            transformation.response = "log10",
                            transformation.x = "invtemp",
                            transformation.time = "linear")

tmp <- groupm.Dest.Degrad(Insulation.test.ddd, 
                          distribution = "normal",
                          transformation.response = "log",
                          transformation.x = "arrhenius",
                          transformation.time = "linear")

plot(tmp,FailLevel = 10)

Fit model using Wayne Nelson's parameterization and base 10 logs

dest.degrad.mle(Insulation.test.ddd, 
                distribution = "normal",
                transformation.response = "log10",
                transformation.x = "invtemp",
                transformation.time = "linear")

Do individual analyses at each level of temperature

Insulation.test.groupi.Dest.Degrad <- 
  groupi.Dest.Degrad(Insulation.test.ddd,
                     transformation.response = "log",
                     transformation.time = "sqrt",
                     distribution = "normal")

## print.default(attr(InsulationBrkdwn.test.groupi.Dest.Degrad.out, "data.ddd"))

plot(Insulation.test.groupi.Dest.Degrad,
     transformation.x = "Arrhenius")

Fit the arrhenius model; specify new data

Insulation.test.groupm.Dest.Degrad.out <- 
  groupm.Dest.Degrad(Insulation.test.ddd, 
                     distribution = "normal",
                     transformation.response = "log",
                     transformation.x = "arrhenius", 
                     transformation.time = "linear",
                     new.data = c("150,200,260"))

Plot the failure time distribution for given failure levels

plot(Insulation.test.groupm.Dest.Degrad.out,
     FailLevel = 2)

plot(Insulation.test.groupm.Dest.Degrad.out,
     FailLevel = 10)

quantiles(Insulation.test.groupm.Dest.Degrad.out,
          FailLevel = 10, 
          use.condition = 150)

quantiles(Insulation.test.groupm.Dest.Degrad.out,
          FailLevel = 10, 
          use.condition = 150,
          prob = 0.2)

quantiles(Insulation.test.groupm.Dest.Degrad.out,
          FailLevel = 2, 
          use.condition = 150)

failure.probabilities(Insulation.test.groupm.Dest.Degrad.out,
                      FailLevel = 2, 
                      use.condition = 150,
                      time.vec = c(300000,350000))

failure.probabilities(Insulation.test.groupm.Dest.Degrad.out,
                      FailLevel = 2, 
                      use.condition = 150)

res <- c(-0.005080116, -0.008051072, -0.015674764)

two variable example

AdhesiveBondC.ddd <- frame.to.ddd(adhesivebondc,
                                  response.column = "pounds", 
                                  x.columns = c("celsius","rh"),
                                  time.column = "days")

plot(AdhesiveBondC.ddd,
     transformation.response = "log",
     transformation.time = "Square root")

Plot both; multipleplot

tmp <- groupi.Dest.Degrad.indivplots(AdhesiveBondC.ddd,
                                     transformation.response = "log",
                                     transformation.time = "linear",
                                     distribution = "normal")

Plot both; single plot

groupi.Dest.Degrad.oneplot(AdhesiveBondC.ddd,
                           transformation.response = "log", 
                           transformation.time = "linear",
                           distribution = "normal")

Single plot

AdhesiveBondC.groupi.Dest.Degrad.out <-
  groupi.Dest.Degrad(AdhesiveBondC.ddd,
                     distribution = "normal",
                     transformation.response = "log", 
                     transformation.time = "sqrt")

plot(AdhesiveBondC.groupi.Dest.Degrad.out,
     transformation.x = "Arrhenius")

plot(AdhesiveBondC.groupi.Dest.Degrad.out,
     transformation.x = "Humidity",
     focus.variable = 2)

## or more simply
plot(AdhesiveBondC.groupi.Dest.Degrad.out,
     transformation.x = "Arrhenius")

plot(AdhesiveBondC.groupi.Dest.Degrad.out,
     transformation.x = "Arrhenius")

AdhesiveBondC.groupm.Dest.Degrad.out <-
  groupm.Dest.Degrad(AdhesiveBondC.ddd,
                     distribution = "normal", 
                     transformation.response = "log",
                     transformation.x =  c( "Arrhenius","humidity"),
                     transformation.time = "linear")

AdhesiveBondC.groupm.Dest.Degrad.out <- 
  groupm.Dest.Degrad(AdhesiveBondC.ddd,
                     distribution = "normal",
                     transformation.response = "log",
                     transformation.x =  c( "Arrhenius","humidity"),
                     transformation.time = "linear", 
                     new.data = c("25;30"),
                     FailLevel = 2.4)

AdhesiveBondC.groupm.Dest.Degrad.out <-
  groupm.Dest.Degrad(AdhesiveBondC.ddd,
                     distribution = "Normal",
                     transformation.response = "Log",
                     transformation.time = "Linear",
                     transformation.x = c("Arrhenius", "Humidity"),
                     FailLevel = 2.4,
                     power = numeric(0),
                     PlotFailDefLine = T,
                     subset = T,
                     new.data = "25;30,30;30")

plot(AdhesiveBondC.groupm.Dest.Degrad.out, 
     FailLevel = 2.4)

quantiles(AdhesiveBondC.groupm.Dest.Degrad.out,
          FailLevel = 2.4, 
          use.condition = c("25;30"))

failure.probabilities(AdhesiveBondC.groupm.Dest.Degrad.out,
                      FailLevel = 2.4, 
                      use.condition = c("25;30"),
                      time.vec = c(2500,4000))


Auburngrads/SMRD documentation built on Sept. 14, 2020, 2:21 a.m.