13.2
1.barx - R 관리도
library(qcc)
## Package 'qcc', version 2.6
## Type 'citation("qcc")' for citing this R package in publications.
x1 = c(24,44,21,29,17,16,29,42,44,38,56,25,59,49,40,44,58,35)
x2 = c(41,63,4,48,19,20,31,36,30,38,48,30,55,55,40,51,61,35)
x3 = c(43,50,22,30,26,33,53,48,19,48,54,60,49,47,37,48,40,20)
x4 = c(34,41,11,41,33,35,42,36,23,34,41,42,60,54,47,37,37,28)
x5 = c(49,50,25,32,42,24,12,40,23,28,58,48,63,56,32,48,47,10)
data = cbind(x1,x2,x3,x4,x5) ; data;
## x1 x2 x3 x4 x5
## [1,] 24 41 43 34 49
## [2,] 44 63 50 41 50
## [3,] 21 4 22 11 25
## [4,] 29 48 30 41 32
## [5,] 17 19 26 33 42
## [6,] 16 20 33 35 24
## [7,] 29 31 53 42 12
## [8,] 42 36 48 36 40
## [9,] 44 30 19 23 23
## [10,] 38 38 48 34 28
## [11,] 56 48 54 41 58
## [12,] 25 30 60 42 48
## [13,] 59 55 49 60 63
## [14,] 49 55 47 54 56
## [15,] 40 40 37 47 32
## [16,] 44 51 48 37 48
## [17,] 58 61 40 37 47
## [18,] 35 35 20 28 10
qcc(data, type = "xbar")

## List of 11
## $ call : language qcc(data = data, type = "xbar")
## $ type : chr "xbar"
## $ data.name : chr "data"
## $ data : num [1:18, 1:5] 24 44 21 29 17 16 29 42 44 38 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:18] 38.2 49.6 16.6 36 27.4 25.6 33.4 40.4 27.8 37.2 ...
## ..- attr(*, "names")= chr [1:18] "1" "2" "3" "4" ...
## $ sizes : int [1:18] 5 5 5 5 5 5 5 5 5 5 ...
## $ center : num 38.5
## $ std.dev : num 9.12
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 26.3 50.7
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
qcc(data, type = "R")

## List of 11
## $ call : language qcc(data = data, type = "R")
## $ type : chr "R"
## $ data.name : chr "data"
## $ data : num [1:18, 1:5] 24 44 21 29 17 16 29 42 44 38 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:18] 25 22 21 19 25 19 41 12 25 20 ...
## ..- attr(*, "names")= chr [1:18] "1" "2" "3" "4" ...
## $ sizes : int [1:18] 5 5 5 5 5 5 5 5 5 5 ...
## $ center : num 21.2
## $ std.dev : num 9.12
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 0 44.9
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
#xbar관리도는 시료군3,6,11,13,14,18,에서 barx의 값이 관리 상한선과 하한선을
#벗어나고 있으므로 원인을 규명하여 조치를 취해야 한다.
#R관리도의 경우 아무런 이상이 없으므로 산포는 관리상태에 있다고 판정할 수 있다.
2.x-Rs 관리도
#x관리도
qcc(data[,1],type="xbar.one")#측정1

## List of 11
## $ call : language qcc(data = data[, 1], type = "xbar.one")
## $ type : chr "xbar.one"
## $ data.name : chr "data[, 1]"
## $ data : num [1:18, 1] 24 44 21 29 17 16 29 42 44 38 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:18] 24 44 21 29 17 16 29 42 44 38 ...
## ..- attr(*, "names")= chr [1:18] "1" "2" "3" "4" ...
## $ sizes : int [1:18] 1 1 1 1 1 1 1 1 1 1 ...
## $ center : num 37.2
## $ std.dev : num 12.6
## $ nsigmas : num 3
## $ limits : num [1, 1:2] -0.481 74.926
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
qcc(data[,2],type="xbar.one")#측정2

## List of 11
## $ call : language qcc(data = data[, 2], type = "xbar.one")
## $ type : chr "xbar.one"
## $ data.name : chr "data[, 2]"
## $ data : num [1:18, 1] 41 63 4 48 19 20 31 36 30 38 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:18] 41 63 4 48 19 20 31 36 30 38 ...
## ..- attr(*, "names")= chr [1:18] "1" "2" "3" "4" ...
## $ sizes : int [1:18] 1 1 1 1 1 1 1 1 1 1 ...
## $ center : num 39.2
## $ std.dev : num 15.6
## $ nsigmas : num 3
## $ limits : num [1, 1:2] -7.77 86.1
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
qcc(data[,3],type="xbar.one")#측정3

