Controle Estatístico de Processos: Gráficos para Atributos

Baseado no Capítulo 7 — Montgomery, D. C. (2017)

Prof. Marcelo R.P. Ferreira

DE-UFPB - Bacharelado em Estatística e Ciência de Dados

junho, 2026

Controle Estatístico de Processos

Quando não há régua, ainda há contagem — e a contagem também obedece a leis estatísticas precisas.

Mapa do Capítulo 7

Capítulo 7 — Atributos p / np Não conforme (Binomial) c / u Não conformidade (Poisson) Demérito · Curva OC · ARL TBE: taxas muito baixas

Agenda

  • Não conforme (Binomial) vs. não conformidade (Poisson)
  • Gráficos \(p\) e \(np\): padrão dado, Fase I, expurgo (Exemplos 7.1 e 7.2)
  • Planejamento de \(n\): três abordagens para dimensionamento do tamanho de amostra (Duncan, 1986)
  • Tamanho de amostra variável: limites variáveis, \(\bar n\) e gráfico \(Z\) padronizado (Tabela 7.4)
  • Curva OC e ARL/CMS para o gráfico \(p\) (Tabela 7.6)
  • Gráficos \(c\) e \(u\): mecânica, Fase I, Pareto (Exemplos 7.3, 7.4 e 7.5)
  • Curva OC do gráfico \(c\) (Tabela 7.13); limites de probabilidade
  • Sistemas de demérito; TBE e a transformação de Nelson (Exemplo 7.6)
  • Exercícios do livro-texto: 7.9, 7.12, 7.15, 7.48, 7.49, 7.53, 7.58

Configuração do Ambiente em R

library(ggplot2)
library(qcc)
library(patchwork)

pal <- c(azul   = "#7ecff7",
         verde  = "#4f9d6e",
         ambar  = "#f7c87e",
         roxo   = "#c87ef7",
         coral  = "#f07050",
         neutro = "#aab4c8")

tema_cep <- function(base_size = 13) {
  theme_minimal(base_size = base_size) +
    theme(plot.title = element_text(face = "bold"),
          panel.grid.minor = element_blank())
}

plot_carta <- function(stat, center, lic, lsc, titulo, ylab = "Estatística") {
  df <- data.frame(t = seq_along(stat), y = stat)
  df$fora <- df$y > lsc | df$y < lic
  ggplot(df, aes(t, y)) +
    geom_line(color = pal["neutro"], linewidth = .6) +
    geom_point(aes(color = fora), size = 2.6) +
    scale_color_manual(values = c(`FALSE` = unname(pal["azul"]),
                                   `TRUE`  = unname(pal["coral"])), guide = "none") +
    geom_hline(yintercept = c(lsc, center, lic),
               color = c(pal["coral"], pal["verde"], pal["coral"]),
               linetype = c("dashed", "solid", "dashed"), linewidth = .8) +
    labs(title = titulo, x = "Amostra", y = ylab) +
    tema_cep()
}

Introdução aos Gráficos de Atributos

  • Nem toda característica de qualidade é mensurável numericamente — muitas vezes só é possível classificar a unidade ou contar defeitos
  • Vantagem: dados mais simples e baratos de coletar (inspeção visual, checklist, sensor binário)
  • Desvantagem: menos informação por unidade amostrada — exige \(n\) maior para a mesma sensibilidade de um gráfico de variáveis
  • A base probabilística (Binomial, Poisson) já foi estabelecida na Aula 2 — aqui o foco é transformar essa teoria em uma carta de controle

Não Conforme vs. Não Conformidade

Conceito Definição Exemplo Distribuição
Não conforme (nonconforming) A unidade falha em pelo menos um requisito Um parafuso fora da tolerância Binomial
Não conformidade (nonconformity) Cada defeito individual, podendo haver vários por unidade 3 arranhões numa peça pintada Poisson
  • Uma unidade pode ter várias não conformidades e, ainda assim, ser classificada como conforme (defeitos menores)
  • Gráficos \(p\)/\(np\) tratam unidades (binomial); gráficos \(c\)/\(u\) tratam contagem de defeitos (Poisson)

Base Binomial do Gráfico \(p\)

Seja \(D\) o número de itens não conformes em uma amostra de \(n\), com \(p\) = probabilidade constante de não conformidade — a mesma distribuição Binomial detalhada na Aula 2:

\[D \sim \text{Binomial}(n,p) \qquad \hat{p} = \frac{D}{n} \qquad E(\hat{p}) = p \qquad \text{Var}(\hat{p}) = \frac{p(1-p)}{n}\]

  • Hipóteses: \(n\) constante a cada amostra, \(p\) estável no tempo, itens independentes entre si

Verificando a Aproximação Normal para o Gráfico \(p\)

Os limites \(\pm 3\sigma\) do gráfico \(p\) assumem que \(\hat p \approx \text{Normal}\) — válido quando \(n\bar p\) e \(n(1-\bar p)\) são suficientemente grandes. No Exemplo 7.1 do livro (\(n=50\), \(\bar p=0{,}23\)): \(n\bar p \approx 11{,}6\) — confortavelmente acima de 5.

Clique para ver o código
# Distribuicao exata de D ~ Binomial(50, 0.2313) vs. aproximacao Normal
p_ex <- 0.2313; n_ex <- 50
x_vals <- 0:30
prob_bin <- dbinom(x_vals, n_ex, p_ex)
# Normal com mesmos parametros
sigma_ex <- sqrt(n_ex * p_ex * (1 - p_ex))
prob_norm <- dnorm(x_vals, n_ex * p_ex, sigma_ex)
df_comp <- data.frame(
  x = c(x_vals, x_vals),
  prob = c(prob_bin, prob_norm),
  tipo = rep(c("Binomial(50, 0.23)", "Aprox. Normal"), each = length(x_vals))
)
ggplot(df_comp, aes(x, prob, color = tipo)) +
  geom_line(linewidth = 1.1) +
  geom_vline(xintercept = c(n_ex*p_ex - 3*sigma_ex, n_ex*p_ex + 3*sigma_ex),
             linetype = "dashed", color = pal["coral"], alpha = .6) +
  scale_color_manual(values = c(unname(pal["azul"]), unname(pal["ambar"]))) +
  labs(title = "Binomial(50, 0.23) vs. Aproximação Normal — Exemplo 7.1",
       x = "D (não conformes)", y = "Probabilidade", color = "") +
  tema_cep()

Gráfico \(p\): Padrão Dado

\[LSC = p + 3\sqrt{\frac{p(1-p)}{n}} \qquad LM = p \qquad LIC = p - 3\sqrt{\frac{p(1-p)}{n}}\]

  • Esta é exatamente a mesma estrutura do teste-Z para proporção — só que aqui \(L=3\) no lugar de \(Z_{\alpha/2}\), e o gráfico é lido como uma sequência repetida no tempo, não como um teste único
  • Quando \(p\) não é conhecido, estima-se \(\bar p\) a partir de \(m \geq 20\) amostras preliminares

Gráfico \(p\): Estimando \(\bar{p}\) na Fase I — Exemplo 7.1

Os parâmetros abaixo são os valores exatos do Exemplo 7.1 de Montgomery: \(m=30\) amostras de \(n=50\), total de 347 não conformes (Tabela 7.1).

# Estimativas da fase tentativa do Exemplo 7.1
m_ex <- 30; n_ex <- 50; sum_D_ex <- 347
p_bar_ex <- sum_D_ex / (m_ex * n_ex)
sigma_p_ex <- sqrt(p_bar_ex * (1 - p_bar_ex) / n_ex)
cat(sprintf("p_bar (tentativo) = %d / (%d x %d) = %.4f\nLIC = %.4f | LM = %.4f | LSC = %.4f\n",
            sum_D_ex, m_ex, n_ex, p_bar_ex,
            max(0, p_bar_ex - 3 * sigma_p_ex),
            p_bar_ex,
            p_bar_ex + 3 * sigma_p_ex))
p_bar (tentativo) = 347 / (30 x 50) = 0.2313
LIC = 0.0524 | LM = 0.2313 | LSC = 0.4102

Limites Tentativos e a Regra do Truncamento em Zero

  • Os limites calculados a partir de \(\bar p\) são tentativos — válidos apenas após a depuração da Fase I
  • Como \(p \geq 0\) por definição, sempre que \(LIC < 0\), define-se \(LIC = 0\)
  • Um \(LIC\) positivo é informativo: pontos abaixo dele sinalizam uma melhoria real do processo, não devem ser descartados como “erro”

Depurando a Fase I no Gráfico \(p\)

  • Pontos acima do \(LSC\): processo piorou — buscar causa atribuível (lote de matéria-prima, novo operador, desgaste de ferramenta)
  • Pontos abaixo do \(LIC\) (quando \(LIC>0\)): processo melhorou — investigar e preservar a causa, não eliminar o subgrupo
  • Subgrupos eliminados por causa atribuível identificada exigem recálculo de \(\bar p\) e dos limites

Exemplo Real: Embalagens de Suco de Laranja (Montgomery, Exemplo 7.1)

Exemplo 7.1 — Montgomery, p. 367–373

Suco de laranja concentrado e congelado é embalado em embalagens de papelão de 6 oz. Uma máquina faz essas embalagens, enrolando o papelão e colocando um fundo de metal. Pela inspeção de uma dessas embalagens, pode-se determinar se, quando cheia, poderá vazar ao longo da junta lateral do papelão ou em volta da junção do fundo. Tal embalagem não conforme tem uma vedação imprópria na junção lateral ou na junção do fundo. Estabeleça um gráfico de controle para melhorar a fração de embalagens não conformes produzidas por essa máquina.

