Introdução

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.

Desenvolvimento

Gráfico Xbarra

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

Criando um objeto qcc

data(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:

  • “xbar”: Gera um gráfico \(\bar{X}\) em que as médias da amostra são plotadas para controlar o nível médio de uma variável de processo contínuo.
  • “xbar.one”: Gera um gráfico \(\bar{X}\) sabendo que a amostra é de tamanho n=1.
  • “R”: Gera um gráfico R em que intervalos de amostra são plotados para controlar a variabilidade de uma variável de processo contínuo.
  • “S”: Gera um gráfico S em que os desvios padrão da amostra são plotado para controlar a variabilidade de uma variável de processo contínuo.
  • “p”: Gera um gráfico p em que a proporção de unidades não conformes é traçada. Limites de controle são baseados na disitribuição binomial.
  • “np”: Gera um gráfico np em que o número de não conformes unidades são plotadas. Limites de controle são baseados na distribuição binomial
  • “c”: Gera um gráfico c em que o número de defeituosos por unidade são plotados. Este gráfico assume que os defeitos do atributos de qualidade são raros, e os limites de controle são calculados com base na distribuição de Poisson.
  • “u”: Gera um gráfico u em que o número médio de defeituosos por unidade é plotado. A distribuição de Poisson é usada para calcular os limites de controle, mas, ao contrário do gráfico c, este gráfico não requer número constante de unidades.

Gráfico de controle de Shewhart

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").

Gráfico R

Rgraph <- qcc(diameter[1:25,], type="R", newdata=diameter[26:40,])

Gráfico S

Sgraph <- qcc(diameter[1:25,], type="S", newdata = diameter[26:40,])

Gráfico p

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"))

Curva Característica de Operação

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

Gráfico CUSUM

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)

Gráfico EWMA

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)

Capacidade do processo

Í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%

Gráfico de Pareto

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

Diagrama de causa e efeito

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")

Referências

https://rstudio-pubs-static.s3.amazonaws.com/239508_52b8e34ddb9240e1bd3db23f62cf3f98.html

http://rstudio-pubs-static.s3.amazonaws.com/186695_8c17a99400e546b093be23e7eb2364d8.html#referências_indicadas

https://cran.r-project.org/web/packages/qcc/qcc.pdf

http://www.stat.unipg.it/luca/misc/Rnews_2004-1-pag11-17.pdf

http://www.stat.unipg.it/luca/misc/Rnews_2004-1-pag11-17.pdf