Post 2 – Python além da TI – Por Alexandre Félix Jr.

Antes de começarmos com o conteúdo em si, gostaria de dizer de que um dos caras que me ajudou enxergar o modo de como a tecnologia permeia todos os campos, foi o Augusto. Me da um puta orgulho saber que após tanto tempo consigamos bater esse papo sobre o mundo tech! Sem mais delongas, vamos em frente.

Durante os últimos anos tivemos uma revolução no campo de tecnologia como nunca vista antes. Já não é novidade que ela avança em todos os ramos do saber nos ajudando cada vez mais na rotina de trabalho, com uma tendência de cada vez mais vir automatizando atividades de menor valor agregado, deixando o trabalho de maior capacidade intelectual para nós. Costumo repetir para alguns amigos o pensamento que uma vez escutei:

Do mesmo modo que a geração anterior (a minha) teve que aprender a se capacitar na ciência da computação, à nossa geração restará a capacitação na ciência da programação.

E quando digo isso, não digo que todo mundo deverá ser capaz de construir softwares e sair por aí criando linhas de código sem fim. Mas vamos aos fatos: quanto do teu trabalho continua a ser feito literalmente de forma manual? Quais as chances de você não usar mais o excel pra criar aquela planilha de controle? Como ter controles que temos via CRM ou ERP’s? Gráficos de projeção de vendas ou cartas de controle e capacidade na produção? Nossa rotina vem sofrendo evoluções cada vez mais rápidas e nosso modo de trabalhar deverá evoluir junto.

Usando o cenário da Industria 4.0, podemos usar a linguagem de programação Python para criarmos algumas visualizações de dados, juntamente com alguns cálculos e gráficos. Podemos até mesmo utilizar técnicas de Real Time Analytics para tomada de decisão em tempo real.

Recentemente finalizei a certificação em Lean Six Sigma — Green Belt, uma metodologia baseada em melhoria da qualidade através de um caminho pré definido, o nosso famoso DMAIC. Em diversas as etapas do processo nós recolhemos dados do processo e os analisamos, principalmente nas etapas do MEASUREANALYZE e IMPROVE e criamos gráficos juntamente com alguns cálculos para realizarmos as nossas melhorias.

Durante todo o curso, fui apresentado e convidado a utilizar o MiniTab, software proprietário amplamente utilizado para cálculos estatísticos e geração de cartas e gráficos. Para esta jornada consegui obter um período de licença gratuita e finalizei meu curso, com uma motivação extra de que a cada dia que não estudava, tinha um dia a menos da licença do período grátis. O programa é baseado em point and click, é de fácil utilização e nos apresenta os resultados dos comandos de forma muito dinâmica. Sem dúvida é uma ferramenta poderosa e de interface amigável.

O único porém desta pequena história é de que eu não possuo esta licença de forma que eu possa trabalhar de fato com ela, o que a principio seria um entrave no desenvolvimento desta minha nova ferramenta da minha toolbox. Por outro lado, muitas das visualizações e analise de um conjunto maior de dados, o Excel pode ser complicado e as vezes lento para criação de certos modelos.

Para te ajudar a iniciar neste mundo de analise e geração de dados, vamos fazer juntos a criação de alguns gráficos utilizando as bibliotecas matplotlib junto com o pacote seaborn e a geração de algumas estatísticas com o pandas e numpy. Veja que, de longe, não tenho a pretensão de ensinar conteúdos densos sobre estatística, metodologia LSS ou programação. Minha pretensão é te fazer enxergar 1% diferente, enxergar que para além de softwares que as vezes extrapolam o nosso limite financeiro existe um mundo que precisamos gastar apenas nosso intelecto e tempo e conseguir resultados tão bons quanto e talvez com muito menos trabalho que voce pensa! Além de poder criar a solução customizada aos teus problemas.

Então borá lá e vamos colocar um pouco de mão na massa!