Para estabelecer o gráfico, selecionaram-se 30 amostras, com \(n=50\) embalagens cada, a intervalos de meia hora, por um período de três turnos, durante os quais a máquina operou continuamente (Tabela 7.1).

D_suco <- c(12,15,8,10,4,7,16,9,14,10,5,6,17,12,22,8,
            10,5,13,11,20,18,24,15,9,12,7,13,9,6)
cat(sprintf("Total de amostras: %d | Total não conformes: %d | p_bar = %.4f\n",
            length(D_suco), sum(D_suco), sum(D_suco)/(30*50)))
Total de amostras: 30 | Total não conformes: 347 | p_bar = 0.2313

Suco de Laranja — Gráfico \(p\) Tentativo (Fase I)

Clique para ver o código
g_suco <- qcc(D_suco, type = "p", sizes = 50, plot = FALSE)
plot_carta(g_suco$statistics, g_suco$center, g_suco$limits[1,"LCL"], g_suco$limits[1,"UCL"],
           "Gráfico p - Embalagens de Suco (Fase I, tentativo)", ylab = "Proporção não conforme")
which(D_suco/50 > g_suco$limits[1,"UCL"])
[1] 15 23

Suco de Laranja — Investigando os Pontos Fora

  • As amostras 15 e 23 excedem o \(LSC\) — exatamente como reportado pelo livro
  • Amostra 15: um novo fardo de papelão entrou em produção naquela meia hora — lote de matéria-prima como causa atribuível
  • Amostra 23: um operador inexperiente foi temporariamente alocado à máquina
  • Ambas têm causa documentada e justificam a remoção do cálculo dos limites — mas não do gráfico, que deve registrar a anotação para referência futura

Suco de Laranja — Limites Revisados

Clique para ver o código
D_revisado <- D_suco[-c(15, 23)]
g_suco_rev <- qcc(D_revisado, type = "p", sizes = 50, plot = FALSE)
plot_carta(g_suco_rev$statistics, g_suco_rev$center,
           g_suco_rev$limits[1,"LCL"], g_suco_rev$limits[1,"UCL"],
           "Gráfico p - Embalagens de Suco (limites revisados, 28 amostras)", ylab = "Proporção não conforme")
cat(sprintf("p_bar revisado = %.4f\n", g_suco_rev$center))
p_bar revisado = 0.2150

Planejamento do Gráfico \(p\): Quanto Vale a Pena Amostrar?

Montgomery (Seção 7.2.1) chama atenção para uma armadilha: se \(n\) for pequeno demais, uma única unidade não conforme já pode soar como “fora de controle” — o que é estatisticamente inevitável e não significa processo descontrolado. Três critérios práticos resolvem isso, todos derivados do mesmo \(LSC\)/\(LIC\) que já usamos:

  1. Garantir alta probabilidade de observar ao menos 1 não conforme por amostra
  2. Garantir ~50% de chance de detectar um deslocamento específico de \(p\) (Duncan, 1986)
  3. Garantir \(LIC>0\), criando um mecanismo automático de alerta para melhorias

Abordagem 1: Garantir Pelo Menos 1 Não Conforme na Amostra

Queremos \(n\) tal que \(P(D \geq 1) \geq \gamma\), ou seja \(P(D=0) \leq 1-\gamma\). Usando a Binomial exata ou sua aproximação Poisson (\(\lambda = np\)):

Exemplo (Montgomery): \(p=0{,}01\), \(\gamma = 0{,}95\).

p0 <- 0.01; gamma <- 0.95
# Solução exata via Binomial
n_exato <- 1
while ((1 - p0)^n_exato > 1 - gamma) n_exato <- n_exato + 1
# Aproximação de Poisson: lambda = np deve exceder -ln(1-gamma)
lambda_min <- -log(1 - gamma)
n_poisson <- ceiling(lambda_min / p0)
cat(sprintf("n exato (Binomial) = %d | lambda minimo = %.3f | n (Poisson, lambda~3) = %d\n",
            n_exato, lambda_min, n_poisson))
n exato (Binomial) = 299 | lambda minimo = 2.996 | n (Poisson, lambda~3) = 300

O livro-texto resolve a Binomial exata e chega a \(n=298\); a aproximação de Poisson, mais simples de aplicar manualmente, arredonda \(\lambda=np\) para 3 e resulta em \(n=300\) — o valor usualmente citado em sala de aula.

Abordagem 2 (Duncan, 1986): Detectar um Deslocamento com 50% de Chance

Escolha \(n\) de modo que o \(LSC\) coincida exatamente com a nova fração não conforme \(p_1 = p+\delta\) após um deslocamento de tamanho \(\delta\):

\[n = \left(\frac{L}{\delta}\right)^2 p(1-p)\]

Exemplo (Montgomery): \(p=0{,}01\), deslocamento para \(p_1=0{,}05\) (\(\delta=0{,}04\)), \(L=3\).

p0 <- 0.01; delta <- 0.04; L <- 3
n_duncan <- (L/delta)^2 * p0 * (1 - p0)
cat(sprintf("n (Duncan) = %.2f -> arredondando para cima: n = %d\n", n_duncan, ceiling(n_duncan)))
n (Duncan) = 55.69 -> arredondando para cima: n = 56

Abordagem 3: Garantir um \(LIC\) Positivo

Um \(LIC>0\) funciona como um mecanismo automático de alerta de melhoria: qualquer amostra com poucos não conformes já dispara uma investigação (boa notícia) em vez de passar despercebida. Da condição \(p - L\sqrt{p(1-p)/n} > 0\):

\[n > \frac{L^2(1-p)}{p}\]

Exemplo (Montgomery): \(p=0{,}05\), \(L=3\). Note que a desigualdade é estrita — o resultado bruto deve ser arredondado para o próximo inteiro, não simplesmente truncado.

p0 <- 0.05; L <- 3
n_bruto <- L^2 * (1 - p0) / p0
n_min <- floor(n_bruto) + 1
cat(sprintf("n bruto = %.2f -> n minimo (LIC > 0) = %d\n", n_bruto, n_min))
n bruto = 171.00 -> n minimo (LIC > 0) = 171

Um deslize comum é arredondar \(171{,}0\) “para baixo” e aceitar \(n=171\) — mas, nesse valor exato, \(LIC=0\) (não positivo). O critério estrito do livro-texto exige \(n \geq 172\).

O Gráfico \(np\): Contagem em Vez de Proporção

  • Equivalente ao gráfico \(p\), mas plota diretamente o número de não conformes \(D\), não a proporção \(\hat p\)
  • Mais intuitivo para operadores (“12 peças ruins” é mais direto que “0,12”)
  • Só é válido quando \(n\) é constante entre amostras

\[LSC = n\bar{p} + 3\sqrt{n\bar{p}(1-\bar{p})} \qquad LM = n\bar{p} \qquad LIC = n\bar{p} - 3\sqrt{n\bar{p}(1-\bar{p})}\]

Construindo o Gráfico \(np\) no R (Montgomery, Exemplo 7.2)

Exemplo 7.2 — Montgomery, p. 375

Estabeleça o gráfico de controle \(np\) para o processo de embalagens de suco de laranja concentrado do Exemplo 7.1, usando os dados da Tabela 7.1 (\(\bar p = 0{,}2313\), \(n=50\)).

Clique para ver o código
g_np <- qcc(D_suco, type = "np", sizes = 50, plot = FALSE)
plot_carta(g_np$statistics, g_np$center, g_np$limits[1,"LCL"], g_np$limits[1,"UCL"],
           "Gráfico np - Embalagens de Suco (Exemplo 7.2)", ylab = "Número de não conformes")

\(p\) ou \(np\)? Critério de Decisão

Critério Use \(p\) Use \(np\)
Tamanho de amostra Fixo ou variável Apenas fixo
Leitura para o operador Proporção (abstrata) Contagem (concreta)
Comparação entre linhas com \(n\) diferentes Direta Não comparável

Estatisticamente são equivalentes — a escolha é puramente de comunicação e contexto operacional.

O Desafio do Tamanho de Amostra Variável

Em processos reais (ex.: 100% de inspeção de um lote que varia de tamanho dia a dia), \(n_i\) muda a cada amostra. Três abordagens são possíveis:

  1. Limites variáveis: recalcular \(LSC_i\), \(LIC_i\) para cada \(n_i\) — preciso, mas visualmente “serrilhado”
  2. Tamanho médio \(\bar n\): usar um único par de limites aproximados — simples, porém impreciso quando \(n_i\) varia muito
  3. Gráfico \(Z\) padronizado: plotar \((\hat p_i - \bar p)/\sigma_{\hat p_i}\), com limites fixos em \(\pm 3\)

Exemplo Real: Ordens de Compra (Montgomery, Tabela 7.4)

Montgomery, Tabela 7.4 — Ordens de Compra (Seção 7.2.2)

O setor de compras de uma grande companhia aeroespacial emite ordens de compra para fornecedores. Os tamanhos das amostras são os números efetivos de ordens emitidas a cada semana — portanto não constantes. Uma ordem não conforme é uma ordem com erro (especificação incorreta de número de peças, data de entrega incorreta ou informação incorreta do fornecedor). Qualquer desses erros pode resultar em uma mudança da ordem, o que é dispendioso e pode atrasar a entrega. Use os dados das 25 semanas para demonstrar as três abordagens de gráfico \(p\) com tamanho variável de amostra.