## List of 11
## $ call : language qcc(data = data[, 3], type = "xbar.one")
## $ type : chr "xbar.one"
## $ data.name : chr "data[, 3]"
## $ data : num [1:18, 1] 43 50 22 30 26 33 53 48 19 48 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:18] 43 50 22 30 26 33 53 48 19 48 ...
## ..- attr(*, "names")= chr [1:18] "1" "2" "3" "4" ...
## $ sizes : int [1:18] 1 1 1 1 1 1 1 1 1 1 ...
## $ center : num 40.4
## $ std.dev : num 11
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 7.38 73.4
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
qcc(data[,4],type="xbar.one")#측정4

## List of 11
## $ call : language qcc(data = data[, 4], type = "xbar.one")
## $ type : chr "xbar.one"
## $ data.name : chr "data[, 4]"
## $ data : num [1:18, 1] 34 41 11 41 33 35 42 36 23 34 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:18] 34 41 11 41 33 35 42 36 23 34 ...
## ..- attr(*, "names")= chr [1:18] "1" "2" "3" "4" ...
## $ sizes : int [1:18] 1 1 1 1 1 1 1 1 1 1 ...
## $ center : num 37.6
## $ std.dev : num 8.97
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 10.6 64.5
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
qcc(data[,5],type="xbar.one")#측정5

## List of 11
## $ call : language qcc(data = data[, 5], type = "xbar.one")
## $ type : chr "xbar.one"
## $ data.name : chr "data[, 5]"
## $ data : num [1:18, 1] 49 50 25 32 42 24 12 40 23 28 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:18] 49 50 25 32 42 24 12 40 23 28 ...
## ..- attr(*, "names")= chr [1:18] "1" "2" "3" "4" ...
## $ sizes : int [1:18] 1 1 1 1 1 1 1 1 1 1 ...
## $ center : num 38.2
## $ std.dev : num 13.7
## $ nsigmas : num 3
## $ limits : num [1, 1:2] -2.98 79.31
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
#x관리도의 경우 관리 한계선을 넘어가는 점이 보이지 않아 적합하다고 판정을 내릴 수 있다.
#Rs 관리도
rs1 = c();rs2 = c();rs3 = c();rs4 =c();rs5 =c();
for(i in 1 : 17){
rs1[i] = abs(x1[i+1]-x1[i])
rs2[i] = abs(x2[i+1]-x2[i])
rs3[i] = abs(x3[i+1]-x3[i])
rs4[i] = abs(x4[i+1]-x4[i])
rs5[i] = abs(x5[i+1]-x5[i])
}
rs1;rs2;rs3;rs4;rs5;
## [1] 20 23 8 12 1 13 13 2 6 18 31 34 10 9 4 14 23
## [1] 22 59 44 29 1 11 5 6 8 10 18 25 0 15 11 10 26
## [1] 7 28 8 4 7 20 5 29 29 6 6 11 2 10 11 8 20
## [1] 7 30 30 8 2 7 6 13 11 7 1 18 6 7 10 0 9
## [1] 1 25 7 10 18 12 28 17 5 30 10 15 7 24 16 1 37
rs1.cl = sum(rs1)/length(rs1);rs2.cl = sum(rs2)/length(rs2);rs3.cl = sum(rs3)/length(rs3);rs4.cl = sum(rs4)/length(rs4);rs5.cl = sum(rs5)/length(rs5);
rs1.ucl = 3.27*rs1.cl;rs2.ucl = 3.27*rs2.cl;rs3.ucl = 3.27*rs3.cl;rs4.ucl = 3.27*rs4.cl;rs5.ucl = 3.27*rs5.cl;
date = c(3,4,5,6,7,9,10,11,12,13,14,16,17,18,19,20,21)
plot(date,rs1,type="b",ylim = c(0,50));abline(h = c(rs1.cl,rs1.ucl))#측정1

plot(date,rs2,type="b",ylim = c(0,70));abline(h = c(rs2.cl,rs2.ucl))#측정2

plot(date,rs3,type="b",ylim = c(0,50));abline(h = c(rs3.cl,rs3.ucl))#측정3

plot(date,rs4,type="b",ylim = c(0,50));abline(h = c(rs4.cl,rs4.ucl))#측정4

plot(date,rs5,type="b",ylim = c(0,50));abline(h = c(rs5.cl,rs5.ucl))#측정5

#Rs관리도의 경우 2측정에서 UCL선을 넘어가는 점이 발견되었고 중간에[
#6개의 점이 길이 6인 런을 형성하고 있으므로 주의를 기울일 필요가 있다.
sigma관리도
qcc(data,type="S")

