Você está na página 1de 204

Capítulo 1

Como Baixar e Instalar o Programa R

Gustavo Mello Reis


José Ivo Ribeiro Júnior

Universidade Federal de Viçosa


Departamento de Informática
Setor de Estatística

Viçosa 2007

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 1
1. Download do R

Para fazer o download do R, é necessário acessar o site www.r-project.org, clicar em


CRAN (Figura 1) e escolher um servidor, de preferência no seu país e mais próximo da sua cidade
(Figura 2). Por exemplo, se o usuário encontra-se em Belo Horizonte - MG, o servidor mais
próximo será o da Fundação Oswaldo Cruz - RJ. No Brasil existem cinco servidores até o
momento (Figura 2).

Figura 1

Figura 2

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 2
O download do R pode ser feito através das etapas a seguir:
a) clicar em Windows (Figura 3);
b) clicar em “base” (Figura 4) para ter acesso à página de onde será feito o download do
instalador do R;
c) clicar em “R-2.7.2-win32.exe”, onde a numeração 2.7.2 representa a versão do R, disponível
naquele momento (Figura 5).
Por último aparecerá uma janela, onde se pode executar ou salvar o programa (Figura 6).
A forma mais segura de se fazer a instalação é salvar em uma pasta e depois executar o
instalador a partir dela, já que o processo de download pode ser demorado.

Figura 3

Figura 4

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 3
Figura 5

Figura 6

2. Instalação do R

Após o término do download, deve-se dar dois cliques com o botão esquerdo do mouse no
arquivo baixado (instalador) para começar a instalação, de acordo com as figuras a seguir:

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 4
Figura 7. Caso apareça um aviso de segurança, basta clicar em “Executar”

Figura 8. Escolher a língua de preferência e clicar em “OK”

Figura 9. Clicar em “Avançar” para continuar

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 5
Figura 10. Clicar em “Avançar”

Figura 11. Escolher a pasta para a instalação do R, sendo aconselhável utilizar a pasta
sugerida e clicar em “Avançar”

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 6
Figura 12. Esta informação irá aparecer caso a pasta escolhida para se fazer a instalação já
exista. Caso esta esteja vazia, clicar em “Sim”, caso contrário, “NÃO” e escolher outra

Figura 13. Aconselhável selecionar o modo “Instalação completa”

Figura 14. Aconselhável deixar a opção marcada e clicar em “Avançar”

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 7
Figura 15. Aconselhável deixar o nome sugerido “R” e clicar em “Avançar”

Figura 16. Aconselhável deixar como está e clicar em “Avançar”

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 8
Após o termino da instalação, aparecerá uma janela de finalização do instalador. Nela,
clicar em “Concluir”. A partir daí, o R já pode ser usado. As janelas exibidas foram as do Windows
XP para a instalação da versão R 2.7.2.

3. Instalação de Pacotes do R

Os pacotes contêm um conjunto de funções que facilitam ou possibilitam a realização das


análises estatísticas, além de possuírem ajuda para suas funções e, até mesmo, demonstrações
de execução.
Quando se instala o R, apenas alguns pacotes vêm juntos, os quais são essenciais para o
funcionamento do programa, além de poderem servir de base para outros pacotes. No R, existe
uma grande diversidade de pacotes e, no presente estudo, apenas uma pequena parte deles,
responsáveis pelas análises estatísticas ligadas ao controle de qualidade, serão utilizados. Os
pacotes extras podem ser encontrados com base no próprio programa ou pelo site, sendo que em
ambos os casos, o usuário deve estar conectado à internet.

3.1. Pelo Menu do Programa

Para instalar os pacotes pelo programa R, deve-se seguir os passos abaixo, com o R
aberto:
a) clicar em “Pacotes” e depois em “Instalar pacotes(s)...” (Figura 17);
b) na janela “CRAN mirror”, escolher um servidor do Brasil que esteja mais perto de sua cidade e
clicar em “OK” para conectar-se a ele (Figura 18).
c) deve-se selecionar um pacote de interesse e clicar em “OK”. Este processo deve ser repetido
para cada pacote a ser instalado, pois só é possível instalar um por vez (Figura 19).
Caso apareça uma lista com poucos pacotes, provavelmente o servidor selecionado está
passando por algum problema temporário. Neste caso, pode-se fechar a janela e repetir os
passos escolhendo-se outro servidor.
Para instalar o pacote “qcc” (nomes em ordem alfabética), deve-se clicar nele e depois em
“OK” (Figura 20). Irá aparecer no console uma mensagem que indica se ocorreram ou não
problemas na instalação (Figura 21).

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 9
Figura 17

Figura 18

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 10
Figura 19

Figura 20

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 11
Figura 21

3.2. Pelo Site

Quando os pacotes são instalados pelo site, aparece na frente de cada um deles, uma
breve descrição dos mesmos. Para instalá-los, deve-se seguir as etapas abaixo:
a) acessar o servidor mais próximo pelo site www.r-project.org (Figuras 1 e 2);
b) clicar sobre o link “Packages” (Figura 22) que abrirá uma página com mais de 1500 pacotes.
Por exemplo, para baixar um pacote relacionado ao controle estatístico de processo, deve-
se procurar por palavras chaves em inglês relacionadas ao assunto, assim será feita uma busca
por “Statistical Process Control“ utilizando o sistema de busca do navegador de internet (Figura
23), que pode ser acessado pela tecla de atalho CTRL + F. Dessa forma, foi encontrado o pacote
“spc” (Figura 24), deve-se clicar nesse link e em “spc 0.1.zip” (Figura 25), para salvar o pacote no
computador (fazer o download). O manual desse pacote, em inglês, está em “spc.pdf” (Figura 25).
Depois do download concluído, deve-se abrir o R para fazer a instalação, clicando-se em
“Packages” e depois em “Install package(s) from local zip file...” (Figura 26). Irá aparecer uma
janela para selecionar o pacote a ser instalado, basta ir até a pasta onde o mesmo foi salvo,
selecioná-lo e depois clicar em “Abrir”. Se a instalação ocorreu sem problemas, então irá aparecer
no console, a mensagem: “package 'spc' successfully unpacked and MD5 sums checked”.

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 12
Figura 22

Figura 23

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 13
Figura 24

Figura 25

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 14
Figura 26

Do mesmo modo, os pacotes podem ser transferidos de um computador para outro por
disquetes, CD’s ou pen drives e instalados seguindo os passos do exemplo acima referentes à
Figura 26.

Capítulo 1 – Como Baixar e Instalar o Programa R Gustavo Mello Reis José Ivo Ribeiro Júnior 15
Capítulo 2

A Linguagem R

Gustavo Mello Reis


José Ivo Ribeiro Júnior

Universidade Federal de Viçosa


Departamento de Informática
Setor de Estatística

Viçosa 2007

Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 1


1. Tela Principal do R

Como pode-se observar (Figura 1), a tela principal do R é bastante simples, cuja utilização
é feita através de comandos sobre os objetos (bancos de dados ou resultados gerados por
funções, por exemplo), criados pelo usuário quando efetua as análises estatísticas.
No R, os valores numéricos ou não (caracteres) podem ser dispostos em um vetor, matriz
ou data frame.
Os comandos são realizados por meio de operadores e de funções vistas da seguinte
forma: nome.da.funcao(argumento1, argumento2, ..., argumentoN). É aconselhável não utilizar
acentuação nem espaços no nome da função, assim como observado acima, o ponto substitui o
espaço. Os argumentos vêm sempre dentro de parênteses e separados por vírgula.
No console, janela onde os comandos são digitados, existe o menu, que é um conjunto de
ícones que se encontra na parte superior (Figura 1), e o prompt de comando, que é um sinal
indicador de que o programa está pronto para receber o comando (Figura1).
O R reconhece como local de trabalho, a pasta onde foi instalado, podendo a mesma ser
mudada, se houver interesse. Assim, cada vez que se abre um novo console, uma nova sessão é
criada, devendo ser salva, quando se tem interesse em acessar novamente os objetos e
comandos criados.
Com relação aos dados, NA representa a ausência de um dados, Inf ou –Inf informa que o
valor tende a mais ou menos infinito e NaN, informa que o valor não é um número válido.

Figura 1. Menu e prompt de comando

Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 2


Alguns operadores do R são descritos na Tabela 1:
Tabela 1. Operadores do R
<- atribui um nome a um objeto. Ex: x<-12 (para vê-lo, basta digitá-lo no
console.)
= atribui valor a um argumento, como por exemplo, funcao(arg = valor)
+, -, *, / adição, subtração, multiplicação e divisão
%/% fornece o maior valor inteiro menor ou igual ao valor da divisão, como por
exemplo, 5%/%2 = 2
%% fornece o resto da divisão, como por exemplo, 5%%2 = 1
%*% multiplicação entre matrizes, como por exemplo, M3x2 %*% M2x4, irá
fornecer uma matriz do tipo M3x4
x^b x elevado a b, como por exemplo, 2^3 =8
n1:n2 fornece valores entre os números n1 e n2 espaçados por uma unidade
= =, <, >, Utilizado em programação lógica: igual, menor, maior, menor ou igual,
<=,>=, != maior ou igual e diferente, respectivamente
& Utilizado em programação lógica, significa “e” (adiciona uma condição)
| Utilizado em programação lógica, significa “ou” (adiciona outra
possibilidade)
y~x indica y em função de x
, separa um argumento de outro dentro da mesma função
; pode ser utilizado para digitar mais de um comando na mesma linha,
porém é mais comum utilizar a tecla ENTER e digitar o comando na outra
linha
“ delimita um caractere
‘ utilizada dentro da área de abrangência do operador anterior, ou seja,
dentro de um caractere
() delimita os argumentos de uma função
{} indica o início e o fim de uma função
[] seleciona parte de um objeto
# adiciona algum comentário na janela de comandos (console)
? obtem ajuda ou informações sobre alguma função, como por exemplo,
?nome.da.funcao irá abrir uma nova janela com informações a respeito da
função desejada

Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 3


Algumas funções básicas do R são descritas na Tabela 2:
Tabela 2. Funções básicas
ls() lista o nome dos objetos criados na sessão atual
dir() lista todos os arquivos na pasta de trabalho atual
rm(objetoA,...) remove o(s) objeto(s) entre parênteses
library(nome.do.pacote) ativa o pacote entre parênteses, na sessão em que for usado,
caso esteja instalado no computador, como por exemplo,
library(qcc);
c(...) concatena ou junta valores numéricos ou caracteres em um
único vetor, sendo que os caracteres devem ser postos entre
aspas
factor(objetoA) transforma o objeto em fator, ou seja, o divide em níveis
attach(DataFrameA) permite que cada coluna do Data Frame em questão seja
reconhecida como um objeto
detach(DataFrameA) desfaz a função anterior, sendo aconselhável utilizá-lo sempre
que o Data Frame em questão não for mais necessário, para
evitar possíveis conflitos com outras variáveis com o mesmo
nome

Algumas funções relacionadas aos pacotes do R são descritas na Tabela 3:


Tabela 3. Funções relacionadas a pacotes
summary(packageStatus()) mostra um resumo sobre todos os pacotes existentes,
dizendo quais estão instalados, quais podem ser
atualizados e quais não estão instalados no computador,
quando se está conectado à internet
update.packages() atualiza todos os pacotes instalados
install.packages(c(“pacote1”,...)) instala o(s) pacote(s) entre aspas, quando se está
conectado à internet
remove.packages(c(“pacote1”,..)) remove o(s) pacote(s) entre aspas

Algumas funções matemáticas do R são descritas na Tabela 4:


Tabela 4. Funções matemáticas
choose(n, k) combinação de n tomado de k a k
factorial(x) fatorial de x
sqrt(x) raiz quadrada de x
abs(x) modulo (valor absoluto) de x

Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 4


2. Ajuda no R

Ao clicar no ícone “Help”, pode-se ter acesso a alguns manuais do R, em inglês, no


formato .pdf e também em Html. De outro modo, pode-se ter acesso a esse conteúdo através de
algumas funções descritas na Tabela 5:

Tabela 5. Funções de ajuda


help(package=nome.do.pacote) informações sobre o pacote que deve estar ativo na
sessão, por meio da função library(nome.do.pacote).
Alguns pacotes são ativados automaticamente quando
o R é aberto, como por exemplo, help(package=base)
help.start() ajuda pela internet
help.search(“termo”) pesquisa o termo entre aspas em todos os pacotes
ativos
apropos(“funcao”) ou apropos pesquisa a função ou o objeto entre aspas, em todos
(“objeto”) os pacotes ativos
example(nome.da.funcao) mostra exemplo(s) da função entre parênteses,
quando ela possuir
demo(nome.do.pacote) exibe demonstrações de algumas funções contidas no
pacote em questão, que deve estar ativo e possuir as
demonstrações, como por exemplo, demo(graphics)
ls(“package:nome.do.pacote”) exibe todas as funções contidas no pacote em
questão, como por exemplo, ls(“package:graphics”)
help(nome.da.funcao) ou fornece informações da função entre parênteses
?nome.da.funcao

As janelas de ajuda, abertas pela função help() ou pelo operador ?, de forma geral, podem
possuir até nove tópicos, como segue:
a) Description: descreve o que a função realiza.
b) Usage: exibe a forma de usar a função com os argumentos na ordem correta entre parênteses
e, quando a função possui alguma variação, esta também será mostrada.
c) Arguments: descreve os argumentos possíveis de serem usados, sendo que os argumentos
obrigatórios vêm primeiro e a ordem é a mesma mostrada no tópico Usage. No final deste tópico
poderá aparecer três pontos, o que indica que a função em questão poderá aceitar outros
argumentos não descritos e que fazem parte de alguma função relacionada a ela.
d) Details: exibe alguns detalhes sobre como usar os argumentos, os valores que podem ser
atribuídos a eles e outros assuntos relacionados.
Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 5
e) Value: descreve que tipo de objeto a função retorna.
f) Note: é um tipo de observação final, que pode conter dicas para melhorar o funcionamento da
função, informações a respeito de possíveis diferenças entre a utilização da função em versões
diferentes do R e outras.
g) References: exibe referências bibliográficas relacionadas à função.
h) See Also: exibe algumas funções que têm alguma relação com a função em questão.
i) Examples: exibe exemplos de como usar a função, que podem ser copiados e colados no
console para executá-los.

3. Salvar as Sessões do R

Para trabalhar no R, é aconselhável criar uma nova pasta de trabalho diferente daquela
padrão do Windows, como por exemplo, Rdados. Para escolher essa pasta, deve-se clicar em
“Arquivo”, no menu do R, e em “Mudar dir...”. Depois deve-se selecioná-la, clicando em “Browse”
e em “OK” e “OK” mais uma vez.
O formato que o R salva suas sessões é .RData. Este arquivo irá conter apenas os objetos
armazenados. O arquivo .RData pode ser criado de duas formas:
a) menu do R: clicar em “Arquivo”, em “Salvar área de trabalho...”, digitar um nome para a sessão
em questão e clicar em “Salvar”.
b) console do R: função save.iamge(“nome da sessão.Rdata”), salva o arquivo na pasta de
trabalho escolhida anteriormente.
Os comandos utilizados são salvos em outro arquivo do R, que tem a extensão do tipo
.Rhistory. Para criar este arquivo, deve-se clicar em “Arquivo”, em “Salvar Histórico...”, digitar um
nome para o arquivo, preferencialmente o mesmo utilizado para a sessão, e clicar em “Salvar”.

3.1. Abrir as Sessões Salvas

Depois que a sessão estiver salva, pode-se fechar o R e abrí-lo novamente na mesma
sessão sem perder nada. Para isso, deve-se ir até a pasta onde a sessão foi salva e dar dois
cliques no arquivo “nome da sessão.RData”. O R será aberto e, os objetos criados nesta sessão,
estarão prontos para serem usados, sendo que os comandos utilizados ainda não estarão
disponíveis. Para ativá-los, deve-se clicar em “Arquivo” e em “Carregar Histórico...” e selecionar o
arquivo “nome da sessão.Rhistory” e clicar em “Abrir”. E para acessá-los, basta apertar a seta
para cima do teclado que eles irão aparecendo.

Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 6


4. Entrada de Dados Externos

Se os dados estiverem em uma planilha de dados, deve-se fazer com que o R leia esta
planilha e a transforme em um objeto. Mas para isso, deve ser informado o que separa uma
coluna da outra. As planilhas do tipo .xls e .ods, que são os formatos padrões do Excel e do Calc
(editor de planilhas do pacote OpenOffice), respectivamente, não possuem nenhum sinal
separando as colunas. Portanto, o R não conseguirá separá-las e irá exibir uma mensagem de
erro. Um modo fácil de resolver este problema é salvar a planilha de dados com um outro formato
(.csv), que utiliza o sinal “;” para separar as colunas. Isto pode ser feito no próprio Excel ou no
Calc.
Um outro possível problema na entrada de dados é a configuração do sinal utilizado para
separar as casas decimais. No Brasil, o padrão é utilizar a vírgula. No entanto, o R utiliza o ponto,
que é o padrão da língua inglesa. Para resolver isto, têm-se duas opções: informar ao R que o
arquivo a ser lido utiliza a vírgula como separador decimal e ele irá convertê-la para ponto ou
alterar a configuração do editor de planilha para que ele aceite o ponto como separador decimal.
De acordo com a Figura 2, pode-se verificar que os dados estão com o ponto como
separador decimal. Uma forma fácil de saber se o valor digitado foi reconhecido como numérico
ou não, é observar o seu posicionamento na coluna. Os caracteres são alinhados à esquerda,
enquanto os números são alinhados à direita. Além disso, deve-se evitar fazer formatações na
planilha de dados e, todas as fórmulas executadas, devem ser convertidas a valores. Como o
programa R irá reconhecer células em branco que já tenham sido trabalhadas como sendo um
valor perdido, para evitar possíveis problemas, é aconselhável copiar os valores de entrada para
uma nova planilha para depois convertê-la para o formato .csv.

Figura 2. Dados externos

Para salvar a planilha de dados no formato .csv, deve-se clicar em “Arquivo”, e em “Salvar
como...”, e selecionar a pasta onde o arquivo será salvo, que no presente trabalho é C:\Rdados.
Em seguida, deve-se escolher o nome do arquivo que, no exemplo será entrada, e o formato a ser

Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 7


salvo. No Excel, será “CSV (separado por vírgulas) (*.csv)” e clicar em “Salvar”, aparecerão duas
mensagens. Clicar em “OK” na primeira e em “Sim” na segunda. No Calc, será “Texto CSV (.csv)”
e após clicar em “Salvar”, serão exibidas três mensagens. Clicar em “Sim”, alterar a vírgula para
ponto e vírgula no item “Delimitador de campo” e clicar em “OK”. A terceira será um aviso, em que
se deve clicar em “OK”.
Antes de iniciar a entrada dos dados para o R, deve-se alterar a pasta de trabalho padrão
para a pasta de trabalho C:\Rdados (Figura 3 e 4), utilizada neste material.

Figura 3

Figura 4

Após a alteração da pasta de trabalho, os passos para verificar se o arquivo entrada.csv


está na pasta de trabalho e para ler os seus dados são:
dir()
[1] "entrada.csv"
dados1<-read.table(file=“entrada.csv”,sep=“;”,header=T,dec=“.”)

Os termos técnicos utilizados anteriormente são definidos a seguir:


a) dados1: objeto pelo qual os dados lidos serão reconhecidos pelo R, cujo nome poderia ser
outro;
b) <-: sinal que atribui os dados lidos ao objeto dados1;
c) read.table: função que lê o arquivo do tipo .csv;
Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 8
d) file: informa o endereço e nome do arquivo a ser lido.
No exemplo, foi escrito apenas o nome do arquivo, pois ele está localizado na pasta de
trabalho escolhida. Caso isto não ocorra, deve-se informar o endereço completo de onde o
arquivo está, como por exemplo: file=“C:/windows/desktop/entrada.csv”. Note que as barras
utilizadas são invertidas em relação ao padrão do Windows.
Além do endereço e do nome, outros atributos do arquivo de dados devem ser
especificados:
a) sep: informa qual é o separador de colunas e, embora o arquivo .csv indique separação por
vírgula, ele será separado por ponto e vírgula que é o padrão utilizado pelo Windows em
português;
b) header: informa se os nomes das colunas estão na primeira linha (TRUE) ou não (FALSE);
c) dec: informa qual é o separador decimal, para que o R converta para ponto.
Ao final, para ver se os dados foram lidos corretamente, deve-se digitar o nome dados1 no
console, cujos dados irão aparecer no formato Data Frame, que é o valor retornado pela função
utilizada.
No R, existem algumas variações da função read.table e, para visualizá-las, basta pedir
ajuda: ?read.table. No tópico Usage da janela de ajuda, podem ser vistas as outras formas de
entrada de dados, cada uma delas com padrões diferentes para os valores dos argumentos.
Quando se utiliza os argumentos na ordem correta, não é necessário informar seu nome. No
exemplo acima, os dados poderiam ser lidos da seguinte forma:
dados1<-read.csv(“entrada.csv”,sep=“;”)
# ou
dados1<-read.csv2(“entrada.csv”,dec=“.”)

Esta última será a utilizada durante as realizações das análises estatísticas no R.


Uma observação a ser feita, é que o R reconhece de forma diferenciada, as letras
maiúsculas e minúsculas, tanto para os argumentos como para os nomes das funções ou objetos.

5. Manipulação de Dados

5.1. Vetor

As formas de se criar um vetor no R estão apresentadas na Tabela 6:

Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 9


Tabela 6. Formas de criar um vetor
c(1,2,3,4,5,6) concatena valores
n1:n2 seqüência de valores, de uma em uma unidade, do primeiro valor (n1)
até o último (n2)
rep(n1,r) cria um vetor contendo r vezes o valor n1
seq(a,b,c) cria uma seqüência de números, no intervalo ab, separados por
intervalos de c unidades
gl(i,r) cria um vetor contendo i níveis representados pelos números de 1 a i,
sendo que cada nível contém r repetições

Algumas manipulações de vetores estão apresentadas Tabela 7:

Tabela 7. Manipulação de vetores


rounded(v) arredonda o número ou vetor de números v para o valor inteiro mais
próximo, inferior ou superior
length(v) retorna o tamanho do vetor v
rank(v) exibe a classificação de cada valor do vetor v
sort(v) exibe os valores do vetor v em ordem crescente

Como exemplo, considere as seguintes manipulações:


a) criar um vetor com os seis primeiros valores nulos e os seis últimos iguais a um:
v<-c(rep(0,6),rep(1,6)) # Concatenar dois vetores em um
v # Ver o vetor v
[1] 0 0 0 0 0 0 1 1 1 1 1 1

b) criar um vetor contendo uma seqüência de números de 1 a 15 espaçados por duas unidades:
v<-seq(1,15,2)
v # Ver o vetor v
[1] 1 3 5 7 9 11 13 15

c) criar um vetor de números divididos em cinco níveis, com cada nível contendo três repetições:
v<-gl(5,3)
v # Ver o vetor v
[1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5
Levels: 1 2 3 4 5

Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 10


5.2. Matriz

No R, deve-se criar, primeiramente, um vetor com os valores a serem inseridos na matriz.


Depois, utiliza-se um comando para que os valores sejam dispostos em n linhas e m colunas.
Como exemplo, será criada uma matriz com os valores de 1 a 6, com duas linhas e três colunas,
como segue:

# Criar um vetor com os números 1, 2, 3, 4, 5 e 6


v<-c(1:6)
# Criar uma matriz com duas linhas e três colunas
matriz1<-matrix(data=v,nrow=2,ncol=3)
# Ver a matriz1
matriz1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6

Como pode-se observar, o R tem como padrão ler os dados seguindo a ordem por
colunas. Caso os dados tivessem que ser ordenados por linha, tem-se a opção a seguir:

matriz2<-matrix(v,2,3,byrow=T)

Neste caso, a matriz2 é criada com os dados armazenados no vetor v, ordenando-os por
linha (byrow=TRUE). Além disso, os nomes dos três primeiros argumentos não foram utilizados,
pois os seus valores estão na ordem correta.

# Ver a matriz2
matriz2
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6

Além disso, podem ser acessadas partes da matriz, utilizando o colchete:


matriz2[2,3] # Ver o valor contido na linha 2 e coluna 3
[1] 6
matriz2[1,] # Ver a linha 1
[1] 1 2 3
matriz2[,2] # Ver a coluna 2
[1] 2 5
Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 11
Também, é possível adicionar uma coluna ou uma linha à matriz já existente no R. Isso
pode ser feito das seguintes formas:

a) utilizar a função cbind( ), para coluna ou rbind( ), para linha:


matriz3<-matrix(c(1:9),3,3) # Criar a matriz
matriz3<-cbind(matriz3,c(10,11,12)) # Adicionar coluna como sendo a última
matriz3<-rbind(c(4,3,2,1),matriz3) # Adicionar linha como sendo a primeira
matriz3 # Ver a matriz3

b) utilizar a função fix( ) (Figuras 5, 6 e 7):


matriz3<-matrix(c(1:9),3,3) # Criar a matriz
fix(matriz3) # Abrir uma janela para editar a matriz

Na Figura 5, deve-se clicar sobre o nome da quarta coluna, onde será aberta uma nova
janela (Figura 6). Nesta, deve-se clicar em “numeric” e alterar o nome para “col4”, com o objetivo
de padronizar, e depois fechar a janela. Algumas restrições na criação de novos dados nesta
janela são que as novas linhas são inseridas apenas para baixo e, as novas colunas, apenas para
a direita, sendo que não é possível selecionar mais do que uma célula ao mesmo tempo. A coluna
e a linha serão criadas digitando número por número (Figura 7). Após a digitação de todos os
números, pode-se fechar a janela e ver a nova matriz.

Figura 5

Figura 6

Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 12


Figura 7

No R, existem algumas funções de operações com matrizes, apresentadas na Tabela 8:

Tabela 8. Operações com matrizes


solve(m) calcula a inversa de uma matriz m
t(m) calcula a transposta da matriz m
det(m) calcula o determinante da matriz m
eigen(m) calcula os autovalores e autovetores da matriz
m
sum(diag(m)) calcula o traço da matriz m
M1 %*% M2 multiplicação entre as matrizes M1 e M2
kronecker(M1,M2) produto de Kronecker: M1 ⊗ M2

5.3. Data Frame

A entrada de dados externos não é a única forma de se ter um “Data Frame” no R. Eles
podem também serem criados dentro do próprio programa. Primeiro, é preciso armazenar cada
coluna em um vetor diferente no R, da seguinte forma:

a) utilizar a função c( ):
X<-c(“A”,“A”,“A”,“A”,“A”,“B”,“B”,“B”,“B”,“B”) # usar aspas em caracteres
Y<-c(12.3,11.8,13.6,13,12.5,11.4,10.9,12.1,11.2,10.5)

b) utilizar a função scan( ):


X<-scan(what=“ ”) # ao criar um vetor de caracteres, deve-se usar what=“ ”
1: A # pressionar ENTER e digitar o próximo valor
2: A # seguir até o último valor
Y<-scan()
1: 12.3 # pressionar ENTER e digitar o próximo número
2: 11.8 # seguir até o último número

Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 13


Uma outra forma, é copiar uma coluna de dados de uma planilha e colar no elemento “1:”
da função scan( ), cuja coluna inteira será lida, automaticamente.
Agora que os vetores já foram criados em (a) ou (b), basta juntá-los em um “Data Frame” e
remover as variáveis X e Y da memória, pois elas já estarão armazenadas no “Data Frame”
criado, como segue:

dados<-data.frame(X,Y) # criar o data frame e associá-lo ao nome dados


rm(X,Y) # remover os vetores X e Y

A forma de manipular um “Data Frame” é parecida com a de uma matriz. A diferença entre
essas duas estruturas de dados é que o “Data Frame” permite trabalhar com valores numéricos e
caracteres ao mesmo tempo e também é possível mudar os nomes das colunas e de ter acesso a
cada uma delas através dos seus nomes. Como exemplo, tem-se:

dados # Ver o data frame criado anteriormente


X Y
A 12.3
A 11.8
A 13.6
A 13.0
A 12.5
B 11.4
B 10.9
B 12.1
B 11.2
B 10.5

names(dados)<-c(“amostras”,”operador”) # Alterar os nomes das colunas do data frame


attach(dados) # Função que permite utilizar as colunas pelos nomes delas
operador # Ver os dados contidos na coluna “operador”
[1] 12.3 11.8 13.6 13.0 12.5 11.4 10.9 12.1 11.2 10.5

6. Características de Qualidade

No controle de qualidade, muitas são as características estudadas que, de modo geral,


podem ser divididas em variáveis aleatórias discretas ou contínuas. No texto, elas serão
denominadas de variáveis Ys, respostas, dependentes, explicadas ou, simplesmente, efeitos.
Quando uma variável Y é avaliada, observa-se uma variabilidade em torno da média, que pode
ser “pequena”, devida à variância aleatória provocada por fatores ou causas não controláveis, ou
“grande”, devida, além da variância aleatória, à variância não aleatória provocada por fatores ou
causas controláveis, que serão denominados de variáveis Xs, independentes, classificatórias,
explicativas ou preditoras. No controle estatístico, é muito comum a denominação dos fatores
Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 14
6M’s (mão-de-obra, matéria-prima, máquina, método, meio-ambiente e medida), além de outros,
às variáveis Xs.
As variáveis Xs podem apresentar níveis qualitativos ou quantitativos. No primeiro caso,
pode-se citar como exemplo, a variável mão-de-obra (X) com quatro níveis (x1 = 1 = operador 1, x2
= 2 = operador 2, x3 = 3 = operador 3 e x4 = 4 = operador 4) e, no segundo, a variável temperatura
(XX) com quatro níveis (xx1 = 10, xx2 = 15, xx3 = 20 e xx4 = 25º C ).
Então, quais serão as variáveis Xs e Ys estudadas no experimento? Uma forma de
planejamento pede ser feita por meio do diagrama de causa e efeito, também conhecido como
diagrama de espinha de peixe ou de Ishikawa.
Como exemplo do diagrama de Ishikawa, considere uma pequena empresa do ramo de
cópias e impressões. Depois de ter passado por um período muito bom de crescimento, devido ao
seu preço diferenciado em relação ao dos concorrentes, surgiu uma fase de muitas dificuldades.
O dono da empresa, percebendo que estava perdendo a sua clientela, tentou identificar o
problema que vinha acontecendo. Preparou alguns questionários e os aplicou diretamente aos
seus clientes, na maioria estudantes. Depois de respondidos e analisados por ele próprio, a
conclusão foi que a qualidade das cópias das outras empresas eram bastante superiores. Sem
perder tempo, tratou de convocar uma reunião com todos os funcionários, de forma a buscar as
causas do problema observado, ou seja, a cópia de má qualidade (Figura 8)

Figura 8. Diagrama de causas primárias e secundárias

A construção do diagrama de Ishikawa no R será vista no próximo capítulo.


Capítulo 2 – A Linguagem R Gustavo Mello Reis José Ivo Ribeiro Júnior 15
Capítulo 3

Estatística Descritiva e
Gráficos Gerais

Gustavo Mello Reis


José Ivo Ribeiro Júnior

Universidade Federal de Viçosa


Departamento de Informática
Setor de Estatística

Viçosa 2007

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 1
Neste capítulo serão apresentadas algumas estatísticas descritivas e gráficos
freqüentemente utilizados na área de controle de qualidade, com o objetivo de medir a posição, a
variação e a distribuição da variável reposta Y, de forma geral ou estratificada.