n_var <- c(100,80,80,100,110,110,100,100,90,90,110,120,120,120,110,80,80,80,90,100,100,100,100,90,90)
D_var <- c(12,8,6,9,10,12,11,16,10,6,20,15,9,8,6,8,10,7,5,8,5,8,10,6,9)
cat(sprintf("Total de amostras: %d | Total de ordens: %d | Total não conformes: %d | p_bar = %.4f\n",
            length(D_var), sum(n_var), sum(D_var), sum(D_var)/sum(n_var)))
Total de amostras: 25 | Total de ordens: 2450 | Total não conformes: 234 | p_bar = 0.0955

Abordagem 1: Limites Variáveis no R

Clique para ver o código
g_pvar <- qcc(D_var, type = "p", sizes = n_var, plot = FALSE)

df_var <- data.frame(t = seq_along(D_var),
                      phat = g_pvar$statistics,
                      lcl  = g_pvar$limits[,"LCL"],
                      ucl  = g_pvar$limits[,"UCL"])
ggplot(df_var, aes(t, phat)) +
  geom_step(aes(y = ucl), color = pal["coral"], linetype = "dashed", linewidth = .8) +
  geom_step(aes(y = lcl), color = pal["coral"], linetype = "dashed", linewidth = .8) +
  geom_hline(yintercept = g_pvar$center, color = pal["verde"], linewidth = .8) +
  geom_line(color = pal["neutro"], linewidth = .6) +
  geom_point(color = pal["azul"], size = 2.6) +
  labs(title = "Gráfico p - Ordens de Compra (limites variáveis)",
       x = "Amostra", y = "Proporção não conforme") +
  tema_cep()

A amostra 11 (\(\hat p=0{,}182\)) fica próxima do \(LSC\) aproximado, mas, contra seu \(LSC\) exato (0,180), ela sinaliza fora de controle.

Abordagem 2: Tamanho Médio Ponderado

\[\bar{n} = \frac{\sum_{i=1}^{m} n_i}{m} \qquad \bar{p} = \frac{\sum_{i=1}^{m} D_i}{\sum_{i=1}^{m} n_i}\]

n_bar <- mean(n_var)
p_bar_var <- sum(D_var) / sum(n_var)
cat(sprintf("n_bar = %.1f\np_bar = %.4f\n", n_bar, p_bar_var))
n_bar = 98.0
p_bar = 0.0955

Válido como aproximação quando os \(n_i\) não variam mais do que cerca de 25% em torno de \(\bar n\) — atenção redobrada com pontos próximos do limite aproximado.

Abordagem 3: o Gráfico \(Z\) Padronizado

\[Z_i = \frac{\hat{p}_i - \bar{p}}{\sqrt{\dfrac{\bar{p}(1-\bar{p})}{n_i}}}\]

Z <- (D_var/n_var - p_bar_var) / sqrt(p_bar_var * (1 - p_bar_var) / n_var)
cat(sprintf("Z (amostra 11) = %.2f\n", Z[11]))
Z (amostra 11) = 3.08

Gráfico \(Z\) Padronizado — Visualização

Clique para ver o código
plot_carta(Z, 0, -3, 3, "Gráfico Z padronizado - Ordens de Compra", ylab = "Z")

Sempre \(LM=0\), \(LSC=+3\), \(LIC=-3\) — independentemente de quão variado seja o histórico de tamanhos de amostra.

Atributos em Serviços e Operações Financeiras

  • O CEP de atributos é a ferramenta natural para processos administrativos: erros de digitação, faturas incorretas, chamadas mal atendidas
  • “Não conforme” pode ser uma transação com qualquer divergência; “não conformidade” pode ser cada campo incorreto num formulário
  • O tamanho amostral \(n\) costuma ser o volume diário de transações — frequentemente variável, reforçando a importância do gráfico \(Z\)

Definindo o “Defeito” em Serviços

  • Diferente da manufatura, o “defeito” em serviços nem sempre é visualmente óbvio — precisa de uma definição operacional rigorosa e documentada
  • Exemplo: “uma entrega é considerada não conforme se exceder 24 horas após a confirmação, sem ressalva climática ou força maior”
  • Sem essa precisão, diferentes inspetores classificam o mesmo evento de formas diferentes — contaminando o próprio \(\hat p\) com variação de julgamento, não do processo

Comparando Unidades Antes de Combinar Dados

Antes de unir dados de duas agências, turnos ou equipes num único gráfico \(p\), vale testar se são estatisticamente comparáveis — usando a mesma lógica do teste de duas proporções da Aula 2:

erros <- c(12, 8); transacoes <- c(45, 40)
prop.test(x = erros, n = transacoes)$p.value
[1] 0.6404334

Diferença significativa indica que as unidades não devem ser agrupadas na mesma análise de Fase I.

Curva OC para o Gráfico \(p\) (Montgomery, Tabela 7.6)

A probabilidade de não detectar (β) um deslocamento da fração não conforme:

\[\beta = P(LIC \leq D \leq LSC \mid p_1) = \sum_{D=\lceil LIC \rceil}^{\lfloor LSC \rfloor} \binom{n}{D} p_1^D (1-p_1)^{n-D}\]

Montgomery, Tabela 7.6 — Curva OC do Gráfico \(p\) (Seção 7.2.4)

Para o gráfico de controle da fração não conforme com \(n=50\), \(LIC=0{,}0303\) e \(LSC=0{,}3697\) (equivalente a \(\bar p = 0{,}20\), limites \(3\sigma\)), calcule a probabilidade de erro tipo II \(\beta\) para vários valores da fração não conforme do processo \(p_1\). Em particular, qual é a chance de não detectar, na primeira amostra, um deslocamento para \(p_1=0{,}30\)?

n <- 50; LSC_np <- 18; LIC_np <- 1; p1 <- 0.30
beta <- pbinom(LSC_np, n, p1) - pbinom(LIC_np - 1, n, p1)
cat(sprintf("beta = %.4f\n", beta))
beta = 0.8594

Curva OC do Gráfico \(p\) — Reproduzindo a Tabela 7.6

Clique para ver o código
n <- 50; LSC_np <- 18; LIC_np <- 1
p_seq <- c(0.01,0.03,0.05,0.10,0.15,0.20,0.25,0.30,0.35,0.40,0.45,0.50,0.55)
beta_seq <- sapply(p_seq, function(p) pbinom(LSC_np, n, p) - pbinom(LIC_np - 1, n, p))
ggplot(data.frame(p = p_seq, beta = beta_seq), aes(p, beta)) +
  geom_line(color = pal["roxo"], linewidth = 1.2) +
  geom_point(color = pal["roxo"], size = 2) +
  geom_vline(xintercept = 0.20, color = pal["verde"], linetype = "dashed") +
  labs(title = "Curva OC do gráfico p (n=50, p_bar=0.20) - Figura 7.11 do livro-texto",
       x = expression(p[1]), y = expression(beta)) +
  tema_cep()
round(beta_seq, 4)
 [1] 0.3950 0.7819 0.9231 0.9948 0.9996 0.9975 0.9713 0.8594 0.6216 0.3356
[11] 0.1273 0.0325 0.0053

ARL (CMS) para Gráficos de Atributos: o Exemplo Completo do Livro

  • Mesma lógica do Capítulo 6: \(\text{ARL} = 1/(1-\beta)\) fora de controle, \(\text{ARL}_0 = 1/\alpha\) sob controle
  • Atributos detectam deslocamentos mais lentamente que variáveis equivalentes — cada amostra carrega menos informação
alfa <- 1 - (pbinom(18, 50, 0.20) - pbinom(0, 50, 0.20))
ARL0 <- 1/alfa
beta_03 <- pbinom(18, 50, 0.30) - pbinom(0, 50, 0.30)
ARL1 <- 1/(1 - beta_03)
cat(sprintf("alfa = %.4f -> ARL0 = %.1f amostras\nbeta(p=0.30) = %.4f -> ARL1 = %.2f amostras\n",
            alfa, ARL0, beta_03, ARL1))
alfa = 0.0025 -> ARL0 = 396.0 amostras
beta(p=0.30) = 0.8594 -> ARL1 = 7.11 amostras

Sob controle (\(p=\bar p=0{,}20\)), um falso alarme ocorre a cada 370 amostras, em média — o “\(1/\alpha \approx 370\)” característico de qualquer gráfico de Shewhart \(3\sigma\). Após o deslocamento para \(p=0{,}30\), são necessárias, em média, ~7 amostras para detectá-lo. Se isso for lento demais, as alternativas do livro são: aumentar \(n\), amostrar com mais frequência, ou trocar para um gráfico CUSUM/MMEP (Capítulo 9).

O Efeito de \(n\) na Detecção: Atributos vs. Variáveis

  • Para detectar o mesmo deslocamento relativo, um gráfico de atributos tipicamente precisa de \(n\) uma ordem de grandeza maior que um gráfico de variáveis equivalente
  • Isso não é uma falha do gráfico de atributos — é uma consequência matemática de se trabalhar com informação binária (0/1) em vez de uma medida contínua
  • A decisão entre os dois tipos de gráfico envolve esse trade-off: custo de medição vs. velocidade de detecção

Quando o Custo de \(n\) Maior Vale a Pena

  • Em processos de altíssimo volume (ex.: linhas automatizadas, transações bancárias), aumentar \(n\) tem custo marginal próximo de zero — o gráfico de atributos se torna competitivo mesmo com sua menor eficiência estatística
  • Em processos de baixo volume e alto custo de inspeção, a ineficiência do atributo pesa mais — vale investir em medição numérica sempre que possível

Base Poisson do Gráfico \(c\)

Quando o interesse é o número de não conformidades (não unidades) por unidade de inspeção, e há infinitas oportunidades de defeito com probabilidade pequena e constante por oportunidade — a mesma distribuição de Poisson detalhada na Aula 2:

\[X \sim \text{Poisson}(c) \qquad E(X) = \text{Var}(X) = c\]

  • A unidade de inspeção pode ser uma única peça, ou um grupo fixo (ex.: 100 placas), desde que a “área de oportunidade” seja constante entre amostras

A Mecânica do Gráfico \(c\)

\[LSC = \bar{c} + 3\sqrt{\bar{c}} \qquad LM = \bar{c} \qquad LIC = \bar{c} - 3\sqrt{\bar{c}}\ (\text{truncado em } 0)\]

  • O desvio-padrão é \(\sqrt{\bar c}\), consequência direta da propriedade Var(X) = E(X) da Poisson

Estimando a Contagem Global \(\bar{c}\)

\[\bar{c} = \frac{\sum c_i}{m}\]

  • Estimada a partir de \(m\) unidades de inspeção coletadas na Fase I, da mesma forma que \(\bar p\) no gráfico de fração

Exemplo Real: Placas de Circuito Impresso (Montgomery, Exemplo 7.3)

Exemplo 7.3 — Montgomery, p. 384–388

A Tabela 7.7 apresenta o número de não conformidades observadas em 26 amostras sucessivas de 100 placas de circuito impresso. Por questões de conveniência operacional, a unidade de inspeção é definida como 100 placas (não uma placa individual). Construa o gráfico de controle para não conformidades (\(c\)) e verifique se o processo estava sob controle estatístico quando os dados foram coletados.

defeitos_pci <- c(21,24,16,12,15,5,28,20,31,25,20,24,16,19,10,17,
                   13,22,18,39,30,24,16,19,17,15)
cat(sprintf("Total de amostras: %d\nTotal de não conformidades: %d\n",
            length(defeitos_pci), sum(defeitos_pci)))
Total de amostras: 26
Total de não conformidades: 516

PCI — Estimando \(\bar{c}\) e os Limites Tentativos

Clique para ver o código
g_pci <- qcc(defeitos_pci, type = "c", plot = FALSE)
plot_carta(g_pci$statistics, g_pci$center, g_pci$limits[1,"LCL"], g_pci$limits[1,"UCL"],
           "Gráfico c - Placas de Circuito Impresso (Fase I)", ylab = "Não conformidades")
cat(sprintf("c_bar = %.3f | LIC = %.3f | LSC = %.3f\n",
            g_pci$center, g_pci$limits[1,"LCL"], g_pci$limits[1,"UCL"]))
c_bar = 19.846 | LIC = 6.481 | LSC = 33.211

PCI — Investigando os Pontos Fora de Controle

  • A amostra 6 (5 defeitos) está abaixo do \(LIC\): o livro atribui isso a um novo inspetor que não reconhecia todos os tipos de não conformidade — um problema de medição, não de processo
  • A amostra 20 (39 defeitos) excede o \(LSC\): atribuída a um problema de controle de temperatura na máquina de solda
  • Ambas têm causa atribuível identificada e documentada — por isso podem ser removidas e os limites recalculados
which(defeitos_pci < g_pci$limits[1,"LCL"] | defeitos_pci > g_pci$limits[1,"UCL"])
[1]  6 20

PCI — Limites Revisados Após a Depuração

Clique para ver o código
defeitos_revisado <- defeitos_pci[-c(6, 20)]
g_pci_rev <- qcc(defeitos_revisado, type = "c", plot = FALSE)
plot_carta(g_pci_rev$statistics, g_pci_rev$center,
           g_pci_rev$limits[1,"LCL"], g_pci_rev$limits[1,"UCL"],
           "Gráfico c - PCI (limites revisados, 24 amostras)", ylab = "Não conformidades")
cat(sprintf("c_bar revisado = %.3f | LIC = %.3f | LSC = %.3f\n",
            g_pci_rev$center, g_pci_rev$limits[1,"LCL"], g_pci_rev$limits[1,"UCL"]))
c_bar revisado = 19.667 | LIC = 6.363 | LSC = 32.971

Curva OC do Gráfico \(c\) (Montgomery, Tabela 7.13 e Figura 7.19)

\[\beta = P(LIC \leq X \leq LSC \mid c_1) = \sum_{X=\lceil LIC\rceil}^{\lfloor LSC\rfloor} \frac{e^{-c_1}c_1^X}{X!}\]

O livro-texto constrói a curva OC do Exemplo 7.3 a partir dos limites tentativos originais (\(LIC=6{,}48\), \(LSC=33{,}22\), antes da depuração) — não dos limites revisados. São esses os limites que efetivamente sinalizaram as amostras 6 e 20 como fora de controle, e é sobre essa decisão que a curva OC informa.

Curva OC do Gráfico \(c\) (Montgomery, Tabela 7.13 e Figura 7.19)

Clique para ver o código
c0 <- 19.85; LIC_c <- 6.48; LSC_c <- 33.22
c1_seq <- c(1,3,5,7,10,15,20,25,30,33,35,40,45)
beta_c <- sapply(c1_seq, function(c1) ppois(floor(LSC_c), c1) - ppois(ceiling(LIC_c) - 1, c1))
ggplot(data.frame(c1 = c1_seq, beta = beta_c), aes(c1, beta)) +
  geom_line(color = pal["roxo"], linewidth = 1.2) +
  geom_point(color = pal["roxo"], size = 2) +
  geom_vline(xintercept = c0, color = pal["verde"], linetype = "dashed") +
  labs(title = "Curva OC do gráfico c (PCI, limites tentativos - Figura 7.19)",
       x = expression(c[1]), y = expression(beta)) +
  tema_cep()

round(beta_c, 3)
 [1] 0.000 0.034 0.238 0.550 0.870 0.992 0.997 0.950 0.744 0.546 0.410 0.151
[13] 0.038

\(\beta(c_1{=}20)=0{,}997\), \(\beta(c_1{=}25)=0{,}950\), \(\beta(c_1{=}33)=0{,}546\). Os limites revisados (\(\bar c \approx 19{,}7\)) são os que efetivamente valem para a Fase II de monitoramento.

Quando os Limites \(3\sigma\) Falham no Gráfico \(c\)

  • Quando a taxa de defeitos cai abaixo de cerca de 1.000 ocorrências por milhão (ppm), os gráficos \(c\) e \(u\) convencionais perdem utilidade
  • Mesmo antes desse extremo, quando \(\bar c\) é pequeno, a Poisson é visivelmente assimétrica — a aproximação Normal usada em \(\pm 3\sigma\) subestima a cauda direita e pode gerar \(LIC\) artificialmente alto
  • Solução intermediária: usar limites de probabilidade exatos, baseados nos quantis da própria Poisson, em vez do atalho \(\pm 3\sigma\)

Limites Exatos via Poisson no R

Exemplo: \(\bar c = 2\) — caso de contagem baixa, onde a assimetria é evidente.

c_bar <- 2; alfa <- 0.0027
LSC_exato <- qpois(1 - alfa/2, c_bar)
LIC_exato <- qpois(alfa/2, c_bar)
LSC_normal <- c_bar + 3*sqrt(c_bar)
cat(sprintf("Limite exato (Poisson): LIC=%d, LSC=%d\nLimite aproximado (Normal): LIC=%.2f, LSC=%.2f\n",
            LIC_exato, LSC_exato, max(0,c_bar-3*sqrt(c_bar)), LSC_normal))
Limite exato (Poisson): LIC=0, LSC=7
Limite aproximado (Normal): LIC=0.00, LSC=6.24

Quando a Taxa Cai Ainda Mais: o Limite do Próprio Gráfico \(c\)

  • Mesmo com limites exatos, há um ponto em que o gráfico \(c\) deixa de ser informativo: quando a maioria das amostras tem zero defeitos
  • Um gráfico que mostra zero repetidamente não diferencia “processo excelente” de “processo em deterioração lenta”
  • A solução nesse regime não é ajustar os limites — é trocar a variável monitorada inteiramente, como veremos na seção de TBE

O Diagrama de Pareto como Ferramenta Complementar

  • Quando um gráfico \(c\) ou \(u\) sinaliza fora de controle, o próximo passo é perguntar qual tipo de não conformidade dominou
  • O Princípio de Pareto (poucos tipos respondem pela maioria dos defeitos) orienta onde investir o esforço de melhoria

Pareto de Causas no R com ggplot2

Clique para ver o código
tipos <- data.frame(
  defeito = c("Solda fria","Componente ausente","Trilha rompida","Outros"),
  freq    = c(45, 28, 12, 8)
)
tipos <- tipos[order(-tipos$freq), ]
tipos$defeito <- factor(tipos$defeito, levels = tipos$defeito)
ggplot(tipos, aes(defeito, freq)) +
  geom_col(fill = pal["ambar"]) +
  labs(title = "Diagrama de Pareto - Tipos de Não Conformidade em PCI",
       x = "", y = "Frequência") +
  tema_cep() + theme(axis.text.x = element_text(angle = 20, hjust = 1))

Áreas Instáveis: a Motivação do Gráfico \(u\)

  • Se a área ou volume inspecionado varia a cada amostra (metros de cabo, m² de tecido, número de transações), o gráfico \(c\) infla artificialmente com o tamanho da oportunidade
  • É necessário normalizar a contagem pela área exposta, criando uma densidade de defeitos

A Métrica \(u\) de Densidade

\[u = \frac{c}{n} \qquad \bar{u} = \frac{\sum c_i}{\sum n_i}\]

\[LSC_u = \bar{u} + 3\sqrt{\frac{\bar{u}}{n}} \qquad LIC_u = \bar{u} - 3\sqrt{\frac{\bar{u}}{n}}\]

  • O denominador \(n\) aparece dentro da raiz — exatamente como no gráfico \(p\) — amostras maiores produzem faixas mais estreitas

