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]));

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