Por que migrar sua análise de dados do Excel para uma linguagem de programação?
Parte 2
Na parte 1 dessa série discutimos um pouco da minha experiência com análise de dados e porquê abandonei essa ferramenta. Nesse artigo, discuto três vantagens de se utilizar o R e o Python ao invés do Excel para sua análise de dados.
Discutimos na Parte 1 dessa série dois casos interessantes de problemas de má utilização do Excel que invalidaram, pelo menos parcialmente, conclusões importantes na genética e na economia. Discutimos ainda nosso viés ao avaliar nossas próprias planilhas, além da dificuldade de encontrar erros nelas. Como alternativa, apresentei a possibilidade de utilizar linguagens de programação para análises de dados, principalmente aquelas mais complexas.
Não vou entrar na guerra R vs. Python, principalmente porque uso as duas no meu dia a dia e acredito que os princípios desse artigo se aplicam às duas linguagens, ou à qualquer outra. Prometo, no futuro, trazer um artigo sobre como o Python e o R podem ser complementares em uma análise de dados.
Porém, como nem tudo são flores, sinto-me na obrigação de dizer que o caminho da aprendizagem de uma linguagem de programação não é dos mais fáceis. Mais ainda, esse caminho de aprendizagem não acaba nunca! Esse é realmente um campo do conhecimento em que seu percurso de aprendizagem é o raio de um círculo e o universo de conhecimento é a área. À medida que você avança uma unidade no raio, a área cresce na proporção de π.r².
Mas se tenho que vencer uma curva de aprendizado que não termina nunca, por que não continuar conduzindo minhas análises como sempre fiz, usando o Excel?
Porque você consegue reproduzir exatamente o que outra pessoa fez com uma linguagem de programação, basta acesso ao código e aos dados.
Advogo sempre que devemos ter, como princípio básico de todo tipo de pesquisa, transparência. Esse é, inclusive, um dos preceitos mais fundamentais do trabalho de uma entidade pública e deveria ser o padrão ouro de qualquer revista científica.
Essa transparência, aqui considerada sinônimo de Reproducible Research, é uma mudança de paradigma, na medida que apresentamos não só resultados e conclusões, mas colocamos todo o caminho traçado em evidência, diminuindo consideravelmente a possibilidade de erros e abrindo um canal de diálogo com outros interessados. Reproducible Research também possibilita um crescimento enorme na qualidade dos produtos entregues por empresas, pesquisadores e entidades públicas.
Segundo Roger Peng, uma das vozes mais relevantes da Reproducible Research, a exploração dos dados usados e a análise do código disponibilizado talvez seja suficiente para atestar a qualidade de um estudo científico. Mais ainda, erros como os discutidos na parte 1 podem ser evitados com a adoção de análises em script.
Porque o poder de processamento de uma linguagem de programação nem se compara ao do Excel.
Antes de comparar a velocidade de processamento do Excel com linguagens de programação, é sempre bom lembrar que o Excel limita suas planilhas a pouco mais de um milhão de linhas, mas antes de você conseguir aplicar qualquer função à essa quantidade de linhas seu Excel já vai ter travado há muito tempo.
Para o teste, vou construir uma lista com 200 mil palavras aleatórias. Com essa lista, criarei duas tabelas; uma com 2 variáveis e outra com 6 variáveis. Para as duas tabelas, a primeira variável corresponderá à lista com 200 mil palavras. As outras variáveis serão números inteiros.
A ideia do teste é juntar essas duas tabelas em uma única utilizando como referência a coluna de palavras aleatórias e, após a junção, aplicar uma soma nas variáveis numéricas. No Excel, faremos um PROCV seguido de uma soma. No Python, um merge() seguido de uma soma. Operações como essas são bastante comuns no fluxo de uma análise de dados.
Output:
0:00:00.213337
- Python: menos que um segundo.
- Excel: um minuto e quatro segundos.
Nada muito complexo, mas podemos imaginar o tanto que esse tempo aumenta com o crescimento do número de operações na planilha.
Porque as linguagens de programação possibilitam a criação de visualizações melhores.
Com a superior capacidade de processamento de conjuntos de dados mais complexos, tanto o R como o Python também possibilitam que o usuário crie visualizações mais complexas e, principalmente, mais completas.
Mesmo não sendo um expert, com o pacote ggplo2 do R consigo criar algumas visualizações legais para responder perguntas importantíssimas!
Será que os pokemons lendários são realmente muito melhores que os pokemons comuns?
Como esperado, sim. Os lendários têm valores de habilidades consideravelmente superiores quando comparados aos não lendários.
Quais são os tipos de pokemon com os totais (soma das habilidades) mais altos?
Em algum canto quase esquecido da nossa memória, a gente sabia que os dragões são mais fortes (considerando a mediana).
Para construir essas visualizações, usei a belíssima base de dados Pokemon with stats do Kaggle.
A título de curiosidade, deixo aqui o e-book super interessante do padrão de visualização de dados e construção de gráficos adotado pela BBC. SPOILER: eles não usam Excel.
Porque as linguagens de programação são as competências mais exigidas em vagas relacionadas à ciência de dados.
Hoje, Python e R são praticamente industry-standard. Dificilmente você vai encontrar uma vaga para cientista de dados em que o único requisito é o Excel. Indico dois posts do KDnuggets que varreram os principais sites de emprego tanto na Índia como nos Estados Unidos e fazem uma análise muito melhor do que eu poderia fazer.
Em resumo, Python prevalece como a linguagem de programação mais procurada, seguida de perto pelo R. Um pouco mais atrás, aparecem java, SAS e C++.
Além dessas, outra ferramenta que parece vir quase como uma obrigação em vagas de emprego é o SQL, que não é propriamente uma linguagem de programação de propósito amplo como as mencionadas nesse artigo, mas é de uso específico. SQL é um tema que vale um artigo próprio, mas em resumo, é a linguagem usada para conversar com bases de dados relacionais e tem um poder de processamento ainda maior que o universo Pandas+Numpy+Scikit Learn do Python e o Tidyverse do R. Fácil entender porque a indústria exige conhecimento em SQL.
Para os mais curiosos, o Kaggle tem uma base de dados de vagas publicadas para analistas de dados varridas do glassdoor. Vale a pena dar uma olhada.
No final das contas, vai de cada um a escolha da ferramenta mais adequada para uma análise de dados, e tanto o R como o Python têm sido um grande passo em eficiência e transparência no meu fluxo de trabalho.
Chegamos ao fim da série “Por que migrar sua análise de dados do Excel para uma linguagem de programação?” e espero que você tenha aprendido alguma coisa nova com as experiências que compartilhei aqui :)