Exemplo Real: Erros em Embarques (Montgomery, Exemplo 7.4)

Exemplo 7.4 — Montgomery, p. 390

Um grupo de engenharia da cadeia de suprimentos monitora embarques de materiais através da rede de distribuição da companhia. Erros na entrega do material ou na documentação que o acompanha são observados semanalmente. A cada semana, 50 embarques selecionados aleatoriamente são examinados e os erros registrados. Os dados para 20 semanas são apresentados na Tabela 7.10. Estabeleça um gráfico de controle \(u\) para o monitoramento desse processo.

x_emb <- c(2,3,8,1,1,4,1,4,5,1,8,2,4,3,4,1,8,3,7,4)
cat(sprintf("Total de semanas: %d | Total de erros: %d | u_bar = %.4f\n",
            length(x_emb), sum(x_emb), sum(x_emb)/(20*50)))
Total de semanas: 20 | Total de erros: 74 | u_bar = 0.0740

Construindo o Gráfico u no R (n constante)

Clique para ver o código
g_u <- qcc(x_emb, type = "u", sizes = 50, plot = FALSE)
plot_carta(g_u$statistics, g_u$center, max(0, g_u$limits[1,"LCL"]), g_u$limits[1,"UCL"],
           "Gráfico u - Erros em Embarques (Exemplo 7.4)", ylab = "Erros por embarque")
cat(sprintf("u_bar = %.4f | LIC = %.4f (truncado em 0) | LSC = %.4f\n",
            g_u$center, g_u$limits[1,"LCL"], g_u$limits[1,"UCL"]))
u_bar = 0.0740 | LIC = 0.0000 (truncado em 0) | LSC = 0.1894

Os dados preliminares não indicam falta de controle — esses limites tentativos seriam adotados diretamente para a Fase II. Mas note: mesmo “sob controle”, a taxa média de quase 1 erro a cada 13 embarques (\(\bar u=0{,}074\)) é alta — o gráfico confirma estabilidade, não qualidade aceitável.

Exemplo Real: Tecido Tingido com Amostra Variável (Montgomery, Exemplo 7.5)

Exemplo 7.5 — Montgomery, p. 393

Em uma fábrica de acabamento de tecido, inspeciona-se o tecido tingido à procura da ocorrência de defeitos por 50 metros quadrados (esta é a unidade de inspeção). Os dados relativos a dez rolos de tecido são exibidos na Tabela 7.11 — cada rolo tem comprimento diferente, logo o número de unidades de inspeção \(n_i\) (em múltiplos de 50 m²) varia por rolo. Use esses dados para estabelecer um gráfico de controle para não conformidades por unidade.

n_tecido <- c(10.0,8.0,13.0,10.0,9.5,10.0,12.0,10.5,12.0,12.5)
x_tecido <- c(14,12,20,11,7,10,21,16,19,23)
u_bar_tecido <- sum(x_tecido)/sum(n_tecido)
cat(sprintf("Total de não conformidades: %d | Total de unidades de inspecao: %.1f | u_bar = %.4f\n",
            sum(x_tecido), sum(n_tecido), u_bar_tecido))
Total de não conformidades: 153 | Total de unidades de inspecao: 107.5 | u_bar = 1.4233

Gráfico \(u\) com Tamanho Variável no R

Clique para ver o código
g_ut <- qcc(x_tecido, type = "u", sizes = n_tecido, plot = FALSE)
df_u <- data.frame(t = seq_along(x_tecido),
                    u = g_ut$statistics,
                    lcl = g_ut$limits[,"LCL"], ucl = g_ut$limits[,"UCL"])
ggplot(df_u, aes(t, u)) +
  geom_step(aes(y = ucl), color = pal["coral"], linetype = "dashed") +
  geom_step(aes(y = lcl), color = pal["coral"], linetype = "dashed") +
  geom_hline(yintercept = g_ut$center, color = pal["verde"]) +
  geom_line(color = pal["neutro"], linewidth = .6) + geom_point(color = pal["azul"], size = 2.6) +
  labs(title = "Gráfico u - Tecido Tingido (Exemplo 7.5, n_i variável)",
       x = "Número do rolo", y = "Não conformidades por unidade") +
  tema_cep()

Compare com a Tabela 7.12 do livro-texto: para o rolo 1 (\(n_1=10\)), \(LSC \approx 2{,}55\); para o rolo 3 (\(n_3=13\), o maior rolo), \(LSC\approx 2{,}41\) — os limites se estreitam conforme \(n_i\) cresce, exatamente como esperado.

O Gráfico \(u\) Padronizado (\(Z\)) — Exemplo 7.5

  • Assim como no gráfico \(p\), quando as áreas \(n_i\) variam muito, padronizar resolve o visual “em degrau” e viabiliza testes de sequência

\[Z_i = \frac{u_i - \bar u}{\sqrt{\bar u / n_i}}\]

Clique para ver o código
Z_u <- (x_tecido/n_tecido - u_bar_tecido) / sqrt(u_bar_tecido / n_tecido)
plot_carta(Z_u, 0, -3, 3, "Gráfico u Padronizado - Tecido Tingido (Figura 7.18)", ylab = "Z")

Esse é o gráfico recomendado para tamanho de amostra variável: testes de sequência podem ser aplicados com segurança, pois todas as mudanças relativas estão na mesma unidade de medida (\(\sigma\)).

A Unidade de Inspeção: Esclarecendo um Ponto Sutil

  • A unidade de inspeção não precisa ser uma peça física isolada — pode ser qualquer área de oportunidade fixa definida por conveniência
  • No Exemplo das placas de circuito impresso, a unidade de inspeção foi definida como 100 placas, não uma placa
  • Ao comparar \(\bar c\) entre processos diferentes, é essencial confirmar que a definição de unidade de inspeção é a mesma — ou normalizar via gráfico \(u\)

\(c\) vs. \(u\): Quando Usar Cada Um

Gráfico \(c\) Gráfico \(u\)
Área de inspeção Fixa entre amostras Variável entre amostras
Estatística plotada Contagem bruta \(x\) Taxa \(x/n\)
Limites Constantes Variam com \(n_i\)
Interpretação “Defeitos na amostra” “Defeitos por unidade”

Binomial (Gráfico \(p\)) vs. Poisson (Gráfico \(c\))

Os dois exemplos reais do capítulo têm parâmetros bem distintos: \(D \sim \text{Binomial}(50, 0{,}23)\) (embalagens de suco, Exemplo 7.1) e \(X \sim \text{Poisson}(19{,}85)\) (placas de circuito, Exemplo 7.3). Nenhuma das duas é simétrica, mas por razões diferentes.

Clique para ver o código
# Parametros dos exemplos reais do livro-texto
df_bin  <- data.frame(x = 0:40,
                       prob = dbinom(0:40, size=50, prob=0.2313),
                       dist = "Binomial(50, 0.23) — Exemplo 7.1 (suco)")
df_pois <- data.frame(x = 0:40,
                       prob = dpois(0:40, lambda=19.85),
                       dist = "Poisson(19.85) — Exemplo 7.3 (PCI)")
df_all <- rbind(df_bin, df_pois)
ggplot(df_all, aes(x, prob, color = dist, group = dist)) +
  geom_line(linewidth = 1.1) +
  geom_point(size = 1.2, alpha = .7) +
  scale_color_manual(values = c(unname(pal["azul"]), unname(pal["ambar"]))) +
  labs(title = "Distribuições reais dos dois exemplos principais do Cap. 7",
       x = "x", y = "P(X=x)", color = "") +
  tema_cep()

Ambas são aproximadas por Normal nos gráficos de controle — a assimetria da Binomial para \(n=50\) e \(\bar p=0{,}23\) já é leve; para a Poisson com \(\bar c=19{,}85\), também. Mas quando \(\bar p\) ou \(\bar c\) for pequeno, a assimetria pode ser relevante: nesses casos use limites de probabilidade.

Sistemas de Demérito: Combinando Severidades

  • Em muitos processos, nem toda não conformidade tem o mesmo impacto — um arranhão estético não é igual a uma falha funcional
  • O sistema de demérito pondera cada classe de defeito por sua gravidade antes de somar

\[U_i = w_A\,c_{Ai} + w_B\,c_{Bi} + w_C\,c_{Ci} + w_D\,c_{Di}\]

  • Classes típicas (Western Electric): A = muito grave (\(w_A=100\)), B = grave (\(w_B=50\)), C = moderada (\(w_C=10\)), D = leve (\(w_D=1\))

Variância do Índice de Demérito

Assumindo independência entre as contagens de cada classe (cada uma Poisson com sua própria taxa):

\[\text{Var}(U_i) = w_A^2\,c_A + w_B^2\,c_B + w_C^2\,c_C + w_D^2\,c_D\]

\[LSC = \bar{U} + 3\sqrt{\text{Var}(U)} \qquad LIC = \bar{U} - 3\sqrt{\text{Var}(U)}\]

Sistema de Demérito no R

w <- c(A = 100, B = 50, C = 10, D = 1)
cA <- 0.2; cB <- 0.5; cC <- 2; cD <- 5
U_bar <- sum(w * c(cA, cB, cC, cD))
var_U <- sum(w^2 * c(cA, cB, cC, cD))
cat(sprintf("U_bar = %.2f\nVar(U) = %.2f\nLSC = %.2f\nLIC = %.2f\n",
            U_bar, var_U, U_bar + 3*sqrt(var_U), max(0, U_bar - 3*sqrt(var_U))))
U_bar = 70.00
Var(U) = 3455.00
LSC = 246.34
LIC = 0.00

