Subsections

20 Gráfico de Pareto

Objetivo

O objetivo dessa sessão é construir o gráfico de Pareto.

Arquivo de dados

Utilizaremos, inicialmente, o exemplo das notas de aula:

> problemas<-c(13,4,3,2)
> names(problemas)<-c('A','B','C','D')

Em seguida, trabalharemos com os dados de tempo de paradas em uma linha de produção, utilizado para exemplificar a folha de verificação.

Gráfico de Pareto

A função que constrói o gráfico de Pareto está no pacote qcc. Por isso, antes de começar as análises, deve-se 'carregar' esse pacote.

> require(qcc)

Nesse pacote, a função pareto.chart() constrói o gráfico:

> pareto.chart(problemas,col=rainbow(length(problemas)))

Se desejar, é possível acrescentar sobre cada barra, as freqüências de cada problema. Execute o comando a seguir, vá até o gráfico e 'clique' acima de cada barra. Os números aparecerão somente após o quarto e último 'clique'.

> text(locator(4),c('13','4','3','2'),cex=1.3)

Agora, vamos trabalhar com os dados sobre tempo de parada de uma linha de produção.

Considerando todo o período de avaliação, o gráfico de pareto pode ser construído da seguinte maneira:

> codigo<-table(linha$cod)
> pareto.chart(codigo,col=rainbow(length(codigo)))

Nesse gráfico, o código 31 possui a maior freqüência entre todos os outros.

Considerando apenas o mês 4, teríamos:

> codigo.4<-table(linha$cod[which(linha$mes==4)])
> codigo.4<-table(linha$cod[linha$mes==4]) # outra maneira
> pareto.chart(codigo.4)

O código 31 ainda apresenta a maior freqüência.

Ainda, pode ser de interesse estudar como se comportam os códigos de parada em cada turno de trabalho. Primeiro, obtém-se os dados para construção dos dados:

> turno.1<-table(linha$cod[linha$turno==1])
> turno.2<-table(linha$cod[linha$turno==2])
> turno.3<-table(linha$cod[linha$turno==3])

Em seguida, os gráficos de Pareto podem ser obtidos:

> old.par<-par() # guardando a config. original
> par(mfrow=c(3,1),mar=c(3,4,3,2)) # alterando margens

> pareto.chart(turno.1,cex.names=1.35)
> pareto.chart(turno.2,cex.names=1.35)
> pareto.chart(turno.3,cex.names=1.35)

>par(old.par) # retorna para a config. original

Veja, por exemplo, que o código 421 possui valores distintos entre os turnos. Tente observar outras mudanças!

Considerando a variável tempo na análise dos dados, pode-se tentar concluir sobre qual problema deve-se começar a atuar. Um simples gráfico de barras para com o tempo total de parada para cada código, pode fornecer essa informação:

> x11() # para abrir nova janela gráfica
> barplot(tapply(linha$tempo,linha$cod,sum))

Observe que, por exemplo, o código 41 possui uma freqüência menor do que o código 34 mas, o tempo gasto com paradas é muito maior do que o código 34.

Ainda, observe que existem alguns pontos com valores maiores no código 41 em relação ao código 34. Na análise desse problema, isso deve ser levado em consideração antes de uma decisão sobre qual código ou quais códigos serão investigados inicialmente.

> x11()
> plot(linha$tempo[linha$cod==c(31,34,41)],
       linha$cod[linha$cod==c(31,34,41)])

Exercícios

  1. Com os dados dessa seção, procure estudá-los de outras maneiras;

adilson dos anjos 2008-09-18