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 do 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 do 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ê o deixa 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á distante 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 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", que 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 esperamos que dê 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 do depois.
Vou apertar o Enter...
É simples de visualizar, né?
A riqueza está no entender, né, 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, como sempre.
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 fica o quê?
Se pegarmos todo o nosso script,
pegamos 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 do 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.