Demérito Aplicado a Serviços de Saúde

  • Um hospital pode aplicar o mesmo princípio a eventos de segurança do paciente: erro de medicação grave (\(w=100\)), quase-erro com dano leve (\(w=20\)), desvio de protocolo sem dano (\(w=2\))
  • O índice de demérito agregado por unidade-tempo (ex.: por mês) se torna um indicador único para a diretoria, sem perder a granularidade interna por tipo de evento
  • Cuidado: a escolha dos pesos é uma decisão de gestão de risco, não puramente estatística — deve envolver especialistas da área

Demérito: Vantagens e Limitações

  • Vantagem: um único índice resume múltiplas classes de severidade, facilitando o reporte executivo
  • Limitação: se um único defeito de classe A dominar o índice, melhorias em defeitos de classe C/D ficam invisíveis no gráfico agregado
  • Boa prática: manter os gráficos \(c\)/\(u\) individuais por classe disponíveis como detalhamento, mesmo reportando o índice \(U\) agregado para a gestão

O Desafio dos “Zero Defeitos”

  • Processos modernos de altíssima qualidade reduzem \(\bar c\) a valores muito próximos de zero
  • Com \(\bar c\) tão pequeno, gráficos \(c\) e \(u\) geram alarmes falsos excessivos — não há “espaço” suficiente para distinguir ruído de sinal

A Inversão Tática: do “O Quê” para o “Quando”

  • Em vez de contar defeitos por unidade, mede-se o tempo (ou volume de produção) entre eventos raros
  • Para contagem de unidades boas até a próxima falha, usa-se a distribuição Geométrica (gráficos \(g\)/\(h\))
  • Para tempo contínuo até a falha, usa-se a distribuição Exponencial — a mesma relação Poisson-Exponencial que já vimos na Aula 2, agora aplicada à construção de uma carta de controle

TBE: Tempo Entre Eventos

Clique para ver o código
set.seed(21)
tbe <- rexp(200, rate = 0.5)
ggplot(data.frame(tbe = tbe), aes(tbe)) +
  geom_histogram(bins = 30, fill = pal["ambar"], color = pal["neutro"], alpha = .85) +
  labs(title = "Tempo entre não conformidades ~ Exponencial(0.5)",
       x = "Tempo entre eventos", y = "Frequência") +
  tema_cep()

A Exponencial é fortemente assimétrica — gráficos de Shewhart tradicionais (que assumem Normalidade) não se aplicam diretamente sobre o tempo bruto.

A Transformação de Nelson

Nelson (1994) mostrou que elevar dados exponenciais à potência \(0{,}2777\) (aproximadamente \(1/3{,}6\)) produz uma distribuição aproximadamente Normal, viabilizando o uso de um gráfico I-MR convencional:

\[x_i = y_i^{0{,}2777}\]

y <- tbe^0.2777
shapiro.test(y)$p.value
[1] 0.07615023

Exemplo Real: Falhas de uma Válvula (Montgomery, Exemplo 7.6)

Exemplo 7.6 — Montgomery, p. 398–399

Uma engenheira química deseja estabelecer um gráfico de controle para monitorar a ocorrência de falhas em uma válvula importante de um processo químico. Ela decidiu usar o número de horas entre falhas como variável monitorada. A Tabela 7.14 mostra o tempo entre as últimas 20 falhas dessa válvula. O gráfico de probabilidade normal mostra claramente que esses dados não são normalmente distribuídos. Estabeleça o gráfico de controle do tempo entre eventos para esse processo, usando a transformação de Nelson (\(x = y^{0{,}2777}\)) para aproximar a distribuição exponencial pela normal.

tempo_falhas <- c(286,948,536,124,816,729,4,143,431,8,
                   2837,596,81,227,603,492,1199,1214,2831,96)
x_transf <- tempo_falhas^0.2777
shapiro.test(x_transf)$p.value
[1] 0.7665814

O tempo bruto entre falhas é fortemente assimétrico; a variável transformada passa no teste de normalidade, validando o uso de I-MR a seguir.

Gráfico I-MR sobre o TBE Transformado (Dados Reais)

Clique para ver o código
g_tbe <- qcc(x_transf, type = "xbar.one", plot = FALSE)
plot_carta(g_tbe$statistics, g_tbe$center, g_tbe$limits[1,"LCL"], g_tbe$limits[1,"UCL"],
           "I-MR - Falhas de Válvula (TBE transformado, Exemplo 7.6)", ylab = "x = TBE^0.2777")

O processo aparenta estar sob controle: o mecanismo de falha da válvula é estável. Uma melhoria na manutenção deveria deslocar pontos para acima do LSC (tempos entre falhas maiores).

Gráficos \(g\) e \(h\): a Versão Discreta do TBE

  • Quando o interesse é contar o número de unidades conformes entre duas não conformes (em vez do tempo), usa-se a distribuição Geométrica

\[P(X=x) = p(1-p)^x \qquad E(X) = \frac{1-p}{p} \qquad \text{Var}(X) = \frac{1-p}{p^2}\]

  • O gráfico \(g\) monitora essa contagem; o gráfico \(h\) é sua versão acumulada — ambos são extensões naturais do gráfico \(c\) para o regime de baixíssima taxa de defeitos

TBE: Cuidados de Interpretação

  • Um ponto acima do \(LSC\) no gráfico TBE transformado é bom (intervalo maior entre falhas) — o oposto da leitura usual de “fora de controle é ruim”
  • Por isso TBE exige mais treinamento dos operadores antes de ser implantado — a leitura intuitiva do gráfico se inverte em relação aos gráficos \(c\)/\(u\) convencionais

Atributos vs. Variáveis: Trade-offs

Variáveis (\(\bar x\)-R, \(\bar x\)-s, I-MR) Atributos (\(p\), \(np\), \(c\), \(u\))
Informação por unidade Alta (escala contínua) Baixa (binária ou contagem)
Tamanho de amostra Pequeno (\(n=4\)\(6\)) Geralmente maior
Custo de coleta Mais caro (medição precisa) Mais barato (inspeção visual)
Sensibilidade a pequenos deslocamentos Maior Menor
  • Na prática, muitos processos combinam os dois: variáveis para características críticas, atributos para triagem ampla

Dimensionando Subgrupos em Atributos

  • Quanto maior \(n\), mais estável \(\hat p\) e mais sensível o gráfico — mas também mais caro e mais lento
  • Regra prática informal: escolher \(n\) tal que \(n\bar p \geq 5\) (para a aproximação Normal funcionar razoavelmente)
p_bar_alvo <- 0.01
n_min <- ceiling(5 / p_bar_alvo)
cat(sprintf("n minimo recomendado para p_bar=%.3f: %d\n", p_bar_alvo, n_min))
n minimo recomendado para p_bar=0.010: 500

Atributos sem Medição Física Direta

  • Nem todo atributo vem de um sensor: avaliação de satisfação do cliente (satisfeito/insatisfeito), conformidade documental, aprovação em auditoria
  • O desafio nesses casos é garantir critério de classificação consistente entre diferentes inspetores — sem isso, a “não conformidade” mistura variação real do processo com variação do julgamento humano
  • Estudos de R&R para atributos (ex.: índice Kappa) são o complemento natural do CEP de atributos nesse cenário

Padrões Mistos e Estratificação em Atributos

  • Um gráfico \(p\) ou \(c\) “bem comportado” pode ainda esconder um padrão de mistura: dois turnos, duas máquinas ou dois fornecedores com taxas diferentes, combinados na mesma amostra
  • Sintoma típico: poucos ou nenhum ponto perto da linha central, a maioria oscilando perto dos limites
  • Solução: estratificar o gráfico — um gráfico separado por turno/máquina/fornecedor revela o que o gráfico agregado escondia

Diretrizes de Implementação: Onde Aplicar os Gráficos

Montgomery resume cinco decisões centrais de qualquer programa de CEP: quais características controlar, onde no processo posicionar os gráficos, qual tipo de gráfico escolher, que ações corretivas tomar, e quais sistemas de coleta/computação usar.

  • No início de um programa, é normal aplicar mais gráficos do que o necessário — eles mesmos revelam quais são realmente úteis
  • Com a maturidade do processo, gráficos de atributos (perto do fim da linha) tendem a ser substituídos por gráficos de variáveis aplicados mais cedo, sobre as causas-raiz

Diretrizes de Implementação: Qual Tipo de Gráfico Escolher

Considere atributos quando: a qualidade só pode ser expressa como conformidade/contagem, é necessário um resumo histórico para a gerência, ou medidas numéricas simplesmente não estão disponíveis.

Mas lembre-se: gráficos de atributos são, em geral, estatisticamente inferiores aos gráficos de variáveis equivalentes — use-os quando a medição numérica não for viável, não por padrão.

O Plano de Ação para Fora de Controle (PAFC)

  • Um gráfico de controle sem um plano de ação documentado é apenas decoração de parede
  • O PAFC define, antecipadamente: quem é notificado, quais verificações imediatas são feitas, quando a produção é interrompida, e como a causa é documentada
  • Operadores e engenharia devem manter o PAFC atualizado — ele é tão parte do gráfico de controle quanto os próprios limites \(LSC\)/\(LIC\)

O Papel do CEP de Atributos no Ciclo DMAIC

  • Medir: construir os gráficos \(p\)/\(np\)/\(c\)/\(u\) a partir de dados históricos
  • Analisar: Pareto, Ishikawa, segmentação por turno/máquina/operador
  • Melhorar: ação corretiva sobre as causas atribuíveis identificadas na Fase I
  • Controlar: os limites revisados tornam-se a referência para o monitoramento contínuo (Fase II)