O nosso primeiro passo é fazer a importação dos pacotes que iremos utilizar, abaixo nós temos dois grupos:

  • numpy e pandas irão nos ajudar com manipulação e a parte matemática;
  • matplotlib, pyplot e seaborn para a impressão e estilo dos gráficos;
# Importando os pacotes 
import numpy as np
import pandas as pd
import matplotlib as mat
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('seaborn-talk')
import warnings
warnings.filterwarnings("ignore")
%matplotlib inline

Para o exemplo do Jupyter que eu estou anexando, utilizaremos uma planilha de medições. Esta planilha pode ser uma planilha de medição de peças, de controle de qualidade, de tempo ou qualquer outra variável de processo (ou não) que queremos explorar.

# Abrindo um arquivo .csv no pandas
df = pd.read_csv('MEDICAO_OUTUBRO.csv', sep = ';')
df.head()

# Documentação: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
# Vamos conferir o tamanho da nossa amostra usando o comando size
df["MEDICAO"].size

# Documentação: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.size.html?highlight=size
# Podemos conferir as principais estatisticas de nosso processo usando o comando describe
df.describe()

# Documentação: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.describe.html?highlight=describe#pandas.DataFrame.describe

Para iniciar a análise do conjunto de dados primeiro precisamos fazer a leitura do arquivo em csv e alocar os dados dentro de uma variável. Para facilitar o processo de chamada do arquivo, lembre-se de salvar a planilha no mesmo diretório em que o arquivo Jupyter está e alterar o nome do arquivo que você irá utilizar deverá ser substituído pelo teu arquivo. O mesmo processo pode ser feito com arquivos de excel, o link dos parametros neste caso está no arquivo Jupyter disponível.

Com os dados carregados na variável df é muito simples visualizar as estastisticas básicas com o comando describe:

count: tamanho da amostra;

mean: média ponderada;

std: desvio padrão;

min, 25%, 50%, 75% e max: valores dos percentis da amostra.

Muito fácil, não é mesmo? E que tal criarmos algumas visualizações gráficas? Vou te mostrar como fazer a impressão de alguns gráficos muito úteis para uma primeira análise do processo de acordo com o LSS.

O primeiro deles é o boxplot, que irá nos ajudar a ver como está o processo de cada um dos operadores. É um modo visual de fazer a leitura dos valores acima:

# Criação de um boxplot das medicões dos 3 operadores do nosso dataset

data = (df['OPERADOR 1'],df['OPERADOR 2'],df['OPERADOR 3']) 
fig1, ax7 = plt.subplots(figsize=(10,5))
# O parametro figsize define o tamanho da impressão do gráfico

ax7.set_title('BOX PLOT - TEMPO OPERADORES')
ax7.boxplot(data)

plt.show()

# Documentação: https://matplotlib.org/gallery/pyplots/boxplot_demo_pyplot.html#sphx-glr-gallery-pyplots-boxplot-demo-pyplot-py

Um outro gráfico para nos dar dimensão de como as medições se comportam é o histograma.Aqui podemos ver a quantidade de cada valor encontrado e a quantidade de outliers.

# Gerando um histograma apenas do Operador 1

df['OPERADOR 1'].hist(bins = 'auto', figsize=(10,5))
# O parametro figsize define o tamanho da impressão do gráfico

plt.xlabel("MEDICOES")
plt.title("HISTOGRAMA DAS MEDIÇÕES")
    
plt.show()

# Documentação: https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.hist.html

E agora como última operação iremos plotar uma carta de controle X-barra das medições do operador 1. Para este exemplo vamos começar a utilizar alguma programação envolvendo a criação de novas variáveis e operações matemáticas, ainda sim o processo continua a ser simples. E essa é a graça em todo este processo, mostrar como a programação não é um bicho de sete cabeças e podemos ter uma progressão no conhecimento sem sofrimento.

# Agora vamos imprimir uma carta de controle x-barra

# Primeiro vamos colocar na variavel 'mean' o valor da média de tempo de produção do operador 1 e o valor do desvio
# padrão na variavel sd