1. Medidas

Como exemplo, considere os dados dos vetores Y e X, no R:

Y<-c(20,23,23,28,33,37,37,37,40,44) # Entrar com Y


X<-c(1,1,1,1,1,2,2,2,2,2) # Entrar com X

Pode-se calcular a média de Y, de forma geral ou para cada nível de X, da seguinte forma:

mean(Y) # média de Y
[1] 32.2
tapply(Y, X, mean) # média de Y para cada nível de X
1 2
25.4 39.0

A função tapply pode ser usada, não só para a média, mas para qualquer outra medida, de
duas maneiras:
a) tapply(variável Y, variável X, medida);
b) tapply(variável Y, c(variável X, variável XX), medida).

Neste último caso, a variável Y será estratificada em dois fatores diferentes (variável X e
variável XX).
A mediana de Y é dada por:
median(Y) # mediana de Y
[1]
35
tapply(Y, X, median) # mediana de Y para cada nível de X
1 2
23 37

Já os percentis, que por padrão no R são calculados o Po, P25, P50, P75 e P100, são obtidos
através de:
quantile(Y)
0% 25% 50% 75% 100%

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 2
20.00 24.25 35.00 37.00 44.00

A especificação de outros percentis pode ser feita por:


quantile(Y, c(0.1, 0.15, 0.615, 0.89999, 0.99))
10% 15% 61.5% 89.999% 99%
22.70000 23.00000 37.00000 40.39964 43.64000

No R, existe a função summary capaz de resumir vários tipos de objetos, como por
exemplo:
summary(Y)
Min. 1st Qu. Median Mean 3rd Qu. Max.
20.00 24.25 35.00 32.20 37.00 44.00
tapply(Y,X,summary)
$"1"
Min. 1st Qu. Median Mean 3rd Qu. Max.
20.0 23.0 23.0 25.4 28.0 33.0

$"2"
Min. 1st Qu. Median Mean 3rd Qu. Max.
37 37 37 39 40 44

A função table fornece as freqüências dos diferentes valores de Y. Quando a amostra é


pequena, pode-se obter a moda através desta função. Caso contrário, utiliza-se a função subset
em conjunto com a função table para que retorne apenas a moda, como segue:
table(Y) # Para amostras pequenas
Y
20 23 28 33 37 40 44
1 2 1 1 3 1 1
subset(table(Y), table(Y)= =max(table(Y))) # Retorna apenas a moda
37
3
As medidas de dispersão variância, desvio padrão, erro padrão da média, coeficiente de
variação e amplitude total, da variável Y, são calculadas, respectivamente, por:
var(Y) # Variância (SY2)
[1] 67.28889
sd(Y) # Desvio padrão (SY)
[1] 8.20298
sd(Y)/sqrt(length(Y)) # Erro padrão da média ( S Y )
Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 3
[1] 2.59401

100*sd(Y)/mean(Y) # Coeficiente de variação ( CV Y )
[1] 25.47509

max(Y) - min(Y) # Amplitude total ( AT Y )
[1] 24
range(Y) # Exibe o menor e o maior valor de Y, respectivamente
[1] 20 44

2. Intervalos de Confiança

Como exemplo, considere o vetor de dados da variável Y:

Y<-c(11, 16, 22, 27, 31, 35, 39, 43, 47, 50)

Para a média de Y, serão estimados dois intervalos com 100(1-α)% de confiança, um com
base na distribuição de z e outro com base na de t, dados, respectivamente por:

a) IC(µ Y ) 1−α : Y ± z α / 2 σ Y ; onde: σ Y = σ Y / n

b) IC(µ Y ) 1− α : Y ± t α / 2 S Y . onde: S Y = S Y / n

No primeiro caso, será considerado σY = 5 e, os comandos no R, para a obtenção de um


intervalo com 100(1-0.05)% de confiança, são fornecidos a seguir:

alfa<-0.05
z<-qnorm(1-alfa/2) # Valor de z para α = 0.05
n<-length(Y) # Tamanho da amostra
sinal<-c(-1,+1) # Sinal mais ou menos

mean(Y)+sinal*z*5/sqrt(n) # Fórmula: Y ± z α / 2 σ Y

[1] 29.00102 35.19898

Os resultados correspondem aos limites inferior e superior do intervalo.


No segundo caso, os comandos no R, para a obtenção de um intervalo com 100(1-0.05)%
de confiança, são:

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 4
gl<-n-1 # Graus de liberdade
alfa<-0.05
t<-qt(1-alfa/2, gl) # Valor de t para α = 0.05
n<-length(Y) # Tamanho da amostra
sinal<-c(-1,+1) # Sinal mais ou menos

mean(Y)+sinal*t*sd(Y)/sqrt(n) # Fórmula: Y ± t α / 2 S Y

[1] 22.7094 41.4906

Do mesmo modo, ao final, têm-se os limites inferior e superior do intervalo.

3. Gráficos

No R, cada tipo de gráfico possui uma função específica. No entanto, algumas de suas
configurações, serão controladas pela função par, de acordo com os argumentos apresentados na
Tabela 1:

Tabela 1. Argumentos para função par


mfrow divide a janela onde os gráficos serão construídos, cujo valor é do
tipo c(nl, nc), em que nl é o número de linhas e nc o número de
colunas em que a janela será dividida
mfcol idêntica à mfrow, porém seu valor será do tipo c(nc, nl)
ps controla o tamanho de todos os textos nos gráficos, cujo valor
deve ser um número inteiro
pty indica a área em que o gráfico será construído, seus valores são:
“m” (área máxima) ou “s” (área quadrada)
bg controla a cor de fundo da janela dos gráficos, sendo que as 657
cores disponíveis são visualizadas por meio do comando colors( )
fg controla a cor dos eixos e das bordas dos símbolos dos gráficos
col.main, col.lab, controla as cores do título, dos nomes dos eixo, do rodapé e dos
col.sub, col.axis valores dos eixos, respectivamente
cex.main, cex.lab, controla o tamanho da fonte, do título, dos nomes dos eixos, do
cex.sub, cex.axis rodapé e dos valores dos eixos, respectivamente, sendo que os
valores positivos menores ou maiores do que 1, diminuem ou
aumentam o tamanho, respectivamente
font.main, font.lab, controla a fonte a ser usada, com base em números inteiros de 1
font.sub, font.axis a 20, sendo que o número 1 indica texto normal, o 2 negrito, o 3
itálico e o 4 negrito + itálico

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 5
adj indica a posição dos textos através de valores de 0 a 1, sendo
que 0 indica texto à esquerda, 0.5 centralizado e 1 à direita
las indica a posição dos valores nos eixos x e y dos gráficos, sendo o
padrão neste material de las=1, que indica que os valores dos
eixos x e y devem ser postos na horizontal

Os argumentos, com exceção dos quatro primeiros, podem também ser usados nas
funções responsáveis por criar os gráficos. A diferença é que quando são utilizados na função
“par”, as suas propriedades serão aplicadas em todos os gráficos criados, enquanto a janela dos
gráficos não for fechada. Quando são utilizados dentro de uma função específica de um gráfico,
os seus efeitos serão aplicados apenas naquele gráfico.
A cópia dos gráficos do R para editores de textos, como por exemplo, Word e Writer (do
pacote OpenOffice), podem ser feitas sob duas opções:
a) pressionar Ctrl+c para copiar e Ctrl+v para colar o gráfico (apenas no tamanho da janela
reduzida);
b) clicar com o botão direito sobre o gráfico e depois com o esquerdo, em “Copy as metafile” para
copiar e, Ctrl+v, para colar o gráfico (no tamanho em que estiver apresentado no R).
Para salvar os gráficos gerados no R, durante uma sessão, deve-se estar com a janela dos
mesmos aberta e ativa, ou seja, à frente das outras janelas. Neste caso, o menu do R será
modificado em relação ao menu principal e, neste novo menu, clicar em “Histórico” e em
“Gravando”. Para acessá-los posteriormente, basta teclar PageUp ou PageDown para ver os
gráficos anteriores ou posteriores, respectivamente. O processo de gravação será finalizado após
clicar, novamente, em “Histórico” e em “Gravando”, desmarcando assim, esta opção. Porém, os
gráficos gravados anteriormente continuarão disponíveis. Caso haja necessidade de deletá-los,
deve-se clicar em “Histórico” e em “Limpar Histórico”. Outra maneira, é salvá-los em um objeto
dentro do R. Para isso, deve-se clicar em “Histórico” e em “Salvar para variável...”, digitar um
nome para o objeto e clicar em “OK”, cujo objeto estará disponível apenas na sessão que foi
salvo. Para ver os gráficos, deve-se clicar em “Histórico” e em “Pegar da variável...”, digitar o
nome do objeto e clicar em “OK”. E, para excluir o objeto, deve-se digitar no console o comando:
rm(nome.do.objeto).
Além disso, os gráficos podem ser salvos em um arquivo externo ao R. Com a janela do
gráfico de interresse aberta, clicar em “Arquivo” e em “Salvar como” e escolher um formato para
salvar o gráfico. Os formatos mais usuais e mais compatíveis com a maioria dos programas de
imagens, são Bmp (Bitmap) e Jpeg.

3.1. Histograma

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 6
Como exemplo, será simulada uma variável Y em duas amostras com n1 = 50 e n2 = 50,
baseada nas distribuições normais com µY1 = 150 e σY1 = 20, para X1 e µY2 = 100 e σY2 = 20, para
X2. A simulação no R será feita da seguinte forma:

Y1<-rnorm(50,150,20) # Primeira simulação


Y2<-rnorm(50,100,20) # Segunda simulação
Y<-c(Y1, Y2) # Agrupar as duas simulações em um mesmo vetor
rm(Y1, Y2) # Remover os vetores Y1 e Y2
X<-gl(2, 50) # Construir o vetor X com os dois níveis X1 e X2

Dois histogramas serão criados:

par(las=1) # Exibir os valores dos eixos x e y na horizontal


hist(Y) # Figura 1a
par(bg=”grey”) # Modificar a cor de fundo para cinza
# Figura 1b
hist(Y, col="white", main="Histograma de Y", ylab="Freqüência", xlab=”Variável Y”)

Figura 1. Histograma
a b

Para construir o histograma estratificado (Figura 2) de acordo com os níveis da variável X


na mesma janela, serão utilizados os comandos a seguir:

par(bg = “white”) # Modificar a cor de fundo para branco


par(mfrow=c(1,2)) # Dividir a janela dos gráficos em uma linha e duas colunas
hist(Y[X= =1], xlim=c(50,200)) # Estratificar Y e estabelecer limites para o eixo x
Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 7
hist(Y[X= =2], xlim=c(50,200)) # Estratificar Y e estabelecer limites para o eixo x

Figura 2. Histograma estratificado

Histogram of Y[X == 1] Histogram of Y[X == 2]

10 15

10
Frequency

Frequency
6

4
5

0 0

50 100 150 200 50 100 150 200

Y[X == 1] Y[X == 2]

3.2. Gráfico de Ramos e Folhas

Para a variável Y simulada com n = 100 (n1 + n2), tem-se:

stem(Y)
The decimal point is 1 digit(s) to the right of the |

4 | 9
6 | 55601666
8 | 34448888000122456668899
10 | 3345567134679
12 | 47890012234667889
14 | 01134555688902345556799
16 | 013449911267
18 | 258

Caso haja necessidade de estratificar o gráfico, deve-se proceder de acordo com o


exemplo:

stem(Y[X= =1])
stem(Y[X= =2])
Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 8
3.3. Box-plot

Para a variável Y, tem-se:

boxplot(Y) # Box-plot simples para n = 100 (Figura 3a)


boxplot(Y~X) # Box-plot estratificado por X para n1 = 50 e n2 = 50 (Figura 3b)

Figura 3. Box-plot simples e estratificado


a b

3.4. Gráfico de Pareto

O gráfico de Pareto pode ser construído tanto para efeitos (variáveis Ys) como para causas
(variáveis Xs), cujo objetivo é de destacar os níveis prioritários da variável estudada.
As variáveis são, normalmente, expressas em número de ocorrências ou em unidades
monetárias, sendo que o gráfico pode ser estratificado com o objetivo de verificar se o
comportamento do processo, a nível geral, ocorre ou não de acordo com as diferentes
particularidades do mesmo.
Como exemplo, considere que uma indústria girou o ciclo PDCA com o objetivo de diminuir
o número de televisores defeituosos. A amostragem foi feita sobre a produção de um mês de
acordo os tipos de defeitos (X) e estratificada em função dos locais 1 e 2 de produção (XX). No
estudo, foram analisadas duas variáveis: número de ocorrência de cada tipo de defeito (Y) e custo
devido ao tipo de defeito (YY).
A entrada de dados pode ser feita da seguinte forma:

dados.p<-read.csv2(“pareto.csv”, dec=”.”)
dados.p

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 9
XX X Y YY
1 def.A 15 30
1 def.B 12 60
1 def.C 6 120
1 def.D 4 40
1 def.E 7 25
2 def.A 6 12
2 def.B 16 80
2 def.C 12 240
2 def.D 6 60
2 def.E 2 15
attach(dados.p)

A função utilizada para construir o gráfico de pareto faz parte do pacote qcc, que deverá
ser instalado, caso ainda não tenha sido. Após a instalação, deve-se ativá-lo na sessão:
library(qcc) # Ativar o pacote qcc

As barras serão organizadas de acordo com a ordem de freqüência, sendo que por padrão,
a ordem das linhas é associada com a ordem das letras do alfabeto. As cores, por padrão
(default), terão uma tonalidade vermelha que diminui com a importância da barra.
O gráfico de Pareto para o número de defeitos (Y) será construído, de forma estratificada
em XX, da seguinte forma:

names(Y)<-X # Atribuir os nomes dos tratamentos aos valores de Y


par(mfrow=c(1,2)) # Ver os dois gráficos na mesma janela
pareto.chart(Y[XX= =1], las=1) # Figura 4a
Pareto chart analysis for Y[XX == 1]
Frequency Cum.Freq. Percentage Cum.Percent.
def.A 15 15 34.09091 34.09091
def.B 12 27 27.27273 61.36364
def.E 7 34 15.90909 77.27273
def.C 6 40 13.63636 90.90909
def.D 4 44 9.09091 100.00000

pareto.chart(Y[XX= =2], las=1) # Figura 4b


Pareto chart analysis for Y[XX == 2]
Frequency Cum.Freq. Percentage Cum.Percent.

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 10
def.B 16 16 38.095238 38.09524
def.C 12 28 28.571429 66.66667
def.D 6 34 14.285714 80.95238
def.A 6 40 14.285714 95.23810
def.E 2 42 4.761905 100.00000

Figura 4. Gráficos de Pareto para Y estratificados em função de XX


a b

Alguns nomes no eixo x podem não aparecer no gráfico, para não haver sobreposição de
nomes, não foi este caso. No entanto, uma forma de evitar esta falha é alinhar os nomes do eixo x
na vertical, usando o argumento las=2.
A construção do gráfico de Pareto para os custos dos defeitos (YY) segue os mesmos
passos anteriores:

names(YY)<-X # Atribuir os nomes dos tratamentos aos valores de Y


pareto.chart(YY[XX= =1], las=1)
pareto.chart(YY[XX= =2], las=1)

3.5. Gráfico de Pizza

Como exemplo considere os dados armazenados no objeto “dados.p”. De forma geral e


estratificada em XX, os gráficos de Pizza são construídos por meio de:

par(mfrow=c(1,2), pty= “s”)


names(Y)<-X

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 11
pie(Y[XX= =1])
pie(Y[XX= =2])

Figura 5. Gráficos de Pizza para Y estratificados em função de XX

3.6. Diagrama de Dispersão

Este gráfico é utilizado com o objetivo de mostrar a relação entre duas variáveis Ys, entre
uma variável X e uma variável Y ou entre duas variáveis Xs.
Numa empresa metal-mecânica, após perceber que o desgaste das ferramentas de corte
nos tornos parecia excessivo, foi solicitado ao encarregado pelo controle de qualidade que
comprovasse ou não a suspeita. Para isso, ele realizou um experimento que consistiu em variar a
velocidade do torno (Y) e observar o tempo em que a ferramenta era capaz de manter a afiação
para a qual foi padronizada (YY). Ao todo, foram utilizadas 22 ferramentas de dois fornecedores
(X).
No R, foram utilizados os seguintes dados do arquivo C:\Rdados\dispersão.csv, como
segue:

dados.disp<-read.csv2(“dispersão.csv”,dec=”.”) # Entrada de dados


dados.disp
X Y YY
A 30 25
A 30 23
A 32 30
B 32 16
A 34 30

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 12
B 34 20
A 36 35
B 36 26
A 38 35.5
B 38 30
A 40 39
B 40 25
B 42 35
A 42 39.5
B 44 30
A 44 41
B 46 32
A 46 40
B 48 38
B 48 30
B 50 25
B 50 33
attach(dados.disp)

O digrama de dispersão (Figura 6) será construído com o seguinte comando:

plot(YY~Y)
Figura 6. Diagrama de dispersão geral

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 13
De acordo com a Figura 6, parece que a variável Y, velocidade do torno, não possui
relação com a variável YY, tempo em que mantêm a afiação. Para confirmar, será calculado o
coeficiente de correlação (r) entre as duas variáveis:

cor(Y,YY) # r
[1] 0.5041802

No entanto, após a identificação dos tempos (YY) referentes às ferramentas de cada


fabricante, uma terceira variável (X) foi acrescentada e o diagrama estratificado (Figura 7) foi
construído da seguinte forma:

plot(Y,YY,pch=c(1,2)[unclass=X])) # construir o diagrama estratificado por X


legend(30,40,c(“A”,“B”),pch=c(1,2)) # construir uma legenda na coordenada (30, 40)

O argumento “pch” indica o tipo de símbolo que será usado, podendo receber valores de 1
a 25 e também qualquer caractere diretamente especificado utilizando aspas, como por exemplo,
pch = “*”.

Figura 7. Diagramas de dispersão estratificados em função de X

De acordo com a Figura 7, é possível observar que o aumento de Y dentro do intervalo de


X estudado, ou seja, fabricantes A e B, faz com que exista uma tendência do aumento de YY.
Além disso, observa-se que as ferramentas do fabricante A parecem ser mais resistentes que as
do B, visto que a dispersão dos dados referentes às ferramentas de A está acima das de B, ou
seja, o tempo que as ferramentas de A mantêm a afiação é maior que das de B, para uma dada
velocidade do torno (Y).

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 14
Para confirmar a tendência de aumento de YY, tempo capaz de manter a afiação, com um
acréscimo em Y, velocidade do torno, serão calculados os coeficientes de correlação para cada
fabricante:

cor(Y[X= =“A”], YY[X= =“A”]) # fabricante A


[1] 0.950448
cor(Y[X= =“B”], YY[X= =“B”]) # fabricante B
[1] 0.6917471

3.7. Diagrama de Causa e Efeito

O exemplo do capítulo anterior para a construção do Diagrama de Causa e Efeito será


repetido aqui: considere uma pequena empresa do ramo de cópias e impressões. Depois de ter
passado por um período muito bom de crescimento, devido ao seu preço diferenciado em relação
ao dos concorrentes, surgiu uma fase de muitas dificuldades. O dono da empresa, percebendo
que estava perdendo a sua clientela, tentou identificar o problema que vinha acontecendo.
Preparou alguns questionários e os aplicou diretamente aos seus clientes, na maioria estudantes.
Depois de respondidos e analisados por ele próprio, a conclusão foi que a qualidade das cópias
das outras empresas eram bastante superiores. Sem perder tempo, tratou de convocar uma
reunião com todos os funcionários, de forma a buscar as causas do problema observado, ou seja,
a cópia de má qualidade (Figura 8)

Figura 8. Diagrama de causas primárias e secundárias

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 15
No R, o diagrama (Figura 9) será criada pela função cause.and.effect, que faz parte do
pacote qcc. Esta função possui cinco argumentos: cause = causas primárias
(sem.espaços.no.nome) e secundárias, effect = efeito, tittle = título, cex = tamanho dos textos e
font = fonte do texto. De acordo com a Figura 8, têm-se:

library(qcc) # Ativar o pacote qcc


cause.and.effect(cause = list(Método.de.foto.cópia = c(“Colocação do Original”, “Tempo de
secagem”), Liquido = c(“Qualidade”, ”Qualidade quando novo”, ”Sujeira”), Papel.de.cópia =
c(“Qualidade do papel”, ”Foto sensibilidade”), Condições.ambientais = c(“Mesa suja”, ”Mãos
sujas”), Papel.original = c(“Dobras”, ”Nitidez”, ”Transparência”), Copiadora = c(“ Velocidade”,
”Condições do enrolamento”, ”Potência da lâmpada”)), effect = “Cópia de má qualidade”, cex =
c(0.7, 0.5, 1))

Figura 9. Diagrama de Causa e Efeito no R

Capítulo 3 – Estatística Descritiva e Gráficos Gerais Gustavo Mello Reis José Ivo Ribeiro Júnior 16
Capítulo 4

Gráficos de Controle

Gustavo Mello Reis


José Ivo Ribeiro Júnior

Universidade Federal de Viçosa


Departamento de Informática
Setor de Estatística

Viçosa 2007

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 1
1. Introdução

Os gráficos ou cartas de controle idealizados por Shewhart, são ferramentas


utilizadas para o monitoramento da média e da variabilidade de um processo ao longo
do tempo ou de diferentes amostras, constituídos de uma linha média (LM) e dos
limites de controle inferior (LIC) e superior (LSC).
Para construir os gráficos de controle no R, deverá ser ativado o pacote qcc,
utilizando o seguinte comando:

library(qcc)

2. Para Atributos

2.1. Gráficos de Controle de Shewart

Os gráficos de controle para atributos são utilizados para variáveis respostas


Ys expressas por um número em uma escala discreta de medidas, resultante de
contagens ou de valores que representam qualidades ou atributos (Tabela 1).

Tabela 1. Limites dos gráficos para atributos


Média e desvio padrão conhecidos Médias e desvio padrão desconhecidos
LM µY Y
LC µY ± kσY Y ± ksY

Tabela 2. Parâmetros e estimativas dos gráficos para atributos


np p c u
µY np p c u
σY np(1 − p) p(1 − p) n c u r

Y n p̂ p̂ ĉ û
sY
n p̂(1 − p̂) p̂(1 − p̂) n ĉ û r

Das tabelas 1 e 2, podem ser feitas as seguintes definições:


k = número de desvios padrões;
µY = média paramétrica ou especificada de acordo com o interesse;

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 2
σY = desvio padrão paramétrico ou especificado de acordo com o interesse;

Y = média amostral;
sY = desvio padrão amostral;
n = número de repetições por amostra;
p = média paramétrica da proporção de itens defeituosos ou especificada de acordo
com o interesse;

p̂ = média amostral da proporção de itens defeituosos;


c = média paramétrica do número de itens defeituosos por amostra ou especificada de
acordo com o interesse;

ĉ = média amostral do número de itens defeituosos por amostra;


u = média paramétrica do número de itens defeituosos por unideda de inspeção
constituída em cada amostra ou especificada de acordo com o interesse;

û = média amostral do números de itens defeituosos por unidade de inspeção


constituída em cada amostra ou especificada de acordo com o interesse;
r = número de unidades de inspeção em cada amostra.

Para esses gráficos, os argumentos que podem ser usados na especificação


dos parâmetros são: center, std.dev, nsigmas e limits = c(LIC, LSC).

2.1.1. Gráfico np

É um gráfico para classificação que monitora o número de itens defeituosos em


amostras de tamanhos variáveis ou constantes.
Como exemplo, considere o arquivo de dados “C:\Rdados\gc_np.csv”, onde
foram coletadas seis amostras de tamanhos variáveis, em que cada item foi avaliado
como defeituoso ou não. Posteriormente, foi obtido o número de itens defeituosos por
amostra (Y) cujo arquivo de dados será lido pelo R da seguinte forma:

dados.np<-read.csv2(“gc_np.csv”, dec=“.”)
dados.np
n Y
300 9
300 3
320 16
350 7

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 3
325 13
350 21
attach(dados.np)

Para construir o gráfico np (figura 1) em função de k=3 (default) e de p


estimado com base nos dados, será utilizado o seguinte comando:

qcc(Y, type=“np”, sizes=n)


Call:
qcc(data = Y, type = "np", sizes = n)

np chart for Y

Summary of group statistics:


Min. 1st Qu. Median Mean 3rd Qu. Max.
3.00 7.50 11.00 11.50 15.25 21.00

Summary of group sample sizes:


sizes 300 320 325 350
counts 2 1 1 2

Number of groups: 6
Center of group statistics: 10.64267 10.64267 11.35219 12.41645
11.52956 12.41645
Standard deviation: 3.203922 3.203922 3.308997 3.460632 3.334748
3.460632

Control limits:
LCL UCL
1.030906 20.25444
1.030906 20.25444
1.425195 21.27918
2.034557 22.79835
1.525319 21.53381
2.034557 22.79835

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 4
Figura 1. Gráfico np

np Chart
for Y

UCL
20
Group summary statistics

15
10
5

LCL

1 2 3 4 5 6

Group

Number of groups = 6
Center is variable LCL is variable Number beyond limits = 0
StdDev = 3.460632
3.203922
3.308997
3.334748 UCL is variable Number violating runs = 0

Caso haja interesse em construir o gráfico np em função de k = 2 e de p = 0,01

para n = 324,17, deve-se, a priori, obter os valores de µY = 3,24 e de σY = 1,79.


Desse modo, o comando é:

qcc(Y, type=“np”, sizes=n, nsigmas=2, center=3.24, std.dev=1.79)

Caso o interesse seja em ter LIC = 0, LM = 3 e LSC = 6, para k = 3 (default),


então tem-se:

qcc(type=“np”, sizes=n, center=3, limits=c(0,6))

2.1.2. Gráfico p

É um gráfico para classificação que monitora a proporção de itens defeituosos


ou a fração defeituosa em amostras de tamanhos variáveis ou constantes.
Como exemplo, considere o arquivo de dados “C:\Rdados\gc_np.csv”.
Para construir o gráfico p (figura 2) em função de k=3 (default) e de p estimado
com base nos dados, têm-se:

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 5
qcc(Y, type=“p”, sizes=n)
Call:
qcc(data = Y, type = "p", sizes = n)

p chart for Y

Summary of group statistics:


Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0100 0.0225 0.0350 0.0350 0.0475 0.0600

Summary of group sample sizes:


sizes 300 320 325 350
counts 2 1 1 2

Number of groups: 6
Center of group statistics: 0.03547558
Standard deviation: 0.1849785

Control limits:
LCL UCL
0.003436355 0.06751480
0.003436355 0.06751480
0.004453733 0.06649742
0.005813021 0.06513814
0.004693288 0.06625787
0.005813021 0.06513814

Figura 2. Gráfico p

p Chart
for Y
0.07

UCL
0.06
Group summary statistics

0.05
0.04
0.03
0.02
0.01

LCL

1 2 3 4 5 6

Group

Number of groups = 6
Center = 0.03547558 LCL is variable Number beyond limits = 0
StdDev = 0.1849785 UCL is variable Number violating runs = 0

Caso haja interesse em construir o gráfico p em função de k = 2 e de p = 0,01

para n = 324,17, deve-se, a priori, obter os valores de µY = 0,01 e σY = 0,0055.


Desse modo, o comando é:

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 6
qcc(Y, type=“p”, sizes=n, nsigmas=2, center=0.01, std.dev=0.0055)
Caso o interesse seja em ter LIC = 0, LM = 0,02, e LSC = 0,04, para k = 3
(default), então tem-se:

qcc(Y, type=“p”, sizes=n, center=0.02, limits=c(0,0.04))

2.1.3. Gráfico c

É um gráfico para contagem que monitora o número de defeitos por amostra


em amostras de tamanhos constantes. No gráfico c, tem-se r=1 pois todas as
amostras têm o mesmo tamanho de amostra (ta) e de unidade de inspeções (tu).
Como exemplo, considere o arquivo de dados “C:\Rdados\gc_c.csv”, onde
foram coletadas seis amostras de tamanhos constantes (n=10), sendo o número de
defeitos por amostra representado por Y. No R o arquivo de dados será lido da
seguinte forma:

dados.c<-read.csv2(“gc_c.csv”, dec=“.”)
dados.c
Y Ta Tu r
10 10 10 1
8 10 10 1
14 10 10 1
23 10 10 1
18 10 10 1
20 10 10 1
attach(dados.c)

Para construir o gráfico c (figura 3) em função de k=3 (default) e de c estimado


com base nos dados, será utilizado o seguinte comando:
qcc(Y, type=“c”, sizes=r)
Call:
qcc(data = Y, type = "c", sizes = n)

c chart for Y

Summary of group statistics:


Min. 1st Qu. Median Mean 3rd Qu. Max.
8.0 11.0 16.0 15.5 19.5 23.0

Group sample size: 10


Number of groups: 6

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 7
Center of group statistics: 15.5
Standard deviation: 3.937004

Control limits:
LCL UCL
3.688988 27.31101

Figura 3. Gráfico c

c Chart
for Y
UCL
25
Group summary statistics

20
15
10
5

LCL

1 2 3 4 5 6

Group

Number of groups = 6
Center = 15.5 LCL = 3.688988 Number beyond limits = 0
StdDev = 3.937004 UCL = 27.31101 Number violating runs = 0

Caso haja interesse em construir o gráfico c em função de k = 2 e de c = 10


(µY), tem-se o seguinte comando no R:

qcc(Y, type=“c”, sizes=r, nsigmas=2, center=10)

2.1.4. Gráfico u

É um gráfico para contagem que monitora o número de defeitos corrigido por


amostra (Y) em amostras de tamanhos variáveis ou constantes.
Como exemplo, considere o arquivo de dados “C:\Rdados\gc_u.csv”, onde
foram coletadas seis amostras de tamanhos variáveis. O número de defeitos por
amostra está representado por Y, o tamanho da amostra por ta, o tamanho da unidade
de inspeção por tu e o número de unidades de inspeção por r. No R, o arquivo será
lido da seguinte forma:

dados.u<-read.csv2(“gc_u.csv”, dec=“.”)
dados.u

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 8
Y ta tu r
14 500 50 10
20 650 50 13
7 475 50 9.5
21 600 50 12
19 600 50 12
23 625 50 12.5
attach(dados.u)

Para construir, o gráfico u (figura 4) em função de k=3 (default) e de u estimado


com base nos dados, têm-se:

qcc(Y, type=“u”, sizes=r)


Call:
qcc(data = Y, type = "u", sizes = r)

u chart for Y

Summary of group statistics:


Min. 1st Qu. Median Mean 3rd Qu. Max.
0.7368 1.4350 1.5610 1.4750 1.7080 1.8400

Summary of group sample sizes:


sizes 9.5 10 12 12.5 13
counts 1.0 1 2 1.0 1

Number of groups: 6
Center of group statistics: 1.507246
Standard deviation: 4.228955

Control limits:
LCL UCL
0.3425482 2.671945
0.4857385 2.528754
0.3122913 2.702201
0.4440273 2.570465
0.4440273 2.570465
0.4655087 2.548984

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 9
Figura 4. Gráfico u

u Chart
for Y

UCL
2.5
Group summary statistics

2.0
1.5
1.0
0.5

LCL

1 2 3 4 5 6

Group