Cautela com Regras Sensibilizantes em Atributos

  • As regras WECO (zonas \(1\sigma\)/\(2\sigma\)/\(3\sigma\)) foram derivadas sob a suposição de Normalidade e simetria
  • Distribuições Binomial e Poisson com \(\bar p\) ou \(\bar c\) pequenos são assimétricas — aplicar zonas WECO ingenuamente nesses gráficos pode gerar excesso de falsos alarmes no lado mais “apertado” da distribuição
  • Recomendação: usar regras sensibilizantes com mais parcimônia em atributos do que em variáveis, e preferir limites exatos quando \(\bar p\) ou \(\bar c\) forem pequenos

Síntese: Escolha do Gráfico de Controle Adequado

Conforme/Não ou Contagem? Conforme Contagem n constante? Sim np (ou p) Não p (limites variáveis ou Z) Área fixa? Sim c Não u taxa < 1000 ppm TBE — I-MR sobre TBE^0,2777

Exercício 7.9 — Gráfico \(p\) para Montagens (Montgomery)

Exercício 7.9 — Montgomery, p. 408

Os dados da Tabela 7E.3 dão o número de montagens não conformes de rolamentos e fechos em amostras de tamanho 100. Construa um gráfico de controle para a fração não conforme para esses dados. Se algum ponto for plotado fora de controle, suponha que causas atribuíveis possam ser encontradas e determine os limites de controle revisados.

Clique para ver o código
D_montagem <- c(7,4,1,3,6,8,10,5,2,7,6,15,0,9,5,1,4,5,7,12)
g_m <- qcc(D_montagem, type = "p", sizes = 100, plot = FALSE)
plot_carta(g_m$statistics, g_m$center, g_m$limits[1,"LCL"], g_m$limits[1,"UCL"],
           "Gráfico p - Montagens (Exercício 7.9, fase tentativa)", ylab = "Proporção não conforme")

cat(sprintf("p_bar = %.4f | LIC = %.4f | LSC = %.4f\n",
            g_m$center, g_m$limits[1,"LCL"],
            g_m$limits[1,"UCL"]))
p_bar = 0.0585 | LIC = 0.0000 | LSC = 0.1289
which(D_montagem/100 > g_m$limits[1,"UCL"] | D_montagem/100 < g_m$limits[1,"LCL"])
[1] 12

Exercício 7.9 — Limites Revisados

Clique para ver o código
# Amostra 12 acima do LSC; supondo causa atribuível identificada
D_mont_rev <- D_montagem[-12]
g_mr <- qcc(D_mont_rev, type = "p", sizes = 100, plot = FALSE)
plot_carta(g_mr$statistics, g_mr$center, g_mr$limits[1,"LCL"], g_mr$limits[1,"UCL"],
           "Gráfico p - Montagens (limites revisados, 19 amostras)", ylab = "Proporção não conforme")
cat(sprintf("p_bar revisado = %.4f | LIC = %.4f | LSC = %.4f\n",
            g_mr$center, g_mr$limits[1,"LCL"], g_mr$limits[1,"UCL"]))
p_bar revisado = 0.0537 | LIC = 0.0000 | LSC = 0.1213

Exercício 7.12 — Aros de Roda de Titânio (Partes a e b)

Exercício 7.12 — Montgomery, p. 409

Um processo que produz aros de roda de titânio para automóveis com motores turbinados deve ser controlado pelo uso do gráfico para a fração não conforme. Inicialmente, uma amostra de tamanho 150 é tirada a cada dia, durante 20 dias, e os resultados são mostrados na Tabela 7E.6.

  1. Estabeleça um gráfico de controle para monitorar a produção futura.
  2. Qual é o menor tamanho de amostra que pode ser usado para esse processo que ainda forneça um limite inferior de controle positivo para o gráfico?
  3. Trace a curva CO para esse gráfico de controle.
  4. Qual a probabilidade de se detectar uma mudança na fração não conforme para 0,03, na terceira amostra após a mudança?

Exercício 7.12 — Aros de Roda de Titânio (Partes a e b)

D_aro <- c(3,2,4,2,5,2,1,2,0,5,2,4,1,3,6,0,1,2,3,2)
n_aro <- 150; m_aro <- 20
p_aro <- sum(D_aro)/(m_aro * n_aro)
sigma_aro <- sqrt(p_aro*(1-p_aro)/n_aro)
LSC_aro <- p_aro + 3*sigma_aro; LIC_aro <- max(0, p_aro - 3*sigma_aro)
cat(sprintf("(a) p_bar = %.4f | LIC = %.4f | LSC = %.4f\n", p_aro, LIC_aro, LSC_aro))
(a) p_bar = 0.0167 | LIC = 0.0000 | LSC = 0.0480
n_min_aro <- floor(9*(1-p_aro)/p_aro) + 1
cat(sprintf("(b) n minimo para LIC > 0 (L=3): %d\n", n_min_aro))
(b) n minimo para LIC > 0 (L=3): 532

(b) O resultado bruto é \(9(1-\bar p)/\bar p \approx 531\) — portanto \(n \geq 532\) é o menor tamanho que garante \(LIC>0\) para esse processo.

Exercício 7.12 — Parte d: Probabilidade de Detecção

Parte d do enunciado: qual a probabilidade de detectar um deslocamento para \(p_1=0{,}03\) na terceira amostra após a mudança?

# Limites em unidades de D (inteiros)
LSC_np_aro <- floor(n_aro * LSC_aro); LIC_np_aro <- ceiling(n_aro * LIC_aro)
p1_aro <- 0.03
beta_aro <- pbinom(LSC_np_aro, n_aro, p1_aro) - pbinom(max(0, LIC_np_aro - 1), n_aro, p1_aro)
cat(sprintf("LSC_np = %d | beta(1 amostra) = %.4f | P(detectar na 1a) = %.4f\n",
            LSC_np_aro, beta_aro, 1 - beta_aro))
LSC_np = 7 | beta(1 amostra) = 0.9062 | P(detectar na 1a) = 0.0938
cat(sprintf("P(detectar ate a 3a amostra apos mudanca) = %.4f\n", 1 - beta_aro^3))
P(detectar ate a 3a amostra apos mudanca) = 0.2559

Exercício 7.48 — Gráfico \(c\) para Placas de Aço

Exercício 7.48 — Montgomery, p. 414

Foram contados os defeitos de superfície de 25 placas de aço retangulares, e os dados são mostrados na Tabela 7E.12. Estabeleça um gráfico de controle para não conformidades usando esses dados. O processo de produção das placas parece estar sob controle estatístico?

Clique para ver o código
x_aco <- c(1,0,4,3,1,2,5,0,2,1,1,0,8,0,2,1,3,5,4,6,3,1,0,2,4)
g_aco <- qcc(x_aco, type = "c", plot = FALSE)
plot_carta(g_aco$statistics, g_aco$center, g_aco$limits[1,"LCL"], g_aco$limits[1,"UCL"],
           "Gráfico c - Defeitos de Superfície em Placas de Aço (Ex. 7.48)", ylab = "Não conformidades")

Exercício 7.48 — Gráfico \(c\) para Placas de Aço

cat(sprintf("c_bar = %.3f | LIC = %.3f | LSC = %.3f\n",
            g_aco$center, g_aco$limits[1,"LCL"], g_aco$limits[1,"UCL"]))
c_bar = 2.360 | LIC = 0.000 | LSC = 6.969
which(x_aco > g_aco$limits[1,"UCL"])
[1] 13

A amostra 13 (8 defeitos) excede o \(LSC \approx 6{,}97\). Se uma causa atribuível for identificada, ela deve ser removida e os limites recalculados.

Exercício 7.49 — Gráfico \(u\) para Rolos de Papel

Exercício 7.49 — Montgomery, p. 414

Uma fábrica de papel usa um gráfico de controle para monitorar imperfeições nos rolos de papel acabados. O resultado da produção é inspecionado durante 20 dias, e os dados resultantes são mostrados na Tabela 7E.13. Use esses dados para estabelecer um gráfico de controle para não conformidades por rolo de papel. O processo parece estar sob controle estatístico? Qual linha central e quais limites de controle você recomendaria para controlar a produção corrente?

Exercício 7.49 — Gráfico \(u\) para Rolos de Papel

Clique para ver o código
n_papel <- c(18,18,24,22,22,22,20,20,20,20,18,18,18,20,20,20,24,24,22,21)
x_papel <- c(12,14,20,18,15,12,11,15,12,10,18,14,9,10,14,13,16,18,20,17)
g_papel <- qcc(x_papel, type = "u", sizes = n_papel, plot = FALSE)
df_papel <- data.frame(t = seq_along(x_papel), u = g_papel$statistics,
                        lcl = g_papel$limits[,"LCL"], ucl = g_papel$limits[,"UCL"])
ggplot(df_papel, aes(t, u)) +
  geom_step(aes(y = ucl), color = pal["coral"], linetype = "dashed") +
  geom_step(aes(y = lcl), color = pal["coral"], linetype = "dashed") +
  geom_hline(yintercept = g_papel$center, color = pal["verde"]) +
  geom_line(color = pal["neutro"], linewidth = .6) +
  geom_point(color = pal["azul"], size = 2.6) +
  labs(title = "Gráfico u - Imperfeições em Rolos de Papel (Ex. 7.49)",
       x = "Dia", y = "Imperfeições por rolo") +
  tema_cep()
cat(sprintf("u_bar = %.4f | Sem pontos fora de controle.\n", g_papel$center))
u_bar = 0.7007 | Sem pontos fora de controle.

Nenhum ponto fora de controle. Os limites estimados (\(\bar u \approx 0{,}70\) imperfeições por rolo) são recomendados para monitorar a produção corrente.