## List of 11
## $ call : language qcc(data = data, type = "S")
## $ type : chr "S"
## $ data.name : chr "data"
## $ data : num [1:18, 1:5] 24 44 21 29 17 16 29 42 44 38 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:18] 9.58 8.44 8.79 8.22 10.31 ...
## ..- attr(*, "names")= chr [1:18] "1" "2" "3" "4" ...
## $ sizes : int [1:18] 5 5 5 5 5 5 5 5 5 5 ...
## $ center : num 8.53
## $ std.dev : num 9.08
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 0 17.8
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
#sigma 관리도의 경우 UCL과 LCL을 벗어나는 점이 없으므로 공정에 문제가 없다고 판단할 수 있다.
L-S관리도
data2 = as.matrix(data);data2
## x1 x2 x3 x4 x5
## [1,] 24 41 43 34 49
## [2,] 44 63 50 41 50
## [3,] 21 4 22 11 25
## [4,] 29 48 30 41 32
## [5,] 17 19 26 33 42
## [6,] 16 20 33 35 24
## [7,] 29 31 53 42 12
## [8,] 42 36 48 36 40
## [9,] 44 30 19 23 23
## [10,] 38 38 48 34 28
## [11,] 56 48 54 41 58
## [12,] 25 30 60 42 48
## [13,] 59 55 49 60 63
## [14,] 49 55 47 54 56
## [15,] 40 40 37 47 32
## [16,] 44 51 48 37 48
## [17,] 58 61 40 37 47
## [18,] 35 35 20 28 10
L = c();S = c();
for(i in 1: 18){
L[i] = max(data2[i,])
S[i] = min(data2[i,])
}
barL = mean(L); barS = mean(S);
LS.CL = (barL+barS)/2
LS.UCL = LS.CL + 1.363*22.23;
LS.LCL = LS.CL - 1.363*22.23;
date2= c(2,3,4,5,6,7,9,10,11,12,13,14,16,17,18,19,20,21)
#L관리도
plot(date2 , L , type ="b",ylim = c(0,80)) ; abline(h=c(LS.CL,LS.UCL,LS.LCL));

#S관리도
plot(date2, S, type = "b");abline(h=c(LS.CL,LS.UCL,LS.LCL));

#L관리도의 경우 모든 점이 한계선 내에 들어있지만
#S관리도의 경우 LCL과, UCL을 벗어난 점이 있어 공정에 이상이 있는지 확인해야한다.
cusum관리도
barcs = c()
for (i in 1:18){
barcs[i] = sum(data2[i,])/5
}
barcs
## [1] 38.2 49.6 16.6 36.0 27.4 25.6 33.4 40.4 27.8 37.2 51.4 41.0 57.2 52.2
## [15] 39.2 45.6 48.6 25.6
cusum(barcs,center = 38.5,std.dev=4.27)

## List of 13
## $ call : language cusum(data = barcs, center = 38.5, std.dev = 4.27)
## $ type : chr "cusum"
## $ data.name : chr "barcs"
## $ data : num [1:18, 1] 38.2 49.6 16.6 36 27.4 25.6 33.4 40.4 27.8 37.2 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics : Named num [1:18] 38.2 49.6 16.6 36 27.4 25.6 33.4 40.4 27.8 37.2 ...
## ..- attr(*, "names")= chr [1:18] "1" "2" "3" "4" ...
## $ sizes : int [1:18] 1 1 1 1 1 1 1 1 1 1 ...
## $ center : num 38.5
## $ std.dev : num 4.27
## $ pos : num [1:18] 0 2.1 0 0 0 ...
## $ neg : num [1:18] 0 0 -4.63 -4.71 -6.81 ...
## $ decision.interval: num 5
## $ se.shift : num 1
## $ violations :List of 2
## - attr(*, "class")= chr "cusum.qcc"
13.3
x.13 = c(2:24)
y.13 = c(2.3,2.6,2.5,2.3,3.3,3.2,4.3,2.4,2.1,3.6,3.5,2.5,
3.4,1.9,2.3,2.1,2.7,2.7,2.2,3.3,2.5,2.8,2.2,2.9)
#x관리도
qcc(y.13,type="xbar.one")

