SMRD:::vinny() library(SMRD)
Get the adheisive bond planning values from simple user-specified information
AdhesiveBond.Weibull.altpv <- get.alt.plan.values.from.slope.and.point(distribution = "Weibull", relationship = "Arrhenius", accelvar.units = c("DegreesC"), time.units = "Days", censor.time = 183, probs = c(.001), accelvar = c(50), slope = 0.726, beta = 1.667) print(AdhesiveBond.Weibull.altpv)
AdhesiveBond0.altplan <- get.alt.test.plan.direct(accel.variable.levels = c(80,100,120), number.of.units = c(100,100,100), censor.times = c(243,243,243)) AdhesiveBond1.altplan <- get.alt.test.plan.direct(accel.variable.levels = c(78,98,120), number.of.units = c(155,60,84), censor.times = c(183,183,183)) AdhesiveBond2.altplan <- get.alt.test.plan.direct(accel.variable.levels = c(80,100,120), number.of.units = c(212,88,0), censor.times = c(243,243,243)) AdhesiveBond3.altplan <- get.alt.test.plan.direct(accel.variable.levels = c(80,100,120), number.of.units = c(150,60,90), censor.times = c(243,243,243)) ## optimum plan AdhesiveBond4.altplan <- get.alt.test.plan.direct(accel.variable.levels = c(95,120), number.of.units = c(212,88), censor.times = c(183,183)) print(AdhesiveBond1.altplan)
AdhesiveBond2.frame <- data.frame(DegreesC = c(80,100,120), SampleSize = c(150,60,90), CensorTimes = c(243,243,243)) AdhesiveBond2.altplan <- get.alt.test.plan.frame(AdhesiveBond2.frame, levels.columns = "DegreesC", censor.column = "CensorTimes", allocation.column = "SampleSize", describe.string = "AdhesiveBond Test Plan") print(AdhesiveBond2.altplan)
Make a schematic plot of the model and the test plan
plot(AdhesiveBond1.altplan, ALT.plan.values = AdhesiveBond.Weibull.altpv, use.condition = 50) plot(AdhesiveBond2.altplan, ALT.plan.values = AdhesiveBond.Weibull.altpv, use.condition = 50) plot(AdhesiveBond3.altplan, ALT.plan.values = AdhesiveBond.Weibull.altpv, use.condition = 50)
Large-sample evaluation of the test plan
ALT.vcv(AdhesiveBond1.altplan, ALT.plan.values = AdhesiveBond.Weibull.altpv) evaluate(AdhesiveBond1.altplan, ALT.plan.values = AdhesiveBond.Weibull.altpv, quantile.of.interest = 0.5, use.condition = 50) names(AdhesiveBond1.altplan) names(AdhesiveBond.Weibull.altpv)
Evaluate the test plan with simulation and large-sample approx
simulate(AdhesiveBond1.altplan, ALT.plan.values = AdhesiveBond.Weibull.altpv, use.condition = 50) unfold(AdhesiveBond1.altplan, AdhesiveBond.Weibull.altpv, use.condition = 50) evaluate(AdhesiveBond1.altplan, AdhesiveBond.Weibull.altpv, use.condition = 50, quantile.of.interest = 0.5)
Evaluate the the other test plans
simulate(AdhesiveBond2.altplan, ALT.plan.values = AdhesiveBond.Weibull.altpv, use.condition = 50, show.detail.on = 5) simulate(AdhesiveBond2.altplan, ALT.plan.values = AdhesiveBond.Weibull.altpv, number.sim = 100, use.condition = 50) evaluate(AdhesiveBond2.altplan, AdhesiveBond.Weibull.altpv, use.condition = 50, quantile.of.interest = 0.1) AdhesiveBond3.sim.out <- simulate(AdhesiveBond3.altplan, ALT.plan.values = AdhesiveBond.Weibull.altpv, use.condition = 50) ALT.plot.time.v.x(AdhesiveBond3.sim.out, x.of.interest = c(45)) ALT.plot.FracFail.v.Time(AdhesiveBond3.sim.out, x.of.interest = c(45)) evaluate(AdhesiveBond3.altplan, AdhesiveBond.Weibull.altpv, use.condition = 50, quantile.of.interest = 0.1) SMRD:::plot.vpm.vs.size(vpm.vec = c(100, 150, 200), size.vec = c(1, 2, 3)) SMRD:::plot.volt.vs.size(volts.vec = c(100, 200, 300), size.vec = c(1, 2, 3))
DeviceA.altpv <- get.alt.plan.values.from.slope.and.point(distribution = "Lognormal", slope = 0.63, relationship = "Arrhenius", time.units = "Hours", censor.time = 5000, probs = 0.5469, accelvar = 60, sigma = 0.98, use.conditions = 10) print(DeviceA.altpv) DeviceA1.altplan <- get.alt.test.plan.direct(accel.variable.levels = c(10,40,60,80), number.of.units = c(30,100,20,15), censor.time = c(5000,5000,5000,5000)) print(DeviceA1.altplan) simulate(DeviceA1.altplan, ALT.plan.values = DeviceA.altpv, nsim = 100, use.condition = 10) DeviceA2.altplan <- get.alt.test.plan.direct(accel.variable.levels = c(10,40,50,60,70,80), number.of.units = c(30,27,27,27,27,27), censor.time = c(5000,5000,5000,5000,5000,5000)) print(DeviceA2.altplan) simulate(DeviceA2.altplan, ALT.plan.values = DeviceA.altpv, nsim = 100, use.condition = 10)
Can't find this function
## generate ALT plans hold.altplan("Weibull", a = -4, b1 = -10, perc = 0.1, iopta = 3, iopts = 2, pifix = 0)
print(AdhesiveBond.Weibull.altpv) evaluate(altplan(AdhesiveBond.Weibull.altpv, "Optimum", use.condition = 50, highest.condition = 120, censor.time = 183, quantile = 0.1, sample.size = 300), AdhesiveBond.Weibull.altpv, use.condition = 50, quantile.of.interest = 0.1) AdhesiveBond.Weibull.optc.altplan <- altplan(AdhesiveBond.Weibull.altpv, "Optimized compromise", use.condition = 50, highest.condition = 120, censor.time = 250, quantile = 0.1) evaluate(altplan(AdhesiveBond.Weibull.altpv, "Equal expected", use.condition = 50, highest.condition = 120, censor.time = 250, quantile = 0.1), AdhesiveBond.Weibull.altpv, use.condition = 50, quantile.of.interest = 0.1) AdhesiveBond.Weibull.421.altplan <- altplan(AdhesiveBond.Weibull.altpv, "421", use.condition = 50, highest.condition = 120, censor.time = 250, quantile = 0.1) evaluate(altplan(AdhesiveBond.Weibull.altpv, "Traditional", use.condition = 50, highest.condition = 120, censor.time = 250, quantile = 0.1), AdhesiveBond.Weibull.altpv, use.condition = 50, quantile.of.interest = 0.1) print(AdhesiveBond.Weibull.421.altplan) evaluate(AdhesiveBond.Weibull.421.altplan, AdhesiveBond.Weibull.altpv, use.condition = 50, quantile.of.interest = 0.1) unfold(AdhesiveBond.Weibull.421.altplan, AdhesiveBond.Weibull.altpv, use.condition = 50) plot(AdhesiveBond.Weibull.421.altplan, AdhesiveBond.Weibull.altpv, use.condition = 50) DeviceA.Sim.out <- simulate(DeviceA2.altplan, ALT.plan.values = DeviceA.altpv, nsim = 10, use.condition = 10) DeviceA.Sim.out500 <- simulate(DeviceA2.altplan, ALT.plan.values = DeviceA.altpv, nsim = 500, use.condition = 10) marginalize.sim(DeviceA.Sim.out, focus.quantity = "parameter", focus.quantity.detail = 1, x.of.interest = 50) marginalize.sim(DeviceA.Sim.out, focus.quantity = "parameter", focus.quantity.detail = 2, x.of.interest = 50) marginalize.sim(DeviceA.Sim.out, focus.quantity ="parameter", focus.quantity.detail = 3, x.of.interest = 50) marginalize.sim(DeviceA.Sim.out, focus.quantity = "parameter", focus.quantity.detail = "sigma", x.of.interest = 50) marginalize.sim(DeviceA.Sim.out, focus.quantity = "quantile", focus.quantity.detail = 0.1, x.of.interest = 50) marginalize.sim(DeviceA.Sim.out, focus.quantity = "failure probability", focus.quantity.detail = 4268.884, x.of.interest = 50) SMRD:::plot.marginals.sim(DeviceA.Sim.out, focus.quantity = "parameter", focus.quantity.detail = 1) SMRD:::plot.marginals.sim(DeviceA.Sim.out, focus.quantity = "parameter", focus.quantity.detail = 1, plot.type = "density") SMRD:::plot.joint.sim(DeviceA.Sim.out, focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = 50, focus.quantity2 = "parameter", focus.quantity.detail2 = 3, x.of.interest2 = NA) SMRD:::plot.joint.and.marginals.sim(DeviceA.Sim.out, focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = 50, focus.quantity2 = "parameter", focus.quantity.detail2 = 3, x.of.interest2 = NA) summarize.simultation.results(DeviceA.Sim.out, "Marginal only", focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = 50, focus.quantity2 = "parameter", focus.quantity.detail2 = 3, x.of.interest2 = NA) summarize.simultation.results(DeviceA.Sim.out, "Marginal only", focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = 50, focus.quantity2 = "parameter", focus.quantity.detail2 = 3, x.of.interest2 = NA, plot.type = "density") summarize.simultation.results(DeviceA.Sim.out, "Joint and Marginal", focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = 50, focus.quantity2 = "parameter", focus.quantity.detail2 = 3, x.of.interest2 = NA, plot.type="density") summarize.simultation.results(DeviceA.Sim.out, "Joint only", focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = 50, focus.quantity2 = "parameter", focus.quantity.detail2 = 3, x.of.interest2=NA)
These methods also apply for tests with more than two variables)
## DeviceR example define two-variable planning values DeviceR.Weibull.altpv <- get.alt.plan.values.from.slope.and.point(distribution = "Weibull", slope = c(.6265,-.4), relationship = c("Arrhenius","Humidity"), time.units = "Days", censor.time = 183, probs = c(.002), accelvar = c(50,30), beta = 1.667, use.conditions = c(50,30)) print(DeviceR.Weibull.altpv)
Define two-variable ALT test plans
DeviceR.altplan <- get.alt.test.plan.direct(accel.variable.levels = cbind(c(80,80,120,120), c(50,80,50,80)), number.of.units = c(10,10,10,10), censor.times = c(365,365,365,365), accelvar.names = c("DegreesC","RH"), describe.string = "DeviceR Simple Plan") print(DeviceR.altplan)
Compute the fisher and vcv matrices
ALT.vcv(DeviceR.altplan,DeviceR.Weibull.altpv)
compute the large-sample approximate precision (R) factors
evaluate(DeviceR.altplan, DeviceR.Weibull.altpv,quantile.of.interest=c(.1,.5))
sample size needed for a given value of R
plot(DeviceR.altplan, DeviceR.Weibull.altpv) SMRD:::plot.alt.sample.size(DeviceR.altplan, DeviceR.Weibull.altpv) ## simulate the ALT plans with option to see detail on some experiments DeviceR.sim.out <- ALTsim(DeviceR.altplan, DeviceR.Weibull.altpv, number.sim = 400, show.detail.on = 5) DeviceR.sim.out <- ALTsim(DeviceR.altplan, DeviceR.Weibull.altpv, number.sim = 400, show.detail.on = 0) ## simulate the ALT plans and plot summary DeviceR.sim.out <- simulate(DeviceR.altplan, ALT.plan.values = DeviceR.Weibull.altpv, nsim = 400, show.detail.on = 5) DeviceR.sim.out <- simulate(DeviceR.altplan, ALT.plan.values = DeviceR.Weibull.altpv, nsim = 400, show.detail.on = 0) ## plot the ALT simulation results ALT.plot.time.v.x(DeviceR.sim.out) ALT.plot.time.v.x(DeviceR.sim.out, focus.variable = 2) ALT.plot.time.v.x(DeviceR.sim.out, x.of.interest = c(25,10), xlim = c(20,80)) ALT.plot.FracFail.v.Time(DeviceR.sim.out) ALT.plot.FracFail.v.Time(DeviceR.sim.out, x.of.interest = c(25,10), xlim = c(100,10000)) ## look at joint and marginal disributions of focus quantities summarize.simultation.results(DeviceR.sim.out, "Joint and Marginal", focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = "60;20", focus.quantity2 = "parameter", focus.quantity.detail2 = 3, x.of.interest2 = NA, plot.type = "density") summarize.simultation.results(DeviceR.sim.out, "Marginal only", focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = "60;20", focus.quantity2 = "parameter", focus.quantity.detail2 = 3, x.of.interest2 = NA) summarize.simultation.results(DeviceR.sim.out, "Marginal only", focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = "60;20", focus.quantity2 = "parameter", focus.quantity.detail2 = 1, x.of.interest2 = NA, plot.type = "density") summarize.simultation.results(DeviceR.sim.out, "Joint and Marginal", focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = "60;20", focus.quantity2 = "parameter", focus.quantity.detail2 = 2, x.of.interest2 = NA, plot.type = "density") summarize.simultation.results(DeviceR.sim.out, "Joint only", focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = "60;20", focus.quantity2 = "parameter", focus.quantity.detail2 = 4, x.of.interest2 = NA)
define two-variable planning values
NelsonInsulation.Weibull.altpv <- get.alt.plan.values.from.slope.and.point(distribution = "Weibull", slope= c(-12.28,-1.296), relationship = c("log","log"), accelvar.units = c("vpm","cm"), time.units = "Hours", censor.time = 1000, probs = c(1.8e-6), accelvar = c(80,.266), beta = 1/.6734, use.conditions = c(80,.266)) print(NelsonInsulation.Weibull.altpv) ## define two-variable ALT test plans levels = cbind(c(120,120,120,150,150,150,175,175,175,200,200,200), c(.163,.266,.355,.163,.266,.355,.163,.266,.355,.163,.266,.355)) units = c(11,18,11,8,14,8,8,14,8,11,18,11) NelsonInsulation.altplan <- get.alt.test.plan.direct(accel.variable.levels = levels, number.of.units = units, censor.times = rep(1000,12), accelvar.names = c("Volts per mm","Thick"), describe.string = "NelsonInsulation Factorial Plan") print(NelsonInsulation.altplan) print(NelsonInsulation.Weibull.altpv) ## compute the fisher and vcv matrices ALT.vcv(NelsonInsulation.altplan, NelsonInsulation.Weibull.altpv) ## compute the large-sample approximate precision (R) factors evaluate(NelsonInsulation.altplan, NelsonInsulation.Weibull.altpv, quantile.of.interest = c(.1,.5)) evaluate(NelsonInsulation.altplan, NelsonInsulation.Weibull.altpv, use.conditions = c(175,.163), quantile.of.interest = c(.1,.5)) evaluate(NelsonInsulation.altplan, NelsonInsulation.Weibull.altpv, use.conditions = c(100,.1), quantile.of.interest = c(.1,.5)) ## sample size needed for a given value of R SMRD:::plot.alt.sample.size(NelsonInsulation.altplan, NelsonInsulation.Weibull.altpv) NelsonInsulation.sim.out <- ALTsim(NelsonInsulation.altplan, NelsonInsulation.Weibull.altpv, number.sim = 400, show.detail.on = 1) ALT.plot.time.v.x(NelsonInsulation.sim.out) ALT.plot.time.v.x(NelsonInsulation.sim.out, x.of.interest = c(100,.1), xlim = c(100,200)) ALT.plot.FracFail.v.Time(NelsonInsulation.sim.out) ALT.plot.FracFail.v.Time(NelsonInsulation.sim.out, x.of.interest = c(25,10), xlim = c(100,10000)) summarize.simultation.results(NelsonInsulation.sim.out, "Joint and Marginal", focus.quantity1 = "quantile", focus.quantity.detail1 = 0.1, x.of.interest1 = "100;.1", focus.quantity2 = "parameter", focus.quantity.detail2 = 3, x.of.interest2 = NA, plot.type = "density") ## examples using basic simulation routine test.matrix <- cbind(V1 = c(1,1,2,2),V2 = c(1,2,1,2)) altsim.out <- altsim(accel.var.mat = test.matrix, nsamsz = c(4,4,4,4), centim = c(40000,40000,40000,40000), theta = c(1,-24,5,1), distribution = "normal", number.sim = 10, debug = F) altsim.out <- altsim(accel.var.mat = as.matrix(c(1,2,3,4)), nsamsz = c(4,4,4,4), centim = c(200,200,200,200), theta = c(1,-2,3), distribution = "normal", number.sim = 5, debug = F, kprint = 0) altsimReturnFrame(accel.var.mat = test.matrix, nsamsz = c(4,4,4,4), centim = c(100,100,100,100), theta = c(1,1,1,2), distribution =" lognormal", relationship = c("linear","log")) ## Simulate a single ALT data set altsimReturnFrame(accel.var.mat = test.matrix, nsamsz = c(4,4,4,4), centim = c(100,100,100,100), theta = c(1,1,1,2), distribution = "lognormal", relationship = c("linear","log")) ## example of multiple minima varone.grid(a = -0.9, b1 = -7.9, perc = 0.01, xlab = "xiL", ylab = "piL", xiL.lower = -1, levels = c(.001,.01,0.10000000000000001, 0.20000000000000001, 0.5, 1, 2), dump = T)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.