Aqui iremos mostrar como podemos trabalhar com controle de qualidade utilizando o R. Pimeiramente, instalaremos e carregaremos o pacote qcc que irá facilitar bastante o nosso trabalho.
# install.packages("qcc")
library(qcc)
## Package 'qcc' version 2.7
## Type 'citation("qcc")' for citing this R package in publications.
Após esse primeiro passo, a partir do pacote qcc, podemos:
Uma das grandes dúvidas que podemos ter é com relação a qual o gráfico de qualidade de controle certo a ser utilizado. Abaixo podemos ver uma árvore de decisão que nos ajuda a entender qual gráfico de controle de qualidade usar de acordo os dados que temos.
Nesse exemplo estaremos desenvolvendo um gráfico de controle de qualidade para dados contínuos para quando o tamanho da amostra é maior que 1 e menor que 11.
# Criando uma coluna com as medidas
measures <- rnorm(200, 3, 1)
# Tamanho da amostra n = 5
sample_size <- 5
# Quantidade de amostras
number_of_samples <- length(measures)/sample_size
# Associando medidas com amostras
sample <- rep(1:number_of_samples, each = sample_size)
# Criando um data frame com as informações
df <- data.frame(measures, sample)
# Agrupando as medidas e suas respectivas amostras
measure <- with(df, qcc.groups(measures, sample))
# Visualização inicial
head(measure)
## [,1] [,2] [,3] [,4] [,5]
## 1 2.290882 1.977489 2.823268 3.559440 2.883067
## 2 2.704927 4.223159 2.420576 2.123505 4.065927
## 3 3.956291 3.298816 2.312223 4.777134 3.432331
## 4 3.043881 3.921464 3.141952 4.100450 4.040414
## 5 2.280360 1.732788 1.707534 4.689141 3.231340
## 6 5.271773 1.684404 2.405955 3.220170 4.355509
# Criando um gráfico x-bar
xbar <- qcc(measure, type = "xbar",)
# Informações sobre o objeto xbar
xbar
## List of 11
## $ call : language qcc(data = measure, type = "xbar")
## $ type : chr "xbar"
## $ data.name : chr "measure"
## $ data : num [1:40, 1:5] 2.29 2.7 3.96 3.04 2.28 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:40] 2.71 3.11 3.56 3.65 2.73 ...
## ..- attr(*, "names")= chr [1:40] "1" "2" "3" "4" ...
## $ sizes : Named int [1:40] 5 5 5 5 5 5 5 5 5 5 ...
## ..- attr(*, "names")= chr [1:40] "1" "2" "3" "4" ...
## $ center : num 2.86
## $ std.dev : num 1.09
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 1.39 4.33
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
# Limites (2 sigmas)
(warn.limits.2 = limits.xbar(xbar$center, xbar$std.dev, xbar$sizes, 2))
## LCL UCL
## 1.881749 3.838118
# Limites (1 sigma)
(warn.limits.1 = limits.xbar(xbar$center, xbar$std.dev, xbar$sizes, 1))
## LCL UCL
## 2.370841 3.349026
# Plot the x-bar chart
plot(xbar, restore.par = FALSE)
# Plot the warning limit lines
abline(h = warn.limits.2, lty = 2, col = "red")
abline(h = warn.limits.1, lty = 2, col = "yellow")
# Get the summary for x-bar chart
summary(xbar)
##
## Call:
## qcc(data = measure, type = "xbar")
##
## xbar chart for measure
##
## Summary of group statistics:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.805944 2.583516 2.820672 2.859933 3.137946 3.649632
##
## Group sample size: 5
## Number of groups: 40
## Center of group statistics: 2.859933
## Standard deviation: 1.093644
##
## Control limits:
## LCL UCL
## 1.392656 4.327211
qccdata(pistonrings)
attach(pistonrings)
## The following object is masked _by_ .GlobalEnv:
##
## sample
dim(pistonrings)
## [1] 200 3
head(pistonrings)
## diameter sample trial
## 1 74.030 1 TRUE
## 2 74.002 1 TRUE
## 3 74.019 1 TRUE
## 4 73.992 1 TRUE
## 5 74.008 1 TRUE
## 6 73.995 2 TRUE
tail(pistonrings)
## diameter sample trial
## 195 74.026 39 FALSE
## 196 74.010 40 FALSE
## 197 74.005 40 FALSE
## 198 74.029 40 FALSE
## 199 74.000 40 FALSE
## 200 74.020 40 FALSE
diameter <- qcc.groups(diameter, sample)
dim(diameter)
## [1] 40 5
head(diameter)
## [,1] [,2] [,3] [,4] [,5]
## 1 74.030 74.002 74.019 73.992 74.008
## 2 73.995 73.992 74.001 74.011 74.004
## 3 73.988 74.024 74.021 74.005 74.002
## 4 74.002 73.996 73.993 74.015 74.009
## 5 73.992 74.007 74.015 73.989 74.014
## 6 74.009 73.994 73.997 73.985 73.993
treino <- qcc(diameter[1:25,], type="xbar")
treino
## List of 11
## $ call : language qcc(data = diameter[1:25, ], type = "xbar")
## $ type : chr "xbar"
## $ data.name : chr "diameter[1:25, ]"
## $ data : num [1:25, 1:5] 74 74 74 74 74 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics: Named num [1:25] 74 74 74 74 74 ...
## ..- attr(*, "names")= chr [1:25] "1" "2" "3" "4" ...
## $ sizes : Named int [1:25] 5 5 5 5 5 5 5 5 5 5 ...
## ..- attr(*, "names")= chr [1:25] "1" "2" "3" "4" ...
## $ center : num 74
## $ std.dev : num 0.00979
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 74 74
## ..- attr(*, "dimnames")=List of 2
## $ violations:List of 2
## - attr(*, "class")= chr "qcc"
summary(treino)
##
## Call:
## qcc(data = diameter[1:25, ], type = "xbar")
##
## xbar chart for diameter[1:25, ]
##
## Summary of group statistics:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 73.99020 73.99820 74.00080 74.00118 74.00420 74.01020
##
## Group sample size: 5
## Number of groups: 25
## Center of group statistics: 74.00118
## Standard deviation: 0.009785039
##
## Control limits:
## LCL UCL
## 73.98805 74.0143
treino <- qcc(
diameter[1:25,],
type="xbar",
add.stats = FALSE)
Podemos ver que a função qcc recebe um argumento type. O type pode receber as seguintes definições:
Um gráfico de Shewhart é automaticamente plotado quando um objeto gerado pela função qcc é criado. Caso não queira que isso aconteça, é necessário utilizar o argumento plot=FALSE. Para plotar o gráfico em um momento diferente você pode chamá-lo pelo seguinte comando:
plot(objeto_qcc)
test_include <- qcc(diameter[1:25,],
type="xbar",
newdata=diameter[26:40,])
test_include
## List of 15
## $ call : language qcc(data = diameter[1:25, ], type = "xbar", newdata = diameter[26:40, ])
## $ type : chr "xbar"
## $ data.name : chr "diameter[1:25, ]"
## $ data : num [1:25, 1:5] 74 74 74 74 74 ...
## ..- attr(*, "dimnames")=List of 2
## $ statistics : Named num [1:25] 74 74 74 74 74 ...
## ..- attr(*, "names")= chr [1:25] "1" "2" "3" "4" ...
## $ sizes : Named int [1:25] 5 5 5 5 5 5 5 5 5 5 ...
## ..- attr(*, "names")= chr [1:25] "1" "2" "3" "4" ...
## $ center : num 74
## $ std.dev : num 0.00979
## $ newstats : Named num [1:15] 74 74 74 74 74 ...
## ..- attr(*, "names")= chr [1:15] "26" "27" "28" "29" ...
## $ newdata : num [1:15, 1:5] 74 74 74 74 74 ...
## ..- attr(*, "dimnames")=List of 2
## $ newsizes : Named int [1:15] 5 5 5 5 5 5 5 5 5 5 ...
## ..- attr(*, "names")= chr [1:15] "26" "27" "28" "29" ...
## $ newdata.name: chr "diameter[26:40, ]"
## $ nsigmas : num 3
## $ limits : num [1, 1:2] 74 74
## ..- attr(*, "dimnames")=List of 2
## $ violations :List of 2
## - attr(*, "class")= chr "qcc"
Relembrando as regras de Shewhart:
Regra 1: Um único ponto fora dos limites de controle.
Regra 2: Oito ou mais pontos seguidos acima (ou abaixo) da linha central.
Regra 3: Seis pontos consecutivos crescendo ou descendo.
Regra 4: Dois de três pontos consecutivos próximos (um terço externo) de um limite de controle.
Regra 5: Quinze pontos consecutivos próximos (um terço interno) da linha central.
A indicação dos potenciais pontos fora de controle também é apresentada na parte inferior do gráfico com o número de pontos associado a Regra 1 (Number beyond limits) e à Regra 2 (Number violating runs). Os pontos ficam vermelhos quando estão fora do 3sigma (Regra 1) e amarelos quando relacionados a Regra 2.
Caso desejássemos alterar o número de pontos necessários para violar a Regra 2, digamos de 7 para 3, podemos utilizar o comando qcc.options(run.length = 3). Caso queira os gráficos sem esse fundo cinza você pode também utilizar o seguinte comando qcc.options(bg.margin = "white").
Rgraph <- qcc(diameter[1:25,], type="R", newdata=diameter[26:40,])
Sgraph <- qcc(diameter[1:25,], type="S", newdata = diameter[26:40,])
data("orangejuice")
orangejuice
## sample D size trial
## 1 1 12 50 TRUE
## 2 2 15 50 TRUE
## 3 3 8 50 TRUE
## 4 4 10 50 TRUE
## 5 5 4 50 TRUE
## 6 6 7 50 TRUE
## 7 7 16 50 TRUE
## 8 8 9 50 TRUE
## 9 9 14 50 TRUE
## 10 10 10 50 TRUE
## 11 11 5 50 TRUE
## 12 12 6 50 TRUE
## 13 13 17 50 TRUE
## 14 14 12 50 TRUE
## 15 15 22 50 TRUE
## 16 16 8 50 TRUE
## 17 17 10 50 TRUE
## 18 18 5 50 TRUE
## 19 19 13 50 TRUE
## 20 20 11 50 TRUE
## 21 21 20 50 TRUE
## 22 22 18 50 TRUE
## 23 23 24 50 TRUE
## 24 24 15 50 TRUE
## 25 25 9 50 TRUE
## 26 26 12 50 TRUE
## 27 27 7 50 TRUE
## 28 28 13 50 TRUE
## 29 29 9 50 TRUE
## 30 30 6 50 TRUE
## 31 31 9 50 FALSE
## 32 32 6 50 FALSE
## 33 33 12 50 FALSE
## 34 34 5 50 FALSE
## 35 35 6 50 FALSE
## 36 36 4 50 FALSE
## 37 37 6 50 FALSE
## 38 38 3 50 FALSE
## 39 39 7 50 FALSE
## 40 40 6 50 FALSE
## 41 41 2 50 FALSE
## 42 42 4 50 FALSE
## 43 43 3 50 FALSE
## 44 44 6 50 FALSE
## 45 45 5 50 FALSE
## 46 46 4 50 FALSE
## 47 47 8 50 FALSE
## 48 48 5 50 FALSE
## 49 49 6 50 FALSE
## 50 50 7 50 FALSE
## 51 51 5 50 FALSE
## 52 52 6 50 FALSE
## 53 53 3 50 FALSE
## 54 54 5 50 FALSE
pgraph <- with(orangejuice, qcc(D[trial], size[trial], type = "p"))
Uma curva de característica de operação (OC) fornece informações sobre a probabilidade de não detectar uma mudança no processo. Isso geralmente é conhecido como erro tipo II, ou seja, a probabilidade de erroneamente aceitar um processo como estando “sob controle”.
qcc.options(bg.margin = "white")
oc.curves(treino)
print(oc.curves(treino))
## sample size
## shift (std.dev) n=5 n=1 n=10 n=15 n=20
## 0 9.973002e-01 0.99730020 9.973002e-01 9.973002e-01 9.973002e-01
## 0.05 9.971330e-01 0.99726692 9.969637e-01 9.967923e-01 9.966188e-01
## 0.1 9.966188e-01 0.99716658 9.959040e-01 9.951556e-01 9.943735e-01
## 0.15 9.957200e-01 0.99699769 9.939699e-01 9.920483e-01 9.899543e-01
## 0.2 9.943735e-01 0.99675773 9.909063e-01 9.868928e-01 9.823300e-01
## 0.25 9.924902e-01 0.99644321 9.863525e-01 9.788745e-01 9.700606e-01
## 0.3 9.899543e-01 0.99604960 9.798427e-01 9.669608e-01 9.513704e-01
## 0.35 9.866237e-01 0.99557135 9.708145e-01 9.499523e-01 9.243187e-01
## 0.4 9.823300e-01 0.99500188 9.586275e-01 9.265805e-01 8.870794e-01
## 0.45 9.768805e-01 0.99433356 9.425945e-01 8.956506e-01 8.383105e-01
## 0.5 9.700606e-01 0.99355771 9.220279e-01 8.562239e-01 7.775460e-01
## 0.55 9.616383e-01 0.99266457 8.962990e-01 8.078112e-01 7.055136e-01
## 0.6 9.513704e-01 0.99164336 8.649063e-01 7.505463e-01 6.242714e-01
## 0.65 9.390106e-01 0.99048217 8.275477e-01 6.852962e-01 5.370926e-01
## 0.7 9.243187e-01 0.98916809 7.841850e-01 6.136755e-01 4.480873e-01
## 0.75 9.070724e-01 0.98768711 7.350935e-01 5.379468e-01 3.616312e-01
## 0.8 8.870794e-01 0.98602420 6.808860e-01 4.608126e-01 2.817304e-01
## 0.85 8.641901e-01 0.98416333 6.225040e-01 3.851296e-01 2.114745e-01
## 0.9 8.383105e-01 0.98208748 5.611755e-01 3.135953e-01 1.526999e-01
## 0.95 8.094129e-01 0.97977871 4.983389e-01 2.484631e-01 1.059187e-01
## 1 7.775460e-01 0.97721820 4.355436e-01 1.913361e-01 7.049208e-02
## 1.05 7.428409e-01 0.97438633 3.743358e-01 1.430689e-01 4.496730e-02
## 1.1 7.055136e-01 0.97126278 3.161453e-01 1.037839e-01 2.747006e-02
## 1.15 6.658644e-01 0.96782660 2.621864e-01 7.298274e-02 1.605830e-02
## 1.2 6.242714e-01 0.96405634 2.133844e-01 4.971944e-02 8.977056e-03
## 1.25 5.811807e-01 0.95993015 1.703338e-01 3.279399e-02 4.796428e-03
## 1.3 5.370926e-01 0.95542600 1.332926e-01 2.093156e-02 2.448161e-03
## 1.35 4.925435e-01 0.95052173 1.022072e-01 1.292268e-02 1.193208e-03
## 1.4 4.480873e-01 0.94519530 7.676275e-02 7.713924e-03 5.551191e-04
## 1.45 4.042744e-01 0.93942495 5.644880e-02 4.450597e-03 2.464393e-04
## 1.5 3.616312e-01 0.93318940 4.063044e-02 2.481118e-03 1.043673e-04
## 1.55 3.206416e-01 0.92646806 2.861629e-02 1.336117e-03 4.215422e-05
## 1.6 2.817304e-01 0.91924123 1.971628e-02 6.948704e-04 1.623470e-05
## 1.65 2.452505e-01 0.91149035 1.328566e-02 3.489249e-04 5.960591e-06
## 1.7 2.114745e-01 0.90319821 8.753767e-03 1.691396e-04 2.085934e-06
## 1.75 1.805900e-01 0.89434921 5.638663e-03 7.913507e-05 6.956814e-07
## 1.8 1.526999e-01 0.88492954 3.550185e-03 3.573024e-05 2.210847e-07
## 1.85 1.278265e-01 0.87492745 2.184493e-03 1.556632e-05 6.694082e-08
## 1.9 1.059187e-01 0.86433346 1.313449e-03 6.542812e-06 1.930895e-08
## 1.95 8.686236e-02 0.85314057 7.715821e-04 2.652909e-06 5.305393e-09
## 2 7.049208e-02 0.84134446 4.427983e-04 1.037564e-06 1.388442e-09
## 2.05 5.660376e-02 0.82894365 2.482207e-04 3.913831e-07 3.460610e-10
## 2.1 4.496730e-02 0.81593970 1.359050e-04 1.423792e-07 8.214093e-11
## 2.15 3.533858e-02 0.80233733 7.267075e-05 4.994766e-08 1.856600e-11
## 2.2 2.747006e-02 0.78814450 3.794674e-05 1.689573e-08 3.995777e-12
## 2.25 2.111974e-02 0.77337257 1.934850e-05 5.510659e-09 8.188099e-13
## 2.3 1.605830e-02 0.75803629 9.632705e-06 1.732884e-09 1.597499e-13
## 2.35 1.207421e-02 0.74215385 4.682193e-06 5.253525e-10 2.967239e-14
## 2.4 8.977056e-03 0.72574685 2.221903e-06 1.535414e-10 5.246855e-15
## 2.45 6.599274e-03 0.70884029 1.029324e-06 4.325872e-11 8.832060e-16
## 2.5 4.796428e-03 0.69146244 4.654875e-07 1.174834e-11 1.415222e-16
## 2.55 3.446464e-03 0.67364477 2.054817e-07 3.075504e-12 2.158594e-17
## 2.6 2.448161e-03 0.65542173 8.853782e-08 7.760279e-13 3.133911e-18
## 2.65 1.719073e-03 0.63683064 3.723551e-08 1.887316e-13 4.330703e-19
## 2.7 1.193208e-03 0.61791142 1.528420e-08 4.423888e-14 5.696045e-20
## 2.75 8.186271e-04 0.59870632 6.123076e-09 9.994083e-15 7.130499e-21
## 2.8 5.551191e-04 0.57925971 2.394001e-09 2.175950e-15 8.495462e-22
## 2.85 3.720484e-04 0.55961769 9.134680e-10 4.565737e-16 9.633063e-23
## 2.9 2.464393e-04 0.53982784 3.401454e-10 9.232474e-17 1.039543e-23
## 2.95 1.613254e-04 0.51993880 1.236023e-10 1.799122e-17 1.067609e-24
## 3 1.043673e-04 0.50000000 4.382971e-11 3.378541e-18 1.043434e-25
## 3.05 6.672385e-05 0.48006119 1.516632e-11 6.113855e-19 9.704940e-27
## 3.1 4.215422e-05 0.46017216 5.120972e-12 1.066130e-19 8.589907e-28
## 3.15 2.631676e-05 0.44038231 1.687236e-12 1.791456e-20 7.235101e-29
## 3.2 1.623470e-05 0.42074029 5.424280e-13 2.900657e-21 5.799020e-30
## 3.25 9.896157e-06 0.40129367 1.701545e-13 4.525573e-22 4.422952e-31
## 3.3 5.960591e-06 0.38208858 5.208017e-14 6.803483e-23 3.210047e-32
## 3.35 3.547346e-06 0.36316935 1.555327e-14 9.855156e-24 2.216902e-33
## 3.4 2.085934e-06 0.34457826 4.531947e-15 1.375511e-24 1.456841e-34
## 3.45 1.211915e-06 0.32635522 1.288414e-15 1.849814e-25 9.109685e-36
## 3.5 6.956814e-07 0.30853754 3.573777e-16 2.396898e-26 5.420199e-37
## 3.55 3.945556e-07 0.29115969 9.671533e-17 2.992429e-27 3.068621e-38
## 3.6 2.210847e-07 0.27425312 2.553604e-17 3.599534e-28 1.653038e-39
## 3.65 1.223925e-07 0.25784611 6.578049e-18 4.171693e-29 8.472864e-41
## 3.7 6.694082e-08 0.24196365 1.653183e-18 4.658195e-30 4.132199e-42
## 3.75 3.617102e-08 0.22662735 4.053413e-19 5.011392e-31 1.917486e-43
## 3.8 1.930895e-08 0.21185540 9.695988e-20 5.194340e-32 8.466023e-45
## 3.85 1.018308e-08 0.19766254 2.262719e-20 5.187166e-33 3.556474e-46
## 3.9 5.305393e-09 0.18406013 5.151483e-21 4.990615e-34 1.421508e-47
## 3.95 2.730666e-09 0.17105613 1.144178e-21 4.625927e-35 5.405872e-49
## 4 1.388442e-09 0.15865525 2.479194e-22 4.131056e-36 1.955985e-50
## 4.05 6.974136e-10 0.14685906 5.240585e-23 3.554168e-37 6.733582e-52
## 4.1 3.460610e-10 0.13566606 1.080683e-23 2.945957e-38 2.205488e-53
## 4.15 1.696330e-10 0.12507194 2.174015e-24 2.352467e-39 6.872877e-55
## 4.2 8.214093e-11 0.11506967 4.266479e-25 1.809784e-40 2.037723e-56
## 4.25 3.929133e-11 0.10564977 8.168018e-26 1.341324e-41 5.748074e-58
## 4.3 1.856600e-11 0.09680048 1.525460e-26 9.577262e-43 1.542651e-59
## 4.35 8.666044e-12 0.08850799 2.779199e-27 6.587912e-44 3.938934e-61
## 4.4 3.995777e-12 0.08075666 4.939356e-28 4.365666e-45 9.568715e-63
## 4.45 1.819937e-12 0.07352926 8.563484e-29 2.787067e-46 2.211517e-64
## 4.5 8.188099e-13 0.06680720 1.448298e-29 1.714101e-47 4.862802e-66
## 4.55 3.638973e-13 0.06057076 2.389407e-30 1.015583e-48 1.017281e-67
## 4.6 1.597499e-13 0.05479929 3.845431e-31 5.796721e-50 2.024655e-69
## 4.65 6.927333e-14 0.04947147 6.036992e-32 3.187393e-51 3.833678e-71
## 4.7 2.967239e-14 0.04456546 9.245168e-33 1.688392e-52 6.906098e-73
## 4.75 1.255445e-14 0.04005916 1.381102e-33 8.615760e-54 1.183589e-74
## 4.8 5.246855e-15 0.03593032 2.012572e-34 4.235404e-55 1.929826e-76
## 4.85 2.165981e-15 0.03215677 2.860817e-35 2.005744e-56 2.993530e-78
## 4.9 8.832060e-16 0.02871656 3.966799e-36 9.150272e-58 4.417691e-80
## 4.95 3.557290e-16 0.02558806 5.365373e-37 4.021321e-59 6.202289e-82
## 5 1.415222e-16 0.02275013 7.078931e-38 1.702466e-60 8.284234e-84
Os gráficos Cusum mostram como o resumo do grupo as estatísticas desviam acima ou abaixo do centro de processo ou valor alvo, em relação ao erro padrão do estatísticas de resumo. Eles são úteis para detectar pequenos e variação permanente na média do processo.
q <- cusum(diameter[1:25,], decision.interval = 4, se.shift = 1)
summary(q)
##
## Call:
## cusum(data = diameter[1:25, ], decision.interval = 4, se.shift = 1)
##
## cusum chart for diameter[1:25, ]
##
## Summary of group statistics:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 73.99 74.00 74.00 74.00 74.00 74.01
##
## Group sample size: 5
## Number of groups: 25
## Center of group statistics: 74.00118
## Standard deviation: 0.009785039
##
## Decision interval (std.err.): 4
## Shift detection (std. err.): 1
q <- cusum(diameter[1:25,], newdata=diameter[26:40,])
summary(q)
##
## Call:
## cusum(data = diameter[1:25, ], newdata = diameter[26:40, ])
##
## cusum chart for diameter[1:25, ]
##
## Summary of group statistics:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 73.99 74.00 74.00 74.00 74.00 74.01
##
## Group sample size: 5
## Number of groups: 25
## Center of group statistics: 74.00118
## Standard deviation: 0.009785039
##
## Summary of group statistics in diameter[26:40, ]:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 73.99220 74.00290 74.00720 74.00765 74.01270 74.02340
##
## Group sample size: 5
## Number of groups: 15
##
## Decision interval (std.err.): 5
## Shift detection (std. err.): 1
plot(q, chart.all=FALSE)
Média móvel exponencialmente ponderada (EWMA) os gráficos suavizam uma série de dados com base em uma média móvel com pesos que diminuem exponencialmente. Como para o gráfico cusum, também este gráfico pode ser usado para detectar variação pequena e permanente na média de o processo. O gráfico EWMA depende do parâmetro de suavização λ, que controla o esquema de ponderação aplicado. Por padrão, é definido como 0,2, mas pode ser modificado usando o argumento lambda. Supondo novamente que um Objeto ‘qcc’ foi criado, um gráfico EWMA pode ser obtido da seguinte forma:
q <- ewma(diameter[1:25,], lambda=0.2, nsigmas=3)
summary(q)
##
## Call:
## ewma(data = diameter[1:25, ], lambda = 0.2, nsigmas = 3)
##
## ewma chart for diameter[1:25, ]
##
## Summary of group statistics:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 73.99020 73.99820 74.00080 74.00118 74.00420 74.01020
##
## Group sample size: 5
## Number of groups: 25
## Center of group statistics: 74.00118
## Standard deviation: 0.009785039
##
## Smoothing parameter: 0.2
## Control limits:
## LCL UCL
## 1 73.99855 74.00380
## 2 73.99781 74.00454
## ...
## 25 73.99680 74.00555
q <- ewma(diameter[1:25,], lambda=0.2, nsigmas=2.7, newdata=diameter[26:40,], plot = FALSE)
summary(q)
##
## Call:
## ewma(data = diameter[1:25, ], lambda = 0.2, nsigmas = 2.7, newdata = diameter[26:40, ], plot = FALSE)
##
## ewma chart for diameter[1:25, ]
##
## Summary of group statistics:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 73.99020 73.99820 74.00080 74.00118 74.00420 74.01020
##
## Group sample size: 5
## Number of groups: 25
## Center of group statistics: 74.00118
## Standard deviation: 0.009785039
##
## Summary of group statistics in diameter[26:40, ]:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 73.99220 74.00290 74.00720 74.00765 74.01270 74.02340
##
## Group sample size: 5
## Number of groups: 15
##
## Smoothing parameter: 0.2
## Control limits:
## LCL UCL
## 1 73.99881 74.00354
## 2 73.99815 74.00420
## ...
## 40 73.99724 74.00511
plot(q)
Índices de capacidade de processo para uma característica de o interesse de um processo contínuo pode ser obtido por meio da função process.capability. Isso toma como argumentos obrigatórios um objeto de classe ‘qcc’ para um tipo “xbar” ou “xbar.one”, e spec.limits, um vetor especificando o inferior (LSL) e limites de especificação superiores (USL). Por exemplo, usando o objeto ‘qcc’ criado anteriormente, podemos simplesmente usar:
process.capability(test_include,
spec.limits=c(73.95,74.05))
##
## Process Capability Analysis
##
## Call:
## process.capability(object = test_include, spec.limits = c(73.95, 74.05))
##
## Number of obs = 125 Target = 74
## Center = 74 LSL = 73.95
## StdDev = 0.009785 USL = 74.05
##
## Capability indices:
##
## Value 2.5% 97.5%
## Cp 1.703 1.491 1.915
## Cp_l 1.743 1.555 1.932
## Cp_u 1.663 1.483 1.844
## Cp_k 1.663 1.448 1.878
## Cpm 1.691 1.480 1.902
##
## Exp<LSL 0% Obs<LSL 0%
## Exp>USL 0% Obs>USL 0%
process.capability(test_include,
spec.limits=c(74.15,74.25))
##
## Process Capability Analysis
##
## Call:
## process.capability(object = test_include, spec.limits = c(74.15, 74.25))
##
## Number of obs = 125 Target = 74.2
## Center = 74 LSL = 74.15
## StdDev = 0.009785 USL = 74.25
##
## Capability indices:
##
## Value 2.5% 97.5%
## Cp 1.70328 1.49141 1.91483
## Cp_l -5.06978 -4.53798 -5.60158
## Cp_u 8.47634 7.58965 9.36304
## Cp_k -5.06978 -4.43611 -5.70345
## Cpm 0.08372 0.06908 0.09834
##
## Exp<LSL 100% Obs<LSL 100%
## Exp>USL 0% Obs>USL 0%
Um gráfico de Pareto é um gráfico de barras onde as categorias são ordenados usando frequências em ordem não crescente, com uma linha adicionada para mostrar sua soma cumulativa. Os gráficos de Pareto são úteis para identificar os fatores que têm o maior efeito cumulativo no sistema, e assim filtrar os fatores menos significativos em um análise.
defect <- c(80, 27, 66, 94, 33)
names(defect) <-
c("price code", "schedule date",
"supplier code", "contact num.",
"part num.")
pareto.chart(defect)
##
## Pareto chart analysis for defect
## Frequency Cum.Freq. Percentage Cum.Percent.
## contact num. 94.00000 94.00000 31.33333 31.33333
## price code 80.00000 174.00000 26.66667 58.00000
## supplier code 66.00000 240.00000 22.00000 80.00000
## part num. 33.00000 273.00000 11.00000 91.00000
## schedule date 27.00000 300.00000 9.00000 100.00000
Um diagrama de causa e efeito, também chamado de O diagrama de Ishikawa (ou diagrama de espinha de peixe), é usado para associar várias causas possíveis a um único efeito. Assim, dado um determinado efeito, o diagrama é construído para identificar e organizar as possíveis causas para isso.
cause.and.effect(
cause=list(
Measurements=c("Microscopes",
"Inspectors"),
Materials=c("Alloys",
"Suppliers"),
Personnel=c("Supervisors",
"Operators"),
Environment=c("Condensation",
"Moisture"),
Methods=c("Brake",
"Engager",
"Angle"),
Machines=c("Speed", "Bits",
"Sockets")),
effect="Surface Flaws")