View source: R/xcusum.crit.L0L1.R
| xcusum.crit.L0L1 | R Documentation |
Computation of the reference value k and the alarm threshold h for one-sided CUSUM control charts monitoring normal mean, if the in-control ARL L0 and the out-of-control L1 are given.
xcusum.crit.L0L1(L0, L1, hs=0, sided="one", r=30, L1.eps=1e-6, k.eps=1e-8)
L0 |
in-control ARL. |
L1 |
out-of-control ARL. |
hs |
so-called headstart (enables fast initial response). |
sided |
distinguishes between one-, two-sided and Crosier's modified
two-sided CUSUM schemoosing |
r |
number of quadrature nodes, dimension of the resulting linear
equation system is equal to |
L1.eps |
error bound for the L1 error. |
k.eps |
bound for the difference of two successive values of k. |
xcusum.crit.L0L1 determines the reference value k and the alarm threshold h
for given in-control ARL L0 and out-of-control ARL L1
by applying secant rule and using xcusum.arl() and xcusum.crit().
These CUSUM design rules were firstly (and quite rarely afterwards) used by Ewan and Kemp.
Returns two values which resemble the reference value k and the threshold h.
Sven Knoth
W. D. Ewan and K. W. Kemp (1960), Sampling inspection of continuous processes with no autocorrelation between successive results, Biometrika 47, 363-380.
K. W. Kemp (1962), The Use of Cumulative Sums for Sampling Inspection Schemes, Journal of the Royal Statistical Sociecty C, Applied Statistics, 10, 16-31.
xcusum.arl for zero-state ARL and xcusum.crit for threshold h computation.
## Table 2 from Ewan/Kemp (1960) -- one-sided CUSUM
#
# A.R.L. at A.Q.L. A.R.L. at A.Q.L. k h
# 1000 3 1.12 2.40
# 1000 7 0.65 4.06
# 500 3 1.04 2.26
# 500 7 0.60 3.80
# 250 3 0.94 2.11
# 250 7 0.54 3.51
#
L0.set <- c(1000, 500, 250)
L1.set <- c(3, 7)
cat("\nL0\tL1\tk\th\n")
for ( L0 in L0.set ) {
for ( L1 in L1.set ) {
result <- round(xcusum.crit.L0L1(L0, L1), digits=2)
cat(paste(L0, L1, result[1], result[2], sep="\t"), "\n")
}
}
#
# two confirmation runs
xcusum.arl(0.54, 3.51, 0) # Ewan/Kemp
xcusum.arl(result[1], result[2], 0) # here
xcusum.arl(0.54, 3.51, 2*0.54) # Ewan/Kemp
xcusum.arl(result[1], result[2], 2*result[1]) # here
#
## Table II from Kemp (1962) -- two-sided CUSUM
#
# Lr k
# La=250 La=500 La=1000
# 2.5 1.05 1.17 1.27
# 3.0 0.94 1.035 1.13
# 4.0 0.78 0.85 0.92
# 5.0 0.68 0.74 0.80
# 6.0 0.60 0.655 0.71
# 7.5 0.52 0.57 0.62
# 10.0 0.43 0.48 0.52
#
L0.set <- c(250, 500, 1000)
L1.set <- c(2.5, 3:6, 7.5, 10)
cat("\nL1\tL0=250\tL0=500\tL0=1000\n")
for ( L1 in L1.set ) {
cat(L1)
for ( L0 in L0.set ) {
result <- round(xcusum.crit.L0L1(L0, L1, sided="two"), digits=2)
cat("\t", result[1])
}
cat("\n")
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.