Estou Impressionado com o que o ChatGPT com Code Interpreter Consegue Fazer na Análise de Dados
Fiz perguntas vagas como "me conta algo interessante" sobre dados do Tesouro — e o ChatGPT instantaneamente gerou gráficos perspicazes que me levavam horas para criar manualmente.
Este post foi escrito em 2023. Alguns detalhes podem ter mudado desde então.
Quando Ethan Mollick escreveu sobre o quão poderoso é o chatGPT com Code Interpreter, fiquei extremamente curioso. Estava de férias na época, então só tive chance de brincar com ele hoje. E cara, é de tirar o fôlego!
Para contextualizar, decidi usar dados sobre diferentes emissões de títulos do governo americano do site Treasury Direct. Escolhi esse conjunto de dados porque escrevi um post anterior sobre "Por que Você Não Deveria Acreditar no Hype de que o Site TreasuryDirect Está Desatualizado", então estou um pouco familiarizado com o dataset. E mais importante, lembro vagamente quanto tempo levei para gerar os gráficos.
Fazer upload do conjunto de dados inteiro é extremamente fácil
Com apenas um clique de um botão, consigo fazer upload do conjunto de dados inteiro com o dicionário de dados também. E não precisei dizer muito sobre o dataset, apenas estas frases do site: "O dataset Securities Issued in TreasuryDirect detalha quantos de cada tipo de títulos do Tesouro são emitidos, resgatados ou em circulação no TreasuryDirect do Ano Fiscal (AF) de 2002 até o presente. Os títulos em circulação referem-se aos que ainda estão em circulação e ainda não foram resgatados. O número de títulos do Tesouro em circulação é determinado pela diferença entre os números de títulos emitidos e resgatados. Este dataset não contém nenhuma informação sobre os valores ou rendimentos dos títulos do Tesouro."
Gosto do fato de que, sem precisar solicitar, o chatGPT me diz como entende o dataset em alto nível e me dá as linhas iniciais dos dados como prévia.
Agora posso começar a "conversar" com os dados
Você consegue me dizer algo interessante sobre esse dataset?
Fiz ao chatGPT uma pergunta bastante nebulosa: "você consegue me dizer algo interessante sobre esse dataset?" É uma pergunta super genérica porque quero ver se o chatGPT consegue adivinhar intuitivamente o que pode interessar aos humanos.
E esta é a resposta:
Como você pode ver, o chatGPT fez a suposição certa de que talvez a tendência do valor bruto de vendas ao longo do tempo seja uma das primeiras notas interessantes sobre o dataset que eu poderia me importar. Então ele detalha as vendas brutas por tipo de título no próximo gráfico. (Se você notar com cuidado entre o texto e o gráfico final, pode ver que o chatGPT disse a cor errada "laranja" em vez de "azul mais escuro", mas isso não é um problema decisivo).
Em seguida, fiz ao chatGPT outra pergunta nebulosa :P
"Com base nesse dataset, você acha que o site treasury direct está ficando mais popular?"
E gostei da resposta que recebi: "A popularidade do site TreasuryDirect pode ser inferida examinando as tendências em vendas e o número de transações ao longo do tempo. Se virmos um aumento nessas métricas, isso pode sugerir que mais pessoas estão usando o site para comprar títulos do Tesouro. No entanto, é importante notar que esta é uma estimativa aproximada e pode não representar o quadro completo da popularidade do site, pois podem haver outros fatores em jogo."
Gostei da resposta porque o tom de voz está certo. O ChatGPT declara claramente que não tem certeza e a resposta é apenas uma das muitas respostas possíveis.
Este é o gráfico que o chatGPT gerou
A iteração é a chave
Embora os gráficos acima estejam ok, eles ainda não são os produtos finais que procuro. Então pedi ao chatGPT: "Quero incluir o gráfico sobre o número de transações ao longo do tempo no meu blog, você pode reformatar o gráfico para que fique mais fácil de ler?"
E você pode ver a melhoria ao longo do tempo abaixo, uma por uma:
Primeira melhoria
É isso que o chatGPT respondeu após minha solicitação:
Com prazer, posso modificar o gráfico para torná-lo mais fácil de ler. Algumas mudanças que poderiam melhorar a legibilidade do gráfico incluem:
- Aumentar o tamanho da fonte do título, rótulos e marcações.
- Ajustar a largura da linha do gráfico para melhor visibilidade.
- Adicionar um título e rótulos mais descritivos.
- Tornar as linhas de grade mais claras para evitar distração.
E este é o gráfico
Segunda melhoria
Percebi algo estranho no eixo vertical, então disse: "para o eixo vertical, não tenho certeza se meu público vai entender o que 1e6 significa?"
e este é o resultado
"Compreensível, a notação científica pode ser confusa para um público geral. Em vez disso, podemos converter os rótulos do eixo y para milhões e adicionar essa informação ao rótulo. Dessa forma, os números serão mais diretos de entender. Vamos fazer esse ajuste."
Terceira revisão
Esta foi minha resposta após ver o gráfico acima: "sim, esse gráfico está ficando muito melhor! Noto pela tendência que o número de transações aumentou significativamente nos últimos anos. Como mostramos isso melhor ao meu público?"
e o chatGPT respondeu:
"Um método comum para destacar tendências em dados ao longo do tempo é incluir uma linha de tendência no gráfico. Uma linha de tendência (também chamada de linha de melhor ajuste) é uma linha usada para representar o comportamento de um grupo de dados para ver se existe um certo padrão.
No contexto dos seus dados, adicionar uma linha de tendência pode ajudar a visualizar se há um aumento geral no número de transações ao longo do tempo, apesar de quaisquer flutuações de curto prazo.
Vamos adicionar uma linha de tendência ao gráfico. Usaremos um modelo simples de regressão linear para estimar a tendência. Também incluiremos a equação da linha de tendência e o valor R-quadrado (que mede quão bem os dados se ajustam à linha de regressão) na legenda do gráfico para fornecer mais contexto para o público."
Embora a resposta do chatGPT soe confiante, você pode ver que não há linha de tendência vermelha no chat acima. Então forneci meu feedback
Quarta revisão
"Não vejo a linha vermelha no gráfico acima"
e isto é o que o chatGPT respondeu:
"Peço desculpas pela confusão. A linha vermelha representando a tendência pode não estar visível devido às grandes flutuações nos dados. Uma linha de tendência, especialmente para um modelo de regressão linear, pode não representar adequadamente os dados se houver flutuações em grande escala ou se a tendência não for linear.
Uma forma alternativa de destacar a tendência poderia ser usar uma média móvel (também conhecida como média rolante). Essa técnica faz a média das flutuações em um determinado período para destacar a tendência de longo prazo.
Vamos aplicar uma média móvel de 12 meses aos dados e plotá-la junto com os dados originais. Isso deve nos ajudar a visualizar melhor a tendência geral."
"Uma média móvel suaviza as flutuações de curto prazo e destaca as tendências de longo prazo nos dados. Neste caso, é calculada pela média do número de transações em períodos de 12 meses.
A linha da média móvel mostra a tendência geral dos dados apesar das flutuações mensais. Como podemos ver, há uma tendência claramente ascendente no número de transações, o que confirma sua observação de que o TreasuryDirect está se tornando mais popular."
É ótimo? Não disse ao chatGPT que queria olhar para a média móvel de 12 meses, mas ele sugeriu. Honestamente, não pensei nessa forma de visualizar a enorme mudança nos últimos anos em comparação com os últimos 20 anos. Novamente, super impressionado!
Você também vai notar a escolha de cores — ele usa propositalmente uma cor mais escura para a linha de tendência para destacar a mudança, que é o que eu queria.
Revisão final
Embora já esteja impressionado com o último gráfico, adicionei: "na verdade, mais uma pergunta, precisamos das linhas de grade para o gráfico acima? você acha que podemos simplificar o gráfico ainda mais eliminando as linhas de grade?"
e isto é o que recebi de volta
Ao ler esse processo de revisão, você pode ter a sensação de que está demorando muito, mas não, na vida real, cada iteração leva menos de 5 a 10 segundos para rodar. É definitivamente muito mais rápido do que eu fazer isso sozinho!
Comparação direta entre meu próprio gráfico e o gráfico do chatGPT
Como mencionado acima, escrevi um post usando esse dataset antes, então criei alguns gráficos por conta própria no passado. Agora quero comparar quanto tempo levará para recriar o mesmo gráfico mas usando o chatGPT.
Então escrevi: "você pode gerar um gráfico para mostrar a tendência de contas financiadas no treasury direct de jan de 2016 a fev de 2023?"
Deixa eu te mostrar lado a lado o meu próprio gráfico e o que o chatGPT criou. Abaixo está o que criei por conta própria:
Se me lembro corretamente, levei mais de 5 a 10 minutos para criar esse gráfico antes.
Mas com o chatGPT, levou segundos e isto é o que recebi (com o bônus da média móvel de 12 meses). Você decide qual versão é melhor :P
Conclusão
Estou impressionado com o que o chatGPT com code interpreter consegue fazer AGORA para análise de dados e mal posso esperar para ver o que conseguirá no futuro, com ainda mais melhorias :D
Qual é a tarefa de dados mais tediosa que você faz regularmente? Já tentou jogar para o Code Interpreter? Fico curioso se ele lida com os seus dados específicos tão bem quanto lidou com os meus.
Abraços, Chandler
