Number of groups = 6
Center = 1.507246 LCL is variable Number beyond limits = 0
StdDev = 4.228955 UCL is variable Number violating runs = 0

Caso haja interesse em construir o gráfico u em função de k = 2 e de u =

6,7807 (µY), para r = 1,4748, tem-se o seguinte comando no R:

qcc(Y, type=“u”, sizes=r, nsigmas=2, center=6,7807)

2.2. Gráfico CUSUM tabular

O gráfico de controle da soma acumulativa (CUSUM) é usado com base nas


observações das amostras que contêm uma ou mais unidades (n ≥ 1) de tamanhos
constantes ou variáveis. Para construir o gráfico CUSUM para atributos, deve-se
utilizar o comando para um dos gráficos np, p, c ou u de Shewhart, armazená-lo em
um objeto, e construir o gráfico utilizando este objeto (tabela 3).

Tabela 3. Limites e CUSUMs tabulares padronizados dos gráficos para atributos


Média e desvio padrão conhecidos Média e desvio padrão
desconhecidos
LM 0 0
LC ± h* ± h*
SH(i)*  Yi − µ Y   Yi − Y 
máximo 0; − k ∗ + S H (i − 1) ∗  máximo 0; − k ∗ + S H (i − 1) ∗ 
 σY   sY 

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 10
SL(i)*  µ Y − Yi   Y − Yi 
máximo 0; − k ∗ + S L (i − 1) ∗  máximo 0; − k ∗ + S L (i − 1) ∗ 
 σY   sY 

Na Tabela 3, as constantes são definidas por:


h* = intervalo de decisão padronizado;
δ
k* = = valor de referência padronizado;
2
δ = número de desvios padrões que se desejar detectar como variação especial da
média;
SH(i)* = CUSUM tabular superior padronizado da amostra i;
SL(i)* = CUSUM tabular inferior padronizada da amostra i;
yi = valor da variável Y observada na amostra i.

Com relação aos valores de yi plotados no gráfico np, eles devem ser
substituídos por p̂ i , ĉ i e û i , quando forem construídos os gráficos p, c, e u,
respectivamente.
No R, o gráfico gerado é o CUSUM tabular padronizado. Nele, os argumentos
usados para especificar os parâmetros são: std.dev, center, se.shift (δ) e decision.int
(h*).

2.2.1. CUSUM tabular padronizada de np

Como exemplo, considere o arquivo de dados “C:\Rdados\gc_np.csv” e o


objeto dados.np utilizados para a construção do gráfico np, em que foram coletadas
seis amostras de tamanhos variáveis.
Para construir o gráfico CUSUM (figura 5) tabular de np, h* = 5, δ = 1 (default),
do valor alvo e do desvio padrão estimados com base nos dados, têm-se os seguintes
comandos no R:

attach(dados.np)
dados.cusum.np<-qcc(Y, type=“p”, sizes=n, plot=F)
_ O argumento plot=F indica para não construir o gráfico np.
_ No R, as CUSUMs tabulares de np foram obtidas por meio do argumento
“type=p”, em função de serem iguais às CUSUMs tabulares de p.
re.cus.np<-cusum(dados.cusum.np) # Construir o gráfico CUSUM de np

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 11
Figura 5. Gráfico CUSUM tabular de np

Cusum Chart
for Y
UDB
5
Above Target
4
3
Cumulative Sum
2
1
0
-1
Below Target
-2
-3
-4
-5

LDB

1 2 3 4 5 6

Group

Number of groups = 6 Decision boundaries (std. err.) = 5


Target = 0.03547558 Shift detection (std. err.) = 1
StdDev = 0.1849785 No. of points beyond boundaries = 0

re.cus.np$cusum # Ver os resultados referentes ao gráfico CUSUM


$x
[1] 1 2 3 4 5 6

$pos
[1] 0.0000000 0.0000000 0.9045994 0.0000000 0.0000000 1.9803413

$neg
[1] -0.01270703 -1.89811861 0.00000000 -1.06516294 -0.12421899
0.00000000

$decision.int
[1] 5

$se.shift
[1] 1

Caso haja interesse em construir o gráfico CUSUM tabular de np, com δ = 1,5,
h* = 4, µY = 3,24 e σY = 1,79, então têm-se:

dados.cusum.np<-qcc(Y, type=“p”, sizes=n, center=3.24, std.dev=1.79, plot=F)


cusum(dados.cusum.np, se.shift=1.5, decision.int=4)

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 12
2.2.2. CUSUM tabular padronizada de p

Como exemplo, considere o objeto dados.np e, para construir o gráfico CUSUM


(figura 6) em função de h* = 5 (default), δ = 1 (default) e do valor alvo e do desvio
padrão estimados com base nos dados, têm-se os seguintes comandos:

attach(dados.np)
dados.cusum.p<-qcc(Y, type=“p”, sizes=n, plot=F)
_ O argumento plot=F indica para não gerar o gráfico p.
re.cus.p<-cusum(dados.cusum.p) # Construir o gráfico CUSUM de p

Figura 6. Gráfico CUSUM tabular de p

Cusum Chart
for Y
UDB
5
Above Target
4
3
Cumulative Sum
2
1
0
-1
Below Target
-2
-3
-4
-5

LDB

1 2 3 4 5 6

Group

Number of groups = 6 Decision boundaries (std. err.) = 5


Target = 0.03547558 Shift detection (std. err.) = 1
StdDev = 0.1849785 No. of points beyond boundaries = 0

re.cus.p$cusum # Ver os resultados referentes ao gráfico CUSUM


$x
[1] 1 2 3 4 5 6

$pos
[1] 0.0000000 0.0000000 0.9045994 0.0000000 0.0000000 1.9803413

$neg
[1]-0.01270703 -1.89811861 0.0000000 -1.06516294 -0.12421899 0.0000000

$decision.int
[1] 5

$se.shift
[1] 1

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 13
Caso haja interesse em construir o gráfico CUSUM tabular de p, com δ = 1,5,
h* = 4, µY = 10 e σY = 3,1623, então tem-se os seguintes comandos:

dados.cusum.p<-qcc(Y, type=“p”, sizes=n, center=10, std.dev=3.1623, plot=F)


cusum(dados.cusum.p, se.shift= 1.5, decision.int= 4)

2.2.3. CUSUM tabular padronizada de c

Como exemplo, considere o objeto dados.c e, para construir o gráfico CUSUM


(figura 7) em função de h* = 5 (default), δ = 1 (default) e do valor alvo e do desvio
padrão estimados com base nos dados, têm-se os seguintes comandos:

attach(dados.c)
dados.cusum.c<-qcc(Y, type=“c”, sizes=r, plot=F)
_ O argumento plot= F indica para não construir o gráfico c
re.cus.c<-cusum(dados.cusum.c) # Construir o gráfico CUSUM de c

Figura 7. Gráfico CUSUM tabular de c

Cusum Chart
for Y
UDB
5
Above Target
4
3
Cumulative Sum
2
1
0
-1
Below Target
-2
-3
-4
-5

LDB

1 2 3 4 5 6

Group

Number of groups = 6 Decision boundaries (std. err.) = 5


Target = 15.5 Shift detection (std. err.) = 1
StdDev = 3.937004 No. of points beyond boundaries = 0

re.cus.c$cusum # Ver os resultados referentes ao gráfico CUSUM


$x
[1] 1 2 3 4 5 6

$pos
[1] 0.000000 0.000000 0.000000 1.405002 1.540003 2.183004

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 14
$neg
[1] -0.8970014 -2.3020033 -2.1830037 0.0000000 0.0000000 0.0000000

$decision.int
[1] 5

$se.shift
[1] 1

Caso haja interesse em construir o gráfico CUSUM tabular de c, com δ = 1,5,


h* = 4, µY = 10 e σ = 3,1623, então tem-se o seguinte comando:

dados.cusum.c<-qcc(Y, type=“c”, sizes=r, center=10, std.dev=3.1623, plot=F)


cusum(dados.cusum.c, se.shift=1.5, decision.int=4)

2.2.4. CUSUM tabular padronizada de u

Como exemplo, considere o arquivo de dados “C:\Rdados\gc_u.csv” e o objeto


dados.u utilizados para a construção do gráfico u, em que foram coletadas seis
amostras de tamanhos variáveis.
Para construir o gráfico CUSUM (figura 8) em função de u, h* = 5 (default), δ =
1 (default) e do valor alvo e do desvio padrão estimados com base nos dados, têm-se
os seguintes comandos no R:

attach(dados.u)
dados.cusum.u<-qcc(Y, type=“c”, sizes=r, plot=F)
_ O argumento plot= F indica para não construir o gráfico u
_ Como pode-se observar, as CUSUMs tabulares de u são obtidas por meio do
procedimento type=“c”. A diferença está nos valores de r, que são diferentes de 1.
re.cus.u<-cusum(dados.cusum.u) # Construir o gráfico CUSUM de u

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 15
Figura 8. Gráfico CUSUM tabular de u

Cusum Chart
for Y
UDB
5
Above Target
4
3
Cumulative Sum
2
1
0
-1
Below Target
-2
-3
-4
-5

LDB

1 2 3 4 5 6

Group

Number of groups = 6 Decision boundaries (std. err.) = 5


Target = 1.507246 Shift detection (std. err.) = 1
StdDev = 4.228955 No. of points beyond boundaries = 0

re.cus.u$cusum # Ver os resultados referentes ao gráfico CUSUM


$x
[1] 1 2 3 4 5 6

$pos
[1] 0 0 0 0 0 0

$neg
[1] 0.00000000 0.00000000 -0.06149701 0.00000000 0.00000000
0.00000000

$decision.int
[1] 5

$se.shift
[1] 1

Caso haja interesse em construir o gráfico CUSUM tabular de u, com δ = 1,5,

h* = 4, µY = 6,7807 e σY = 2,1442, para r = 1,4748, tem-se:

dados.cusum.u<-qcc(Y, type=“c”, sizes=r, center=6.7807, std.dev=2.1442, plot=F)


cusum(dados.cusum.u, se.shift=1.5, decision.int=4)

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 16
2.3. Gráfico de Controle EWMA

O gráfico de controle da média móvel ponderada exponencialmente (EWMA) é


usado com base nas observações das amostras que contêm uma ou mais unidades (n
≥ 1) de tamanhos constantes ou variáveis.
Para construir o gráfico EWMA para atributos (tabela 4), deve-se utilizar o
comando para construir um dos gráficos np, p, c ou u de Sherwhart, armazená-lo em
um objeto e construir o gráfico utilizando este objeto.

Tabela 4. Limites dos gráficos EWMAs para atributos


Média e desvio padrão conhecidos Média e desvio padrão desconhecidos
LM µY Y
LC µY ± kσWi Y ± ksWi

σWi = σY 
λ 
[
 1 − (1 − λ )
2−λ
2i
] sWi = sY 
λ 
[
 1 − (1 − λ )
2−λ
2i
]

Na tabela 4, as constantes são definidas por:


λ = peso da amostra (0 ≤ λ < 1);
Wi = λyi + (1 − λ) W i − 1;
i = número da amostra i.
E os argumentos que podem ser usados para especificar os parâmetros são:
center, std.dev, nsigmas e lambda.

2.3.1. EWMA de np

Com base no objeto dados.np, para construir o gráfico EWMA de np, λ = 0,2
(default) e do valor alvo e do desvio padrão estimados com base nos dados (figura 9),
têm-se os seguintes comandos no R:

attach(dados.np)
dados.ewma.np<-qcc(Y, type=“np”, sizes=n, plot=F)
re.ewma.np<-ewma(dados.ewma.np) # Construir o gráfico EWMA de np

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 17
Figura 9. Gráfico EWMA de np

EWMA Chart
for Y
20
Group Summary Statistics

15
10
5

1 2 3 4 5 6

Group

Number of groups = 6 Smoothing parameter = 0.2


Target is variable Control limits at 3*sigma
StdDev = 3.460632
3.203922
3.308997
3.334748

re.ewma.np$ewma # Ver os resultados referentes ao gráfico EWMA de np


$x
[1] 1 2 3 4 5 6

$y
1 2 3 4 5 6
10.314139 8.851311 10.644319 10.351379 10.590487 12.904883

$sigma
[1] 0.03699571 0.04737762 0.05296463 0.05624983 0.05825522 0.05950321

$nsigmas
[1] 3

$limits
LCL UCL
[1,] 10.53169 10.75366
[2,] 10.50054 10.78481
[3,] 11.19329 11.51108
[4,] 12.24770 12.58520
[5,] 11.35480 11.70433
[6,] 12.23794 12.5949

Caso haja interesse em construir o gráfico EWMA de np com λ = 0,25, k = 2, µY


= 3,24 e σY = 1,79, têm-se:

dados.emwa.np<-qcc(Y, type=“np”, sizes=n, center=3.24, std.dev=1.79, plot=F)


re.ewma.np<-ewma(dados.ewma.np, nsigmas=2, lambda=0.25)

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 18
2.3.2. EWMA de p

Com base no objeto dados.np, para construir o gráfico EWMA de p, λ = 0,2


(default) e do valor alvo e do desvio padrão estimados com base nos dados (figura
10), têm-se os seguintes comandos no R:

attach(dados.np)
dados.ewma.p<-qcc(Y, type=“p”, sizes=n, plot=F)
re.ewma.p<-ewma(dados.ewma.p) # Construir o gráfico EWMA de p

Figura 10. Gráfico EWMA de p

EWMA Chart
for Y
0.06
0.05
Group Summary Statistics

0.04
0.03
0.02
0.01

1 2 3 4 5 6

Group

Number of groups = 6 Smoothing parameter = 0.2


Target = 0.03547558 Control limits at 3*sigma
StdDev = 0.1849785

re.ewma.p$ewma # Ver os resultados referentes ao gráfico EWMA de p


$x
[1] 1 2 3 4 5 6

$y
1 2 3 4 5 6
0.03438046 0.02950437 0.03360350 0.03088280 0.03270624 0.03816499

$sigma
[1] 0.002135948 0.002735348 0.002960813 0.003006680 0.003231418
0.003180580

$nsigmas
[1] 3

$limits
LCL UCL
[1,] 0.02906773 0.04188342

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 19
[2,] 0.02726953 0.04368162
[3,] 0.02659314 0.04435802
[4,] 0.02645554 0.04449562
[5,] 0.02578132 0.04516983
[6,] 0.02593384 0.04501732

Caso haja interesse em construir o gráfico EWMA de p, com λ = 0,25, k = 2, µY


= 10 e σY = 3,1623, têm-se:

dados.emwa.p<-qcc(Y, type=“p”, sizes=n, center=10, std.dev=3.1623, plot=F)


re.ewma.p<-ewma(dados.ewma.p, nsigmas=2, lambda=0.25)

2.3.3. EWMA de c

Com base no objeto dados.c, para construir o gráfico EWMA de c, λ = 0,2


(default) e do valor alvo e do desvio padrão estimados com base nos dados (figura
11), têm-se os seguintes comandos no R:

attach(dados.c)
dados.ewma.c<-qcc(Y, type=“c”, sizes=r, plot=F)
re.ewma.c<-ewma(dados.ewma.c) # Construir o gráfico EWMA de c

Figura 11. Gráfico EWMA de c

EWMA Chart
for Y
20
Group Summary Statistics

15
10

1 2 3 4 5 6

Group

Number of groups = 6 Smoothing parameter = 0.2


Target = 15.5 Control limits at 3*sigma
StdDev = 3.937004

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 20
re.ewma.c$ewma # Ver os resultados referentes ao gráfico EWMA de c
$x
[1] 1 2 3 4 5 6

$y
1 2 3 4 5 6
14.40000 13.12000 13.29600 15.23680 15.78944 16.63155

$sigma
[1] 0.2489980 0.3188730 0.3564761 0.3785870 0.3920842 0.4004837

$nsigmas
[1] 3

$limits
LCL UCL
[1,] 14.75301 16.24699
[2,] 14.54338 16.45662
[3,] 14.43057 16.56943
[4,] 14.36424 16.63576
[5,] 14.32375 16.67625
[6,] 14.29855 16.70145

Caso haja interesse em construir o gráfico EWMA de c, com λ = 0,25, k = 2, µY


= 10 e σY = 3,1623, têm-se:

dados.emwa.c<-qcc(Y, type=“c”, sizes=n, center=10, std.dev=3.1623, plot=F)


re.ewma.c<-ewma(dados.ewma.c, nsigmas=2, lambda=0.25)

2.3.4. EWMA de u

Como exemplo, considere o arquivo de dados utilizados para a construção do


gráfico u, em que foram coletadas seis amostras de tamanhos variáveis. O arquivo de
dados a ser utilizado é “C:\Rdados\gc_u.csv” e o objeto é dados.u (figura 12). No R,
têm-se os seguintes comandos, para k = 3 (default), λ = 0,2 (default) e o valor alvo e o
desvio padrão estimados com base nos dados:

attach(dados.u)
dados.ewma.u<-qcc(Y, type= “u”, sizes=r, plot=F)
re.ewma.u<-ewma(dados.ewma.u) # Construir o gráfico EWMA de u

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 21
Figura 12. Gráfico EWMA de u

EWMA Chart
for Y
2.5
Group Summary Statistics

2.0
1.5
1.0
0.5

1 2 3 4 5 6

Group

Number of groups = 6 Smoothing parameter = 0.2


Target = 1.507246 Control limits at 3*sigma
StdDev = 4.228955

re.ewma.u$ewma # Ver os resultados referentes ao gráfico EWMA de u


$x
[1] 1 2 3 4 5 6

$y
1 2 3 4 5 6
1.485797 1.496330 1.344432 1.425546 1.457103 1.533683

$sigma
[1] 0.2674626 0.3004092 0.3928582 0.3712293 0.3844642 0.3847663

$nsigmas
[1] 3

$limits
LCL UCL
[1,] 0.7048586 2.309634
[2,] 0.6060187 2.408474
[3,] 0.3286719 2.685821
[4,] 0.3935584 2.620934
[5,] 0.3538538 2.660639
[6,] 0.3529475 2.661545

Caso haja interesse de construir o gráfico EWMA de u em função de k = 2, λ =


0,25, µY = 6,7807 e σY = 2,1442, então tem-se:

dados.ewma.u<-qcc(Y, type=“u”, sizes=r, center=6.7807, std.dev=2.1442, plot=F)


re.ewma.u<-ewma(dados.ewma.u, lambda=0.25, nsigmas=2)

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 22
3. Para Variáveis

Esses gráficos são utilizados quando a variável Y é capaz de assumir


diferentes valores um intervalo contínuo, como por exemplo, as variáveis obtidas por
medição ou pesagem.
Os gráficos de controle para variáveis são utilizados para o monitoramento da
variabilidade (R, s, CUSUM tabular de R, CUSUM tabular de s, EWMA de R e EWMA
de s) e da média (x, X , CUSUM tabular de x, CUSUM tabular de X , EWMA de x e

EWMA de X ), em amostras de tamanhos constantes ou variáveis, com n ≥ 1.


Para esses gráficos, os argumentos que podem ser utilizados para especificar
os parâmetros são: center, std.dev, nsigmas e limits = c(LIC, LSC).

3.1. Gráficos de Shewhart para Monitorar a Variabilidade

Para esses gráficos (tabela 5), os argumentos que podem ser utilizados para
especificar os parâmetros são: center, std.dev, nsigmas e limits=c(LIC,LSC).

Tabela 5. Limites dos gráficos para variáveis com monitoramento da variabilidade


Média e desvio padrão conhecidos Média e desvio padrão
desconhecidos
R s R s
LM µR µs R s
LC µR ± kσR µs ± kσs R ± sR s ± kss

De acordo com os gráficos, os parâmetros ou estimadores são apresentados


na tabela 6.

Tabela 6. Parâmetros e estimadores dos gráficos para variáveis com monitoramento


da variabilidade
R s
µR d2σY µs c4σ Y
σR d3σY σs
1 − c 24 σ Y

R d2sY s c4sY

sR d3sY ss
1 − c 24 s Y

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 23
Na tabela 6, d2, d3, e c4 representam constantes tabeladas em função do
tamanho da amostra.

3.1.1. Gráfico R

O gráfico de controle da amplitude (R) de Shewhart é usado com base nas


observações das amostras que contêm mais de uma unidade (n > 1) de tamanhos
constantes ou variáveis.
Como exemplo, considere que foram coletadas seis amostras de tamanhos
variáveis, em que X representa o número da amostra e, Y, a característica de
qualidade avaliada. Os dados serão lidos através do arquivo “C:\Rdados\gc_r.csv”, da
seguinte forma:

dados.r<-read.csv2(“gc_r.cs”, dec= “.”)


dados.r
X Y
1 7.10
1 7.09
2 7.12
2 7.11
2 7.10
3 7.09
3 7.10
3 7.11
3 7.12
4 7.11
4 7.10
4 7.10
5 7.07
5 7.09
5 7.11
6 7.10
6 7.11
attach(dados.r)

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 24
Para construir o gráfico R (figura 13), deve-se utilizar os dados com as
repetições postas em colunas e não em linhas. Assim, para reorganizar os dados
dentro do próprio R será utilizado o comando a seguir:

dados2.r<-qcc.groups(Y, X)
dados2.r
[,1] [,2] [,3] [,4]
1 7.10 7.09 NA NA
2 7.12 7.11 7.10 NA
3 7.09 7.10 7.11 7.12
4 7.11 7.10 7.10 NA
5 7.07 7.09 7.11 NA
6 7.10 7.11 NA NA

Deste modo, o gráfico R em função de k=3 (default) e de R estimado com base


nos dados, será construido pelo seguinte comando:

qcc(dados2.r, type=“R”)
Call:
qcc(data = dados2.r, type = "R")

R chart for dados2.r

Summary of group statistics:


Min. 1st Qu. Median Mean 3rd Qu. Max.
0.0100 0.0100 0.0150 0.0200 0.0275 0.0400

Summary of group sample sizes:


sizes 2 3 4
counts 2 3 1

Number of groups: 6
Center of group statistics: 0.02176471
Standard deviation: 0.01259172

Control limits:
LCL UCL
0 0.05396814
0 0.05532300
0 0.05499969
0 0.05532300
0 0.05532300
0 0.05396814

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 25
Figura 13. Gráfico R

R Chart
for dados2.r

UCL
0.05
Group summary statistics

0.04
0.03
0.02
0.01
0.00

LCL

1 2 3 4 5 6

Group

Number of groups = 6
Center = 0.02176471 LCL = 0 Number beyond limits = 0
StdDev = 0.01259172 UCL is variable Number violating runs = 0

Caso haja interesse em construir o gráfico R em função de k = 2, µR = 0,02, σ =


0,01, tem-se o seguinte comando no R:

qcc(dados2.r, type=“R”, nsigmas=2, center=0.02, std.dev=0.01)


Caso o interesse seja em LIC = 0, LM = 0,03 e LSC = 0,06, então:
qcc(dados2.r, type=“R”, center=0.03, limits=c(0, 0.06))

3.1.2. Gráfico s

O gráfico de controle do desvio padrão (s) de Shewhart é usado com base nas
observações das amostras que contêm mais de uma unidade (n > 1) de tamanhos
constantes ou variáveis.
Como exemplo, considere o arquivo objeto “dados2.r” e, para construir o
gráfico s (figura 14) em função de k = 3 (default) e de s estimado com base nos dados,
será utilizado o seguinte comando:

qcc(dados2.r, type=“S”)
Call:
qcc(data = dados2.r, type = "S")

S chart for dados2.r

Summary of group statistics:


Min. 1st Qu. Median Mean 3rd Qu. Max.

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 26
0.005774 0.007071 0.008536 0.010470 0.012180 0.020000

Summary of group sample sizes:


sizes 2 3 4
counts 2 3 1

Number of groups: 6
Center of group statistics: 0.01101439
Standard deviation: 0.01259172

Control limits:
LCL UCL
0 0.03378563
0 0.02851377
0 0.02570176
0 0.02851377
0 0.02851377
0 0.03378563

Figura 14. Gráfico s

S Chart
for dados2.r
UCL
0.030
Group summary statistics

0.020
0.010
0.000

LCL

1 2 3 4 5 6

Group

Number of groups = 6
Center = 0.01101439 LCL = 0 Number beyond limits = 0
StdDev = 0.01259172 UCL is variable Number violating runs = 0

Caso haja interesse em construir o gráfico S em função de k = 2, µs = 0,02, σs =


0,01, então tem-se o seguinte comando no R:

qcc(dados2.r, type=“S”, nsigmas=0.02, std.dev=0.01)

3.2. Gráficos de Shewhart para Monitorar a Média

Do mesmo modo, para esses gráficos (tabela 7), os argumentos dos


parâmetros são: center, std.dev, nsigmas e limits = c(LIC, LSC).

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 27
Tabela 7. Limites dos gráficos para variáveis com monitoramento da média
Média e desvio padrão conhecidos Média e desvio padrão
desconhecidos
x Xbarra x Xbarra
LM µY µY Y Y
LC µY ± kσY µY ± k σ Y Y ± ksY Y ± ksY

Na tabela 3.7, Y é a média geral de todas as médias amostrais e σ Y e sY


são dados, respectivamente, por:
σY sY
σY = e sY =
n n

3.2.1. Gráfico x

O gráfico de controle da medida individual (x) de Shewhart é usado com base


nas observações das amostras que contêm uma unidade (n = 1).
Como exemplo, considere que foram coletadas seis amostras de um item. Os
valores da variável resposta Y estão apresentados no arquivo “C:\Rdados\gc_x.csv”,
que será lido da seguinte forma:

dados.x<-read.csv2(“gc_x.csv”, dec= “.”)


dados.x
Y
7.10
7.12
7.09
7.11
7.07
7.10

Para construir o gráfico x (figura 15) em função de k=3 (default) e da média e


desvio padrão estimados com base nos dados, tem-se o seguinte comando no R:

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 28
qcc(dados.x, type=“xbar.one”)
Call:
qcc(data = dados.x, type = "xbar.one")

xbar.one chart for dados.x

Summary of group statistics:


Min. 1st Qu. Median Mean 3rd Qu. Max.
7.070 7.092 7.100 7.098 7.108 7.120

Group sample size: 1


Number of groups: 6
Center of group statistics: 7.098333
Standard deviation: 0.02482270

Control limits:
LCL UCL
7.023865 7.172801

Figura 15. Gráfico x

xbar.one Chart
for dados.x
UCL
7.15
Group summary statistics

7.10
7.05

LCL

1 2 3 4 5 6

Group

Number of groups = 6
Center = 7.098333 LCL = 7.023865 Number beyond limits = 0
StdDev = 0.0248227 UCL = 7.172801 Number violating runs = 0

Caso haja interesse em construir o gráfico x em função de k = 2, µY = 7 e σY =


0,01, então tem-se o seguinte comando no R:

qcc(dados.x, type=“xbar.one”, nsigmas=2, center=7, std.dev=0.01)

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 29
3.2.2. Gráfico Xbarra

O gráfico de controle Xbarra da média de Shewhart é usado com base nas


observações das amostras que contêm mais de uma unidade (n > 1) de tamanhos
constantes ou variáveis.
Como exemplo, considere que foram coletadas seis amostras de tamanhos
variáveis. O arquivo de dados a ser utilizado é “C:\Rdados\gc_xb.csv”, que será lido da
seguinte forma:

dados.xb<-read.csv2(“gc_xb.csv”, dec= “.”)


dados.xb
Y1 Y2 Y3 Y4
7.10 7.09 NA NA
7.12 7.11 7.10 NA
7.09 7.10 7.11 7.12
7.11 7.10 7.10 NA
7.07 7.09 7.11 NA
7.10 7.11 NA NA

Para construir o gráfico Xbarra (figura 16) em função de k = 3 (default) e da


média geral e desvio padrão estimados com base nos dados, tem-se o seguinte
comando no R:

qcc(dados.xb, type=“xbar”)
Call:
qcc(data = dados.xb, type = "xbar")

xbar chart for dados.xb

Summary of group statistics:


Min. 1st Qu. Median Mean 3rd Qu. Max.
7.090 7.097 7.104 7.101 7.105 7.110

Summary of group sample sizes:


sizes 2 3 4
counts 2 3 1

Number of groups: 6
Center of group statistics: 7.101765
Standard deviation: 0.01259172

Control limits:
LCL UCL
7.075054 7.128476
7.079955 7.123574

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 30
7.082877 7.120652
7.079955 7.123574
7.079955 7.123574
7.075054 7.128476

Figura 16. Gráfico Xbarra

xbar Chart
for dados.xb
7.13

UCL
7.12
Group summary statistics

7.11
7.10
7.09
7.08

LCL

1 2 3 4 5 6

Group

Number of groups = 6
Center = 7.101765 LCL is variable Number beyond limits = 0
StdDev = 0.01259172 UCL is variable Number violating runs = 0

Caso haja interesse em construir o gráfico Xbarra em função de k = 2, µY = 7 e


σY = 0,01, então tem-se o seguinte comando no R:

qcc(dados.xb, type=“xbar”, nsigmas=2, center=7, std.dev=0.01)

3.3. Gráfico CUSUM tabular para Monitorar a Variabilidade

Para construir o gráfico CUSUM tabular, deve-se utilizar o comando para


construir um dos gráficos R ou s de Shewhart, armazená-lo em um objeto, e construir
o gráfico utilizando este objeto. No R, o gráfico gerado é o CUSUM tabular
padronizado (tabela 8). Nele, os argumentos usados para especificar os parâmetros
são: std.dev, center, se.shift (δ) e decision.int (h*).

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 31
Tabela 8. Limites e CUSUMs tabulares padronizadas dos gráficos para variáveis com
monitoramento da variabilidade
Média e desvio padrão conhecidos Médias e desvio padrão
desconhecidos
LM 0 0
LC ±h* ±h*

 R i − µR   Ri − R 
SH(i)* máximo 0; − k ∗ + S H (i − 1) ∗  máximo 0; − k ∗ + S H (i − 1) ∗ 
 σR   SR 
 si − µS   si − s 
máximo 0; − k ∗ + S H (i − 1) ∗  máximo 0; − k ∗ + S H (i − 1) ∗ 
 σS   sS 
 µR − R i   R − Ri 
SL(i)* máximo 0; − k ∗ + S L (i − 1) ∗  máximo 0; − k ∗ + S L (i − 1) ∗ 
 σR   sR 

 µS − si   s − si 
máximo 0; − K * +S L (i − 1) * máximo 0; − K * +S L (i − 1) *
 σS   sS 

3.3.1. CUSUM tabular padronizada de R

Como exemplo, considere o objeto dados2.r utilizado para a construção do


gráfico R, em que foram coletadas seis amostras de tamanhos variáveis.
Para construir o gráfico CUSUM (figura 17) de R, h* = 5, δ = 1 (default) e do
valor alvo e do desvio padrão estimados com base nos dados, tem-se os seguintes
comandos no R:

dados.cusum.r<-qcc(dados2.r, type=“R”, plot=F)


# O argumento plot=F indica para não construir o gráfico r
re.cus.r<-cusum(dados.cusum.r) # Construir o gráfico CUSUM de R

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 32
Figura 17. Gráfico CUSUM tabular de R

Cusum Chart
for dados2.r
UDB
5
Above Target
4
3
Cumulative Sum
2
1
0
-1
Below Target
-2
-3
-4
-5

LDB

1 2 3 4 5 6

Group

Number of groups = 6 Decision boundaries (std. err.) = 5


