diff --git a/scripts/04_cumsum.R b/scripts/04_cumsum.R new file mode 100644 index 0000000000000000000000000000000000000000..c31cdde1373f26b9b201ff4b1f9a774a6103e0f0 --- /dev/null +++ b/scripts/04_cumsum.R @@ -0,0 +1,60 @@ +#----------------------------------------------------------------------- + +browseURL(paste0("http://bcs.wiley.com/he-bcs/Books?action=", + "chapter&bcsId=7327&itemId=1118146816&chapterId=80371")) +# arquivo: ch09.xlxs, sheet: Table9-2, coluna: B. + +x <- c(9.45, 7.99, 9.29, 11.66, 12.16, 10.18, 8.04, 11.46, 9.20, 10.34, + 9.03, 11.47, 10.51, 9.40, 10.08, 9.37, 10.62, 10.31, 8.52, 10.84, + 10.90, 9.33, 12.29, 11.50, 10.60, 11.08, 10.38, 11.62, 11.31, + 10.52) +i <- seq_along(x) + +library(qcc) + +qcc(x[1:20], type = "xbar.one", newdata = x[21:30]) + +#----------------------------------------------------------------------- + +mu0 <- 10 # Valor alvo do processo. +sigma <- 1 # Desvio-padrão do processo. +delta <- 1 # Diferença na média a ser detectada. +K <- 1/2 + +xd <- c(0, x) +Cp <- numeric(length(xd)) +Cm <- numeric(length(xd)) + +for (i in 2:length(xd)) { + if (xd[i] - mu0 > 0) { + Cp[i] <- max(c(0, xd[i] - (mu0 + K) + Cp[i - 1])) + } else { + Cm[i] <- max(c(0, (mu0 - K) - xd[i] + Cm[i - 1])) + } +} + +Cpm <- cbind(Cp, -Cm) +i <- 1:nrow(Cpm) - 1 + +matplot(x = i, y = Cpm, type = "o", pch = 1, lty = 1) +abline(h = mu0 + c(-5, 5) * sigma, lty = 2, col = 3) + +#----------------------------------------------------------------------- +# Usando o qcc. + +qcc(x[1:20], type = "cumsum", newdata = x[21:30]) + +help(cusum, h = "html") + +cusum(x[1:20], + decision.interval = 5, + se.shift = K * sigma, + newdata = x[21:30]) +sd(x[1:20]) + +cusum(x[1:20], + decision.interval = 5/sd(x[1:20]), + se.shift = K * sigma, + newdata = x[21:30]) + +#----------------------------------------------------------------------- diff --git a/slides/cumsum.org b/slides/cumsum.org new file mode 100644 index 0000000000000000000000000000000000000000..a896496988f89461bdd97f08d9584ab4f4fa0bc9 --- /dev/null +++ b/slides/cumsum.org @@ -0,0 +1,114 @@ +#+TITLE: Gráfico de Controle da Soma Cumulativa +#+AUTHOR: Prof. Walmes Zeviani +#+EMAIL: walmes@ufpr.br +#+DATE: +#+LANGUAGE: pt + +#+STARTUP: beamer +#+STARTUP: oddeven + +#+LaTeX_CLASS: beamer +#+LaTeX_CLASS_OPTIONS: [aspectratio=169, serif, professionalfont] + +#+BEAMER_THEME: default +#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %4BEAMER_col(Col) %10BEAMER_extra(Extra) + +# PREAMBULO ------------------------------------------------------------ +#+LaTeX_HEADER: \usepackage[brazil]{babel} +#+LaTeX_HEADER: \usepackage[T1]{fontenc} +#+LaTeX_HEADER: \usepackage[utf8]{inputenc} +#+LaTeX_HEADER: \usepackage{mathpazo} +#+LaTeX_HEADER: \usepackage{eulervm} +#+LaTeX_HEADER: \usepackage{inconsolata} +#+LaTeX_HEADER: \usepackage{hyperref} +#+LaTeX_HEADER: \hypersetup{colorlinks, allcolors=., urlcolor=blue, runcolor=orange} + +# ---------------------------------------------------------------------- +# Para chunks R. +#+LaTeX_HEADER: \usepackage{listings} +#+LATEX_HEADER: \lstset{ +#+LATEX_HEADER: keywordstyle=\color{blue}, +#+LATEX_HEADER: commentstyle=\color{red}, +#+LATEX_HEADER: stringstyle=\color{green}, +#+LATEX_HEADER: basicstyle=\ttfamily\small, +#+LATEX_HEADER: columns=fullflexible, +#+LATEX_HEADER: basewidth={0.5em,0.4em} +#+LATEX_HEADER: } + +#+LATEX_HEADER: \RequirePackage{fancyvrb} +#+LATEX_HEADER: \DefineVerbatimEnvironment{verbatim}{Verbatim}{ +#+LATEX_HEADER: fontsize=\footnotesize, +#+LATEX_HEADER: formatcom={\color[rgb]{0,0,0.5}} +#+LATEX_HEADER: } + +#+OPTIONS: H:1 toc:nil + +# ---------------------------------------------------------------------- + +* Quando usar? + + #+ATTR_BEAMER: :overlay +- + - Gráfido de Shewhart usam apenas informação da última coleta. + - São insensíveis à pequenas mudanças no processo. + - Tais mudanças demoram para ser detectadas. + - Acelera detecção com uso de limites de alerta. + - O aumento de regras sinalizantes reduz a simplicidade do + monitoramento. + +#+BEAMER: \pause +** Alternativas + + - Gráfico de Controle da Soma Cumulativa. + - Gráfico de Controle da Média Móvel Exponencialmente Pondereda. + +* Soma Cumulativa + + #+BEGIN_LATEX + \begin{equation} + C_{i} = \sum_{j=1}^{i} (\bar{x}_j - \mu_{0}) + \end{equation} + #+END_LATEX + + #+ATTR_BEAMER: :overlay +- + - $\mu_{0}$ é a média alvo do processo. + - $\bar{x}_{j}$ é a média da amostra $j$. + - O gráfico de Soma Cumulativa exibe $C_{i} \sim i$. + - Úteis quando grupos racionais são de tamanho $n = 1$. + - Úteis em processos automatizados. + - Se o processo está em controle, a Soma Cumulativa é um passeio + aleatório ao redor de $\mu_{0}$. + - Se $\mu_1 > \mu_0$, então $C_i$ se torna mais positivo. + - Os valores de $C_i$ partem de $C_0 = 0$. + +* Cumsum tabular ou algorítmico para monitoramento da média + + #+ATTR_BEAMER: :overlay +- + - Disponível para medidas individuais e grupos racionais. + - Baseado nos acumulos dos desvios positivos ($C^{+}$) e negativos + ($C^{-}$). + - Chamados de cumsum unilaterais superior e inferior. + + #+BEAMER: \pause + #+BEGIN_LATEX + \begin{eqnarray} + C_{i}^{+} &= \max\{0,\, x_i - (\mu_0 + K) + C_{i-1}^{+}\}\\ + C_{i}^{-} &= \max\{0,\, (\mu_0 - K) - x_i + C_{i-1}^{-}\} + \end{eqnarray} + #+END_LATEX + + #+ATTR_BEAMER: :overlay +- + - $\mu_0$ é a média alvo. + - $K$ é valor de tolerância ou folga permitida. + - Normalmente $K$ é o meio do caminho entre $\mu_1$ e $mu_0$, + $K = \frac{|\mu_1 - \mu_0|}{2}$. + - $|\mu_1 - \mu_0|$ é o tamanho de desvio que se quer detectar. + - O processo está fora de controle se $C_i^{+}$ ou $C_i^{-}$ excederem + o valor de decisão $H$. + - É muito utilizado é $H = 5 \sigma$. + - Ao detectar fuga, procurar causas e corrigir o processo, então + começar o cumsum de novo. + - Não interpretar o cumsum com as regras sinalizantes do Shewhart. + +* Aplicação + + - =04_cumsum.R= diff --git a/slides/cumsum.pdf b/slides/cumsum.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b4528d2750184ec37c740bb8a7f8edada7376ad6 Binary files /dev/null and b/slides/cumsum.pdf differ