Exercício 7.53 — Gráfico \(c\) para Cabos de Telefone

Exercício 7.53 — Montgomery, p. 415

Os dados da Tabela 7E.15 representam o número de não conformidades por 1000 metros em cabos de telefone (22 amostras).

  1. Quais são a linha central e os limites de controle para monitorar a produção com base no número total de não conformidades? Pela análise desses dados, você concluiria que o processo está sob controle estatístico?
  2. Quais são a linha central e os limites de controle para um gráfico de controle para a média de não conformidades por unidade, usado para monitorar a produção futura?
  3. Trace a curva da função característica de operação (CO) para o número total de não conformidades (Gráfico \(c\)).

Exercício 7.53 — Gráfico \(c\) para Cabos de Telefone

Clique para ver o código
x_cabo <- c(1,1,3,7,8,10,5,13,0,19,24,6,9,11,15,8,3,6,7,4,9,20)
g_cabo <- qcc(x_cabo, type = "c", plot = FALSE)
plot_carta(g_cabo$statistics, g_cabo$center, g_cabo$limits[1,"LCL"], g_cabo$limits[1,"UCL"],
           "Gráfico c - Não conformidades em Cabos de Telefone (Ex. 7.53)", ylab = "c")
cat(sprintf("c_bar = %.3f | LSC = %.3f | Amostras fora: %s\n",
            g_cabo$center, g_cabo$limits[1,"UCL"],
            paste(which(x_cabo > g_cabo$limits[1,"UCL"]), collapse=",")))
c_bar = 8.591 | LSC = 17.384 | Amostras fora: 10,11,22

Exercício 7.53 — Limites Revisados

Clique para ver o código
# Amostras 10, 11 e 22 acima do LSC; supondo causas identificáveis
x_cabo_rev <- x_cabo[-c(10,11,22)]
g_cabo_rev <- qcc(x_cabo_rev, type = "c", plot = FALSE)
plot_carta(g_cabo_rev$statistics, g_cabo_rev$center,
           g_cabo_rev$limits[1,"LCL"], g_cabo_rev$limits[1,"UCL"],
           "Gráfico c - Cabos de Telefone (limites revisados, 19 amostras)", ylab = "c")
cat(sprintf("c_bar revisado = %.3f | LIC = %.3f | LSC = %.3f\n",
            g_cabo_rev$center, g_cabo_rev$limits[1,"LCL"], g_cabo_rev$limits[1,"UCL"]))
c_bar revisado = 6.632 | LIC = 0.000 | LSC = 14.357

Exercício: Probabilidade de Detecção

\(p_0=0{,}02 \to p_1=0{,}04\)

Exercício 7.15 — Montgomery, p. 410

Um gráfico de controle indica que a fração corrente de não conformes do processo é \(0{,}02\). Se 50 itens são inspecionados a cada dia, qual é a probabilidade de se detectar uma mudança na fração não conforme para \(0{,}04\) no primeiro dia após a mudança? E ao final do terceiro dia após a mudança?

Exercício: Probabilidade de Detecção

\(p_0=0{,}02 \to p_1=0{,}04\)

p0 <- 0.02; n <- 50
LSC_det <- p0 + 3*sqrt(p0*(1-p0)/n); LIC_det <- max(0, p0 - 3*sqrt(p0*(1-p0)/n))
# Converter para inteiros de D
LSC_np_det <- floor(n * LSC_det)
p1 <- 0.04
beta_det <- pbinom(LSC_np_det, n, p1) - pbinom(0, n, p1)
cat(sprintf("LSC = %.4f -> LSC_np = %d\n", LSC_det, LSC_np_det))
LSC = 0.0794 -> LSC_np = 3
cat(sprintf("beta (1a amostra) = %.4f | P(detectar na 1a) = %.4f\n",
            beta_det, 1 - beta_det))
beta (1a amostra) = 0.7310 | P(detectar na 1a) = 0.2690
cat(sprintf("P(detectar ate 3a amostra) = %.4f\n", 1 - beta_det^3))
P(detectar ate 3a amostra) = 0.6094

Exercício: Limites de Probabilidade vs. \(3\sigma\) para Gráfico \(c\)

Exercício — Limites de Probabilidade (Aula 4 / Montgomery, Seção MS7.1)

Encontre os limites de probabilidade de 0,999 e 0,001 para um gráfico \(c\) quando a média do processo é igual a 16 não conformidades. Compare com os limites obtidos pelo uso da distribuição normal (\(\pm 3\sigma\)).

(Nota: o livro-texto apresenta o Exercício 7.58 com os limites 0,900/0,100 para o mesmo \(\bar c = 16\). Esta versão, com 0,999/0,001, corresponde ao material suplementar MS7.1 e ao exercício apresentado na Aula 4.)

Exercício: Limites de Probabilidade vs. \(3\sigma\) para Gráfico \(c\)

c_bar_ex <- 16
# Limites 3-sigma
LSC_3s <- c_bar_ex + 3*sqrt(c_bar_ex); LIC_3s <- max(0, c_bar_ex - 3*sqrt(c_bar_ex))
# Limites de probabilidade exatos (quantis da Poisson)
LSC_prob <- qpois(0.999, c_bar_ex)
LIC_prob <- qpois(0.001, c_bar_ex)
cat(sprintf("Limites 3-sigma:      LIC = %.1f  LSC = %.1f\n", LIC_3s, LSC_3s))
Limites 3-sigma:      LIC = 4.0  LSC = 28.0
cat(sprintf("Limites prob (0.999): LIC = %d     LSC = %d\n", as.integer(LIC_prob), as.integer(LSC_prob)))
Limites prob (0.999): LIC = 5     LSC = 30
# Verificar probabilidades reais
alfa_3s <- 1 - (ppois(floor(LSC_3s), c_bar_ex) - ppois(ceiling(LIC_3s) - 1, c_bar_ex))
alfa_prob <- 1 - (ppois(LSC_prob, c_bar_ex) - ppois(LIC_prob - 1, c_bar_ex))
cat(sprintf("alfa (3-sigma)  = %.5f\nalfa (prob lim) = %.5f\n", alfa_3s, alfa_prob))
alfa (3-sigma)  = 0.00228
alfa (prob lim) = 0.00097

Os limites de probabilidade são mais estreitos que os \(3\sigma\) quando a Poisson é assimétrica (\(\bar c\) moderado) — resultando em risco \(\alpha\) genuinamente próximo de 0,002 em vez do usual 0,0027.

Resumo de Fórmulas — Capítulo 7

Gráfico Estatística Linha Central LSC / LIC
\(p\) \(D/n\) \(\bar p\) \(\bar p \pm 3\sqrt{\bar p(1-\bar p)/n}\)
\(np\) \(D\) \(n\bar p\) \(n\bar p \pm 3\sqrt{n\bar p(1-\bar p)}\)
\(c\) \(x\) \(\bar c\) \(\bar c \pm 3\sqrt{\bar c}\)
\(u\) \(x/n\) \(\bar u\) \(\bar u \pm 3\sqrt{\bar u/n_i}\)
  • Em todos os casos: se o cálculo do \(LIC\) resultar em valor negativo, define-se \(LIC=0\)

Roteiro de Implantação

  1. Definir a característica de qualidade — fração não conforme ou contagem de não conformidades — e a unidade de inspeção
  2. Coletar \(m=20\) a \(25\) subgrupos históricos
  3. Investigar e documentar causas atribuíveis; expurgar apenas com justificativa registrada
  4. Recalcular os limites com os dados depurados — referência da Fase II
  5. Aplicar o PAFC a cada alarme na Fase II; avaliar TBE se a taxa de defeitos cair abaixo de ~1.000 ppm

Glossário Rápido de Siglas

Sigla Significado
LSC / LIC / LM Limite Superior/Inferior de Controle / Linha Média
ARL / ATS Average Run Length / Average Time to Signal
TBE Tempo Entre Eventos
ppm Partes por milhão
PAFC Plano de Ação para Fora de Controle

Conclusão

  • Gráficos \(p\)/\(np\) (base Binomial) e \(c\)/\(u\) (base Poisson) cobrem, juntos, praticamente todo cenário de monitoramento discreto
  • A Fase I depura o histórico com o mesmo rigor visto no Capítulo 6: nenhum subgrupo é removido sem causa documentada
  • Quando a taxa de defeitos se aproxima de zero, o TBE com a transformação de Nelson mantém o CEP informativo
  • A escolha entre atributos e variáveis é uma decisão de custo, disponibilidade de medição e sensibilidade requerida — não uma preferência arbitrária

Referências

  • Montgomery, D. C. Introdução ao Controle Estatístico da Qualidade. 7ª ed. LTC, 2017. Cap. 7.
  • Duncan, A. J. Quality Control and Industrial Statistics. 5ª ed. Homewood, IL: Richard D. Irwin, 1986. (Critério de dimensionamento de \(n\) para o gráfico \(p\).)
  • Western Electric. Statistical Quality Control Handbook. Western Electric Co., 1956.
  • Nelson, L. S. “A Control Chart for Parts-Per-Million Nonconforming Items.” Journal of Quality Technology, 26(3), 1994.
  • Jones, L. A., Woodall, W. H., Conerly, M. D. “Exact Properties of Demerit Control Charts.” Journal of Quality Technology, 31(2), 1999.
  • Scrucca, L. Pacote qcc: Quality Control Charts. CRAN, 2023.

Obrigado!

Controle Estatístico de Processos: Atributos · UFPB

Bacharelado em Estatística e Ciência de Dados

Prof. Marcelo R.P. Ferreira · DE-UFPB