Target = 0.02176471 Shift detection (std. err.) = 1
StdDev = 0.01259172 No. of points beyond boundaries = 0

re.cus.r$cusum # Ver os resultados referentes ao gráfico CUSUM de R


$x
[1] 1 2 3 4 5 6

$pos
[1] 0.0000000 0.0000000 0.8080496 0.0000000 2.0083521 0.1870225

$neg
[1] -0.8213296 -0.5640734 0.0000000 -1.1182917 0.0000000 -0.8213296

$decision.int
[1] 5

$se.shift
[1] 1

Caso haja interesse em construir o gráfico CUSUM tabular de R, com δ = 1,5,


h* = 4, µR = 0,02 e σR = 0,01, então tem-se:

dados.cusum.r<-qcc(dados2.r, type=“R”, center=0.02, std.dev=0.01, plot=F)


cusum(dados.cusum.r, se.shift=1.5, decision.int=4)

3.3.2. CUSUM tabular padronizada de s

Como exemplo, considere o objeto dados2.r e, para construir o gráfico CUSUM


(figura 18) em função de h* = 5 (default), δ = 1 (default) e do valor alvo e do desvio
padrão estimados com base nos dados, têm-se os seguintes comandos:

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 33
dados.cusum.s<-qcc(dados2.r, type=“S”, plot=F)
_ O argumento plot=F indica para não construir o gráfico s
re.cus.s<-cusum(dados.cusum.s) # Gerar o gráfico CUSUM de s

Figura 18. Gráfico CUSUM tabular de s

Cusum Chart
for dados2.r
UDB
5
Above Target
4
3
Cumulative Sum
2
1
0
-1
Below Target
-2
-3
-4
-5

LDB

1 2 3 4 5 6

Group

Number of groups = 6 Decision boundaries (std. err.) = 5


Target = 0.01101439 Shift detection (std. err.) = 1
StdDev = 0.01259172 No. of points beyond boundaries = 0

re.cus.s$cusum # Ver os resultados referentes ao gráfico CUSUM de s


$x
[1] 1 2 3 4 5 6

$pos
[1] 0.0000000 0.0000000 0.0000000 0.0000000 0.7360143 0.0000000

$neg
[1] 0.0000000 0.0000000 0.0000000 -0.2209086 0.0000000 0.0000000

$decision.int
[1] 5

$se.shift
[1] 1

Caso haja interesse em construir o gráfico CUSUM tabular de s, com δ = 1,5,


h* = 4, µs = 0,02 e σs = 0,01, então tem-se o seguinte comando:

dados.cusum.s<-qcc(dados2.r, type=“S”,center=0.02, std.dev=0.01, plot=F)


cusum(dados.cusum.s, se.shift=1.5, decision.int=4)

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 34
3.4. Gráfico CUSUM tabular para Monitorar a Média

Para construir o gráfico CUSUM tabular, deve-se utilizar o comando para


construir um dos gráficos x ou xbarra de Shewhart, armazená-lo em um objeto, e
construir o gráfico utilizando este objeto. No R, o gráfico gerado é o CUSUM tabular
padronizado (tabela 9). Nele, os argumentos usados para especificar os parâmetros
são: std.dev, center, se.shift (δ) e decision.int (h*).

Tabela 9. Limites e CUSUMs tabulares padronizados dos gráficos para variáveis com
monitoramento da média
Média e desvio padrão conhecidos Médias e desvio padrão
desconhecidos
LM 0 0
LC ±h* ±h*

 Yi − µ Y   Yi − Y 
SH(i)* máximo 0; − k ∗ + S H (i − 1) ∗  máximo 0; − k ∗ + S H (i − 1) ∗ 
 σY   sY 
 Yi − µY   Yi − Y 
máximo 0; − k ∗ + S H (i − 1) ∗  máximo 0; − k ∗ + S H (i − 1) ∗ 
 σY   sY 

 µ Y − Yi   Y − Yi 
SL(i)* máximo 0; − k ∗ + S L (i − 1) ∗  máximo 0; − k ∗ + S L (i − 1) ∗ 
 σY   sY 
 µY − Yi   Y − Yi 
máximo 0; − k ∗ + S L (i − 1) ∗  máximo 0; − k ∗ + S L (i − 1) ∗ 
 σY   sY 

3.4.1. CUSUM Tabular Padronizada da Medida Idividual

Como exemplo, considere o arquivo de dados “C:\Rdados\gc_x.csv” e o objeto


dados.xb utilizados para a construção do gráfico x, em que foram coletadas seis
amostras de um item.
Para construir o gráfico CUSUM da medida idividual (figura 19), h* = 5 (default),
δ = 1 (default) e do valor alvo e do desvio padrão estimados com base nos dados,
têm-se os seguintes comandos no R:

dados.cusum.x<-qcc(dados.x, type=“xbar.one”, plot=F)


_ O argumento plot=F indica para não construir o gráfico x

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 35
re.cus.x<-cusum(dados.cusum.x) # construir o gráfico CUSUM de x

Figura 19. Gráfico CUSUM tabular da medida individual

Cusum Chart
for dados.x
UDB
5
Above Target
4
3
Cumulative Sum
2
1
0
-1
Below Target
-2
-3
-4
-5

LDB

1 2 3 4 5 6

Group

Number of groups = 6 Decision boundaries (std. err.) = 5


Target = 7.098333 Shift detection (std. err.) = 1
StdDev = 0.0248227 No. of points beyond boundaries = 0

re.cus.x$cusum # Ver os resultados referentes ao gráfico CUSUM da medida


individual
$x
[1] 1 2 3 4 5 6

$pos
[1] 0.0000000 0.3728571 0.0000000 0.0000000 0.0000000 0.0000000

$neg
[1] 0.00000000 0.00000000 0.00000000 0.0000000 -0.64142857 -0.07428571

$decision.int
[1] 5

$se.shift
[1] 1

Caso haja interesse em construir o gráfico CUSUM tabular da medida


individual, com δ = 1,5, h* = 4, µY = 7 e σY = 0.01, tem-se:

dados.cusum.x<-qcc(dados.x, type=“xbar.one”, center=7, std.dev=0.01, plot=F)


cusum(dados.cusum.x, se.shift=1.5, decision.int=4)

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 36
3.4.2. CUSUM Tabular Padronizada da Média

Como exemplo, considere o arquivo de dados “C:\Rdados\gc_xb.csv” e o


objeto dados.xb utilizados para a construção do gráfico Xbarra, em que foram
coletadas seis amostras de tamanhos variáveis.
Para construir o gráfico CUSUM da média (figura 20), h* = 5 (default), δ = 1
(default) e do valor alvo e do desvio padrão estimados com base nos dados, têm-se os
seguintes comandos no R:

dados.cusum.xbar<-qcc(dados.xb, type=“xbar”, plot=F)


# O argumento plot=F indica para não construir o gráfico Xbarra
re.cus.xbar<-cusum(dados.cusum.xbar) # construir o gráfico CUSUM da média

Figura 20. Gráfico CUSUM tabular da média

Cusum Chart
for dados.xb
UDB
5
Above Target
4
3
Cumulative Sum
2
1
0
-1
Below Target
-2
-3
-4
-5

LDB

1 2 3 4 5 6

Group

Number of groups = 6 Decision boundaries (std. err.) = 5


Target = 7.101765 Shift detection (std. err.) = 1
StdDev = 0.01259172 No. of points beyond boundaries = 0

re.cus.xbar$cusum # Ver os resultados referentes ao gráfico CUSUM da média


$x
[1] 1 2 3 4 5 6

$pos
[1] 0.0000000 0.6328042 0.6466808 0.3624530 0.0000000 0.0000000

$neg
[1] -0.2597645 0.0000000 0.0000000 0.0000000 -1.1182917 -0.2549260

$decision.int
[1] 5

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 37
$se.shift
[1] 1

Caso haja interesse em construir o gráfico CUSUM tabular da média, com δ =


1,5, h* = 4, µY = 7 e σY = 0,01, tem-se:

dados.cusum.xbar<-qcc(dados.xb, type=“xbar”, center=7, std.dev=0.01, plot=F)


cusum(dados.cusum.xbar, se.shift=1.5, decision.int=4)

3.5. Gráfico EWMA para Monitorar a Variabilidade

Para construir o gráfico EWMA (tabela 10), deve-se utilizar o comando para
construir um dos gráficos R ou s de Sherwhart, armazená-lo em um objeto e construir
o gráfico utilizando este objeto.

Tabela 10. Limites dos gráficos EWMAs para variáveis com monitoramento da
variabilidade
Média e desvio padrão conhecidos Média e desvio padrão
desconhecidos
R S R s
LM µR µs R s
LC µR ± kσWi µs ± kσWi R ± ksWi s ± ksWi

σWi = σR 
λ 
[
 1 − (1 − λ )
2−λ
2i
] sWi = sR 
λ 
[
 1 − (1 − λ )
2−λ
2i
]
σWi = σs 
λ 
[
 1 − (1 − λ )
2−λ
2i
] sWi = ss 
λ 
[
 1 − (1 − λ )
2−λ
2i
]

Na tabela 10, W i é definido para os gráficos R e S, respectivamente, por:


Wi = λRi + (1 − λ) Ri − 1;
Wi = λsi + (1 − λ) si − 1;

No gráfico EWMA, os argumentos que podem ser usados para especificar os


parâmetros são: center, std.dev, nsigmas e lambda.

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 38
3.5.1. EWMA de R

Com base no objeto dados2.r, para construir o gráfico EWMA de R (figura 21),
λ = 0,2 (default) e do valor alvo e do desvio padrão estimados com base nos dados,
têm-se os seguintes comandos no R:

dados.ewma.r<-qcc(dados2.r, type=“R”, plot=F)


re.ewma.r<-ewma(dados.ewma.r) # Construir o gráfico EWMA de R

Figura 21. Gráfico EWMA de R

EWMA Chart
for dados2.r
0.040
Group Summary Statistics

0.030
0.020
0.010

1 2 3 4 5 6

Group

Number of groups = 6 Smoothing parameter = 0.2


Target = 0.02176471 Control limits at 3*sigma
StdDev = 0.01259172

re.ewma.r$ewma # Ver os resultados referentes ao gráfico EWMA de R


$x
[1] 1 2 3 4 5 6

$y
1 2 3 4 5 6
0.01941176 0.01952941 0.02162353 0.01929882 0.02343906 0.02075125

$sigma
1 2 3 4 5
6
0.001780737 0.001861985 0.001802683 0.002210671 0.002289485
0.002864105

$nsigmas
[1] 3

$limits
LCL UCL
1 0.01642249 0.02710692

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 39
2 0.01617875 0.02735066
3 0.01635666 0.02717276
4 0.01513269 0.02839672
5 0.01489625 0.02863316
6 0.01317239 0.03035702

E para construí-lo em função de λ = 0,25, k = 2, µR = 0,02 e σR = 0,01, têm-se:

dados.emwa.r<-qcc(dados2.r, type=“R”, center=0.02, std.dev=0.01, plot=F)


re.ewma.r<-ewma(dados.ewma.r, nsigmas=2, lambda=0.25)

3.5.2. EWMA de s

Com base no objeto dados2.r, para construir o gráfico EWMA de s, λ = 0,2


(default) e do valor alvo e do desvio padrão estimados com base nos dados, têm-se os
seguintes comandos no R:

dados.ewma.s<-qcc(dados2.r, type=“S”, plot=F)


re.ewma.s<-ewma(dados.ewma.s) # Construir o gráfico EWMA de s

Figura 22. Gráfico EWMA de s

EWMA Chart
for dados2.r
0.020
Group Summary Statistics

0.015
0.010
0.005

1 2 3 4 5 6

Group

Number of groups = 6 Smoothing parameter = 0.2


Target = 0.01101439 Control limits at 3*sigma
StdDev = 0.01259172

re.ewma.s$ewma # Ver os resultados referentes ao gráfico EWMA de s


$x
[1] 1 2 3 4 5 6

$y

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 40
1 2 3 4 5
6
0.010225722 0.010180578 0.010726451 0.009735861 0.011788689
0.010845165

$sigma
1 2 3 4 5
6
0.001780737 0.001861985 0.001802683 0.002210671 0.002289485
0.002864105

$nsigmas
[1] 3

$limits
LCL UCL
1 0.005672173 0.01635660
2 0.005428431 0.01660034
3 0.005606336 0.01642244
4 0.004382372 0.01764640
5 0.004145932 0.01788284
6 0.002422071 0.01960670

E para construí-lo em função de λ = 0,25, k = 2, µs = 0,02 e σs = 0,01, têm-se:

dados.emwa.s<-qcc(dados2.r, type=“S”, center=0.02, std.dev=0.01, plot=F)


re.ewma.s<-ewma(dados.ewma.s, nsigmas=2, lambda=0.25)

3.6. EWMA para Monitorar a Média

Para construir o gráfico EWMA (tabela 11), deve-se utilizar o comando para
construir um dos gráficos x ou Xbarra de Sherwhart, armazená-lo em um objeto e
construir o gráfico utilizando este objeto.

Tabela 11. Limites dos gráficos EWMAs para variáveis com monitoramento da média
Média e desvio padrão conhecidos Média e desvio padrão
desconhecidos
x Xbarra x Xbarra
LM µY µY Y Y
LC µY ± kσWi µY ± kσWi Y ± ksWi Y ± ksWi

σWi = σY 
λ 
[
 1 − (1 − λ )
2−λ
2i
] sWi = sY 
λ 
[
 1 − (1 − λ )
2−λ
2i
]
σWi = σ
Y
 λ 

 2 − λ 
[
 1 − (1 − λ )
2i
] sWi = s
Y
 λ 

 2 − λ 
[
 1 − (1 − λ )
2i
]

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 41
Na tabela 11, W i é definido para os gráficos x e X , respectivamente, por:
Wi = λyi + (1 − λ)yi −1;

Wi = λ Y i −1 + (1 − λ) Y i −1 .

3.6.1. EWMA da Medida Individual

Como exemplo, considere o arquivo de dados utilizados para a construção do


gráfico x, em que foram coletadas seis amostras de tamanhos variáveis (figura 23). O
arquivo de dados a ser utilizado é “C:\Rdados\gc_x.csv” e o objeto é dados.x. No R,
têm-se os seguintes comandos, para k = 3 (default), λ = 0,2 (default) e o valor alvo e o
desvio padrão estimados com base nos dados:

dados.ewma.x<-qcc(dados.x, type=“xbar.one”, plot=F)


re.ewma.x<-ewma(dados.ewma.x) # Construir o gráfico EWMA da medida individual

Figura 23. Gráfico EWMA da medida individual

EWMA Chart
for dados.x
7.12
7.11
Group Summary Statistics

7.10
7.09
7.08
7.07

1 2 3 4 5 6

Group

Number of groups = 6 Smoothing parameter = 0.2


Target = 7.098333 Control limits at 3*sigma
StdDev = 0.0248227

re.ewma.x$ewma #Ver os resultados referentes ao gráfico EWMA da medida


individual
$x
[1] 1 2 3 4 5 6

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 42
$y
1 2 3 4 5 6
7.098667 7.102933 7.100347 7.102277 7.095822 7.096657

$sigma
1 2 3 4 5
0.004964539 0.006357712 0.007107445 0.007548294 0.007817401
6
0.007984872

$nsigmas
[1] 3

$limits
LCL UCL
1 7.083440 7.113227
2 7.079260 7.117406
3 7.077011 7.119656
4 7.075688 7.120978
5 7.074881 7.121786
6 7.074379 7.122288

Caso haja interesse em construir o gráfico EWMA da medida individual em


função de k = 2, λ = 0,25, µY = 7 e σY = 0,01, então tem-se:

dados.ewma.x<-qcc(dados.x, type=“xbar.one”, center=7, std.dev=0.01, plot=F)


re.ewma.x<-ewma(dados.ewma.x, lambda=0.25, nsigmas=2)

3.6.2. EWMA da Média

Como exemplo, considere o arquivo de dados utilizados para a construção do


gráfico Xbarra, em que foram coletadas seis amostras de tamanhos variáveis (figura
24). O arquivo de dados a ser utilizado é “C:\Rdados\gc_xb.csv” e o objeto é dados.xb.
No R, têm-se os seguintes comandos, para k = 3 (default), λ = 0,2 (default) e o valor
alvo e o desvio padrão estimados com base nos dados:

dados.ewma.xbar<-qcc(dados.xb, type=“xbar”, plot=F)


re.ewma.xbar<-ewma(dados.ewma.xbar) # Construir o gráfico EWMA da média

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 43
Figura 24. Gráfico EWMA da média

EWMA Chart
for dados.xb
7.110
7.105
Group Summary Statistics

7.100
7.095
7.090

1 2 3 4 5 6

Group

Number of groups = 6 Smoothing parameter = 0.2


Target = 7.101765 Control limits at 3*sigma
StdDev = 0.01259172

re.ewma.xbar$ewma # Ver os resultados referentes ao gráfico EWMA da média


$x
[1] 1 2 3 4 5 6

$y
1 2 3 4 5 6
7.100412 7.102329 7.102864 7.102957 7.100366 7.101293

$sigma
1 2 3 4 5
0.001780737 0.001861985 0.001802683 0.002210671 0.002289485
6
0.002864105

$nsigmas
[1] 3

$limits
LCL UCL
1 7.096422 7.107107
2 7.096179 7.107351
3 7.096357 7.107173
4 7.095133 7.108397
5 7.094896 7.108633
6 7.093172 7.110357

Caso haja interesse em construir o gráfico EWMA da média em função de k =


2, λ = 0,25, µY = 7 e σY = 0,01, então tem-se:

dados.ewma.xbar<-qcc(dados.xb, type=“xbar”, center=7, std.dev=0.01, plot=F)


re.ewma.xbar<-ewma(dados.ewma.xbar, lambda=0.25, nsigmas=2)

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 44
4. Capacidade de Processo

Na capacidade de processo, os argumentos que podem ser usados para


especificar os parâmetros são: spec.limits, target e std.dev. O argumento spec.limits é
obrigatório. Caso o valor alvo (target) não seja fornecido, este será calculado pela
média dos limites. No R, deve-se utilizar o comando para construir o gráfico Xbarra de
Sherwhart, armazená-lo em um objeto e construir o gráfico utilizando este objeto.
Como exemplo considere o objeto dados.xb utilizado na construção do gráfico
Xbarra, onde foram coletadas seis amostras de tamanhos variáveis (figura 25). A
estimativa da capacidade de processo com LIC = 7,05 e LSC = 7,15, com o desvio
padrão e o valor alvo estimados, têm-se os seguintes comandos no R:

dados.cp<-qcc(dados.xb,type=“xbar”)
process.capability(dados.cp, spec.limits=c(7.05, 7.15))
Process Capability Analysis

Call:
process.capability(object = dados.cp, spec.limits = c(7.05, 7.15),
target = 7.1)

Number of obs = 17 Target = 7.1


Center = 7.101765 LSL = 7.05
StdDev = 0.01259172 USL = 7.15

Capability indices:

Value 2.5% 97.5%


Cp 1.324 0.8697 1.777
Cp_l 1.370 0.9503 1.790
Cp_u 1.277 0.8825 1.671
Cp_k 1.277 0.8070 1.747
Cpm 1.311 0.8703 1.751

Exp<LSL 0% Obs<LSL 0%
Exp>USL 0% Obs>USL 0%

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 45
Figura 25. Gráfico da capacidade de processo

Process Capability Analysis


for dados.xb
LSL Target USL

7.04 7.06 7.08 7.10 7.12 7.14 7.16

Number of obs = 17 Target = 7.1 Cp = 1.32 Exp<LSL 0%


Center = 7.101765 LSL = 7.05 Cp_l = 1.37 Exp>USL 0%
StdDev = 0.01259172 USL = 7.15 Cp_u = 1.28 Obs<LSL 0%
Cp_k = 1.28 Obs>USL 0%
Cpm = 1.31

Caso haja interesse em fazer a capacidade de processo com LIC = 7,05, LSC =
7,13, µY = 1,10 e σY = 0,01, têm-se:

dados.cp<-qcc(dados.xb,type=“xbar”)
process.capability(dados.cp, spec.limits=c(7.05, 7.13), target=7.1, std.dev=0.01)

Capítulo 4 – Gráficos de Controle Gustavo Mello Reis José Ivo Ribeiro Júnior 46
Capítulo 5

Modelos de Confiabilidade

Gustavo Mello Reis


José Ivo Ribeiro Júnior

Universidade Federal de Viçosa


Departamento de Informática
Setor de Estatística

Viçosa 2007

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 1
1. Introdução

Nesse estudo, serão abordadas as funções de confiabilidade [R(t)], de


desconfiabilidade [F(t)], densidade de probabilidade [f(t)] e de taxa de falha [h(t)],
estimadas a partir de modelos não paramétricos ou paramétricos.
A análise de confiabilidade, no R, é realizada por meio do pacote survival, que
após instalado, deverá ser ativado com o comando library(survival).

2. Estimação Não Paramétrica

O estimador não paramétrico é aquele, para o qual não há a necessidade de


especificar uma distribuição para a variável tempo de falha (T), podendo ser utilizado
na ausência ou na presença de censuras.

2.1. Estimador de Kaplan-Meier

Como exemplo, considere os dados contidos na tabela 1, onde o ensaio


terminou quando 45 itens haviam falhados. Como pode ser observado, o R reconhece
o número 1 como sendo falha e o número 0 (zero) como sendo censura. Do mesmo
modo, outros indicadores podem ser usados, como exemplo, T (falha) e F (censura).

Tabela 1. Dados dos tempos (h) de falhas


tempo tipo tempo tipo tempo tipo tempo tipo
151 1 727 1 1329 1 2729 0
164 1 785 1 1334 1 2729 0
336 1 801 1 1379 1 2729 0
365 1 811 1 1380 1 2729 0
403 1 816 1 1633 1 2729 0
454 1 867 1 1769 1 2729 0
455 1 893 1 1827 1 2729 0
473 1 930 1 1831 1 2729 0
538 1 937 1 1849 1 2729 0
577 1 976 1 2016 1 2729 0
592 1 1008 1 2282 1 2729 0
628 1 1040 1 2415 1 2729 0
632 1 1051 1 2430 1 2729 0

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 2
647 1 1060 1 2686 1 2729 0
675 1 1183 1 2729 1 2729 0

A forma como os dados estão, apresentados é apenas ilustrativa. Ao entrar


com os dados no R, deve-se organizá-los em duas colunas, uma contendo o tempo e
a outra contendo o tipo de falha. Desse modo os dados foram organizados no arquivo
“conf.csv”, que será lido da seguinte forma:

dados.conf<-read.csv2(“conf.csv”, dec= “.”)


attach(dados.conf)

As estimativas de confiabilidades de Kaplan-Meier, são obtidas da seguinte


forma:

mod.np<-survfit(Surv(tempo, tipo))

summary(mod.np) # Resumo do modelo ( coluna survival = R̂ (t) )


Call: survfit(formula = Surv(tempo, tipo))

time n.risk n.event survival std.err lower 95% CI upper 95% CI


151 60 1 0.983 0.0165 0.951 1.000
164 59 1 0.967 0.0232 0.922 1.000
336 58 1 0.950 0.0281 0.896 1.000
365 57 1 0.933 0.0322 0.872 0.999
403 56 1 0.917 0.0357 0.849 0.989
454 55 1 0.900 0.0387 0.827 0.979
455 54 1 0.883 0.0414 0.806 0.968
473 53 1 0.867 0.0439 0.785 0.957
538 52 1 0.850 0.0461 0.764 0.945
577 51 1 0.833 0.0481 0.744 0.933
592 50 1 0.817 0.0500 0.724 0.921
628 49 1 0.800 0.0516 0.705 0.908
632 48 1 0.783 0.0532 0.686 0.895
647 47 1 0.767 0.0546 0.667 0.882
675 46 1 0.750 0.0559 0.648 0.868
727 45 1 0.733 0.0571 0.630 0.854
785 44 1 0.717 0.0582 0.611 0.840
801 43 1 0.700 0.0592 0.593 0.826
811 42 1 0.683 0.0601 0.575 0.812
816 41 1 0.667 0.0609 0.557 0.797

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 3
867 40 1 0.650 0.0616 0.540 0.783
893 39 1 0.633 0.0622 0.522 0.768
930 38 1 0.617 0.0628 0.505 0.753
937 37 1 0.600 0.0632 0.488 0.738
976 36 1 0.583 0.0636 0.471 0.722
1008 35 1 0.567 0.0640 0.454 0.707
1040 34 1 0.550 0.0642 0.437 0.691
1051 33 1 0.533 0.0644 0.421 0.676
1060 32 1 0.517 0.0645 0.405 0.660
1183 31 1 0.500 0.0645 0.388 0.644
1329 30 1 0.483 0.0645 0.372 0.628
1334 29 1 0.467 0.0644 0.356 0.612
1379 28 1 0.450 0.0642 0.340 0.595
1380 27 1 0.433 0.0640 0.324 0.579
1633 26 1 0.417 0.0636 0.309 0.562
1769 25 1 0.400 0.0632 0.293 0.545
1827 24 1 0.383 0.0628 0.278 0.528
1831 23 1 0.367 0.0622 0.263 0.511
1849 22 1 0.350 0.0616 0.248 0.494
2016 21 1 0.333 0.0609 0.233 0.477
2282 20 1 0.317 0.0601 0.218 0.459
2415 19 1 0.300 0.0592 0.204 0.442
2430 18 1 0.283 0.0582 0.189 0.424
2686 17 1 0.267 0.0571 0.175 0.406
2729 16 1 0.250 0.0559 0.161 0.388

Para a construção do gráfico de R(t) em função de t, em forma de escada,


deve-se utilizar o comando plot da seguinte forma:

plot(mod.np, main= “Estimativas de Kaplan-Meier”, ylab= “R(t)”, xlab= “t”)

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 4
Figura 1. Estimativas de confiabilidade de Kaplan-Meier

1.0
0.8
0.6 Estimativas de Kaplan-Meier
R(t)

0.4
0.2
0.0

0 500 1000 1500 2000 2500

3. Estimação Paramétrica

Embora exista uma série de distribuições de probabilidades utilizadas nas


análise de dados de confiabilidade, apenas algumas delas (normal, log-normal,
exponencial e de Weibull), por serem adequadas a várias situações práticas, serão
estudadas. Por isso é importante entender que cada modelo pode gerar estimadores
diferentes para o mesmo parâmetro desconhecido. Desta forma, a escolha de um
modelo adequado para descrever o tempo de falha deve ser feita com bastante
cuidado.

3.1. Método de Mínimos Quadrados

O método de mínimos quadrados (least squares method) permite obter


estimativas dos parâmetros para modelos que podem ser linearizados, cujos dados
podem ser completos (não há censuras) ou com poucas censuras.
Assim, após a obtenção dos tempos de falhas (t), a função de confiabilidade
[R(t) = 1–F(t)] deve ser linearizada e plotada no eixo y, sendo o eixo x constituído
pelos tempos de falhas ou pelos logaritmos naturais dos tempos de falhas.
Posteriormente, uma equação de regressão linear é ajustadas aos pontos plotados no
gráfico, onde as estimativas de mínimos quadrados são obtidas com base na

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 5
minimização da soma de quadrados das distâncias dos pontos em relação à reta
ajustada.
Esse método também pode ser chamado de posição da regressão em Y (rank
regression on Y), pois as estimativas dos parâmetros são baseadas na funçãop de
desconfiabilidade estimada [S(t)] obtida com base no cálculo da posição da mediana
ou da média ou de Kaplan-Meier modificado ou não.
Para o cálculo de S(t), considere que os valores da amostra t1, t2, ..., tr, tr+1, ...,
tn, arranjados em ordem crescente, onde ti é o tempo de falha de ordem i observado.
Assim, t1 é o menor tempo e tr é o maior tempo de falha de n observações que
falharam ou censuraram. Neste caso, podem ser usados quaisquer um dos quatro
métodos mencionados:
i − 0,3
S(ti) = (posição da mediana segundo Bernard);
n + 0,4
i
S(ti) = (posição da média segundo Herd-Johnson);
n +1
i − 0,5
S(ti) = (posição de Kaplan-Meier modificado por Hazen);
n
i
S(ti) = (posição de Kaplan-Meier).
n

Para calcular S(ti) no R, utiliza-se o comando ppoints(n, a) onde “n” indica o


número total de observações e “a” recebe valores que irão indicar o método a ser
utilizado. Para a = 0.3, utiliza-se o primeiro método, para a = 0, utiliza-se o segundo
método e para a = 0.5, utiliza-se o terceiro método.
Se yi = β0 + β1xi + ei, então as estimativas de mínimos quadrados dos
parâmetros β0 e β1 são dadas por:

β̂ 0 = Y – βˆ 1X ;
r r

r ∑X ∑Y i i

∑X Y
i =1
i i − i =1

r
i =1

β̂1 = 2
.
 r 
r
 ∑ Xi 
∑ X i2 −  i =1 
i =1 r

Assim, a equação da regressão estimada é dada por:

ŷ i = βˆ 0 + βˆ 1 x i .

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 6
Como exemplo para todas as distribuições estudadas, considere os dados
contidos no arquivo “mquad.csv” que possui nove falhas e uma censura. O arquivo de
dados será lido da seguinte forma:

dados.mq<-read.csv2(“mquad.csv”,dec=”.”)
dados.mq
tempo tipo
10 1
25 1
35 1
45 1
50 1
55 1
65 1
75 1
90 1
90 0
attach(dados.mq)

3.1.1. Distribuição Normal

De acordo com o modelo normal, têm-se:

yi = Φ-1[S(ti)];
xi = ti;

T = – β̂ 0 sT (estimador de µT);

1
sT = (estimador de σT).
βˆ 1
Para calcular S(ti) pelo método da posição da mediana segundo Bernard, no R,
tem-se:

s.t<-ppoints(10, 0.3)
s.t
[1] 0.06730769 0.16346154 0.25961538 0.35576923 0.45192308 0.54807692
[7] 0.64423077 0.74038462 0.83653846 0.93269231

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 7
O último valor (0,9326931) deve ser desconsiderado, pois se refere à censura.
Para eliminar o último valor de s.t e calcular yi no R, tem-se:

s.t<-s.t[1:9]
Ynorm<-qnorm(s.t)
Ynorm
[1]-1.4961469 -0.9803304 -0.6445316 -0.3697907 -0.1208042 0.1208042
[7] 0.3697907 0.6445316 0.9803304

Com esses dados, são obtidos os valores de S(ti) e yi (tabela 2).

Tabela 2. Dados da distribuição normal


tempo tipo S(ti) Yi
10 1 0.06730769 -1.4961469
25 1 0.16346154 -0.9803304
35 1 0.25961538 -0.6445316
45 1 0.35576923 -0.3697907
50 1 0.45192308 -0.1208042
55 1 0.54807692 -0.1208042
65 1 0.64423077 0.3697907
75 1 0.74038462 0.6445316
90 1 0.83653846 0.9803304
90 0 -- --

Para estimar β 0 e β 1 , será criado um vetor no R contendo os valores de

tempo (excluindo o tempo correspondente à censura) e depois será feita a regressão


de Y em função do tempo, da seguinte forma:

tempo.f<-c(10,25,35,45,50,55,65,75,90)
mod.norm<-lm(Ynorm~tempo.f)
summary(mod.norm)
Call:
lm(formula = Ynorm ~ tempo.f)