# Para estas estatisticas iremos usar comandos do pacote numpy

mean = np.mean(df['OPERADOR 1'])
sd = np.std(df['OPERADOR 1'])

#Com o valor da média já na variável x, vamos calcular os LIC e LSC
lic = mean - (3 * sd)
lis = mean + (3 * sd)

# Documentação: https://numpy.org/doc/stable/reference/generated/numpy.mean.html
# Documentação: https://numpy.org/doc/stable/reference/generated/numpy.std.html

Para a criação da carta de controle, plotamos basicamente a progressão das medições e como ele se controla dentro do processo estabelecido. Os limites superior e inferior nos darão a visão de como o processo se desvia de acordo com o nosso operador. Com as variáveis já definidas, agora é só criar o gráfico:

# Criando o gráfico

# Outro modo de definir o tamanho da impressão do gráfico
fig= plt.figure(figsize=(10,5)) 

plt.plot(df['MEDICAO'],df['OPERADOR 1'], color = 'coral')

# Abaixo temos a inserção das linhas continuas no gráfico

plt.hlines(y = lis, xmin=0.1, xmax= len(df['MEDICAO']), colors = 'firebrick')
plt.hlines(y = lic, xmin=0.1, xmax= len(df['MEDICAO']), colors = 'firebrick')
plt.hlines(y = mean, xmin=0.1, xmax= len(df['MEDICAO']), colors = 'c')

# https://matplotlib.org/3.1.0/gallery/color/named_colors.html - codigo das cores

plt.title('CARTA DE CONTROLE X-BARRA')
plt.xlabel('MEDICAO')
plt.ylabel('VALOR ENCONTRADO')
plt.show()

# Documentação: https://matplotlib.org/3.2.1/api/_as_gen/matplotlib.pyplot.plot.html

E assim a carta de controle esta configurada para imprimirmos:

Com o código pronto agora é só começarmos o trabalho de análise de como o processo se comporta. A cada nova atualização do arquivo ou necessidade de modificação é só adaptarmos o código!

Bom, se você chegou até aqui espero que eu tenha conseguido te convencer que começar a programar não é algo de outro mundo e pode te ajudar muito mais do que você possa imaginar. O que fizemos aqui não é nem de perto 1/10000 da capacidade desta lingua que é capaz de oferecer e mesmo com poucas linhas e com comandos extremamentes básicos imprimimos resultados que podem nos ser extremamente úteis.

Para além da programação ainda temos todo o cenários do LSS e tudo o que ele pode nos oferecer para melhoria da qualidade, ou seja, nossa discussão pode se estender por muitos cantos!

Todos arquivos podem ser baixados através dos links abaixo:


Este post é de total autoria do Alexandre Félix Jr, um grande irmão que a vida me apresentou desde as épocas de COTIL. Vamos conhecer um pouco mais sobre ele?

Alexandre Félix Jr,
Nascido em 1991 e natural de São Paulo capital,
Alexandre iniciou suas especializações na área de mecânica pelo grau de Tecnólogo em Mecânica obtido entre os anos de 2007 e 2009 no COTIL e posteriormente se formou Bacharel em Engenharia de Automação e Controle pela Universidade Salesiana de São Paulo, na cidade de Campinas.

Alexandre iniciou sua jornada profissional logo após a finalização de seu curso técnico onde pode atuar como Projetista Mecânico nas empresas Engedrar e DELTEC. Hoje ele é Gerente de Operações do BR na TAMA AERNOVA.
Incansável na busca por conhecimento, esteve ao longo desses anos buscando conhecimento e ampliando sua caixinha de ferramentas com certificados em diversas áreas como: Agilidade, Gestão 3.0, Lean e Six Sigma, Gestão de Fluxos, Data Science e Big Data também.

Vocês podem encontrar um pouco mais sobre ele nos seguintes endereços:

Gostou do conteúdo? Tem dúvidas ou sugestões? Comenta aí e vamos compartilhar conhecimentos!