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,
e ele está demorando cinco minutos para iniciar, e aí você coloca memória RAM,
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 da 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 nossa 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 o depois,
já fizemos aqui o cálculo da média e da mediana.
Também já fizemos.
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 você conseguir entender essas três linhas de comentários,
nós 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, 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 vão usar muito ainda dentro da linguagem R na parte 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.
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 o primeiro aqui do antes,
não é obrigatório que ele esteja numa ordem crescente ou decrescente.
"Porque 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 uma 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 a 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?
É 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: variância antes,
nós queremos encontrar 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".
Quer dar uma olhadinha?
Podemos, não tem problema não.
Olhe, "variancia_antes", não é isso?
Se apertarmos o Enter, conseguiremos saber qual que é 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 apertaram um Control + V.
Deixe-me arrumar aqui para explicar.
O que nós vamos fazer agora então?
Olhe, calculando medidas descritivas para o 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,
calculando medidas descritivas para depois
nós iremos achar a média, a média de quem alpha.
Lembre se. Agora
vamos trabalhar com essa base de dados, a performance do algoritmo do depois.
Então vamos descer um pouquinho.
Nós estamos aqui cria uma variável chamado média depois esse é o nome.
Esse é o nome da base de dados e vamos também achar os valores.
O valor da mediana.
Se eu apertar um entra aqui é sempre legal visualizar o resultado,
a média depois e o depois.
Vou apertar o enter.
Então essa é a média da performance do depois.
E agora nós vamos achar também o valor da mediana Visualizar.
Perdão, nós já temos o valor 20
mediano, não underline.
Depois vou apertar o então.
Então essa é a média e essa é a mediana do depois vou subir aqui,
vamos pegar o nosso script, tá?
Já fizemos antes, agora
nós estamos calculando tudo, depois vamos achar agora o valor da moda
é a mesma coisa
que nós fizemos do antes, só que agora é a moda para depois.
Vamos apertar alguns enter para ficar limpa a hora
que nossa de programação poder entender criar a variável modo
e logo depois depois as numeric len serve serve para converter os valores
numérico, por mais que estão ali, mas é bom confirmar que os valores existam.
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 que é o conjunto de dados aí que vai ser feita essa moda?
O valor da moda, se eu apertar o enter é igualzinho anterior,
só muda que agora nós estamos fazendo a análise
para os dados do depois, porque após implementação do algoritmo,
então a moda para o depois de um valor resultou em um valor de 190.
Vamos voltar mais um pouquinho aqui de pegar o script que nós deixamos
a palavra pré pronto e pronto
e vamos verificar o já geramos a moda
e agora nós vamos criar, que é a variância, é o desvio padrão.
Vamos descobrir qual é o valor da variância
e qual o valor do desvio padrão para o depois e de apertar novamente alguns.
Então
vou dar um control v se eu só limpar aqui,
se a gente executar com esse tracinho aqui vai vai ocorrer um erro.
Então o que nós temos aqui?
Criamos uma variável chamada variância.
Depois aqui a instrução para calcular a variância dessa base de dados
utilizando o VAR e o desvio padrão.
Vou apertar enter.
A gente esperava que dá certo.
E aqui vamos só visualizar para confirmar que deu certo.
Visualizou?
E agora vamos verificar o valor do desvio padrão que foi
encontrado.
Desvio padrão depois ou pode ter 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 o print é um erro.
Não é um erro do script que a gente criou.
Tais sim, na hora de visualizar o depois.
Oh, então essa é a variância do que tínhamos feito anteriormente.
E agora esse erro depois que acabamos de fazer.
Tá vendo?
Tomem cuidado,
senão vocês podem estar a visualizar a informação que você não queria.
Print.
Agora vamos verificar o que o valor do desvio padrão do depois.
Sim, novamente depois ou antes nós já passamos.
Esse é o valor.
Então nova aliança do depois.
É esse o valor do desvio padrão.
Depois.
Agora vamos subir aqui e verificar o nosso script
que nós deixamos pronto aqui. Legal!
Nós já conseguimos criar,
vamos lembrar a média mediana, a moda,
a variância e o desvio padrão para base de dados do antes e do depois.
Agora podemos dizer que a gente precisa juntar tudo isso
para visualizar esses valores aqui.
Na verdade, seria uma impressão de tudo que nós fizemos até agora.
Só vou apertar alguns em três aqui, mas a última parte
são apenas duas instruções agora.
Opa, vou apagar.
Controlo ver o que essa última parte, Rafa,
imprimindo os resultados aqui vamos trabalhar
com todas as informações do antes e o depois.
Vou apertar.
Então é assim simples de visualizar
o entender que está na riqueza, entender todas essas informações.
Então o que nós temos aqui?
Olha aqui, antes disso, aqui é um texto sempre.
Eu quero juntar um texto com valores, eu coloco teste, aí
eu coloco a informação, lembra?
Divido por vírgula.
E o nome da variável só aqui, na verdade é uma impressão
mostrando tudo o que nós fizemos anteriormente.
Vamos pegar o outro script.
Poderíamos fazer aqui na mão agora, poderíamos talvez
demorar só um pouquinho aqui para vocês, pra gente digitar junto
para digitarmos essas informações.
Nós apertar mais alguns inteiros.
Aqui, como sempre, vou apertar muito o que nós temos aqui
até um momento de uma revisão antes,
a média antes e esse valor média antes
e esse valor mediano
antes mediana antes.
Então, aqui nós só juntamos uma impressão de tudo o que nós
projetamos anteriormente e aqui do depois.
E é agora que fica o que se a gente pegar o nosso TO do nosso script,
pegamos desde uma introdução.
O que é uma análise descritiva,
duas bases de dados com verificamos o antes e o depois,
calculamos a média mediana, conseguimos nos achar o valor da moda
também, tanto para os dados do antes como depois
e enfim, só voltando, descendo um pouquinho aqui,
agora a gente consegue 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 o que calculamos antes, tudo que calculamos o depois.
E agora que 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.
O tempo de execução.
Supondo que fossem segundos, demorava 218/2.
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,
a linguagem R e até mesmo saber interpretar esses resultados e.