Residuals:

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 8
Min 1Q Median 3Q Max
-0.124934 -0.044614 -0.001480 0.045434 0.128105

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.755617 0.061971 -28.33 1.76e-08 ***
tempo.f 0.031788 0.001122 28.33 1.76e-08 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.07895 on 7 degrees of freedom


Multiple R-Squared: 0.9914, Adjusted R-squared: 0.9901
F-statistic: 802.5 on 1 and 7 DF, p-value: 1.756e-08

Como pode ser observado β̂ 0 = −1.755617 e β̂1 = 0.031788. Assim a estimativa

dos parâmetros σT e µT, sendo calculadas da seguinte forma:

dp<- 1/0.031788
dp
[1] 31.45841
m<- -(-1.755617*dp)
m
[1] 55.22892

Portanto, a estimativa da função de confiabilidade é dada por:

ˆ  t − 55,22892  .
R̂ = 1 - Φ
 31,45841 

3.1.2. Distribuição Log-normal

De acordo com o modelo log-normal, têm-se:


yi = Φ-1[S(ti)];
xi = yi = ln(ti);

Y = – β̂ 0 sY (estimador de µY);

1
sY = (estimador de σY), em que Y= ln(T).
β̂1

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 9
Como S(ti) e yi já foram calculados anteriormente, o vetor xi = ln(ti) será obtido
da seguinte forma no R:

X<-log(tempo.f)

Para estimar µY e σY, será montado o modelo e depois será utilizado a função

summary para obter os estimadores β̂ 0 e β̂1 , da seguinte forma:

mod.ln<-lm(Y~X)
summary(mod.ln)
Call:
lm(formula = Y ~ X)

Residuals:
Min 1Q Median 3Q Max
-0.2623950 -0.2041550 -0.0001219 0.1707134 0.3225779

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -4.4386 0.4918 -9.025 4.19e-05 ***
X 1.1378 0.1292 8.809 4.90e-05 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.2442 on 7 degrees of freedom


Multiple R-Squared: 0.9173, Adjusted R-squared: 0.9054
F-statistic: 77.59 on 1 and 7 DF, p-value: 4.904e-05

Como pode ser observado, β̂ 0 = -4,4386 e β̂1 = 1,1378. Assim, as estimativas

dos parâmetros µY e σY, serão calculadas da seguinte forma:

sy<- 1/1.1378
sy
[1] 0.878889
my<- -(-4.4386*sy)
my
[1] 3.901037

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 10
Portanto, a estimativa da função de confiabilidade é dada por:

ˆ  t − 3,901037 
R̂ = 1 - Φ
 0,878889 

3.1.3. Distribuição Exponencial

De acordo com o modelo exponencial, têm-se:


yi = ln{–ln[1–S(ti)]};
xi = ln(ti);

α̂ = e −β0 (estimador de α).


ˆ

Como S(ti) e xi já foram calculados anteriormente, yi = ln{-ln[1-S(ti)]} será


calculado da seguinte forma:

Yexp<- log(-log(1-s.t))

O estimador β̂ 0 é calculado da seguinte forma:

B0<-mean(Yexp)-1*mean(X)
B0
[1] -4.446482

Assim a estimativa do parâmetro α será calculada da seguinte forma:

exp(-B0)
[1] 85.3262

Portanto, a estimativa da função de confiabilidade é dada por:


t
-
R̂ = e 85,3262

3.1.4. Distribuição de Weibull

De acordo com o modelo de Weibull, têm-se:


yi = ln{–ln[1–S(ti)]};
xi = ln(ti);

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 11
βˆ 0

βˆ 1
αˆ = e (estimador de α);

δˆ = βˆ 1 (estimador de δ).
Como S(ti), yi e xi, já foram calculados anteriormente, para obter os

estimadores β̂ 0 e β̂1 , será montado o seguinte modelo:

mod.wei<-lm(Yexp~X)
summary(mod.wei)
Call:
lm(formula = Yexp ~ X)

Residuals:

Min 1Q Median 3Q Max


-0.21048 -0.20471 0.07452 0.12877 0.25266

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -6.44400 0.37820 -17.04 5.88e-07 ***
X 1.53197 0.09933 15.42 1.16e-06 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1878 on 7 degrees of freedom


Multiple R-Squared: 0.9714, Adjusted R-squared: 0.9673
F-statistic: 237.9 on 1 and 7 DF, p-value: 1.163e-06

Como pode ser observado, β̂ 0 = -6,44400 e β̂1 = 1,53197. Como δˆ = βˆ 1 , logo:

δ̂ = 1,53197. Já a estimativa do parâmetro α será calculada da seguinte forma:

al<-exp(6.444 / 1.53197)
al
[1] 67.11105

Portanto, a estimativa da função de confiabilidade em dada por:


1,53197
 t 
- 
R̂ = e  67,111049 

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 12
3.2. Método de Máxima Verossimilhança

O método de máxima verossimilhança (maximum likelihood) permite obter


estimativas dos parâmetros para modelos que podem ou não ser linearizados, cujos
dados podem ser completos ou com presenças de censuras, sendo o mais
recomendado para a aplicação em dados provenientes de falhas e de censuras que
ocorrem ao longo do tempo.
A função existente no R responsável por estimar os parâmetros por este
método (survreg), exige que seja criado um outro vetor de valores. Como essa outra
variável não tem interesse no momento, será criado um vetor com valores constantes,
para que este não tenha nenhuma influência no resultado.
Como exemplo para todas as distribuições, considere os dados contidos no
arquivo “estpara.csv” que possui nove falhas e uma censura. A variável x = 1 é
utilizada somente com o objetivo de se ter uma variável regressora. O arquivo de
dados será lido da seguinte forma:

dados.para<-read.csv2(“estpara.csv”,dec=”.”)
dados.para
tempo tipo x
10 1 1
25 1 1
35 1 1
45 1 1
50 1 1
55 1 1
65 1 1
75 1 1
90 1 1
90 0 1
attach(dados.para)

3.2.1. Distribuição Normal

Primeiro, deve-se montar o modelo da seguinte forma:

mod.norm<-survreg(Surv(tempo,tipo) ~ x, dist = “gaussian”)

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 13
Para ver as estimativas, deve-se usar a função summary. A média estimada
está no item “Intercept” e o desvio padrão estimado no item “Scale”.

summary(mod.norm)
Call:
survreg(formula = Surv(tempo, tipo) ~ x, dist = "gaussian")
Value Std. Error z p
(Intercept) 55.32 8.822 6.27 3.60e-10
x 0.00 0.000 NaN NaN
Log(scale) 3.32 0.242 13.71 8.28e-43

Scale= 27.6

Gaussian distribution
Loglik(model)= -43.8 Loglik(intercept only)= -43.8
Chisq= 0 on 1 degrees of freedom, p= 1
Number of Newton-Raphson Iterations: 3
n= 10

Como pode-se observar, os estimadores de máxima verossimilhança T =


55,32 e sT = 27,6, são relativamente próximos aos de mínimos quadrados.

3.2.2. Distribuição Log-Normal

Do mesmo modo, deve-se montar o modelo da seguinte forma:

mod.lnorm<-survreg(Surv(tempo,tipo) ~ x, dist= “lognormal”)


summary(mod.lnorm)
Call:
survreg(formula = Surv(tempo, tipo) ~ x, dist = "lognormal")
Value Std. Error z p
(Intercept) 3.867 0.222 17.42 5.45e-68
x 0.000 0.000 NaN NaN
Log(scale) -0.366 0.241 -1.52 1.28e-01

Scale= 0.693

Log Normal distribution


Loglik(model)= -44.3 Loglik(intercept only)= -44.3

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 14
Chisq= 0 on 1 degrees of freedom, p= 1
Number of Newton-Raphson Iterations: 3
n= 10

Os estimadores de máxima verossimilhança Y = 3,867 e sY = 0,693 (Y=lnT),


são relativamente próximos aos de mínimos quadrados.

3.2.3. Distribuição Exponencial

Neste caso, deve-se aplicar o exponencial no parâmetro estimado pelo R (item


Intercept), para se obter a estimativa da média.

mod.exp<-survreg(Surv(tempo,tipo) ~ x, dist= “exponential”)


summary(mod.exp)
Call:
survreg(formula = Surv(tempo, tipo) ~ x, dist = "exponential")
Value Std. Error z p
(Intercept) 4.09 0.333 12.3 1.12e-34
x 0.00 0.000 NaN NaN

Scale fixed at 1

Exponential distribution
Loglik(model)= -45.8 Loglik(intercept only)= -45.8
Chisq= 0 on 1 degrees of freedom, p= 1
Number of Newton-Raphson Iterations: 4
n= 10

exp(4.09) # Aplicando o exponencial para obter α̂


[1] 59.73989
Na estimação por mínimos quadrados, obteve-se α̂ =85,3262.
3.2.4. Distribuição de Weibull

Assim como para a distribuição exponencial, deve-se aplicar o exponencial no


parâmetro estimado pelo R (item Intercept), para se obter a estimativa do parâmetro α,
e o inverso (item Scale), para se obter a estimativa do parâmetro δ.

mod.wei<-survreg(Surv(tempo,tipo) ~ x, dist= “weibull”)

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 15
summary(mod.wei)
Call:
survreg(formula = Surv(tempo, tipo) ~ x, dist = "weibull")
Value Std. Error z p
(Intercept) 4.142 0.168 24.7 2.25e-134
x 0.000 0.000 NaN NaN
Log(scale) -0.703 0.281 -2.5 1.25e-02

Scale= 0.495

Weibull distribution
Loglik(model)= -43.5 Loglik(intercept only)= -43.5
Chisq= 0 on 1 degrees of freedom, p= 1
Number of Newton-Raphson Iterations: 6
n= 10
exp(4.142) # Aplicando o exponencial para obter α̂
[1] 62.92855

1/0,495 # Aplicando a divisão para obter δ̂


[1] 2.020202

Na estimação por mínimos quadrados, obteve-se α̂ = 67,111049 e δ̂ =


1,53197.

4. Distribuições

4.1. Distribuição Normal

Se a variável T (tempo de falha) tem distribuição normal com os parâmetros


média µT e desvio padrão σT, a sua função densidade de probabilidade é dada por:
2
1  t -µ T 
− ⋅ 
1 2  σT
f(t) = e 
σ T 2π , para µT > 0, t > 0 e σT > 0.

Deste modo, uma representação para este caso é dada por: T ~ N (µT, σ T ). Na
2

figura 2, são apresentadas as formas de duas funções densidades de probabilidades,


para os parâmetros de µT1 = 100 e σT1 = 10 referentes ao produto 1 e de µT2 = 120 e
σT2 = 20 referentes ao produto 2.

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 16
Como pode-se observar na figura 4.2, o produto 2 é melhor que o produto 1 em
termos de durabilidade. Para os produtos 1 e 2, existe uma probabilidade de 0,5 para
os itens falharem antes dos tempos t = 100 e t = 120, respectivamente.
No R, o gráfico será construído da seguinte forma:

plot(function(t){dnorm(t,mean=100,sd=10)},xlim=c(0,180),ylab=“f(t)”,xlab=“t”,lty=1)
plot(function(t){dnorm(t, mean=120,sd=20)},xlim=c(0,180),add=T, lty=2)
legend(“topright”, c(“p1”,“p2”), lty=c(1,2)) # Legenda

Figura 2. Funções densidades de probabilidades da distribuição normal

A função de distribuição acumulada ou de desconfiabilidade da variável T é


dada por:

t−µ 
F(t) = Φ T

 σT 
Na figura 3, são apresentadas as formas das duas funções de
desconfiabilidades, referentes aos produtos 1 e 2.
No R, o gráfico será construído da seguinte forma:

plot(function(t) {pnorm(t,mean=100,sd=10)}, xlim=c(0,180), ylab=“F(t)”, xlab=“t”, lty=1)


plot(function(t){pnorm(t, mean=120,sd=20)},xlim=c(0,180),add=T, lty=2)
legend(“topleft”, c(“p1”,“p2”), lty=c(1,2), title=“Legenda”) # Legenda

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 17
Figura 3. Funções de desconfiabilidades da distribuição normal

Deste modo, a função de confiabilidade da variável T, que é a probabilidade de


um item continuar funcionando além do tempo t, é dada por:

t−µ 
R(t) = 1 – Φ T
 .
 σT 
Na figura 4, são apresentadas as formas das duas funções de confiabilidades
referentes aos produtos 1 e 2. Como pode-se observar, o produto 2 possui uma função
de confiabilidade com um decréscimo menos acentuado que a do produto 1, o que
caracteriza uma melhor confiabilidade para o primeiro produto.
No R, o gráfico será construído da seguinte forma:

plot(function(t){1-pnorm(t, mean=100,sd=10)},xlim=c(0,180),ylab= “R(t)”, xlab= “t”,


lty=1)
plot(function(t){1-pnorm(t, mean=120,sd=20)},xlim=c(0,180),add=T, lty=2)
legend(“topright”, c(“p1”,“p2”), lty=c(1,2)) # Legenda

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 18
Figura 4. Funções de confiabilidades da distribuição normal

f(t)
A função de taxa de falha associada à variável T é igual a: h(t) = .
R(t)
Na figura 5, são apresentadas as formas das duas funções das taxas de falhas,
referentes aos produtos 1 e 2.
No R, o gráfico é construído da seguinte forma:

plot(function(t){dnorm(t, mean=100, sd=10) / (1-pnorm(y, mean=100, sd=10) )},


xlim=c(0,180),ylab= “h(t)”, xlab= “t”, lty=1)
plot(function(t){dnorm(t, mean=120,sd=20) / (1-pnorm(y, mean=120, sd=20) )}, xlim=
c(0,180), add=T, lty=2)
legend(“topleft”, c(“p1”,“p2”), lty=c(1,2), title=“Legenda”) # Legenda

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 19
Figura 5. Funções de taxas de falhas da distribuição normal

4.2. Distribuição Log-normal

Neste caso, a variável T tem distribuição log-normal com os parâmetros µT e


σT, sendo que a variável Y = ln(T), com valores positivos de T transformados para a
escala logarítmica natural, segue distribuição normal com os parâmetros µY e σY da
variável Y logaritmizada, quando a função densidade de probabilidade da variável T for
dada por:
2
1  y -µ Y 
− ⋅ 
1 2  σY
f(t) = e 
tσ Y 2π , para µY > 0, t > 0 e σY > 0, em que:

y = ln(t) = valor da variável T na escala logarítmica natural;

µY = média da variável T na escala logarítmica natural;

σY = desvio padrão da variável T na escala logarítmica natural.

Deste modo, uma representação para este caso é dada por: T ~ LN (µY, σ Y ).
2

Como exemplo, são apresentadas duas funções densidades de probabilidades,


para os parâmetros de µY1 = 4,6 e σY1 = 0,1 referentes ao produto 1 e de µY2 = 4,8 e
σY2 = 0,2 referentes ao produto 2.
Os parâmetros µT e σT associados à população dos dados são iguais a:
 
 µ Y + σY
2

 2 
µT = e  
;

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 20
e (2µ Y + σ Y ) × (e σ Y − 1) .
2 2
σT =

Para calculá-los no R, têm-se:

exp(4.6+(0.1^2/2)) # µT1
[1] 99.98298

sqrt(exp(2*4.6+0.1^2)*(exp(0.1^2)-1)) # σT1
[1] 10.02335

exp(4.8+(0.2^2/2)) # µT2
[1] 123.9651

sqrt(exp(2*4.8+0.2^2)*(exp(0.2^2)-1)) # σT2
[1] 25.04303

No R, o gráfico será construído da seguinte forma:

plot(function(t){dlnorm(t, mean=4.6, sd=0.1)}, xlim=c(0,180), ylab=“f(t)”, xlab=“t”, lty=1)


plot(function(t){dlnorm(t, mean=4.8, sd=0.2)}, xlim=c(0,180), add=T, lty=2)
legend(“topright”, c(“p1”,“p2”), lty=c(1,2)) # Legenda

A função de desconfiabilidade da variável T é dada por:

 y − µY 
F(t) = Φ  .
 σY 

No R, o gráfico será gerado da seguinte forma:

plot(function(t) {plnorm(t, mean=4.6, sd=0.1)}, xlim=c(0,180), ylab=“F(t)”, xlab=“t”,


lty=1)
plot(function(t){plnorm(t, mean=4.8, sd=0.2)}, xlim=c(0,180), add=T, lty=2)
legend(“topleft”, c(“p1”,“p2”), lty=c(1,2), title=“Legenda”) # Legenda

Deste modo, a função de confiabilidade da variável T, que é a probabilidade de


um item continuar funcionando além do tempo t, é dada por:

 y − µY 
R(t) = 1 – Φ  .
 σY 

No R, o gráfico será construído da seguinte forma:

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 21
plot(function(t){1-plnorm(t, mean=4.6, sd=0.1)}, xlim=c(0,180), ylab= “R(t)”, xlab= “t”,
lty=1)
plot(function(t){1-plnorm(t, mean=4.8, sd=0.2)}, xlim=c(0,180), add=T, lty=2)
legend(“topright”, c(“p1”,“p2”), lty=c(1,2)) # Legenda

f(t)
A função de taxa de falha associada à variável T é igual a: h(t) = .
R(t)
No R, o gráfico é construído da seguinte forma:

plot(function(t){dlnorm(t, mean=4.6, sd=0.1) / (1-plnorm(t, mean=4.6, sd=0.1) )},


xlim=c(0,180), ylab= “h(t)”, xlab= “t”, lty=1)
plot(function(t){dlnorm(t, mean=4.8, sd=0.2) / (1-plnorm(t, mean=4.8, sd=0.2) )}, xlim=
c(0,180), add=T, lty=2)
legend(“topleft”, c(“p1”,“p2”), lty=c(1,2)) # Legenda

4.3. Distribuição Exponencial

A variável T poderá ter distribuição exponencial com parâmetro α, se sua


função densidade de probabilidade for dada por:
t
1 −
f(t) = e α =λe-tλ, para t ≥ 0.
α
Deste modo, uma representação para este caso é dada por: T ~ E (α).

Como exemplo, considere as duas funções densidades de probabilidades, para


os parâmetros de α1 = 100 referente ao produto 1 e de α2 = 120 referente ao produto
2.
Os parâmetros µT e σT associados à população dos dados são iguais a:
1
µT = σT = α = .
λ
Logo: λ T1 = 1/100 e λ T2 = 1/120

No R, o gráfico é construído da seguinte forma:

plot(function(t){dexp(t, rate=1/100)}, xlim=c(0,700), ylab=“f(t)”, xlab=“t”, lty=1)


plot(function(t){dexp(t, rate=1/120)},xlim=c(0,700),add=T, lty=2)
legend(“topright”, c(“p1”,“p2”), lty=c(1,2)) # Legenda

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 22
A função de desconfiabilidade da variável T é dada por:
t

F(t) = 1 − e α .

No R, o gráfico será gerado da seguinte forma:

plot(function(t) {pexp(t,rate=1/100)}, xlim=c(0,700), ylab=“F(t)”, xlab=“t”, lty=1)


plot(function(t){pexp(t, rate=1/120)},xlim=c(0,700),add=T, lty=2)
legend(“bottomright”, c(“p1”,“p2”), lty=c(1,2), title=“Legenda”) # Legenda

Deste modo, a função de confiabilidade da variável T, que é a probabilidade de


um item continuar funcionando além do tempo t, é dada por:
t

R(t) = e α .

No R, o gráfico será construído da seguinte forma:

plot(function(t){1-pexp(t, rate=1/100)},xlim=c(0,700),ylab= “R(t)”, xlab= “t”, lty=1)


plot(function(t){1-pexp(t, rate=1/120)},xlim=c(0,700),add=T, lty=2)
legend(“topright”, c(“p1”,“p2”), lty=c(1,2)) # Legenda

A função de taxa de falha associada à variável T é constante e igual a:


1
h(t) = = λ.
α

No R, o gráfico é construído da seguinte forma:

plot(y = 1, x=1, ylim=c(0.004, 0.014), xlim=c(0, 700), ylab= “h(t)”, xlab= “t”, type= “n”) #
Gerar o gráfico em branco para incluir os limites
abline(a=c(1/100,1/100), b=c(0,700), lty=1) # Gerar h(t)1
abline(a=c(1/120,1/120), b=c(0,700), lty=2) # Gerar h(t)2
legend(“topleft”, c(“p1”,“p2”), lty=c(1,2), title=“Legenda”) # Legenda

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 23
4.4. Distribuição de Weibull

A distribuição de Weibull é a mais utilizada para modelar o tempo de falha de


um item. Os parâmetros dessa distribuição possibilitam uma grande flexibilidade para
modelar sistemas em que o número de falhas aumenta ou diminui ou permanece
constante em função do tempo. Assim, a distribuição de Weibull pode ser usada para
representar um grande número de distribuições, incluindo as transformações ou as
aproximações para as distribuições normal, log-normal e exponencial.
A função densidade de probabilidade é dada por:
δ
 t
− 
δ δ -1  α 
f(t) = t e , para t ≥ 0.
αδ
Deste modo, uma representação para este caso é dada por: T ~ W (α, δ). O
parâmetro de forma δ e o de escala α são positivos. O parâmetro α tem a mesma
unidade de t e o δ não tem unidade. No caso especial em que δ=1, obtém-se a
distribuição exponencial.
Como exemplo, considere as duas funções densidades de probabilidades, para
os parâmetros de α1 = 100 e δ1 = 10 referentes ao produto 1 e de α2 = 120 e δ2 = 20
referentes ao produto 2.
Os parâmetros µT e σT associados à população dos dados são iguais a:

 1
µ T = αΓ 1 +  ;
 δ

 2  1
σ T = α Γ 1 +  − Γ 2  1 +  .
 δ  δ

Para calcula-los no R, têm-se:

µT1 = 95,1351 e σT1 = 11,4457;


µT2 = 116,8205 e σT2 = 7,2401.

No R, o gráfico é construído da seguinte forma:

plot(function(t){dweibull(t, shape=10, scale=100)}, xlim=c(0,140), ylim= c(0, 0.07),


ylab=“f(t)”, xlab=“t”, lty=1)
plot(function(t){dweibull(t, shape=20, scale=120)}, xlim=c(0,140), add=T, lty=2)
legend(“topleft”, c(“p1”,“p2”), lty=c(1,2)) # Legenda

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 24
A função de desconfiabilidade da variável T é dada por:
δ
 t
− 
α
F(t) = 1 − e .

No R, o gráfico será construído da seguinte forma:

plot(function(t) {pweibull(t, shape=10, scale=100)}, xlim=c(0,140), ylab=“F(t)”, xlab=“t”,


lty=1)
plot(function(t){pweibull(t, shape=20, scale=120)},xlim=c(0,140),add=T, lty=2)
legend(“topleft”, c(“p1”,“p2”), lty=c(1,2), title=“Legenda”) # Legenda

Deste modo, a função de confiabilidade da variável T, que é a probabilidade de


um item continuar funcionando além do tempo t, é dada por:
δ
t
− 
α
R(t) = e .

No R, o gráfico será construído da seguinte forma:

plot(function(t){1-pweibull(t, shape=10, scale=100)},xlim=c(0,140),ylab= “R(t)”, xlab=


“t”, lty=1)
plot(function(t){1-pweibull(t, shape=20, scale=120)},xlim=c(0,140),add=T, lty=2)
legend(“bottomleft”, c(“p1”,“p2”), lty=c(1,2)) # Legenda

A função de taxa de falha associada à variável T é igual a:


δ −1
 δ  t 
h(t) =    .
 α  α 

No R, o gráfico é construído da seguinte forma:

plot(function(t){dweibull(t, shape=10, scale=100) / (1-pweibull(y, shape=10, scale=100)


)}, xlim=c(0,140),ylab= “h(t)”, ylim=c(0,1), xlab= “t”, lty=1)
plot(function(t){dweibull(t, shape=20, scale=120) / (1-pweibull(y, shape=20, scale=120)
)}, xlim= c(0,140), add=T, lty=2)
legend(“topleft”, c(“p1”,“p2”), lty=c(1,2), title=“Legenda”) # Legenda

Capítulo 5 – Modelos de Confiabilidade Gustavo Mello Reis José Ivo Ribeiro Júnior 25
Capítulo 6

Experimentos com um Fator de


Interesse

Gustavo Mello Reis


José Ivo Ribeiro Júnior

Universidade Federal de Viçosa


Departamento de Informática
Setor de Estatística

Viçosa 2007

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 1
1. Introdução

O objetivo neste capítulo é de aplicar os testes de hipóteses paramétricos ou não


paramétricos a um ou mais níveis qualitativos ou quantitativos de um fator (causa) controlável de
interesse, denominado de variável X.
No caso dos paramétricos, têm-se os testes t, F, de qui-quadrado (x2), análise de variância
(anova) e análise de regressão para os modelos lineares normais, segundo os delineamentos
inteiramente (DIC) e em blocos casualizados (DBC).

2. Um Nível de X

Os dados serão lidos a partir de um arquivo externo, dados1.csv, que esta situado na pasta
C:/Rdados.

dados1<- read.csv2(“dados1.csv”,dec=“.”)
dados1
X Y YY
1 1 93.45 0
2 1 94.46 0
3 1 94.93 0
4 1 96.17 0
5 1 96.74 1
6 1 97.07 0
7 1 97.68 0
8 1 97.93 0
9 1 99.10 0
10 1 99.30 1
11 1 100.73 0
12 1 103.29 0
13 1 103.60 0
14 1 103.83 1
15 1 105.20 0
attach(dados1) # para utilizar as colunas separadamente

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 2
2.1. Testes de Aderência

Para x = 1, os n valores da variável resposta Y apresentam variações devidas a causas


aleatórias, dado que não existe nenhuma outra informação de X. Portanto, Y é considerada uma
variável aleatória e, conseqüentemente, possui uma distribuição de probabilidades.
Para verificar se Y segue distribuição normal podem ser utilizados um dos três métodos,
além de outros: gráfico dos quantis normais e os testes de Lilliefors e de Kolmogorov-Smirnov.

2.1.1. Gráfico dos Quantis Normais

Na ajuda dessa função (?qqnorm), têm-se:


