Com certeza na sua vida
pessoal ou profissional
você já se deparou com uma situação
que você tem que verificar a performance
do antes e o depois de algo, como
por exemplo, no computador da sua casa.
Supondo que você vai
aumentar a memória RAM
porque ele está demorando cinco minutos
para iniciar, e aí você coloca uma memória RAM,
e depois você quer verificar
o quanto melhorou, ou se melhorou.
Então você está fazendo
uma análise do antes e o depois.
E a nossa linguagem R também nos ajuda
a fazer a análise do antes e o depois.
Só que, nesse caso, nós precisamos ter dados
que consigam fazer essa comparação.
Vamos trazer aqui
um exemplo para vocês.
Nesse exemplo, pense num caso
real de uma fábrica de software.
Nós temos lá um sistema funcionando
que vai para a produção
e aí descobrimos que a performance
dele não está muito boa.
Fizeram uma medição hora
a hora nessa performance.
Então, após essa análise
de uma performance não tão boa,
melhorar o algoritmo, que é
a lógica que está dentro do sistema,
e, após, fazer uma nova medição.
É isso que vamos ver agora,
vamos fazer uma análise
descritiva do antes e depois
para vocês terem a confiança
dos dados que estão sendo analisados,
e até mesmo o seu resultado.
Vem comigo que eu vou mostrar para vocês.
Como sempre, eu deixo um script pronto,
não somente as linhas de execução,
o código do que precisamos fazer,
mas também um comentário.
Um breve resumo da análise
descritiva está aqui no começo.
Depois, se você quiser
fazer uma pausa, ler e interpretar
sobre o que é uma análise descritiva,
aqui fica um breve resumo.
Então, como nós falamos, nós
precisamos de uma base de dados
para poder analisar isso.
Vamos rodar essas duas linhas aqui,
criar os nossos dados
para ter esse comparativo
do antes e o depois.
Se pegar aqui...
Perdão. Vamos dar uns Enters aqui.
Sempre apertamos alguns Enters
para ficar uma área limpa aqui.
Então nós estamos criando aqui
um comentário, uma hashtag.
O tempo antes da performance:
hora um, hora dois, hora três.
Aqui nós temos quatro,
cinco, seis, sete, oito.
É uma análise do antes e o depois
em oito horas de execução
de um código, por exemplo.
Antes de implementar a melhoria no algoritmo,
e depois de implementar
a melhoria no algoritmo.
Vamos apertar o Enter.
E aí, como sempre, é legal visualizar
como estão os dados.
Olhe, tempo antes... Aperte o Enter.
Opa, o que eu errei aqui?
Print...
Ah, "tempos", está vendo?
O que eu errei?
"tempo_antes"...
Agora vai funcionar.
Aqui tem a letra "s".
São tempos, né?
Eu não tinha colocado o "s",
então ele falou: "Opa! Not found".
Not found quer dizer que não existe.
Ai depois eu coloquei certo.
Então sigam aquela velha dica, né,
ou vocês colocam aqui print,
vocês copiam o nome da variável
e colocam aqui no conjunto de dados,
ou você digita, e ele dá
a sugestão do nome.
Aqui, no caso, ele deu a sugestão.
A sugestão está correta, eu vou apertar.
Então temos a análise do antes e o depois.
Facilitando a interpretação
aqui, se formos verificar,
como sempre temos um conjunto
de valores bem pequeno
para facilitar a nossa análise.
Olhando, nós já podemos fazer
esse resultado prévio sem o R.
O antes e o depois, o depois ficou melhor.
Então implementou-se
a melhoria no algoritmo,
e houve realmente uma melhor
performance no sistema.
Inclusive, olhando em todas as horas
de execução, realmente está melhor.
Eu, olhando, consigo.
Mas se fosse uma análise
com 300 horas de execução,
iria ficar bem difícil vocês
conseguirem olhando.
Então vamos pedir para o R fazer para nós.
O que vamos fazer?
Vamos para a próxima parte.
Então criamos o antes e o depois.
Vamos apertar mais alguns Enters aqui.
É sempre legal para facilitar a nossa área.
Vamos para uma próxima parte.
Nós vamos agora gerar todo o cenário
para calcular as medidas
descritivas para o antes.
Então nós vamos fazer primeiro uma análise
do antes, preparar esses dados do antes.
Aqui nós vamos calcular
a média simples do antes,
e vamos calcular a mediana do antes.
Vamos aqui?
Eu vou apertar o Enter, vou apertar print.
Olhe, média...
Aí aqui, aquela velha história,
ou você copia "media_antes",
ou você deixa ele fazer
a sugestão para você.
Então essa é a média.
Se somar todos esses valores,
são quatro, cinco, seis, oito valores,
são oito horas de análise,
somo e divido por oito, vai ser a média.
Além de calcular a média
que acabamos de visualizar,
nós também pedimos
para calcular a mediana.
Vamos visualizar o valor da mediana?
"Ô, Rafa, estamos tendo que utilizar
os conceitos que aprendemos anteriormente."
Sim. Isso é bom, né?
As coisas vão se juntando.
E aqui a mediana.
Opa, um sinalzinho a mais.
Então esse é o valor da média
e esse é o valor da mediana.
São informações referentes
aos dados do antes, tudo bem?
Então está aqui o nosso script,
o resumo para vocês.
Já criamos os dados do antes e do depois,
já fizemos aqui o cálculo
da média e da mediana.
Então já fizemos também.
E agora nós vamos para uma próxima parte.
Eu estou copiando essa parte do código,
isolando-o, e vamos trazer aqui para baixo.
Como sempre, é legal apertar
um pouquinho de Enter aqui
para isolar a área do código
para podermos interpretar.
Deixe-me limpar um pouquinho aqui
para facilitar a visualização.
Opa!
Damos um Control + Z aqui.
Antes de apertar o Enter,
você dá um Control + Z.
"E agora, Rafa, o que nós temos?"
Nós temos três linhas de comentário
aqui para deixar para vocês, tá?
Lembrando que às vezes esse é o momento
que você pode dar uma pausa no vídeo,
antes de eu falar ou após eu falar.
Por quê? Porque você precisa entender esses
comentários, que não fazem parte da execução.
E depois que conseguirmos entender
essas três linhas de comentários,
poderemos fazer a execução
do que precisamos.
Vamos entender?
O que eu criei para vocês então?
O "moda_antes".
É o nome de uma variável.
Aí sinal de menor, tracinho.
"Ô, Rafa, eu já entendi.
O resultado daqui será
armazenado no moda_antes.
Mas o que nós estamos fazendo, Rafa?"
Vamos aqui.
Primeiro vem uma instrução
aqui do R, "as.numeric".
O que é isso?
Vocês ainda vão usar muito dentro
da linguagem R na parte de estatística.
"É utilizado para converter
os valores em vetor numérico."
Aí pode vir uma pergunta na sua cabeça:
"Mas, Rafa, como assim?
Os dados são numéricos."
Você sabe porque o conjunto de dados,
essas oito horas, é pequeno.
Mas quem garante isso?
É sempre bom você confirmar, tá?
Então, voltando aqui, olhando,
nós sabemos que eles são numéricos,
mas você tem que garantir isso
para poder fazer essa análise.
É isso que o as.numeric faz.
Se não for, tiver algum probleminha lá
e o dado for possível de conversão para numérico,
ele vai ser feito, é o as.numeric.
E aí nós vamos continuar aqui
a interpretar essa parte dessa instrução.
Aqui são os nomes.
O que são os nomes?
É o conjunto de valores.
Nós temos apenas um conjunto de valores.
Poderíamos ter mais?
Sim.
Se fosse um dataframe
com diversas colunas? Poderia.
Aqui nós temos uma linha, ou uma coluna.
É um exemplo um pouco mais simples.
E aí você entra aqui no "sort".
O que seria o sort?
Novamente, fica aqui
um comentário para vocês.
Talvez vocês já tenham utilizado
em alguma outra linguagem de programação.
Quem não usou, não
tem problema nenhum, tá?
Esse é o momento de aprender.
Ele é utilizado para ordenar os elementos.
Porque se vocês pegarem aqui,
esse primeiro aqui do antes,
não é obrigatório que ele esteja
numa ordem crescente ou decrescente.
"Por que não, Rafa?"
É uma análise.
Supondo que, na primeira hora,
demorou 220 segundos para executar,
na segunda, 210.
Então vai ser difícil você encontrar
na ordem crescente ou decrescente.
Você está olhando hora a hora
como ele se comporta.
O que você vai fazer então?
Por isso que vem essa instrução sort.
Você vai dizer que, nessa instrução true ou false,
se você colocar true, você está
pedindo para que essa análise
seja feita numa ordem decrescente.
Se você colocar false, ele vai
fazer numa ordem crescente.
Lembrando que, decrescente,
do maior para o menor,
que vai ser como ele
vai analisar esse caso.
E se fosse crescente,
do menor para o maior.
Esse é o sort.
Bem recheada de conhecimento
essa instrução aqui.
E o que é o "table"?
É o conjunto de dados para ser analisado.
Lembrando, aqui é uma linha
só, que é o "tempo_antes",
mas poderia ser um dataframe.
Então esse é o conjunto de dados
que nós estamos pedindo para analisar.
Vamos apertar um Enter.
E aí, o que nós temos?
"Rafa, e agora?"
Quer olhar o resultado?
Vamos olhar, lógico.
"print"...
Ou você copia e cola, ou você
digita, e deixa ele dar a sugestão.
Realmente é esse que eu quero.
Se eu apertar o Enter,
o que ele nos trouxe de resultado?
Essa análise chegou num resultado de 210.
Mas o que seria esse número 210?
Vamos continuar aqui, aí
eu vou explicar para vocês.
Aqui foi a introdução, os dois dados,
calculamos a média e a mediana do antes.
E aqui, nós conseguimos fazer a moda,
qual o número moda que é gerado com essa
análise desses dados, desse conjunto.
De novo, continuamos
com o intervalo de valores do antes.
Ainda não fizemos o depois.
Vamos continuar?
Aqui nós vamos para uma outra parte
do nosso código, da nossa análise.
Eu vou copiar e descer um pouquinho.
Novamente, aquela velha dica: se possível...
É que aqui, eu que estou transmitindo
conhecimento para vocês.
Se você quiser, não
precisa apertar o Enter.
Mas é legal para vocês dividirem
por partes essa análise, tá?
Aqui, novamente, tem uma hashtag.
Deixe-me só limpar o código aqui,
para quando executá-lo depois,
não acontecer nenhum erro.
Aqui eu deixo esse comentário, né?
Nós iremos verificar a variância.
O que é a variância?
Está aqui, olhe:
"É uma medida estatística
que indica a dispersão
dos valores em relação à média".
Nós não temos a média?
O quanto os valores...
"Que valores, Rafa?"
O quanto cada um desses valores
está distantes da média.
Por isso que nós fizemos aqui, olhe.
Essa não é a média?
Deu 218.
Se eu olhar aqui, me parece...
Olhando aqui, interpretando, qual
parece que está mais distante?
Mas não vamos deixar
o computador fazer por nós, né?
Talvez seja esse.
Qual está mais perto de 218?
Olhando aqui, o valor 220, tá?
Mas deixe que o computador nos fale.
Nesse intervalo de valores, quais estão
mais perto ou menos perto da média?
Quanto maior a variância,
mais dispersos os dados estão.
Ou seja, o valor do resultado da variância
que nós vamos pedir para calcular agora,
quanto maior o número,
mais distante estará da média.
Então tem uma disparidade aí,
uma distância da média dos dados.
Aí vamos executar.
Como sempre, para executar,
eu vou apertar um Enter aqui,
e aí nós vamos analisar,
olhe: variancia_antes,
nós queremos saber como
eu acho o valor da variância,
que é isso que acabamos de explicar aqui.
E, novamente, é melhor
você fazer uma pausa, anotar,
verificar o material escrito
que está disponível para vocês
para depois você conseguir executar aqui.
Então, aqui, como eu consigo
armazenar o valor da variância
do conjunto de dados tempos_antes,
como eu consigo pedir
para ele achar a variância aqui.
É simples.
Depois que você entendeu
o conceito, é simples.
Você cria uma variável, que, nesse caso,
eu chamei de "variancia_antes".
Aqui eu coloco a instrução, que é "var", v-a-r,
e o nome do conjunto de dados.
"Ah, Rafa, eu quero dar uma olhadinha".
Já quer dar uma olhadinha?
Podemos, não tem problema não.
Olhe, "variancia_antes", não é isso?
Se apertarmos o Enter, conseguiremos saber
qual é o valor, o resultado da variância.
Agora o desvio-padrão.
O desvio-padrão, vocês já
têm esse conhecimento.
Como calcular o desvio-padrão?
Vamos criar uma variável.
Desvio-padrão antes, porque
nós estamos analisando
antes da implementação
da melhoria do algoritmo,
"sd" é a instrução, e qual
é o conjunto de dados.
"Rafa, podemos visualizar?"
Lógico que podemos.
Qual é o nome da variável?
"desvio_padrao_antes".
Legal.
E aqui nós temos que o desvio-padrão
para esse conjunto de valores é 7.03.
Agora que conseguimos encontrar o valor
da variância e também do desvio-padrão,
vamos continuar para conseguir concluir
a análise que queremos do antes e o depois.
Então, o que nós já vimos?
Retomamos essa parte, criamos os dados,
criamos a média e a mediana do antes,
conseguimos achar a moda,
acabamos de descobrir
a variância e o desvio-padrão.
Agora vamos para essa
próxima parte da análise.
Vou copiar aqui para baixo.
Aqui, como sempre, eu
vou apertar alguns Enters
para facilitar para vocês a visualização.
Vou apertar um Control + V.
Deixe-me arrumar aqui para explicar.
O que nós vamos fazer agora então?
Olhe, "calculando medidas
descritivas para depois" agora, né?
Fizemos o antes, vamos para o depois.
Agora nós iremos repetir o script
que nós fizemos anteriormente
para a parte da execução do antes.
Agora nós iremos fazer para o depois.
Lembre-se do cenário, do case.
Tem um sistema que não estava
com uma performance tão boa de algoritmo.
Então fizeram uma análise,
extraíram os tempos de execução
antes da implementação
da melhoria no algoritmo,
e aí precisava-se fazer uma análise do depois.
Então, no depois, nós temos a base de dados,
como está a performance do depois,
e agora o R vai verificar
o antes e o depois
para fazer esse comparativo
e conseguir ter uma análise descritiva.
Fizemos para o antes, vamos
fazer a mesma coisa agora
para o conjunto de dados do depois.
Vem aqui comigo.
Então, como sempre, eu deixo
um comentário para vocês.
Olhe, calculando medidas
descritivas para depois.
Nós iremos achar a média.
A média de quem?
Lembre-se, agora nós vamos
trabalhar com essa base de dados,
a performance do algoritmo do depois.
Então vamos descer um pouquinho.
Estamos aqui.
Criei uma variável
chamada "media_depois".
Esse é o nome da base de dados.
E vamos também achar o valor da mediana.
Se eu apertar o Enter aqui...
É sempre legal visualizar
o resultado, olhe, media_depois.
Vou apertar o Enter.
Então essa é a média
da performance do depois.
E agora nós também vamos
achar o valor da mediana.
Visualizar, perdão.
Nós já temos o valor, né?
"print(mediana_depois)".
Eu vou apertar o Enter.
Então essa é a média,
e essa é a mediana do depois.
Vou subir aqui.
Vamos pegar o nosso script, tá?
Já fizemos do antes, agora
estamos calculando do depois.
Vamos achar agora o valor da moda.
É a mesma coisa que nós fizemos do antes,
só que agora é a moda para o depois.
Vamos apertar alguns Enters para ficar
limpa a nossa área de programação
para podermos entender.
criar a variável moda_depois.
"as numeric" serve para converter
os valores numéricos,
por mais que estejam ali.
Mas é bom confirmar
que os valores são um número,
eles estão como número.
E aqui nós temos a parte da organização
dos dados em ordem decrescente.
E aqui, qual é o conjunto de dados que vai
ser feita essa moda, o valor da moda.
Se eu apertar o Enter...
É igualzinho ao anterior.
Só muda que agora nós estamos fazendo
a análise para os dados do depois
após implementação do algoritmo.
Então, a moda para o depois
resultou em um valor de 190.
Vamos voltar mais um pouquinho aqui,
pegar o script que nós deixamos.
A palavra não é pré-pronto. É pronto.
E vamos verificar.
Já geramos a moda, e agora nós vamos
criar a variância e o desvio-padrão.
Vamos descobrir
qual é o valor da variância
e qual o valor do desvio-padrão
para o depois.
Irei apertar novamente alguns Enters.
Vou dar um Control + V.
Deixe-me limpar aqui.
Se executarmos com esse tracinho
aqui, vai ocorrer um erro.
O que nós temos aqui então?
Criamos uma variável
chamada variancia_depois.
A instrução aqui é para calcular
a variância dessa base de dados
utilizando o VAR e o desvio-padrão.
Vou apertar um Enter.
Nós esperávamos que desse certo, né?
E aqui vamos só visualizar
para confirmar que deu certo.
Visualizou.
E agora nós vamos verificar o valor
do desvio-padrão que foi encontrado.
"desvio_padrao_depois".
Opa, tem um errinho aqui, pessoal.
Cuidado aqui!
Eu visualizei o antes.
Não era o antes e sim o depois.
Vamos ver.
Oh, então aqui, print...
Não é um erro do script que nós
criamos e sim na hora de visualizar.
O depois, tá?
Então essa é a variância do antes
que tínhamos feito anteriormente.
E agora esse do depois,
que acabamos de fazer, está vendo?
Tomem cuidado, senão vocês podem visualizar
a informação que vocês não queriam.
Print.
Agora nós vamos verificar o valor
do desvio-padrão do depois, hein!
Novamente, do depois.
O antes, nós já passamos.
Então esse é o valor da variância do depois,
e esse o valor do desvio-padrão do depois.
Agora vamos subir aqui e verificar
o nosso script que deixamos pronto aqui.
Legal!
Nós já conseguimos criar...
Oh, vamos lembrar: a média, mediana,
a moda, a variância, e o desvio-padrão,
para a base de dados do antes e do depois.
Agora nós podemos dizer
que precisamos juntar tudo isso
para visualizar esses valores, tá?
Na verdade, aqui seria uma impressão
de tudo que nós fizemos até agora.
Eu vou apertar alguns Enters aqui,
mas é a última parte, tá?
São apenas duas instruções agora.
Opa! Vou apagar.
Control + V.
"O que é essa última parte, Rafa?"
"Imprimindo os resultados".
Vamos trabalhar aqui com todas
as informações do antes e o depois.
Vou apertar o Enter...
É simples de visualizar, né?
O entender é que está na riqueza,
entender todas essas informações.
Então o que nós temos aqui?
"Antes - Média".
Isso aqui é um texto, né?
Sempre que eu quero juntar
um texto com valores,
eu coloco o "paste", aí eu coloco a informação,
divido por vírgula, e o nome da variável.
Na verdade, aqui é uma impressão mostrando
tudo o que nós fizemos anteriormente.
Vamos pegar o outro script.
"Rafa, poderíamos fazer
aqui na mão agora?"
Poderíamos.
Talvez demore só um pouquinho
aqui para digitarmos juntos, né...
Para digitarmos essas informações.
Eu vou apertar mais alguns Enters aqui, com osempre.
Eu vou apertar um Enter.
O que nós temos aqui
até o momento de uma revisão?
"Antes: media_antes", é esse valor,
media_antes é esse valor.
"Mediana: mediana_antes".
Então nós só juntamos aqui.
Seria uma impressão de tudo
o que nós projetamos anteriormente.
E aqui é do depois.
E agora que fica o quê?
Pegamos todo o nosso script,
pegarmos desde uma introdução,
o que é uma análise descritiva,
duas bases de dados,
verificamos o antes e o depois,
calculamos a média, mediana,
conseguimos achar o valor da moda também
tanto para os dados do antes
como para o depois.
E enfim...
Só voltando, descendo um pouquinho aqui,
agora conseguimos imprimir.
E com essas informações em mãos, nós
conseguimos obter os nossos resultados.
Então aqui é o conjunto mostrando o resultado,
todas as informações numa impressão só.
Tudo que calculamos do antes,
tudo que calculamos do depois.
E agora você consegue
fazer a interpretação.
Vamos pegar o mais simples aqui:
a média de tempo de execução do antes,
antes de implementar a melhoria no algoritmo,
supondo que fossem segundos, o tempo
de execução demorava 218 segundos.
Agora caiu para 196.
E por aí vai.
Você consegue comparar o antes
e o depois de cada uma dessas informações
para saber se realmente melhorou
a performance do sistema
após a implementação
da melhoria do algoritmo.
Eu tenho certeza que vocês
conseguiram entender
a importância de saber utilizar todas
essas instruções da Linguagem R,
e até mesmo saber
interpretar esses resultados.