## List of 11
## $ call : language qcc(data = y.13, type = "xbar.one")
## $ type : chr "xbar.one"
## $ data.name : chr "y.13"
## $ data : num [1:24, 1] 2.3 2.6 2.5 2.3 3.3 3.2 4.3 2.4 2.1 3.6 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:24] 2.3 2.6 2.5 2.3 3.3 3.2 4.3 2.4 2.1 3.6 ...
## ..- attr(*, "names")= chr [1:24] "1" "2" "3" "4" ...
## $ sizes : int [1:24] 1 1 1 1 1 1 1 1 1 1 ...
## $ center : num 2.73
## $ std.dev : num 0.586
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 0.976 4.491
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
#rs관리도
rs.13 = c()
for(i in 1:23){
rs.13[i] = abs(y.13[i+1]-y.13[i])
}
rs.13.cl = sum(rs.13)/length(rs.13)
rs.13.ucl = 3.27*rs.13.cl
rs.13
## [1] 0.3 0.1 0.2 1.0 0.1 1.1 1.9 0.3 1.5 0.1 1.0 0.9 1.5 0.4 0.2 0.6 0.0
## [18] 0.5 1.1 0.8 0.3 0.6 0.7
x.13
## [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
plot(x.13, rs.13,type = "b",ylim =c(0,3))
abline(h=c(rs.13.cl,rs.13.ucl))

#x관리도와 rs관리도 모두 한계선을 넘은 점이 없고 경향도 보이지 않아
#공정에 문제가 없다고 판정할 수 있다.
13.5
#oc curve
m1= mean(x1); m2 = mean(x2); m3 = mean(x3); m4 = mean(x4); m5 = mean(x5);
mu.min = min(m1,m2,m3,m4,m5); mu.max = max(m1,m2,m3,m4,m5);
mu.min;mu.max;
## [1] 37.22222
## [1] 40.38889
mu = seq(37.2,40.4,0.01)
lcl = 26.26; ucl = 50.74; si = 21.22/2.326;
Lp =pnorm((ucl-mu)/si/sqrt(5))-pnorm((lcl-mu)/si/sqrt(5))
plot(mu,Lp)

13.7
x.13.7 =c(9.9,9.8,11.2,9.3,10.3,10.5,9.8,9.3,10.4,10.2,9.5,9.8,10.2,10.8,11.2,11.3,10.5,10.2,9.8,9.9)
Mk = c()
CL13.7 = mean(x.13.7)
sigma13.7 = 3/2.057
UCL13.7 = LCL13.7 = c();
Mk[1] = x.13.7/1;
## Warning in Mk[1] = x.13.7/1: number of items to replace is not a multiple
## of replacement length
Mk[2] = sum(x.13.7[1:2])/2
Mk[3] = sum(x.13.7[1:3])/3
Mk[4] = sum(x.13.7[1:4])/4
Mk[5] = sum(x.13.7[1:5])/5
Mk[6] = sum(x.13.7[1:6])/6
Mk[7] = sum(x.13.7[2:7])/6
Mk[8] = sum(x.13.7[3:8])/6
Mk[9] = sum(x.13.7[4:9])/6
Mk[10] = sum(x.13.7[5:10])/6
Mk[11] = sum(x.13.7[6:11])/6
Mk[12] = sum(x.13.7[7:12])/6
Mk[13] = sum(x.13.7[8:13])/6
Mk[14] = sum(x.13.7[9:14])/6
Mk[15] = sum(x.13.7[10:15])/6
Mk[16] = sum(x.13.7[11:16])/6
Mk[17] = sum(x.13.7[12:17])/6
Mk[18] = sum(x.13.7[13:18])/6
Mk[19] = sum(x.13.7[14:19])/6
Mk[20] = sum(x.13.7[15:20])/6
for (i in 1:20){
if (i<=6){
UCL13.7[i] = CL13.7 + 3*sigma13.7/sqrt(4*i)
LCL13.7[i] = CL13.7 - 3*sigma13.7/sqrt(4*i)
}
else {
UCL13.7[i] = CL13.7 + 3*sigma13.7/sqrt(4*6)
LCL13.7[i] = CL13.7 - 3*sigma13.7/sqrt(4*6)
}
}
#for (i in 1:20){
# if (i<=6){
# Mk[i] = sum(x.13.7[1:i])/i
# UCL13.7[i] = CL13.7 + 3*sigma13.7/sqrt(4*i)
# LCL13.7[i] = CL13.7 - 3*sigma13.7/sqrt(4*i)
# }
# else {
# Mk[i] = sum(x.13.7[i-5:i])/6
# UCL13.7[i] = CL13.7 + 3*sigma13.7/sqrt(4*6)
# LCL13.7[i] = CL13.7 - 3*sigma13.7/sqrt(4*6)
# }
#}
data13.7 = data.frame(x.13.7,Mk,LCL13.7,UCL13.7)
date13.7 = c(1:20)
plot(date13.7 , Mk,type = "b",ylim=c(7,13)); abline(h=c(CL13.7,UCL13.7[20],LCL13.7[20]));

##관리도를 보면 점들이 관리 상한선과 하한선을 벗어나지 않았으므로 안정된 공정이 이루어지고 있다고 볼 수 있다.