qqnorm (y, ylim = c(limite inferior, limite superior), main = "título do gráfico", xlab = "nome do
eixo x", ylab = "nome do eixo y", plot.it = TRUE ou FALSE, datax = FALSE ou TRUE, ...)
qqline(y, datax = FALSE ou TRUE, ...)
Se os valores dos argumentos ylim, main, xlab e ylab não forem fornecidos, o gráfico será
construído com os seus valores padrões (default).
A primeira função cria a dispersão dos pontos [x = quantis teóricos (valores de z), y =
quantis amostrais (valores de Y)] e, a segunda, a reta ajustada aos mesmos. Quando se usa datax =
TRUE, os valores do eixo x serão os de y e os do eixo y serão os de x.
De forma simplificada, o gráfico (Figura 1) será construído da seguinte forma:

par(las=1) # Exibir os valores dos eixos y e x na horizontal


qqnorm(Y) # Construir o gráfico com os pontos
qqline(Y) # Inserir a linha ajustada

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 3
Figura 1. Gráfico dos quantis normais

Normal Q-Q Plot

104

102
Sample Quantiles

100

98

96

94

-1 0 1

Theoretical Quantiles

De forma visual, se todos os pontos plotados estiverem próximos à reta, pode-se concluir
que a variável Y tem distribuição normal, como apresentado no exemplo.

2.1.2. Teste de Lilliefors

Para esse teste será utilizado o pacote nortest que, após a instalação, deverá ser ativado pelo
comando library(nortest).
Utilizando a ajuda do R para visualizar as funções contidas no pacote nortest, tem-se:
help(package=nortest) # Irá abrir uma nova janela e as funções estarão no tópico Index
O pacote nortest possui cinco funções: ad.test (teste de Anderson-Darling), cvm.test (teste
de Cramer-von Mises), lillie.test (teste de Lilliefors), pearson.test (teste de Pearson qui-quadrado),
sf.test (teste de Shapiro-Francia).
O teste de lilliefors será feito da seguinte forma:

library(nortest) # Abrir o pacote que contém a função do teste


lillie.test(Y) # Fazer o teste
Lilliefors (Kolmogorov-Smirnov)
normality test

data: Y
D = 0.1488, p-value = 0.4965

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 4
Desse modo, para α = 0,05, não se rejeita a hipótese de normalidade dos dados de Y, dado
que p-valor > α.

2.1.3. Teste de Kolmogorov-Smirnov

Pela ajuda do programa R (?ks.test), tem-se:


ks.test(x, y, ..., alternative = c("two.sided" ou "less" ou "greater"))
O argumento x recebe os valores a serem testados e, y o nome da distribuição ajustada. No
entanto, deve-se adicionar a letra p na frente do nome da distribuição, indicando que é a
probabilidade acumulada da função.
Os três pontos indicam que outros argumentos podem ser utilizados. No caso da distribuição
normal, os argumentos são mean e sd, que constituem a média e o desvio padrão, respectivamente.
De forma simplificada, o teste será feito da seguinte forma:

ks.test(Y, “pnorm”,sd=sd(Y),mean=mean(Y))

One-sample Kolmogorov-Smirnov test

data: Y
D = 0.1488, p-value = 0.847
alternative hypothesis: two.sided

Do mesmo modo, para α = 0,05, conclui-se que Y é normal, para µY e σY estimados com
base nos dados. No entanto, esse argumentos conferem a possibilidade de testar diferentes
distribuições normais para diferentes combinações de µY e σY de interesses.
O gráfico (Figura 2) é construído através de:

plot(ecdf(Y), verticals = T) # Construir o gráfico

A função ecdf( ) é aplicada aos dados de Y para que eles sejam organizados de forma
crescente. O argumento verticals=T indica que as linhas verticais, que ligam um ponto ao outro,
também devem ser postas no gráfico. A curva pontilhada no gráfico (Figura 2) é construída através
de:

x<-seq(min(Y)-3, max(Y)+3, 0.01) # Criar as coordenadas teóricas para o eixo x


lines(x, pnorm(x, mean=mean(Y), sd=sd(Y)), lty=3) # Criar a curva teórica
Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 5
O comando seq(min(Y)-3, max(Y)+3, 0.01) cria um vetor de números, separados por 0,01
unidades, entre o menor valor de Y subtraído de três unidades e o maior valor de Y adicionado de
três unidades.
O comando lines(x, pnorm(x, mean=mean(Y), sd=sd(Y)), lty=3) é responsável por gerar a
curva no gráfico. Este comando, como pode ser observado, possui três argumentos: o primeiro
recebe o vetor x, que possui as coordenadas do eixo x para a curva; o segundo recebe as
coordenadas do eixo y, criadas pelo comando pnorm(x, mean=mean(Y), sd=sd(Y)), que gera um
vetor de probabilidades de acordo com a distribuição normal e os parâmetros de média e desvio
padrão de Y; o terceiro (lty), indica o tipo de linha que deve ser traçada (3 = pontilhada).

Figura 2. Gráfico do teste de Kolmogorov-Smirnov

ecdf(Y )

1.0

0.8

0.6
Fn(x)

0.4

0.2

0.0

92 94 96 98 100 102 104 106

2.2. Teste t

Como foi verificado que os dados de Y seguem distribuição normal (P > 0,05), então
procede-se à aplicação do teste t. No R, tem-se:
t.test (x, y = NULL, alternative = “two.side” ou “less” ou “greater”, mu = 0, paired = FALSE ou
TRUE, var.equal = FALSE ou TRUE, conf.level = 1-0.05).
Como exemplo, serão testadas as hipóteses Ho ( µY = 100) e Ha (µY ≠ 100):

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 6
t.test(Y, mu=100) # Teste bilateral
One Sample t-test

data: Y
t = -1.1519, df = 14, p-value = 0.2687
alternative hypothesis: true mean is not equal to 100
95 percent confidence interval:
96.84797 100.94937
sample estimates:
mean of x
98.89867

Para α = 0,05, não se rejeita Ho, dado que p-valor > α. Do mesmo modo, pode-se observar
que µY = 100 pertence ao intervalo para a média µY com 100(1-0,05)% de confiança.
Para construir as barras de erros da média amostral de Y, será utilizado o intervalo de
confiança fornecido pela função t.test. Primeiro, deve-se construir o gráfico com a média e
especificar os limites do eixo y, que deve conter intervalos um pouco maiores que o intervalo de
confiança. Para este exemplo tem-se:

media<-mean(Y)
plot(media, ylim=c(media-5, media+5))

Para adicionar as barras de erros, deve-se informar as coordenadas das barras. Para o eixo y,
as coordenadas são os intervalos de confiança e, para o eixo x, são 1 e 1. Para o teste bilateral
(Figura 3), tem-se:

arrows(1, 96.84797, 1, 100.94937, length=0.1,angle=90, code=3)

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 7
Figura 3. Estimativa do intervalo para µY com 100(1-0,05)% de confiança

Para a construção de um outro gráfico, o de barras, basta utilizar o comando barplot, da


seguinte forma:

media<-mean(Y)
barplot(media) # sem configuração (Figura 4a)
barplot(media,ylim=c(0,120),xlim=c(0,3),names=“Y”) # mais organizado (Figura 4b)

Figura 4. Estimativa da média


a b

Para a representação do intervalo de confiança pela adição das barras (Figura 5), têm-se:

cx<-barplot(media, ylim=c(0,120), xlim=c(0,3), names=”Y”)


arrows(cx, 96.84797, cx, 100.94937, length=0.1, angle=90, code=3)

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 8
Figura 5. Estimativa da média e do intervalo para µY com 100(1-0,05)% de confiança

3. Dois Níveis de X

3.1. Independentes

Como exemplo, considere as variáveis Y, YY, YYY e YYYY, cujos dados foram coletados
em duas amostras diferentes (x1 e x2), de tamanhos iguais a cinco. Neste caso o arquivo de dados
utilizado será “teste2i.csv”. No R tem-se:

dados2i<-read.csv2(“teste2i.csv”,dec=“.”)
dados2i
rept X Y YY YYY YYYY
1 1 37.4 47.9 2 10
2 1 38.9 48.0 6 80
3 1 38.2 47.7 10 55
4 1 38.5 47.3 15 95
5 1 37.6 47.5 14 45
1 2 36.0 50.5 4 35
2 2 35.4 47.7 8 90
3 2 35.3 50.0 18 85
4 2 35.8 49.3 1 65
5 2 34.9 48.0 5 7
attach(dados2i)

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 9
3.1.1. Variáveis Y e YY Normais

Para X = 1, Y1 é variável aleatória e para X = 2, Y2 é variável aleatória. Portanto possuem


uma distribuição de probabilidades.
Para verificar se Y1 e Y2 seguem a distribuição normal, deve-se aplicar um dos testes de
normalidade a cada uma delas separadamente, da seguinte forma:

# Gráfico dos quantis normais


qqnorm(Y[X= =1])
qqline(Y[X= =1])
qqnorm(Y[X= =2])
qqline(Y[X= =2])

# Teste de Lilliefors
library(nortest) # Ativar o pacote que possui a função do teste de Lilliefors
lillie.test(Y[X= =1])
lillie.test(Y[X= =2])

# Teste de Kolmogorov-Smirnov
ks.test(Y[X= =1], “pnorm”, mean=mean(Y[X= =1]), sd=sd(Y[X= =1]))
ks.test(Y[X= =2], “pnorm”, mean=mean(Y[X= =2]), sd=sd(Y[X= =2]))

O mesmo deve ser feito para a variável YY.

3.1.1.1. Teste F

Para a aplicação desse teste, a pressuposição de normalidade deve ser verificada dentro de
cada nível de X, ou seja, as variáveis respostas Y’s têm distribuição normal nos níveis 1 e 2,
separadamente.
No exemplo, como apenas as variáveis Y e YY apresentaram normalidade (P > 0,05) nos
níveis 1 e 2 de X, então pode-se verificar a relação existente entre as variâncias das populações Y1 e
Y2 e entre YY1 e YY2, pelo teste F. Através do tópico Usage do help (?var.test), tem-se por default
que ratio=1, ou, seja, que σ2Y1 / σ2Y2 = 1 e que σ2YY1 / σ2YY2 = 1, para a hipótese Ho. Então, no R,
para variável Y, têm-se:

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 10
var.test(Y~X) # Comparar as variâncias das populações Y1 e Y2
F test to compare two variances

data: Y by X
F = 2.0695, num df = 4, denom df = 4, p-value = 0.4985
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.2154732 19.8767544
sample estimates:
ratio of variances
2.069519

var.test(YY~X) # Comparar as variâncias das populações YY1 e YY2


F test to compare two variances

data: YY by X
F = 0.0548, num df = 4, denom df = 4, p-value = 0.01566
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
0.005710795 0.526803646
sample estimates:
ratio of variances
0.0548495

Para a variável Y e α = 0,05, conclui-se que as variâncias são homogêneas ( P > 0,05). Por
outro lado, a variável YY apresentou variâncias heterogêneas ( P < 0,05).
Caso haja interesse em testar σ2Y1 > σ2Y2 ou σ2Y1 < σ2Y2, deve-se utilizar o argumento
alternative = “greater” ou “less”, respectivamente.

3.1.1.2. Teste t

3.1.1.2.1. Variâncias Homogêneas

Em função do teste F, serão comparadas as médias da variável Y, sendo Ho (µY1 = µY2) e Ha


(µY1 ≠ µY2):

t.test(Y~X, var.equal=T) # Variâncias homogêneas

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 11
Two Sample t-test

data: Y by X
t = 7.7917, df = 8, p-value = 5.277e-05
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
1.858676 3.421324
sample estimates:
mean in group 1 mean in group 2
38.12 35.48

De acordo com os resultados, conclui-se pela rejeição de Ho (P > 0,05).


Para a construção do intervalo com 100 (1-α)% de confiança para µY1 - µY2 (Figura 6), será
utilizado o fornecido pela função t.test, com α =0,05 (default), através da função barplot, da
seguinte forma:

media12<-mean(Y[X= =1])-mean(Y[X= =2])


cx12<-barplot(media12, ylim=c(-4,4), xlim=c(0,3), names= “Y1-Y2”)
arrows(cx12, 1.858676, cx12, 3.421324, length=0.1, angle=90, code=3)

Do mesmo modo, como µY1 - µY2 = 0 não pertence ao intervalo de confiança, então conclui-
se que µY1 ≠ µY2. Na verdade µY1 > µY2, dado que os dois limites são positivos.

Figura 6. Gráfico de barras com o intervalo com 100(1-0,05)% de confiança para µY1 - µY2
4
2
0
-2
-4

Y1-Y2

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 12
3.1.1.2.2. Variâncias Heterogêneas

Em função do teste F, serão comparadas as médias da variável YY sendo Ho (µYY1 = µYY2) e


Ha (µYY1 ≠ µYY2):

t.test(YY~X) # por default: var.equal = FALSE


Welch Two Sample t-test

data: YY by X
t = -2.5285, df = 4.437, p-value = 0.05874
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-2.92047081 0.08047081
sample estimates:
mean in group 1 mean in group 2
47.68 49.10

De acordo com os resultados, conclui-se pela não rejeição de Ho (P > 0,05).


Da mesma forma vista para variável Y, os comandos para construir o intervalo com 100 (1–
α)% de confiança para µYY1 - µYY2 são:

media12<-mean(YY[X= =1])-mean(YY[X= =2])


cx12<-barplot(media12, ylim=c(-4,4), xlim=c(0,3), names= “YY1-YY2”)
arrows(cx12, -2.92047081, cx12, 0.08047081, length=0.1, angle=90, code=3)

3.1.1.3. Anova DIC

Como exemplo, considere a variável resposta Y para os níveis 1 e 2 da variável X. A


pressuposição imposta pela Anova, é que os erros experimentais ou resíduos associados a cada
resposta Y tenham distribuição normal e variâncias homogêneas em todos os níveis de X.
Para fazer e verificar as pressuposições da ANOVA, deve-se proceder os seguintes passos:

dic.y<-lm(Y~X) # Montar o modelo


re.dic.y<-residuals(dic.y) # Armazenar os resíduos
re.dic.y # Ver os resíduos
1 2 3 4 5 6 7 8 9 10
-0.72 0.78 0.08 0.38 -0.52 0.52 -0.08 -0.18 0.32 -0.58
Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 13
# De forma visual
par(mfrow=c(1,2))
plot(dic.y,which=c(1,2)) # Ver os gráficos 1 e 2 (Figura 7)

Figura 7. Análises de resíduos

Residuals vs Fitted Normal Q-Q

2 2

1.5
0.5

Standardized residuals

1.0
0.5
Residuals

0.0

0.0
-1.5 -1.0 -0.5
-0.5

10
10
1
1

35.5 36.0 36.5 37.0 37.5 38.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5

Fitted values Theoretical Quantiles

# Pelo teste de Lilliefors


library(nortest)
lillie.test(re.dic.y)
Lilliefors (Kolmogorov-Smirnov) normality test

data: re.dic.y
D = 0.1484, p-value = 0.7699

# Pelo teste de Kolmogorov-Smirnov


ks.test(re.dic.y, “pnorm”, mean=0, sd=sd(re.dic.y))
One-sample Kolmogorov-Smirnov test

data: re.dic.y
D = 0.1484, p-value = 0.9578
alternative hypothesis: two.sided

Para testar se os resíduos têm variâncias homogêneas será utilizado o teste de Bartlett, da
seguinte forma:

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 14
bartlett.test(re.dic.y,X)
Bartlett test of homogeneity of variances

data: re.dic.y and X


Bartlett's K-squared = 0.4602, df = 1, p-value = 0.4975

Assim, para α = 0,05, conclui-se que os resíduos são normais e têm variâncias homogêneas.
Logo, a anova é apresentada como segue:

anova(dic.y) # Ver o quadro da anova


Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 17.424 17.424 60.711 5.277e-05 ***
Residuals 8 2.296 0.287
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

A ANOVA também poderia ter sido obtida por meio de:

dic.y<-aov(Y~X)

3.1.2. Variáveis YYY e YYYY não Normais

3.1.2.1. Teste de χ2

Com base nas variáveis YYY (números de defeitos) e YYYY (tamanho da amostra), deseja
testar se a proporção média de itens defeituosos nos níveis 1 e 2 de X são iguais.
As hipóteses a serem testadas são: Ho (pX1 = pX2) e Ha (pX1 ≠ pX2). Para isto deve-se calcular
a média de YYY e YYYY dentro cada nível de X:
tapply(YYY, X, mean)
1 2
9.4 7.2
tapply(YYYY, X, mean)
1 2
57.0 56.4

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 15
O teste será realizado da seguinte forma:

prop.test(c(9.4, 7.2), c(57, 56.4)) # por default (padrão): alternative = “two.sided”


2-sample test for equality of proportions with continuity
correction

data: c(9.4, 7.2) out of c(57, 56.4)


X-squared = 0.0873, df = 1, p-value = 0.7676
alternative hypothesis: two.sided
95 percent confidence interval:
-0.1102547 0.1847601
sample estimates:
prop 1 prop 2
0.1649123 0.1276596

Para α = 0,05, não rejeita-se Ho, dado que p-valor > α. Logo, as proporções de peças
defeituosas nos níveis 1 e 2 de X, são estatisticamente iguais.
Caso haja interesse em testar Ha (pX1 > pX2) ou Ha (pX1 < pX2), deve-se utilizar o argumento
alternative = “greater” ou “less”, respectivamente.

3.1.2.2. Teste de Wilcoxon-Mann-Whitney

Como no exemplo, as variáveis YYY (contagem) e YYY / YYYY (proporção) não


apresentaram distribuição aproximadamente normal nos níveis 1 e 2 de X (P < 0,05), então uma
opção apropriada é aplicar o teste de Mann-Whitney, muitas vezes chamado de teste de Wilcoxon
da soma dos postos, como é o caso no R.

wilcox.test(YYY~X) # Por default (mu = 0), o que significa Ho: µYYY1 − µYYY2 = 0
Wilcoxon rank sum test
data: YYY by X
W = 16, p-value = 0.5476
alternative hypothesis: true mu is not equal to 0

y34<-YYY/YYYY # Criar um vetor com a proporção (YYY / YYYY)


wilcox.test(y34~X) # Ho: µYYY1 / YYYY1 − µYYY2 / YYYY2 = 0
Wilcoxon rank sum test
data: y34 by X
W = 14, p-value = 0.8413
alternative hypothesis: true mu is not equal to 0

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 16
No exemplo, não se rejeita Ho (P > 0,05), para YYY e YYY/YYYY.
Caso haja interesse em testar Ha (µYYY1 > µYYY2) ou Ha (µYYY1 < µYYY2), deve-se utilizar o
argumento alternative = “greater” ou “less”, respectivamente.

3.2. Dependentes

Como exemplo, considere a variável resposta Y para os níveis qualitativos A e B da variável


X (tratamentos) e para os níveis quantitativos 1, 2, 3, 4 e 5 da variável bloco ou para os níveis
qualitativos bloco1, bloco2, bloco3, bloco4 e bloco5 da variável XX . Os dados serão lidos a partir
do arquivo C:/Rdados/teste2d.csv pelo R da seguinte forma:

dados2d<-read.csv2(“teste2d.csv”, dec= “.”)


dados2d
bloco XX X Y YYY YYYY
1 bloco1 A 37.4 2 10
1 bloco1 B 36.0 4 35
2 bloco2 A 38.9 6 80
2 bloco2 B 35.4 8 90
3 bloco3 A 38.2 10 55
3 bloco3 B 35.3 18 85
4 bloco4 A 38.5 15 95
4 bloco4 B 35.8 1 65
5 bloco5 A 37.6 14 45
5 bloco5 B 34.9 5 7
attach(dados2d)

Os objetos dados2d e dados2i apresentam os mesmos valores para as variáveis Y, YYY e


YYYY. A diferença é que o primeiro apresenta uma classificação das variáveis Y’s em função da
coluna X (tratamentos) em ordem crescente, e o segundo em função da coluna bloco.
Em termos práticos, as variáveis bloco e XX são idênticas, porém o R adota diferentes
procedimentos para cada uma delas. Portanto, deve-se considerá-las sempre de forma qualitativa.
Desse modo, pode-se digitar os seus valores representados por “labels” ou “alfanuméricos”. Neste
caso, o R entende automaticamente como níveis qualitativos. Ou digitá-los como números e, no R,
transformá-los para qualitativos, através da função factor.

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 17
O mesmo procedimento deve ser adotado aos tratamentos, ou seja, de caracterizá-los
corretamente como qualitativos ou quantitativos.

XX # A mensagem “levels” indica que é um fator qualitativo


[1] bloco1 bloco1 bloco2 bloco2 bloco3 bloco3 bloco4 bloco4 bloco5
bloco5
Levels: bloco1 bloco2 bloco3 bloco4 bloco5

blocoq<-factor(bloco) # Transformar em fator qualitativo


blocoq
[1] 1 1 2 2 3 3 4 4 5 5
Levels: 1 2 3 4 5

3.2.1. Variável Y Normal

3.2.1.1. Teste t

Antes da realização do teste t, deve-se verificar se as diferenças entre cada par de valores das
duas amostras seguem distribuição normal. Para isso, pode-se utilizar um dos três métodos, como
seguem, para a variável dif:

# Gráfico do quantis normais (Figura 8)


dif<-Y[X= ="A"]-Y[X= ="B"]
qqnorm(dif)
qqline(dif)

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 18
Figura 8. Gráfico dos quantis normais

Normal Q-Q Plot


3.5
3.0
Sample Quantiles

2.5
2.0
1.5

-1.0 -0.5 0.0 0.5 1.0

Theoretical Quantiles

# Teste de Lilliefors
library(nortest)
lillie.test(dif)
Lilliefors (Kolmogorov-Smirnov) normality test

data: dif
D = 0.3312, p-value = 0.07677

# Teste de Kolmogorov-Smirnov
ks.test(dif, “pnorm”, mean= mean(dif), sd=sd (dif))
One-sample Kolmogorov-Smirnov test

data: dif
D = 0.3312, p-value = 0.6431
alternative hypothesis: two.sided

Warning message:
não é possível calcular os níveis descritivos corretos com empates in:
ks.test(dif, "pnorm", mean = mean(dif), sd = sd(dif))

Após satisfazer a pressuposição de normalidade (P>0,05), pode-se fazer o teste t por meio de
duas formas:

t.test(dif)
Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 19
t.test(Y~X, paired= T)
Paired t-test

data: Y by X
t = 7.6984, df = 4, p-value = 0.001532
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
1.687878 3.592122
sample estimates:
mean of the differences
2.64

Para fazer a barra de erro da diferença média (Figura 9) serão utilizados os intervalos
fornecidos pelo teste t.

plot(mean(dif),ylim=c(1, 4.2))
arrows(1 , 1.687878, 1, 3.592122, length=0.1,angle=90, code=3)

Figura 9. Intervalo de confiança para a média das diferenças

3.2.1.2. Anova DBC

A análise de variância só poderá ser considerada após a verificação da normalidade e da


homogeneidade de variâncias dos resíduos, como seguem:

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 20
dbc.y<-lm(Y~XX+X) # ou dbc.y<-aov(Y~XX+X)
re.dbc.y<-residuals(dbc.y)
re.dbc.y
1 2 3 4 5 6 7 8 9 10
-0.62 0.62 0.43 -0.43 0.13 -0.13 0.03 -0.03 0.03 -0.03

# Verificar a normalidade de forma visual


par(mfrow=c(1,2))
plot(dbc.y,which=c(1,2)) # Figura 10

Figura 10. Análise de resíduos

Residuals vs Fitted Normal Q-Q


2
0.6

2 2
0.4

3 3
Standardized residuals

1
0.2
Residuals

-0.2 0.0

0
-1
-0.6

1
1

35.0 36.0 37.0 38.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5

Fitted values Theoretical Quantiles

# Teste de Lilliefors
library(nortest)
lillie.test(re.dbc.y)
Lilliefors (Kolmogorov-Smirnov) normality test

data: re.dbc.y
D = 0.1669, p-value = 0.5972

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 21
# Teste de Kolmogorov-Smirnov
ks.test(re.dbc.y, “pnorm”, mean= 0, sd=sd(re.dbc.y))
One-sample Kolmogorov-Smirnov test

data: re.dbc.y
D = 0.1669, p-value = 0.9017
alternative hypothesis: two.sided

# Teste de Bartlett
bartlett.test(re.dbc.y,X)
Bartlett test of homogeneity of variances

data: re.dbc.y and X


Bartlett's K-squared = 0, df = 1, p-value = 1

Assim, como as pressuposições foram satisfeitas (P > 0,05), tem-se a anova:

anova(dbc.y)
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
XX 4 1.120 0.280 0.9524 0.518289
X 1 17.424 17.424 59.2653 0.001532 **
Residuals 4 1.176 0.294
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 22
3.2.2. Variáveis YYY e YYYY não Normais

3.2.2.1. Teste de Wilcoxon

Para as variáveis não normais YYY (contagem) e YYY / YYYY (proporção), têm-se:

wilcox.test(YYY~X,paired=T)
Wilcoxon signed rank test with continuity correction

data: YYY by X
V = 8, p-value = 1
alternative hypothesis: true mu is not equal to 0

Warning message:
cannot compute exact p-value with ties in: wilcox.test.default(x =
c(2, 6, 10, 15, 14), y = c(4, 8, 18,
y34<-YYY/YYYY # Criar um vetor com a proporção (YYY / YYYY)
wilcox.test(y34~X, paired=T)
Wilcoxon signed rank test

data: y34 by X
V = 12, p-value = 0.3125
alternative hypothesis: true mu is not
equal to 0

O aviso que aparece no teste de Wilcoxon para a variável YYY, chama a atenção para os
dados utilizados na realização desse teste. Um p-valor exato será calculado quando a variável
possuir tamanho menor que cinqüenta (com valores finitos) e quando não houver repetições (ties)
na diferença entre os valores da variável dentro de cada nível de X. Caso isto não ocorra, uma
aproximação normal será usada.
Observe as diferenças para as variáveis YYY e y34 e veja que para YYY possui uma
repetição (-2) enquanto que para y34 não possui.

YYY[X= = “A”] − YYY[X= = “B”]


[1] -2 -2 -8 14 7
y34[X= = “A”] − y34[X= = “B”]
[1] 0.08571429 -0.01388889 -0.02994652 0.14251012 0.21777778

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 23
4. Mais de Dois Níveis Qualitativos de X

4.1. DIC

Como exemplo, considere o arquivo C:/Rdados/teste3dic.csv de um experimento com cinco


níveis qualitativos de X (tratamentos) e três repetições, onde foram avaliadas as variáveis Y
(normal), YY (Poisson) e YY/YYY (binomial). Para ler o arquivo, tem-se:

dados3dic<-read.csv2(“teste3dic.csv”,dec=”.”)
dados3dic
rept X Y YY YYY
1 A 1.5 2 15
2 A 1.8 5 49
3 A 1.65 8 75
1 B 1.4 14 42
2 B 1.55 7 26
3 B 1.6 6 17
1 C 1.65 1 5
2 C 1.7 13 95
3 C 1.73 18 55
1 D 1.55 10 50
2 D 1.4 7 80
3 D 1.45 4 65
1 E 1.6 9 35
2 E 1.45 11 25
3 E 1.53 4 60
attach(dados3dic)

4.1.1. Variável Y Normal

4.1.1.1. Anova DIC

A normalidade será testada através do erro experimental (eij), pois yij não é variável
aleatória.

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 24
dic.y<-lm(Y~X)
re.dic.y<-residuals(dic.y)
bartlett.test(re.dic.y, X)
Bartlett test of homogeneity of variances

data: re.dic.y and X


Bartlett's K-squared = 2.7731, df = 4, p-value = 0.5965
par(mfrow=c(1,2))
plot(dic.y, which=c(1,2))

Figura 11. Análises de resíduos

Residuals vs Fitted Normal Q-Q

0.15 6 2 6

0.10
S tandardized residuals

1
0.05
Residuals

0.00
0

-0.05

-0.10 -1
2
2
-0.15 1
1
-2

1.50 1.55 1.60 1.65 1.70 -1 0 1

Fitted values Theoretical Quantiles

anova(dic.y)
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 4 0.111027 0.027757 2.9889 0.07297 .
Residuals 10 0.092867 0.009287
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 25
4.1.1.2. Teste de Tukey

Para fazer o teste de Tukey o modelo deve ser montado utilizando a função aov, da seguinte
forma:

dic.y<-aov(Y~X)
teste.dic.y<-TukeyHSD(dic.y, conf.level= (1 - 0.05)) # Por default α = 0,05
teste.dic.y # Para ver o resultado do teste de Tukey
Tukey multiple comparisons of means
95% family-wise confidence level

Fit: aov(formula = Y ~ X)

$X
diff lwr upr p adj
B-A -0.13333333 -0.39228757 0.12562091 0.4779094
C-A 0.04333333 -0.21562091 0.30228757 0.9793603
D-A -0.18333333 -0.44228757 0.07562091 0.2124291
E-A -0.12333333 -0.38228757 0.13562091 0.5468424
C-B 0.17666667 -0.08228757 0.43562091 0.2391180
D-B -0.05000000 -0.30895424 0.20895424 0.9655836
E-B 0.01000000 -0.24895424 0.26895424 0.9999298
D-C -0.22666667 -0.48562091 0.03228757 0.0941497
E-C -0.16666667 -0.42562091 0.09228757 0.2841712
E-D 0.06000000 -0.19895424 0.31895424 0.9357538

plot(teste.dic.y) # Gerar o gráfico do teste de Tukey (Figura 12)

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 26
Figura 12. Intervalo de confiança para os contrastes estabelecidos

95% fam ily-w ise confidence level

B -A

C -A

D -A

E -A

C -B

D -B

E -B

D -C

E -C

E -D

-0.4 -0.2 0.0 0.2 0.4

D ifferences in mean levels of X

Os intervalos que sobrepõem a diferença igual a zero, indicam que as duas médias são
semelhantes (P>α).

4.1.2. Variáveis YY e YYY não Normais

4.1.2.1. Teste de Kruskal-Wallis

O teste de Kruskal-Wallis será aplicado às variáveis YY (contagem) e YY / YYY


(proporção):

kruskal.test(YY~X)
Kruskal-Wallis rank sum test

data: YY by X
Kruskal-Wallis chi-squared = 1.7981, df = 4, p-value = 0.7728

kruskal.test(YY/YYY~X)
Kruskal-Wallis rank sum test

data: YY/YYY by X
Kruskal-Wallis chi-squared = 7.1878, df = 4, p-value = 0.1263

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 27
4.2. DBC

Como exemplo, considere o arquivo C:/Rdados/teste3dbc.csv, que em relação ao arquivo de


dados utilizado no DIC, acrescentou-se a variável XX (bloco) e foi ordenado por esta. O arquivo
será lido da seguinte forma:

dados3dbc<-read.csv2(“teste3dbc.csv”,dec=”.”)
dados3dbc
rept XX X Y YY YYY
1 bloco1 A 1.5 2 15
1 bloco1 B 1.4 14 42
1 bloco1 C 1.65 1 5
1 bloco1 D 1.55 10 50
1 bloco1 E 1.6 9 35
2 bloco2 A 1.8 5 49
2 bloco2 B 1.55 7 26
2 bloco2 C 1.7 13 95
2 bloco2 D 1.4 7 80
2 bloco2 E 1.45 11 25
3 bloco3 A 1.65 8 75
3 bloco3 B 1.6 6 17
3 bloco3 C 1.73 18 55
3 bloco3 D 1.45 4 65
3 bloco3 E 1.53 4 60
attach(dados3dbc)

4.2.1. Variável Y Normal

4.2.1.1. Anova DBC

Como yij não é variável aleatória, a normalidade será testada através do erro experimental
(eij), da seguinte forma:

dbc.y<-lm(Y~XX+X) # ou dbc.y<-aov(Y~XX+X)
Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 28
re.dbc.y<-residuals(dbc.y)
bartlett.test(re.dbc.y, X)
Bartlett test of homogeneity of variances

data: re.dbc.y and X


Bartlett's K-squared = 5.277, df = 4, p-value = 0.2600
par(mfrow=c(1,2))
plot(dbc.y,wich=c(1,2))

Com a normalidade e a homogeneidade de variância testadas, tem-se a anova da seguinte


forma:

anova(dbc.y)

4.2.1.2. Variávei YY e YYY não Normais

4.2.1.2.1. Teste de Friedman

O teste de Friedman será aplicado como segue, às variáveis YY e YY / YYY:

friedman.test(YY~X|XX)
Friedman rank sum test

data: YY and X and XX


Friedman chi-squared = 1.5862, df = 4, p-value = 0.8113

friedman.test(YY/YYY~X|XX)
Friedman rank sum test

data: YY/YYY and X and XX


Friedman chi-squared = 7.9322, df = 4, p-value = 0.0941

4.3. Teste de χ2

Como exemplo, será utilizado o arquivo de dados “prop.csv”, cujo a primeira coluna contém
o número de defeitos (nd) e a segunda o tamanho da amostra (ta).
Os dados serão lidos da seguinte forma:
Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 29
dados.prop<-read.csv2(“prop.csv”, dec= “.”)
dados.prop
nd ta
83 86
90 93
129 136
70 82
attach(dados.prop)

As hipóteses a serem testadas são:


Ho: As proporções de itens defeituosos são iguais em todas as amostras;
Ha: Pelo menos uma amostra possui proporção de itens defeituosos diferente das demais.
O teste será feito da seguinte forma:

prop.test(nd, ta)
4-sample test for equality of proportions without continuity
correction

data: nd out of ta
X-squared = 12.6004, df = 3, p-value = 0.005585
alternative hypothesis: two.sided
sample estimates:
prop 1 prop 2 prop 3 prop 4
0.9651163 0.9677419 0.9485294 0.8536585

5. Mais de Dois Níveis Quantitativos de X

5.1. Regressão de 1º Grau

Como exemplo, será utilizado o arquivo C:/Rdados/regressao1.csv, que será acessado por:

dados.reg1<-read.csv2(“regressao1.csv”, dec=“.”)
dados.reg1
X Y
5 24.1
5.4 24.5

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 30
5.7 24.4
5.9 24.7
6.3 24.9
6.8 25.2
7.2 25.5
7.3 25.8
7.6 25.7
7.8 26
attach(dados.reg1)

Para estudar a variável Y em função da variável X com dez níveis quantitativos, tem-se:

reg.y<-lm(Y~X) # Montar o modelo

Porém, antes de interpretar a equação de regressão ajustada e a sua significância, é preciso


verificar a validade das pressuposições de normalidade e de homogeneidade das variâncias dos
erros experimentais por meio de:

par(mfrow=c(1,2))
plot(reg.y, which=c(1,2))

Figura 13. Análises de resíduos

Residuals vs Fitted Normal Q-Q


2.0
0.2

8 8
1.5

2 2
Standardized residuals
0.1

1.0
Residuals

0.5
0.0

-0.5 0.0
-0.1

3
-1.5

24.5 25.0 25.5 26.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5

Fitted values Theoretical Quantiles

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 31
De acordo com os gráficos (Figura 13), percebe-se que as pressuposições de normalidade e
homogeneidade de variâncias foram satisfeitas
Para verificar a significância do modelo é necessário verificar a tabela da análise de
variância (Teste F) ou utilizar a função summary (Teste t), que além dessa informação, apresenta as
estimativas dos coeficientes de regressão.

anova(reg.y) # Teste F
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 3.7691 3.7691 282.18 1.597e-07 ***
Residuals 8 0.1069 0.0134
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1
' ' 1
summary(reg.y) # Teste t
Call:
lm(formula = Y ~ X)

Residuals:
Min 1Q Median 3Q Max
-0.15100 -0.07072 -0.01550 0.04947 0.19100

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 20.78186 0.25847 80.40 6.38e-13 ***
X 0.66125 0.03936 16.80 1.60e-07 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1156 on 8 degrees of freedom


Multiple R-Squared: 0.9724, Adjusted R-squared: 0.969
F-statistic: 282.2 on 1 and 8 DF, p-value: 1.597e-07

De acordo com os resultados obtidos, têm-se:


Ŷ = 20,78186 + 0,66125**X, em que ** significa: significativo pelo teste t (P < 0,01).
Uma outra maneira de ter acesso aos coeficientes de regressão, é, por meio de:

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 32
coef(reg.y)
(Intercept) X
20.7818561 0.6612529

O gráfico de regressão linear de Y em função de X é construído por meio de:

plot(Y~X) # Gerar o diagrama de dispersão dos pontos


abline(reg.y) # Traçar a reta ajustada aos pontos (Figura 14)

Outra forma de gerar o gráfico de regressão de Y em função de X seria:

re.reg.y<-residuals(reg.y) # Resíduos do modelo


fit.reg.y<-Y-re.reg.y # Valor de Y ajustado pelo modelo
plot(fit.reg.y~X, type = “l”) # Y ajustado em função de X, ligados por linha
points(Y~X) # Y em função de X, representados por pontos (Figura 14)

Figura 14. Estimativas de Y em função de X

Para estimar Y em função de um valor de X especificado dentro do intervalo estudado, será


criada uma função da seguinte forma:

est.y<-function(reg, x) {coef(reg)[1]+coef(reg)[2]*x} # Criar a função


est.y(reg.y, 6.25) # Valor de Y para X=6,25)
(Intercept)
24.91469

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 33
5.2. Regressão de 2º grau

Como exemplo, será utilizado o arquivo C:/Rdados/regressao2.csv, que será lido por:

dados.reg2<-read.csv2(“regressao2.csv”, dec= “.”)


dados.reg2
X Y
5 10
5.4 10.9
5.7 11.4
5.9 11.5
6.3 12
6.8 11.6
7.2 11.1
7.3 10.5
7.6 10.1
7.8 9.6
attach(dados.reg2)

Para a variável Y em função da variável X com níveis quantitativos, tem-se:

X2<-X^2 # Criar um vetor com o valor de X2


reg2.y<-lm(Y~X+X2) # Modelo de regressão
A verificação das pressuposições de normalidade e de homogeneidade de variâncias dos
erros experimentais (Figura 15), é feita por meio de:

par(mfrow=c(1,2))
plot(reg2.y,which=c(1,2))

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 34
Figura 15. Gráficos dos resíduos para Y

0.2 Residuals vs Fitted Normal Q-Q

5 5

1
0.1

Standardized residuals
0.0
Residuals

0
-0.1

4
4

-1
-0.2
-0.3

-2
8
8

9.5 10.0 10.5 11.0 11.5 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5

Fitted values Theoretical Quantiles

Para verificar a significância do modelo, é necessário verificar a tabela da análise de


variância:

anova(reg2.y)
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 0.5463 0.5463 23.393 0.001885 **
X2 1 4.9313 4.9313 211.166 1.744e-06 ***
Residuals 7 0.1635 0.0234
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Para ver os coeficientes da regressão e construir o gráfico de Y em função de X (Figura 16),


têm-se:

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 35
summary(reg2.y)
Call:
lm(formula = Y ~ X + X2)

Residuals:
Min 1Q Median 3Q Max
-0.30087 -0.01629 0.01407 0.07451 0.19325

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -30.04554 2.94812 -10.19 1.89e-05 ***
X 13.24450 0.93021 14.24 2.00e-06 ***
X2 -1.04782 0.07211 -14.53 1.74e-06 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.1528 on 7 degrees of freedom


Multiple R-Squared: 0.971, Adjusted R-squared: 0.9627
F-statistic: 117.3 on 2 and 7 DF, p-value: 4.143e-06

De acordo com os resultados do summary, tem-se: Ŷ = -30,04554 + 13,24450X - 1,04782X2

plot(Y~X) # Gráfico de dispersão dos pontos


curve(-30.045545 + 13.244500*x + (-1.047822*x^2),add=T) # Curva ajustada

Figura 16. Estimativas de Y em função de X

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 36
Outra forma de gerar o gráfico de regressão de Y em função de X seria:

re.reg2.y<-residuals(reg2.y) # Resíduos do modelo


fit.reg2.y<-Y-re.reg2.y # Valor de Y ajustado pelo modelo
plot(fit.reg2.y~X, type = “l”) # Y ajustado em função de X, ligados por linha
points(Y~X) # Y em função de X, representados por pontos (Figura 17)

Figura 17. Estimativas de Y em função de X

Como pode-se perceber a segunda forma de gerar o gráfico, apesar de ser mais rápida, gera
uma linha de regressão menos precisa, devido à pequena quantidade de amostras aqui utilizadas.
Quando se esta trabalhando com um número maior de amostras, o segundo método irá se aproximar
ainda mais do primeiro.
Para estimar Y em função de um valor de X especificado dentro do intervalo, será criada a
seguinte função:

est2.y<-function(reg, x) {coef(reg)[1]+coef(reg)[2]*x+coef(reg)[3]*x^2}
est2.y(reg2.y, 6.25) # Estimativa de Y para X = 6,25
(Intercept)
11.80203

Capítulo 6 – Experimentos com um Fator de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 37
Capítulo 7

Experimentos com dois ou


três Fatores de Interesse

Gustavo Mello Reis


José Ivo Ribeiro Júnior

Universidade Federal de Viçosa


Departamento de Informática
Setor de Estatística

Viçosa 2007
Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 1
1. Dois Fatores

1.1. Interação AxB não Significativa

Como exemplo, considere um experimento fatorial 3 x 2, sendo o fator X


composto de três tipos de zarcões de tinta e o fator XX de dois métodos de
aplicação, instalado segundo o delineamento inteiramente casualizado com
três repetições. O objetivo é de melhorar a adesão da tinta em superfícies de
alumínio (Y) (Tabela 1).

Tabela 1. Dados da força de adesão


Método de aplicação
Tipo de zarcão Imersão (I) Aspersão (A)
A 4,0 4,5 4,3 5,4 4,9 5,6
B 5,6 4,9 5,4 5,8 6,1 6,3
C 5,5 5,0 5,0 5,6 5,7 6,0

Para entrar com os dados no R, será utilizado o arquivo “dados2f.csv”,


que será lido da seguinte forma:

dados.2f<-read.csv2(“dados2f.csv”, dec= “.”)


dados.2f
TRAT X XX XXX Y
1 A I 1 4
2 B I 1 5.6
3 C I 1 5.5
4 A A 1 5.4
5 B A 1 5.8
6 C A 1 5.6
1 A I 2 4.5
2 B I 2 4.9
3 C I 2 5.0
4 A A 2 4.9
5 B A 2 6.1
6 C A 2 5.7

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 2
1 A I 3 4.3
2 B I 3 5.4
3 C I 3 5.0
4 A A 3 5.6
5 B A 3 6.3
6 C A 3 6.0
attach(dados.2f)

1.1.1. DIC

A montagem do modelo completo e os testes de normalidade e de


homogeneidade de variâncias dos erros experimentais (Figura 1), serão feitos
da seguinte forma:
mod.2f<-lm(Y~X*XX) # Montar o modelo
re.2f<-residuals(mod.2f) # Armazenar os resíduos no objeto re.2f
par(mfrow=c(1,2)) # Dividir a janela dos gráficos em duas partes
plot(mod.2f,which=c(1,2)) # Gerar os gráficos 1 e 2 para a análise dos
resíduos

Figura 1 Gráficos de resíduos

Residuals vs Fitted Normal Q-Q


0.4

1.5

3 3
1.0
0.2

Standardized residuals

0.5
Residuals

0.0

0.0
-1.0 -0.5
-0.2
-0.4

-1.5

10
8
10 8

4.5 5.0 5.5 6.0 -2 -1 0 1 2

Fitted values Theoretical Quantiles

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 3
O teste de Lilliefors é dado por:

library(nortest) # Ativar o pacote nortest para aplicar o teste de Lilliefors


lillie.test(re.2f) # Teste de Lilliefors
Lilliefors (Kolmogorov-Smirnov) normality test

data: re.2f
D = 0.1621, p-value = 0.2404

O teste de Kolmogorov-Smirnov é dado por:

ks.test(re.2f, "pnorm", mean= 0, sd= sd(re.2f))


One-sample Kolmogorov-Smirnov test

data: re.2f
D = 0.1621, p-value = 0.7312
alternative hypothesis: two.sided

O teste de Bartlett é dado por:

bartlett.test(re.2f ,TRAT)
Bartlett test of homogeneity of variances

data: re.2f and TRAT


Bartlett's K-squared = 0.7892, df = 5, p-value = 0.9777

Assim, para α = 0,05, os resíduos são normais e homogêneos. Logo, a


anova é apresentada como segue:

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 4
anova(mod.2f)
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 2 2.64778 1.32389 15.4740 0.0004758 ***
XX 1 2.88000 2.88000 33.6623 8.448e-05 ***
X:XX 2 0.14333 0.07167 0.8377 0.4565219
Residuals 12 1.02667 0.08556
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Como pode-se observar, não existe (P < 0,05) interação entre os fatores
X e XX. Outra forma de observar este resultado é através do gráfico de
interação da seguinte forma:

mod.2f.fits<-lm(Y~X+XX) # Modelo com os fatores significativos


re.2f.fits<-residuals(mod.2f.fits) # Resíduos do modelo
f.mod.2f.fits<-Y-re.2f.fits # Valores de Y ajustado pelo modelo
interaction.plot(X, XX, f.mod.2f.fits) # Gráfico da interação X x XX

1.2. Interação AxB Significativa

Como exemplo, considere um experimento fatorial 3 x 2, sendo o fator X


composto de três tipos de zarcões de tinta e o fator XX de dois métodos de
aplicação, instalado segundo o delineamento inteiramente casualizado com
três repetições. O objetivo é de melhorar a adesão da tinta em superfícies de
alumínio (Y) (Tabela 2).
Tabela 2. Dados da força de adesão
Método de aplicação
Tipo de zarcão Imersão (I) Aspersão (A)
A 4,0 4,5 4,3 5,4 4,9 5,6
B 5,6 4,9 5,4 5,8 6,1 6,3
C 5,5 5,0 5,0 3,8 3,7 4,0

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 5
Para entrar com os dados no R, será utilizado o arquivo “dados2f.csv”,
que será lido da seguinte forma:

dados.2f<-read.csv2(“dados2f.csv”, dec= “.”)


dados.2f
TRAT X XX XXX Y
1 A I 1 4
2 B I 1 5.6
3 C I 1 5.5
4 A A 1 5.4
5 B A 1 5.8
6 C A 1 3.8
1 A I 2 4.5
2 B I 2 4.9
3 C I 2 5.0
4 A A 2 4.9
5 B A 2 6.1
6 C A 2 3.7
1 A I 3 4.3
2 B I 3 5.4
3 C I 3 5.0
4 A A 3 5.6
5 B A 3 6.3
6 C A 3 4.0
attach(dados.2f)

1.2.1. DIC

A montagem do modelo completo e os testes de normalidade e de


homogeneidade de variâncias dos erros experimentais (Figura 2), serão feitos
da seguinte forma:

mod.2f<-lm(Y~X*XX) # Montar o modelo


re.2f<-residuals(mod.2f) # Armazenar os resíduos no objeto re.2f
par(mfrow=c(1,2)) # Dividir a janela dos gráficos em duas partes

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 6
plot(mod.2f,which=c(1,2)) # Gerar os gráficos 1 e 2 para a análise dos
resíduos

Figura 2. Gráficos de resíduos

Residuals vs Fitted Normal Q-Q


0.4

1.5
3 3

1.0
0.2

Standardized residuals

0.5
Residuals

0.0

0.0
-1.5 -1.0 -0.5
-0.2
-0.4

10
8
10 8

4.0 4.5 5.0 5.5 6.0 -2 -1 0 1 2

Fitted values Theoretical Quantiles

O teste de Lilliefors é dado por:

library(nortest) # Ativar o pacote nortest para aplicar o teste de Lilliefors


lillie.test(re.2f) # Teste de Lilliefors
Lilliefors (Kolmogorov-Smirnov) normality test

data: re.2f
D = 0.1114, p-value = 0.803

O teste de Kolmogorov-Smirnov é dado por:

ks.test(re.2f, "pnorm", mean= 0, sd= sd(re.2f))


One-sample Kolmogorov-Smirnov test

data: re.2f
D = 0.1114, p-value = 0.9788
alternative hypothesis: two.sided

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 7
O teste de Bartlett é dado por:

bartlett.test(re.2f ,TRAT)
Bartlett test of homogeneity of variances

data: re.2f and TRAT


Bartlett's K-squared = 1.4265, df = 5, p-value = 0.9214

Assim, para α = 0,05, os resíduos são normais e homogêneos. Logo, a


anova é apresentada como segue:

anova(mod.2f)
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 2 4.5811 2.2906 27.8581 3.097e-05 ***
XX 1 0.1089 0.1089 1.3243 0.2722
X:XX 2 5.0411 2.5206 30.6554 1.923e-05 ***
Residuals 12 0.9867 0.0822
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Como pode-se observar, existe (P < 0,05) interação entre os fatores X e


XX. Outra forma de observar este resultado é através do gráfico de interação
(Figura 3) da seguinte forma:

interaction.plot(X, XX, Y)

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 8
Figura 3. Gráfico da interação entre os fatores X e XX

Para estudar os níveis do fator X dentro de cada nível de XX, têm-se:

mod.i<-lm(Y[XX= = “I”]~X[XX= = “I”])


anova(mod.i)
Analysis of Variance Table

Response: Y[XX == "I"]


Df Sum Sq Mean Sq F value Pr(>F)
X[XX == "I"] 2 1.89556 0.94778 10.277 0.01154 *
Residuals 6 0.55333 0.09222
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

mod.a<-lm(Y[XX= = “A”]~X[XX= = “A”])


anova(mod.a)
Analysis of Variance Table

Response: Y[XX == "A"]


Df Sum Sq Mean Sq F value Pr(>F)
X[XX == "A"] 2 7.7267 3.8633 53.492 0.0001498 ***
Residuals 6 0.4333 0.0722
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 9
Em função dos resultados das anovas realizadas, pode-se montar a
Tabela 3 por meio do desdobramento da interação X*XX.

Tabela 3. ANOVA do fator X dentro dos níveis do fator XX


FV GL SQ QM F Ftab,5%
X/XXI 2 1,8956 0,9478 11,53 3,89
X/XXA 2 7,7267 3,8633 47,00 3,89
Resíduo 12 0,9867 0,0822 − −

Para estudar os níveis do fator XX dentro de cada nível de X, têm-se:

mod.a<-lm(Y[X= = “A”]~XX[X= = “A”])


anova(mod.a)
Analysis of Variance Table

Response: Y[X == "A"]


Df Sum Sq Mean Sq F value Pr(>F)
XX[X == "A"] 1 1.60167 1.60167 16.569 0.01522 *
Residuals 4 0.38667 0.09667
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

mod.b<-lm(Y[X= = “B”]~XX[X= = “B”])


anova(mod.b)
Analysis of Variance Table

Response: Y[X == "B"]


Df Sum Sq Mean Sq F value Pr(>F)
XX[X == "B"] 1 0.88167 0.88167 9.1207 0.03916 *
Residuals 4 0.38667 0.09667
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

mod.c<-lm(Y[X= = “C”]~XX[X= = “C”])

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 10
anova(mod.c)
Analysis of Variance Table

Response: Y[X == "C"]


Df Sum Sq Mean Sq F value Pr(>F)
XX[X == "C"] 1 2.66667 2.66667 50 0.002111 **
Residuals 4 0.21333 0.05333
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Em função dos resultados das anovas realizadas, pode-se montar a


Tabela 4 por meio do desdobramento da interação X*XX.

Tabela 4. ANOVA do fator XX dentro dos níveis do fator X


FV GL SQ QM F Ftab,5%
XX/XA 1 1,6017 1,6017 19,49 4,75
XX/XB 1 0,8817 0,8817 10,73 4,75
XX/XC 1 2,6667 2,6667 32,45 4,75
Resíduo 12 0,9867 0,0822 − −

1.2.2. DBC

Como exemplo será utilizado os mesmos dados apresentados no tópico


anterior. Porém, os níveis do fator XXX serão considerados como blocos, e
como este está representado por valores numéricos, é necessário transforma-
lo em fator, para que o R reconheça-o como sendo qualitativo, como segue:

XXXql<-factor(XXX)

O modelo completo e as análises de resíduos serão feitos da seguinte


forma:

mod.2fdbc<-lm(Y~X*XX+XXXql)
re.2fdbc<-residuals(mod.2fdbc)

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 11
par(mfrow=c(1,2))
plot(mod.2fdbc, which=c(1,2))
# Teste de Lilliefors
library(nortest)
lillie.test(re.2fdbc)
# Teste de Kolmogorov-Smirnov
ks.test(re.2fdbc, “pnorm”, mean=mean(re.2fdbc), sd=sd(re.2fdbc))
# Teste de Bartlett
bartlett.test(re.2fdbc,TRAT)

Para α = 0,05, os resíduos são normais e homogêneos, pelo teste de


Lilliefors (P > 0,05) e de Bartlett (P > 0,05). Desse modo, a anova é
apresentada como segue:

anova(mod.2fdbc)
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 2 4.5811 2.2906 28.9130 6.967e-05 ***
XX 1 0.1089 0.1089 1.3745 0.2682
XXXql 2 0.1944 0.0972 1.2272 0.3337
X:XX 2 5.0411 2.5206 31.8163 4.620e-05 ***
Residuals 10 0.7922 0.0792
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

O gráfico da interação entre os fatores X e XX, pode ser obtido por:

interaction.plot(X, XX, Y)

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 12
1.3. Superfície de Resposta

A metodologia da superfície de resposta é útil para a modelagem e


análise nas aplicações em que a resposta de interesse seja influenciada por
duas variáveis com mais de dois níveis quantitativos.
Nesse estudo, a maior superfície de resposta é dada por:
Y = β0 + β1X + β2X2 + β3XX + β4XX2 + β5X*XX + erro
Como exemplo será utilizado o arquivo de dados “super.csv”, que
contém os dados de um processo químico, onde as variáveis respostas
viscosidade (Y) e conversão (YY) foram medidas em função das variáveis
independentes tempo de reação (X) e temperatura (XX).
A entrada dos dados no R será feita da seguinte forma:

dados.super<-read.csv2(“super.csv”,dec= “.”)
dados.super
X XX Y YY
50 160 35 65.3
60 160 39 68.2
50 170 36 66.0
60 170 43 69.8
48 165 30 64.5
62 165 44 69.0
55 158 31 64.0
55 172 45 68.5
55 165 37 68.9
55 165 34 69.7
55 165 35 68.5
55 165 36 69.4
55 165 37 69.0
attach(dados.super)

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 13
1.3.1. Superfície de 1º Grau

Para gerar a superfície de resposta de Y em função de X e XX, serão


feitos os seguintes passos:

# Criar vetores contendo os fatores X e XX ao quadrado


X2<-X^2
XX2<-XX^2
# Criar vetor com a interação X*XX
XXX<-X*XX
# Montar a superfície completa
mod.y.comp<-lm(Y~X+X2+XX+XX2+XXX) # Modelo de regressão completo

De acordo com o teste t, apresentado pelo comando summary, será


retirado um fator de cada vez, começando a partir do mais complexo de
interpretação e que seja não significativo (P > α). No exemplo têm-se:
summary(mod.y.comp)
Call:
lm(formula = Y ~ X + X2 + XX + XX2 + XXX)

Residuals:
Min 1Q Median 3Q Max
-3.0090 -1.7943 0.2057 1.2057 3.3201

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1683.71923 1184.78573 1.421 0.198
X -7.68659 9.47433 -0.811 0.444
X2 0.03190 0.03930 0.812 0.444
XX -18.29144 13.27050 -1.378 0.211
XX2 0.05231 0.03930 1.331 0.225
XXX 0.03000 0.05108 0.587 0.575

Residual standard error: 2.554 on 7 degrees of freedom


Multiple R-Squared: 0.8223, Adjusted R-squared: 0.6953
F-statistic: 6.477 on 5 and 7 DF, p-value: 0.01470

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 14
# Retirar a interação entre os fatores X e XX do modelo
mod.y1<-lm(Y~ X+X2+XX+XX2)
summary(mod.y1)
Call:
lm(formula = Y ~ X + X2 + XX + XX2)

Residuals:
Min 1Q Median 3Q Max
-3.0090 -1.7943 0.2057 1.2057 4.0701

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1411.46923 1044.73023 1.351 0.214
X -2.73659 4.14568 -0.660 0.528
X2 0.03190 0.03765 0.847 0.421
XX -16.64144 12.42730 -1.339 0.217
XX2 0.05231 0.03765 1.389 0.202

Residual standard error: 2.447 on 8 degrees of freedom


Multiple R-Squared: 0.8135, Adjusted R-squared: 0.7203
F-statistic: 8.724 on 4 and 8 DF, p-value: 0.005146

# Retirar o fator X2 do modelo


mod.y2<-lm(Y~ X+XX+XX2)
summary(mod.y2)
Call:
lm(formula = Y ~ X + XX + XX2)

Residuals:
Min 1Q Median 3Q Max
-3.3653 -1.3386 -0.3386 0.6920 4.4192

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1211.00996 1001.50700 1.209 0.25740
X 0.77273 0.17118 4.514 0.00146 **
XX -15.37480 12.14211 -1.266 0.23722

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 15
XX2 0.04847 0.03679 1.318 0.22021
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.409 on 9 degrees of freedom


Multiple R-Squared: 0.7968, Adjusted R-squared: 0.729
F-statistic: 11.76 on 3 and 9 DF, p-value: 0.001816

# Retirar o fator XX2 do modelo


mod.y3<-lm(Y~ X+XX)
summary(mod.y3)
Call:
lm(formula = Y ~ X + XX)

Residuals:
Min 1Q Median 3Q Max
-3.0769 -1.6678 -0.3193 1.1655 4.8928

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -107.9231 30.8558 -3.498 0.00575 **
X 0.7727 0.1774 4.357 0.00143 **
XX 0.6212 0.1774 3.502 0.00570 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.496 on 10 degrees of freedom


Multiple R-Squared: 0.7576, Adjusted R-squared: 0.7091
F-statistic: 15.62 on 2 and 10 DF, p-value: 0.0008375

O modelo final é aquele que contém somente fatores significativos ( P ≤


α) pelo teste t. No exemplo, tem-se:

mod.y<-mod.y3

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 16
Porém antes da interpretação dos resultados, é necessário verificar se
as pressuposições de normalidade e homogeneidade de variâncias dos erros
experimentais são satisfeitas (Figura 4):

par(mfrow=c(1,2))
plot(mod.y, which=c(1,2))

Figura 4. Gráficos dos resíduos

R e s i d u a ls vs F i tte d N o rm a l Q -Q

1 1
4

2
8

Standardized residuals
8
2
Residuals

1
0

0
-2

-1

10
10
-4

30 32 34 36 38 40 42 44 -1 .5 -0 .5 0 .0 0 .5 1 .0 1 .5

F i tte d va lu e s T h e o re ti c a l Q u a n ti le s

anova(mod.y) # Verificar pelo teste F que as variáveis X e XX são


significativas
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 118.227 118.227 18.981 0.001428 **
XX 1 76.409 76.409 12.267 0.005703 **
Residuals 10 62.287 6.229
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

summary(mod.y)
Call:
lm(formula = Y ~ X + XX)

Residuals:

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 17
Min 1Q Median 3Q Max
-3.0769 -1.6678 -0.3193 1.1655 4.8928

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -107.9231 30.8558 -3.498 0.00575 **
X 0.7727 0.1774 4.357 0.00143 **
XX 0.6212 0.1774 3.502 0.00570 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.496 on 10 degrees of freedom


Multiple R-Squared: 0.7576, Adjusted R-squared: 0.7091
F-statistic: 15.62 on 2 and 10 DF, p-value: 0.0008375

De acordo com os testes F e t, conclui-se que as variáveis X e XX


exercem efeitos (P < 0,05).
Os coeficientes de regressão serão armazenados em uma variável, para
serem usados na montagem da superfície de resposta de Y em função de X e
XX.

co.y<-coef(mod.y) # Armazenar os coeficientes no objeto co.y


co.y # Visualizar os coeficientes
(Intercept) X XX
-107.9230769 0.7727273 0.6212121

Serão criados dois vetores (x e xx) contendo 15 coordenadas igualmente


espaçadas por onde o plano será traçado pelos eixos X e XX, respectivamente:
x<-seq(min(X), max(X), (max(X) - min(X)) / 15)
xx<-seq(min(XX), max(XX), (max(XX) - min(XX)) / 15)

A forma geral da função anterior é: seq(de tanto, até tanto, espaçados


por tanto).
Agora será criada a função utilizando os coeficientes da regressão:

f.y<-function(x,xx) {co.y[1] + co.y[2]*x + co.y[3]*xx } # Função estimada


Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 18
y<-outer(x,xx,f.y) # Fazer combinações de cada valor de x aos de xx com a
função f.y

A superfície de resposta será construída da seguinte forma:

persp(x,xx,y) # Construir a superfície de resposta (Figura 5)

Figura 5. Superfície de resposta de Y em função de X e XX

Para melhorar a aparência e a visualização da superfície de resposta,


podem ser utilizados os argumentos apresentados a seguir:
a) main e sub: título principal e rodapé, respectivamente;
b) xlab, ylab e zlab: nomes dos eixos x, y e z, respectivamente;
c) col: cor para a superfície de resposta;
d) phi: valor para o anglo que gira a figura no sentido vertical;
e) theta: valor para o anglo que gira a figura no sentido horizontal;
f) ticktype: pode receber os valores “simple” ou “detailed”, sendo que o primeiro
indica que os eixos irão ter apenas uma seta indicando o sentido crescente
deste (figura 6.7) e o segundo indica que os valores devem aparecer nos seus
respectivos eixos (figura 6.8);
g) expand: proporção para o tamanho do eixo z em relação aos eixos x e y,
para valores entre 0 e 1 o eixo z diminui e para valores maiores que 1 o eixo z
aumenta;

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 19
h) d: serve para redimensionar o gráfico, de acordo com diferentes valores
numéricos;
j) r: também redimensiona o gráfico, porém em outras partes de acordo com
diferentes valores numéricos.
Uma forma melhorada desta superfície de resposta (Figura 6) poderia
ser obtida pelo comando abaixo:

persp(x, xx, y, main= “Y = a + bX + cXX”, xlab= “Tempo de Reação”, ylab=


“Temperatura”, zlab= “Viscosidade”, col= “lightgrey”, phi=10, theta=300,
ticktype= “detailed”, expand=0.75, d=20, r=10)

Figura 6. Superfície de resposta melhorada

Para construir o gráfico de contorno (Figura 7), será utilizado o comando


a seguir:

contour(x,xx,y)

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 20
Figura 7. Gráfico de contorno de Y em função de X e XX

1.3.2. Superfície de 2º Grau

Para gerar a superfície de resposta de YY em função de X, XX, X2 e


XX2, deve-se confirmar, a priori, pelo teste t, que todos esses fatores são
significativos (P ≤ α) e que o fator da interação não é significativo (P > α). Dada
essa confirmação, têm-se:

X2<-X^2 # Criar um vetor com os valores de X2


XX2<-XX^2 # Criar um vetor com os valores de XX2
mod.yy<-lm(YY~X+X2+XX+XX2) # Montar o modelo de regressão do 2º grau
anova(mod.yy) # Verificar pelo teste F que as variáveis X’s são
significativas
Analysis of Variance Table

Response: YY
Df Sum Sq Mean Sq F value Pr(>F)
X 1 21.3384 21.3384 36.3878 0.000312 ***
X2 1 4.6555 4.6555 7.9389 0.022577 *
XX 1 9.3384 9.3384 15.9245 0.004002 **
XX2 1 10.1687 10.1687 17.3405 0.003147 **
Residuals 8 4.6913 0.5864
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 21
summary(mod.yy)
Call:
lm(formula = YY ~ X + X2 + XX + XX2)

Residuals:
Min 1Q Median 3Q Max
-1.16867 -0.39089 -0.09298 0.30702 1.13236

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -1.438e+03 3.269e+02 -4.399 0.00229 **
X 4.603e+00 1.297e+00 3.548 0.00753 **
X2 -3.886e-02 1.178e-02 -3.298 0.01089 *
XX 1.641e+01 3.889e+00 4.220 0.00292 **
XX2 -4.906e-02 1.178e-02 -4.164 0.00315 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.7658 on 8 degrees of freedom


Multiple R-Squared: 0.9065, Adjusted R-squared: 0.8598
F-statistic: 19.4 on 4 and 8 DF, p-value: 0.0003531

De acordo com os testes F e t, conclui-se que as variáveis X, X2, XX e


XX2 exercem efeitos (P < 0,05) sobre YY.
Os coeficientes de regressão serão armazenados em uma variável, para
serem usados na montagem da função de YY em função de X, X2, XX e XX2.

co.yy<-coef(mod.yy) # Armazenar os coeficientes no objeto co.yy


co.yy # Visualizar os coeficientes
(Intercept) X X2 XX XX2
-1.438098e+03 4.602813e+00 -3.885936e-02 1.640811e+01 -4.906344e-02

Serão criados dois vetores (x e xx) contendo 15 coordenadas igualmente


espaçadas por onde o plano será traçado pelos eixos X e XX, respectivamente:
x<-seq(min(X), max(X), (max(X) - min(X)) / 15)
xx<-seq(min(XX), max(XX), (max(XX) - min(XX)) / 15)
Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 22
Agora será criada a função utilizando os coeficientes da regressão:

f.yy<-function(x,xx)
{co.yy[1]+co.yy[2]*x+co.yy[3]*x^2+co.yy[4]*xx+co.yy[5]*xx^2}
yy<-outer(x,xx,f.yy) # Fazer combinações de cada valor de x aos de xx com a
função

A superfície de resposta (Figura 8) será construída em sua forma


melhorada, da seguinte forma:

persp(x, xx, yy, main= “YY = a + bX + cX2 + dXX + eXX2”, xlab= “Tempo de
Reação”, ylab= “Temperatura”, zlab= “Conversão”, col= “lightgrey”, phi=10,
theta=300, ticktype= “detailed”, expand=0.75, d=20, r=10)

Figura 8. Superfície de resposta de YY em função de X e XX

Para construir o gráfico de contorno (Figura 9), será utilizado o seguinte


comando:

contour(x,xx,yy)

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 23
Figura 9. Gráfico de contorno de YY em função de X e XX

2. Três Fatores

2.1. DIC

Como exemplo, considere o estudo dos efeitos de três fatores na tintura


de um tecido misto de fibra de algodão e de fibra sintética, usado na fabricação
de camisas. Três operadores (XXX), três máquinas (XX) e duas temperaturas
(X) foram utilizados no estudo e três pequenos pedaços de tecido foram
tingidos por tratamento segundo o delineamento inteiramente casualizado. Ao
tecido tingido, foi atribuída uma nota de uma escala numérica (Tabela 5).

Tabela 5. Dados dos tecidos tingidos


Temperatura
300 °C (baixa) 350 °C (alta)
Operador Operador
Máquina A B C A B C
23 27 31 24 38 34
1 24 28 32 23 36 36
25 26 28 28 35 39
36 34 33 37 34 34
2 35 38 34 39 38 36

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 24
36 39 35 35 36 31
28 35 26 26 36 28
3 24 35 27 29 37 26
27 34 25 25 34 34

Para fazer a entrada de dados, será utilizado o arquivo dados3f.csv que


será lido da seguinte forma:

dados.3f<-read.csv2(“dados3f.csv”, dec= “.”)


