Объявите, что процесс неуправляем, если Y>=UCL1
, Y<=LCL1
(UCL1
и LCL1
контрольные пределы называются внешними контрольными пределами).
Объявите, что процесс находится под контролем, если LCL2<=Y<=UCL2
(и называются пределами внутреннего контроля). Однако, если UCL2<Y<=UCL1
или LCL1<Y<=LCL2
, перейдите к шагу I и повторите процесс. Теперь это полный код R, пожалуйста, проверьте его и скажите, почему он не работает. когда я запускаю этот код, я не получаю никаких результатов.
ld=0.20;n=10; ssize=10000
p0=0.5;
k1=runif(ssize,0,3.2);k1
k2=runif(ssize,0,3.2);k2
mu.x=asin(sqrt(0.5));
var.x=1/(4*n)
M=c(); ARL=c();ARL=370;
shift=c(0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.46,0.47,0.48,0.49,0.50,0.51,0.52,0.53,0.54,0.55,0.60,0.65,0.70,0.75,0.80,0.85,0.90,0.95)
UCL1=mu.x+k1*sqrt(var.x)*sqrt((ld/(2-ld)));UCL1
LCL1=mu.x-k1*sqrt(var.x)*sqrt((ld/(2-ld)));LCL1
UCL2=mu.x+k2*sqrt(var.x)*sqrt((ld/(2-ld)));UCL2
LCL2=mu.x-k2*sqrt(var.x)*sqrt((ld/(2-ld)));LCL2
for(l in 1:length(shift))
{
p1=shift[l]
x=c();rl=c();
for(j in 1:10000){
for(t in 1:10000){
x[t]=asin(sqrt(rbinom(1,n,p1)/n))
if(t==1){M[t]=ld*x[t]+(1-ld)*mu.x} else{M[t]=ld*x[t]+(1-ld)*M[t-1]} # new Modified EWMA Statistic
if((M[t]>UCL2 & M[t]<LCL2) | (M[t]>UCL1 & M[t]<UCL2) | (M[t]>LCL2 & M[t]<LCL1)) {
rl[j]=t
}
else{
rl[j]=0
}
}
}
ARL[l]=mean(rl)
}
print(cbind(shift,ARL,LCL1,LCL2,UCL1,UCL2))