dados.3f
TRAT X XX XXX XXXX Y
1 alta 1 A 1 34
2 alta 1 B 1 38
3 alta 1 C 1 34
4 alta 2 A 1 37
5 alta 2 B 1 34
6 alta 2 C 1 34
7 alta 3 A 1 26
8 alta 3 B 1 36
9 alta 3 C 1 28
10 baixa 1 A 1 23
11 baixa 1 B 1 27
12 baixa 1 C 1 31
13 baixa 2 A 1 36
14 baixa 2 B 1 34
15 baixa 2 C 1 33
16 baixa 3 A 1 28
17 baixa 3 B 1 35
18 baixa 3 C 1 26
1 alta 1 A 2 23
2 alta 1 B 2 36
3 alta 1 C 2 36
4 alta 2 A 2 39
5 alta 2 B 2 38
6 alta 2 C 2 36
7 alta 3 A 2 29
8 alta 3 B 2 37

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 25
9 alta 3 C 2 26
10 baixa 1 A 2 24
11 baixa 1 B 2 28
12 baixa 1 C 2 32
13 baixa 2 A 2 35
14 baixa 2 B 2 38
15 baixa 2 C 2 34
16 baixa 3 A 2 24
17 baixa 3 B 2 35
18 baixa 3 C 2 27
1 alta 1 A 3 28
2 alta 1 B 3 35
3 alta 1 C 3 39
4 alta 2 A 3 35
5 alta 2 B 3 36
6 alta 2 C 3 31
7 alta 3 A 3 25
8 alta 3 B 3 34
9 alta 3 C 3 34
10 baixa 1 A 3 25
11 baixa 1 B 3 26
12 baixa 1 C 3 28
13 baixa 2 A 3 36
14 baixa 2 B 3 39
15 baixa 2 C 3 35
16 baixa 3 A 3 27
17 baixa 3 B 3 34
18 baixa 3 C 3 25
attach(dados.3f)

A montagem do modelo e as análises de resíduos serão feitos pelos


seguintes comandos:

XXql<-factor(XX) # Criara um vetor qualitativo com os níveis de XX


mod.3f<-lm(Y~X*XXql*XXX)
re.3f<-residuals(mod.3f)
par(mfrow=c(1,2))
plot(mod.3f, which=c(1,2)) # Figura 10
Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 26
Figura 10. Gráficos de resíduos

Residuals vs Fitted Normal Q-Q


6

3
1 1
45 45
4

Standardized residuals

2
2
Residuals

1
0

0
-2

-1
-4

-2
19
-6

19

-3
24 26 28 30 32 34 36 -2 -1 0 1 2

Fitted values Theoretical Quantiles

O teste de Lilliefors é dado por:

library(nortest)
lillie.test(re.3f)
Lilliefors (Kolmogorov-Smirnov) normality test

data: re.3f
D = 0.0792, p-value = 0.543

O teste de Kolmogorov-Smirnov é dado por:

ks.test(re.3f, “pnorm”, mean=mean(re.3f), sd=sd(re.3f))


One-sample Kolmogorov-Smirnov test

data: re.3f
D = 0.0792, p-value = 0.887
alternative hypothesis: two.sided

Warning message:
cannot compute correct p-values with ties in: ks.test(re.3f, "pnorm",
mean = mean(re.3f), sd = sd(re.3f))

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 27
O teste de Bartlett é dado por:
bartlett.test(re.3f, TRAT)
Bartlett test of homogeneity of variances

data: re.3f and TRAT


Bartlett's K-squared = 20.1883, df = 17, p-value = 0.2647

Após ter verificado que para α = 0,05, os resíduos são normais e


homogêneos, a anova é apresentada como segue:

anova(mod.3f)
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 98.69 98.69 18.1877 0.0001383 ***
XXql 2 362.70 181.35 33.4232 6.224e-09 ***
XXX 2 207.81 103.91 19.1502 2.166e-06 ***
X:XXql 2 105.59 52.80 9.7304 0.0004185 ***
X:XXX 2 3.37 1.69 0.3106 0.7349659
XXql:XXX 4 253.19 63.30 11.6655 3.545e-06 ***
X:XXql:XXX 4 27.85 6.96 1.2833 0.2947013
Residuals 36 195.33 5.43
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Os gráficos das interações significativas, X x XXql (P<0,05) e XXql x


XXX (P<0,05), podem ser obtidos por meio de:

interaction.plot(X,XXql,Y) # Figura 11
interaction.plot(XXql, XXX,Y) # Figura 12

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 28
Figura 11. Gráfico da interação entre os fatores X e XXql

Figura 12. Gráfico da interação entre os fatores XXql e XXX

Já o gráfico da interação X x XXX (P>0,05), não significativa, deve ser


construído da seguinte forma:

# Retirar os fatores não significativos


mod.3f.sig<-lm(Y~X+XXql+XXX+X:XXql+XXql:XXX)
re.3f.sig<-residuals(mod.3f.sig) # Resíduos do modelo
fit.3f.sig<-Y-re.3f.sig # Valor de Y ajustado pelo modelo
interaction.plot(X, XXX, fit.3f.sig) # Gráfico da interação com os valores
ajustados
Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 29
Figura 13. Gráfico da interação entre os fatores X e XXX

2.2. DBC

Como exemplo será utilizado os mesmos dados apresentados no tópico


anterior. Porém os níveis de XXXX serão considerados como blocos. O modelo
completo e as análises de resíduos serão feitos da seguinte forma:

XXql<-factor(XX) # Criar um vetor qualitativo com os níveis de XX


XXXXql<-factor(XXXX) # Criar um vetor qualitativo com os níveis de XXXX
mod.3fdbc<-lm(Y~X*XXql*XXX+XXXXql)
re.3fdbc<-residuals(mod.3fdbc)
par(mfrow=c(1,2))
plot(mod.3fdbc, which=c(1,2))
# Teste de Lilliefors
library(nortest)
lillie.test(re.3fdbc)
# Teste de Kolmogorov-Smirnov
ks.test(re.3fdbc, “pnorm”, mean=mean(re.3fdbc), sd=sd(re.3fdbc))
# Teste de Bartlett

Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 30
bartlett.test(re.3fdbc, TRAT)

Verificado que, para α = 0,05, os resíduos são normais (P > 0,05) e


homogêneos (P > 0,05), a anova é apresentada como segue:

anova(mod.3fdbc)
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
X 1 98.69 98.69 17.2394 0.000209 ***
XXql 2 362.70 181.35 31.6805 1.708e-08 ***
XXX 2 207.81 103.91 18.1517 4.331e-06 ***
XXXXql 2 0.70 0.35 0.0615 0.940490
X:XXql 2 105.59 52.80 9.2230 0.000631 ***
X:XXX 2 3.37 1.69 0.2944 0.746868
XXql:XXX 4 253.19 63.30 11.0573 7.476e-06 ***
X:XXql:XXX 4 27.85 6.96 1.2164 0.321995
Residuals 34 194.63 5.72
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Os gráficos das interações X x XXql (P<0,05) e XXql x XXX (P<0,05),


podem ser obtidos por meio de:

interaction.plot(X,XXql,Y)
interaction.plot(XXql, XXX,Y)

E, o gráfico da interação X x XXX (P>0,05), não significativa, deve ser


construído da seguinte forma:
# Retirar os fatores não significativos
mod.3fdbc.sig<-lm(Y~X+XXql+XXX+X:XXql+XXql:XXX)
re.3fdbc.sig<-residuals(mod.3fdbc.sig) # Resíduos do modelo
fit.3fdbc.sig<-Y-re.3fdbc.sig # Valor de Y ajustado pelo modelo
interaction.plot(X, XXX, fit.3fdbc.sig) # Gráfico da interação com os valores
ajustados
Capítulo 7 – Experimentos com dois ou três Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 31
Capítulo 8

Experimentos k Fatores de
Interesse

Gustavo Mello Reis


José Ivo Ribeiro Júnior

Universidade Federal de Viçosa


Departamento de Informática
Setor de Estatística

Viçosa 2007

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 1
1. Fatorial 2k Completo

O fatorial 2k é útil nos estágios iniciais de um trabalho experimental,


quando muitos fatores são prováveis de serem investigados.

1.1. Fatorial 22

Consiste em ensaiar dois fatores com apenas dois níveis qualitativos ou


quantitativos.
Como exemplo, considere os resultados de um fatorial 22 com quatro
repetições, segundo um delineamento inteiramente casualizado armazenados
no arquivo “fatorial22.csv”. Os fatores A (tempo de deposição) e B (taxa de
escoamento de arsênico) consistem dos níveis curto (-1) e longo (1) e de 55%
(-1) e 59% (1), respectivamente. A variável resposta é a espessura (µm) da
camada epitaxial, (Y). No R, os dados serão lidos da seguinte forma:

dados.fat22<-read.csv2(“fatorial22.csv”, dec= “.”)


dados.fat22
TRAT rept A B Y
1 1 -1 -1 14.037
1 2 -1 -1 14.165
1 3 -1 -1 13.972
1 4 -1 -1 13.907
2 1 1 -1 14.821
2 2 1 -1 14.757
2 3 1 -1 14.843
2 4 1 -1 14.878
3 1 -1 1 13.880
3 2 -1 1 13.860
3 3 -1 1 14.032
3 4 -1 1 13.914
4 1 1 1 14.888
4 2 1 1 14.921
4 3 1 1 14.415
4 4 1 1 14.932
attach(dados.fat22)

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 2
O modelo é o seguinte:

mod.fat22<-lm(Y~A*B) # Montagem do modelo completo

Antes da interpretação dos resultados, é necessário verificar a validade


das pressuposições:

re.mod.fat22<-residuals(mod.fat22) # Resíduos do modelo


ks.test(re.mod.fat22, “pnorm”, mean=0, sd = sd(re.mod.fat22))
bartlett.test(re.mod.fat22, TRAT)

Com as pressuposições satisfeitas, tem-se:

anova(mod.fat22) # Gerar o quadro da ANOVA


Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
A 1 2.79558 2.79558 134.4675 7.076e-08 ***
B 1 0.01809 0.01809 0.8701 0.3693
A:B 1 0.00397 0.00397 0.1909 0.6699
Residuals 12 0.24948 0.02079
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

O gráfico da interação AxB, não significativa, deve ser construído da


seguinte forma:

mod.fat22.sig<-lm(Y~A) # Modelo contendo apenas o fator significativo


re.mod.fat22.sig<-residuals(mod.fat22.sig) # Resíduos do modelo
fit.mod.fat22.sig<-Y-re.mod.fat22.sig # Valor de Y ajustado pelo modelo
interaction.plot(A, B, fit.mod.fat22.sig) # Gráfico da interação com os valores
ajustados

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 3
Para obter as estimativas dos efeitos, deve-se multiplicar as estimativas
dos coeficientes por dois, da seguinte forma:

coef(mod.fat22)*2
(Intercept) A B A:B
28.77775 0.83600 -0.06725 0.03150

1.2. Fatorial 23

Como exemplo, considere os resultados de um fatorial 23 com duas


repetições, segundo um delineamento inteiramente casualizado representados
no arquivo “fatorial23.csv”. Os fatores A (taxa de alimentação), B (profundidade
de corte) e C (ângulo de corte), com dois níveis cada um, denotados por -1 e 1.
A variável resposta é a rugosidade da superfície (Y).
Os dados serão lidos no R da seguinte forma:

dados.fat23<-read.csv2(“fatorial23.csv”, dec= “.”)


dados.fat23
TRAT rept A B C Y
1 1 -1 -1 -1 9
1 2 -1 -1 -1 7
2 1 1 -1 -1 10
2 2 1 -1 -1 12
3 1 -1 1 -1 9
3 2 -1 1 -1 11
4 1 1 1 -1 12
4 2 1 1 -1 15
5 1 -1 -1 1 11
5 2 -1 -1 1 10
6 1 1 -1 1 10
6 2 1 -1 1 13
7 1 -1 1 1 10
7 2 -1 1 1 8
8 1 1 1 1 16
8 2 1 1 1 14
attach(dados.23)

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 4
A montagem do modelo e a verificação das pressuposições se dão por:

mod.fat23<-lm(Y~A*B*C) # Montagem do modelo completo


re.mod.fat23<-residuals(mod.fat23) # Resíduos do modelo
ks.test(re.mod.fat23, “pnorm”, mean=0, sd = sd(re.mod.fat23))
bartlett.test(re.mod.fat23, TRAT)

Com as pressuposições satisfeitas, tem-se:

anova(mod.fat23) # Gerar o quadro da ANOVA


Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
A 1 45.562 45.562 18.6923 0.002534 **
B 1 10.562 10.562 4.3333 0.070931 .
C 1 3.062 3.062 1.2564 0.294849
A:B 1 7.562 7.562 3.1026 0.116197
A:C 1 0.062 0.062 0.0256 0.876749
B:C 1 1.562 1.562 0.6410 0.446463
A:B:C 1 5.062 5.062 2.0769 0.187512
Residuals 8 19.500 2.438
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Como não houve interação significativa, o gráfico de interação deve ser


construído da seguinte forma:

mod.fat23.sig<-lm(Y~A) # Modelo contendo apenas o fator significativo


re.mod.fat23.sig<-residuals(mod.fat23.sig) # Resíduos do modelo
fit.mod.fat23.sig<-Y-re.mod.fat23.sig # Valor de Y ajustado pelo modelo
interaction.plot(A, B, fit.mod.fat23.sig) # Gráfico da interação com os valores
ajustados
interaction.plot(A, C, fit.mod.fat23.sig)
interaction.plot(B, C, fit.mod.fat23.sig)

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 5
As estimativas dos efeitos serão obtidas através de:

coef(mod.fat23)*2
(Intercept) A B C A:B A:C B:C A:B:C

22.125 3.375 1.625 0.875 1.375 0.125 -0.625 1.125

1.3. Fatorial 24

Como exemplo, considere os resultados de um fatorial 24 com uma


repetição, segundo um delineamento inteiramente casualizado representados
no arquivo “fatorial24.csv”. Os fatores A (espaçamento), B (pressão), C
(escoamento de C2F6) e D (potência), com dois níveis cada um, denotados por
-1 e 1. A variável resposta é a taxa de ataque por plasma do nitreto de silicone
(Y).
Os dados serão lidos no R da seguinte forma:

dados.fat24<-read.csv2(“fatorial24.csv”, dec= “.”)


dados.fat24
TRAT A B C D Y
1 -1 -1 -1 -1 550
2 1 -1 -1 -1 669
3 -1 1 -1 -1 604
4 1 1 -1 -1 650
5 -1 -1 1 -1 633
6 1 -1 1 -1 642
7 -1 1 1 -1 601
8 1 1 1 -1 635
9 -1 -1 -1 1 1037
10 1 -1 -1 1 749
11 -1 1 -1 1 1052
12 1 1 -1 1 868
13 -1 -1 1 1 1075

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 6
14 1 -1 1 1 860
15 -1 1 1 1 1063
16 1 1 1 1 729
attach(dados.fat24)

A montagem do modelo e a verificação das pressuposições se dão por:

mod.fat24<-lm(Y~A*B*C*D) # Montagem do modelo completo


re.mod.fat24<-residuals(mod.fat24) # Resíduos do modelo
ks.test(re.mod.fat24, “pnorm”, mean=0, sd = sd(re.mod.fat24))
bartlett.test(re.mod.fat24, TRAT)

As estimativas dos efeitos serão obtidas da seguinte forma:

efeito<-coef(mod.fat24)*2
efeito
(Intercept) A B C D A:B
1552.125 -101.625 -1.625 7.375 306.125 -7.875

A:C B:C A:D B:D C:D A:B:C


-24.875 -43.875 -153.625 -0.625 -2.125 -15.625

A:B:D A:C:D B:C:D A:B:C:D


4.125 5.625 -25.375 -40.125

Será construído o gráfico de probabilidade normal dos efeitos, com o


objetivo de identificar os efeitos de terceira e quarta ordens (difícil
interpretação) que possam ser considerados não significativos e, portanto irão
compor o resíduo, para tanto, serão considerados não significativos aqueles
que estiverem próximos à reta.

qqnorm(efeito)
qqline(efeito)

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 7
Figura 1. Gráfico de probabilidade normal dos efeitos

1500
1000 Normal Q-Q Plot
Sample Quantiles

500
0

-2 -1 0 1 2

Theoretical Quantiles

Para identificar a qual efeito cada ponto está relacionado, deve-se


utilizar uma função para ordenar os efeitos, assim os efeitos ordenados terão a
mesma seqüência, da esquerda para direita, observada no gráfico.

sort(efeito)
A:D A B:C A:B:C:D B:C:D A:C
-153.625 -101.625 -43.875 -40.125 -25.375 -24.875

A:B:C A:B C:D B B:D A:B:D


-15.625 -7.875 -2.125 -1.625 -0.625 4.125

A:C:D C D (Intercept)
5.625 7.375 306.125 1552.125

De acordo com o gráfico de probabilidades dos efeitos (Figura 1), pode-


se concluir que todos os efeitos de terceira e quarta ordens podem ser
retirados do modelo. Assim, será construído um novo modelo desconsiderando
esses efeitos, da seguinte forma:

mod.fat24<-lm(Y~A+B+C+D+A:B+A:C+A:D+B:C+B:D+C:D)

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 8
Se as pressuposições forem satisfeitas, então tem-se:
anova(mod.fat24) # Gerar o quadro da ANOVA
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
A 1 41311 41311 20.2765 0.006382 **
B 1 11 11 0.0052 0.945391
C 1 218 218 0.1068 0.757069
D 1 374850 374850 183.9879 3.903e-05 ***
A:B 1 248 248 0.1218 0.741351
A:C 1 2475 2475 1.2148 0.320582
A:D 1 94403 94403 46.3357 0.001042 **
B:C 1 7700 7700 3.7794 0.109498
B:D 1 2 2 0.0008 0.978978
C:D 1 18 18 0.0089 0.928641
Residuals 5 10187 2037
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

O gráfico da interação AxD, significativa (P < 0,05), pode sr construído


da seguinte forma:

interaction.plot(A, D, Y)

Já os gráficos de interação para os fatores que não tiveram interação


significativa (P > 0,05), devem ser construídos da seguinte forma:

mod.fat24.sig<-lm(Y~A+D+A:D) # Modelo contendo apenas os fatores


significativos
re.mod.fat24.sig<-residuals(mod.fat24.sig) # Resíduos do modelo
fit.mod.fat24.sig<-Y-re.mod.fat24.sig # Valor de Y ajustado pelo modelo
interaction.plot(A, B, fit.mod.fat24.sig) # Gráfico da interação com os valores
ajustados
interaction.plot(A, C, fit.mod.fat24.sig)
interaction.plot(B, C, fit.mod.fat24.sig)
interaction.plot(B, D, fit.mod.fat24.sig)

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 9
interaction.plot(C, D, fit.mod.fat24.sig)

2. Fatorial 2k Fracionado

À medida que o número de fatores em um fatorial 2k aumenta, o número


de tratamentos também aumenta. Por exemplo, no fatorial 25, existem 32
tratamentos. Nesse fatorial, somente cinco graus de liberdade correspondem
aos efeitos principais e 10 graus de liberdade correspondem às interações de
segunda ordem. Dezesseis dos 31 graus de liberdade são usados para estimar
interações de ordens altas, ou seja, interações de terceira, quarta e quinta
ordens. Freqüentemente, há pouco interesse nessas interações de ordens
altas, particularmente quando se começa a estudar um processo. Se puder
considerar que as interações de ordens altas são negligenciáveis, então um
fatorial fracionado, envolvendo menos tratamentos que um fatorial completo 2k,
poderá ser usado para obter informações sobre os efeitos principais e as
interações de ordens baixas. Assim, os fatores que forem identificados como
importantes, serão estudados mais profundamente em experimentos
subseqüentes.
Para fazer o planejamento no R deve-se instalar o pacote conf.design.
Após a instalação, deve-se ativá-lo com o comando library(conf.design).

2.1. Fatorial Fracionado 2k−−1

Como exemplo, considere o experimento do ataque por plasma, onde foi


usado um fatorial fracionado 24–1, para estudar os quatro fatores: espaçamento
(A), pressão (B), taxa de escoamento de C2F6 (C) e potência (D). Esse fatorial
foi construído como o fatorial básico 23 nos fatores A, B e C e estabelecido os
níveis do quarto fator D = ABC, ou seja, I=ABCD.
O comando para gerar o planejamento no R, será utilizado da seguinte
forma:

conf.design( G = matriz, p = número de níveis, block.name = nome dos blocos,


treatment.names = nomes dos tratamentos)

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 10
A matriz G deve conter a relação de definição para a obtenção do
planejamento. Como neste caso existe apenas um (I=ABC), a matriz será M1x4.
No R, tem-se:

m24<-c(1,1,1,1) # Matriz G
pla24<-conf.design(G=m24, p=2, treatment.names=c(“A”,“B”,“C”,“D”))
pla24
Blocks A B C D
1 0 0 0 0 0
2 0 1 1 0 0
3 0 1 0 1 0
4 0 0 1 1 0
5 0 1 0 0 1
6 0 0 1 0 1
7 0 0 0 1 1
8 0 1 1 1 1
9 1 1 0 0 0
10 1 0 1 0 0
11 1 0 0 1 0
12 1 1 1 1 0
13 1 0 0 0 1
14 1 1 1 0 1
15 1 1 0 1 1
16 1 0 1 1 1

Como pode ser observado o R gera todos planejamentos possíveis e os


separa em blocos. Neste exemplo o bloco 0 é para I = ABCD e o bloco 1 para I
= - ABCD. Como será utilizado apenas um bloco, o segundo será eliminado da
seguinte forma:

pla24<-pla24[1:8,]

Para substituir os zeros por -1, referentes aos fatores obtidos no


planejamento, pode-se utilizar o seguinte comando:

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 11
fix(pla24)

Também, serão adicionados os valores da variável Y na posição var6.


Para isso deve-se dar um clique em var6 e escolher, na janela que será aberta
(Figura 2a), a opção numeric, e mudar o nome var6 para Y. Depois, fechar esta
janela e digitar os valores correspondentes a cada tratamento (Figura 2b) e
fechar a janela.

Figura 2. Janelas de utilização do comando fix


a b

Assim, o objeto pla24 deve estar da seguinte forma no R:

pla24
Blocks A B C D Y
1 0 -1 -1 -1 -1 550
2 0 1 1 -1 -1 650

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 12
3 0 1 -1 1 -1 642
4 0 -1 1 1 -1 601
5 0 1 -1 -1 1 749
6 0 -1 1 -1 1 1052
7 0 -1 -1 1 1 1075
8 0 1 1 1 1 729

attach(pla24)

O fatorial fracionado 24-1 planejado é de resolução III ( 2 4III−1 ) e, portanto, o


interesse é de estudar somente os efeitos principais, por meio de:

mod24<-lm(Y~A+B+C+D)
anova(mod24)
Analysis of Variance Table

Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
A 1 32258 32258 1.2171 0.35049
B 1 32 32 0.0012 0.97446
C 1 265 265 0.0100 0.92673
D 1 168781 168781 6.3680 0.08591 .
Residuals 3 79513 26504
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

As estimativas dos efeitos serão obtidas através de:

coef(mod24)*2
(Intercept) A-1 B-1 C-1 D-1
1691 254 -8 -23 -581

2.2. Fatoriais Fracionados 2k-p

Embora o fatorial 2k–1 seja capaz em reduzir o número de tratamentos


para um experimento, pode-se encontrar frações menores que fornecerão
quase tanta informação útil quanto antes, com maior economia. Em geral, um
fatorial 2k pode ser estabelecido em uma fração (1/2)p, chamado de fatorial

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 13
fracionado 2k–p. Desse modo, uma fração 1/2 é chamada de fatorial 2k–1, uma
fração 1/4 de 2k–2, uma fração 1/8 de 2k–3, uma fração 1/16 de 2k–4 e assim por
diante.
Com o objetivo de ilustrar a fração 1/4, considere um experimento com
seis fatores e suponha que o interesse esteja, principalmente, nos efeitos
principais e de obter alguma informação a respeito das interações de segunda
ordem. Nesse caso, tem-se uma fração 1/4 ou um fatorial fracionado 2 6IV− 2 . Esse

fatorial contém 16 tratamentos e, com 15 graus de liberdade, permitirá que


todos os seis efeitos principais sejam estimados e com alguma capacidade
para estudar as interações de segunda ordem.
Por exemplo, para construir o fatorial fracionado 26–2, escreve-se o
fatorial básico como um fatorial 24 para os fatores A, B, C e D, e iguala-se o
fator E com a interação AxBxC e o fator D com a interação BxCxD. Nesse
caso, foram selecionadas duas relações de definição, dadas por: I = ABCE e I
= BCDF.
Como exemplo, considere que as peças fabricadas em um processo de
moldagem por injeção estão apresentando um encolhimento excessivo, que
está causando problemas nas operações de arranjo antes da área de
moldagem por injeção. Com o objetivo de reduzir o encolhimento, uma equipe
de trabalho decidiu fazer um experimento fatorial fracionado 26–2 para estudar o
processo de moldagem por injeção. A equipe investigou seis fatores, cada um
com dois níveis: temperatura do molde (A), velocidade do parafuso (B), tempo
de retenção (C), tempo do ciclo (D), tamanho do ponto de injeção (E) e pressão
de retenção (F). A matriz a ser utilizada será:
 1A 1B 1C 0D 1E 0F 
M2x6 =   .
 0A 1B 1C 1D 0E 1F 
No R, ela será montada da seguinte forma:

m26<-rbind(c(1,1,1,0,1,0), c(0,1,1,1,0,1))
m26
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 1 0 1 0
[2,] 0 1 1 1 0 1

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 14
O planejamento será montado da seguinte forma:

pla26<-conf.design(G=m26, p=2, treatment.names=c(“A”, “B”, “C”, “D”, “E”, “F”))

Para selecionar apenas o primeiro planejamento onde I = ABCE e I =


BCDF, deve-se selecionar as primeiras 16 linhas do objeto pla26 da seguinte
forma:

pla26<-pla26[1:16,]
pla26
Blocks A B C D E F
1 00 0 0 0 0 0 0
2 00 0 1 1 0 0 0
3 00 1 1 0 1 0 0
4 00 1 0 1 1 0 0
5 00 1 0 0 0 1 0
6 00 1 1 1 0 1 0
7 00 0 1 0 1 1 0
8 00 0 0 1 1 1 0
9 00 1 1 0 0 0 1
10 00 1 0 1 0 0 1
11 00 0 0 0 1 0 1
12 00 0 1 1 1 0 1
13 00 0 1 0 0 1 1
14 00 0 0 1 0 1 1
15 00 1 0 0 1 1 1
16 00 1 1 1 1 1 1

Para substituir os zeros por -1, referentes aos fatores obtidos no


planejamento será utilizado o comando fix, como visto no item anterior:

fix(pla26)

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 15
Também, será adicionado a variável Y na posição de var8, como
mostrado nas Figuras 3a e 3b.

Figura 3. Janelas de utilização do comando fix


a b

pla26
Blocks A B C D E F Y
1 00 -1 -1 -1 -1 -1 -1 6
2 00 -1 1 1 -1 -1 -1 26
3 00 1 1 -1 1 -1 -1 60

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 16
4 00 1 -1 1 1 -1 -1 5
5 00 1 -1 -1 -1 1 -1 10
6 00 1 1 1 -1 1 -1 60
7 00 -1 1 -1 1 1 -1 34
8 00 -1 -1 1 1 1 -1 16
9 00 1 1 -1 -1 -1 1 60
10 00 1 -1 1 -1 -1 1 15
11 00 -1 -1 -1 1 -1 1 8
12 00 -1 1 1 1 -1 1 37
13 00 -1 1 -1 -1 1 1 32
14 00 -1 -1 1 -1 1 1 4
15 00 -1 -1 -1 1 1 1 12
16 00 1 1 1 1 1 1 32

attach(pla26)

O fatorial fracionado 26-2 planejado no exemplo é de resolução IV e,


portanto, o interesse é de estudar os efeitos principais e certas interações de
segunda ordem, como por exemplo: A*B, B*C, C*D, D*E, E*F.
Assim, tem-se:

mod26<-lm(Y~A+B+C+D+E+F+A:B+B:C+C:D+D:E+E:F)
anova(mod26)
Analysis of Variance Table
Response: Y
Df Sum Sq Mean Sq F value Pr(>F)
A 1 901.0 901.0 11.1336 0.028924 *
B 1 3965.2 3965.2 48.9980 0.002192 **
C 1 92.2 92.2 1.1393 0.345943
D 1 0.5 0.5 0.0058 0.942879
E 1 1.7 1.7 0.0215 0.890492
F 1 1.8 1.8 0.0223 0.888637
A:B 1 374.7 374.7 4.6296 0.097800 .
B:C 1 78.2 78.2 0.9667 0.381171
C:D 1 25.8 25.8 0.3192 0.602255
D:E 1 15.2 15.2 0.1874 0.687394
E:F 1 266.9 266.9 3.2982 0.143527
Residuals 4 323.7 80.9
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 17
summary(mod26)
Call:
lm(formula = Y ~ A + B + C + D + E + F + A:B + B:C + C:D + D:E +
E:F)

Residuals:
1 2 3 4 5 6 7 8
-0.9318 -1.5000 3.2500 -0.8182 -1.2159 3.6477 -5.3977 2.9659
9 10 11 12 13 14 15 16
0.3977 2.0341 -7.5795 5.1477 1.7500 -4.1818 9.7273 -7.2955

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 25.8239 2.2995 11.230 0.000358 ***
A 4.2330 2.4915 1.699 0.164551
B 16.8011 2.2995 7.306 0.001866 **
C -1.4489 2.2995 -0.630 0.562848
D -0.8011 2.2995 -0.348 0.745109
E -1.3011 2.2995 -0.566 0.601743
F -1.3011 2.2995 -0.566 0.601743
A:B 6.1420 2.4915 2.465 0.069301 .
B:C -2.4261 2.2995 -1.055 0.350907
C:D -1.0739 2.2995 -0.467 0.664806
D:E -1.1761 2.2995 -0.511 0.635962
E:F -4.1761 2.2995 -1.816 0.143527
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 8.996 on 4 degrees of freedom


Multiple R-Squared: 0.9465, Adjusted R-squared: 0.7993
F-statistic: 6.429 on 11 and 4 DF, p-value: 0.04356

As estimativas dos efeitos serão obtidas por:

coef(mod26)*2
(Intercept) A B C D E
51.647727 8.465909 33.602273 -2.897727 -1.602273 -2.602273
F A:B B:C C:D D:E E:F
-2.602273 12.284091 -4.852273 -2.147727 -2.352273 -8.352273

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 18
No exemplo, somente os efeitos do intercepto, do fator B, e da interação
A:B não foram nulos (P < 0,1). Neste caso o gráfico da interação dos fatores A
e B (Figura 4) será construído da seguinte forma:

interaction.plot(B, A, Y)

Figura 4. Gráfico da interação dos fatores A e B

Já os gráficos de interação para os fatores que não tiveram interação


significativa (P > 0,1), devem ser construídos da seguinte forma:

mod.fat26.sig<-lm(Y~B+A:B) # Modelo contendo apenas os fatores


significativos
re.mod.fat26.sig<-residuals(mod.fat26.sig) # Resíduos do modelo
fit.mod.fat26.sig<-Y-re.mod.fat26.sig # Valor de Y ajustado pelo modelo
interaction.plot(B, C, fit.mod.fat26.sig) # Gráfico da interação com os valores
ajustados
interaction.plot(C, D, fit.mod.fat26.sig)
interaction.plot(D, E, fit.mod.fat26.sig)
interaction.plot(E, F, fit.mod.fat26.sig)

Capítulo 8 – Experimentos com k Fatores de Interesse Gustavo Mello Reis José Ivo Ribeiro Júnior 19

Você também pode gostar