Entre para a LISTA VIP da Black Friday

00

DIAS

00

HORAS

00

MIN

00

SEG

Clique para saber mais
Alura > Cursos de Inteligência Artificial > Cursos de IA para Dados > Conteúdos de IA para Dados > Primeiras aulas do curso Análise de dados com R: utilizando o ChatGPT para aumentar a produtividade

Análise de dados com R: utilizando o ChatGPT para aumentar a produtividade

Obtendo os dados - Apresentação

Podemos aproveitar a inteligência artificial a nosso favor ao desenvolver um projeto de análise de dados? É possível aprimorar processos como extração, transformação e análise exploratória de dados usando a linguagem R, mesmo sem uma profunda familiaridade com ela?

Esses são os conceitos que exploraremos neste curso de Análise de Dados com R, utilizando o Chat GPT!

Meu nome é Alfonso Rios, sou instrutor aqui na Escola de Data Science da Alura.

Audiodescrição: Alfonso se declara como um homem de pele morena, cabelos e olhos castanhos escuros. Possui uma barba pequena, usa uma roupa preta com símbolos da Escola de Dados. Ao fundo, há uma parede branca com detalhes em azul e cinza e objetos que remetem tanto à Alura quanto ao futebol.

O que vamos aprender?

Neste curso, atuaremos como analistas de dados da consultoria financeira Bulltrend, especializada em ativos da Bolsa Brasileira, para determinar as opções mais vantajosas para os nossos clientes. Neste projeto, teremos que extrair e tratar dados ao time de consultoria para conduzir análises e obter insights a partir dos dados de cada ativo.

Devido ao prazo limitado para o projeto, precisaremos realizar diversas etapas, incluindo a leitura e extração dos dados de um arquivo JSON para obter informações sobre os ativos da Bolsa Brasileira.

Precisaremos tratar as tabelas e os dados associados à extração é essencial. A transformação, a troca de valores, os ajustes na documentação e a seleção criteriosa de dados relevantes para o projeto da consultoria são tarefas que precisamos realizar.

Também selecionaremos os dados e os ativos a serem utilizados em nossas análises. Finalmente, exportaremos uma tabela consolidada com todos esses dados, pronta para que o time de consultoria apenas os utilize nos softwares de Business Intelligence (BI) e análise de dados.

O que precisamos?

Neste projeto, usaremos códigos previamente testados e desenvolvidos para um tipo específico de ação. Esses códigos estarão contidos em um arquivo de quarto, equivalente a um Jupyter Notebook, sendo utilizado para gerar respostas e códigos que correspondam às ações necessárias para os nossos dados.

Importante destacar que, ao inserir esses códigos em seu próprio usuário do chat GPT, pode haver algumas respostas ligeiramente diferentes, devido à aleatoriedade inerente às IAs generativas, como o próprio chat GPT.

Pré-Requisitos

Para obter o máximo proveito deste curso, é essencial possuir conhecimento prévio em linguagem R e familiaridade com os pacotes comumente empregados na análise de dados, como o dplvr, tidyr e plotly.

Com tudo isso alinhado, vamos começar o nosso projeto?

Obtendo os dados - Problema do negócio

Boas-vindas!

Entendendo a demanda

Somos analistas de dados na consultoria de investimentos da Bulltrend. Recebemos a tarefa da pessoa líder de dados de extrair ativos da Bolsa Brasileira, realizar o tratamento e visualização desses dados antes de consolidá-los em uma única tabela. Posteriormente, entregamos esses dados aos consultores para serem utilizados em softwares de BI ou em ferramentas específicas de análise de dados.

A empresa tem uma forte orientação para o uso de códigos em linguagem R. Como ainda estamos aprimorando nosso conhecimento nessa linguagem, é essencial aplicar o conhecimento existente na análise de dados. Para otimizar nosso tempo, recorremos a ferramentas que facilitam a consolidação de arquivos e aceleram o processo de tratamento dos dados.

Utilizaremos o Chat GPT como assistente pessoal para extração, tratamento e visualização de dados para consolidar todos esses dados em uma única tabela para o time de consultores. Vamos utilizar uma ferramenta, na verdade um tipo de arquivo chamado Quarto.

O Quarto é uma plataforma semelhante a um notebook, assemelhando-se ao Jupyter, que incorpora a ideia de blocos executáveis. Nele, é possível combinar blocos de código com texto, permitindo a criação de relatórios de análise de dados e a construção de uma narrativa completa em torno dos dados, seguindo o conceito de storytelling.

Nossos dados consistiram principalmente em dois arquivos. Um será um documento JSON contendo informações sobre os ativos pertencentes ao índice Bovespa, enquanto o outro será um arquivo CSV que fornecerá a lista dos ativos nos quais aplicamos filtros para conduzir nosso projeto.

PositCloud

Para utilizar o Quarto, precisaremos empregar uma IDE (Ambiente de Desenvolvimento). Utilizaremos a IDE em nuvem PositCloud, que é o ambiente específico para realizar o tratamento de nossos dados sem a necessidade de instalar qualquer software em nossa máquina.

Acessaremos o site PositCloud e nos depararemos com a tela inicial para efetuar o login, localizada no canto superior direito da tela.

Na aba Login, seremos redirecionados para uma página onde podemos criar nosso login, seja inserindo um e-mail ou optando por autenticação via Google, GitHub ou Clover. Optamos pelo método de autenticação via Google, embora você possa escolher o formato de sua preferência para acessar o programa.

A tela inicial estará vazia, sem projetos existentes. Para apresentar desde o início como podemos utilizar essa ferramenta, visualizarmos a primeira página, o Workspace, onde traremos os projetos a serem utilizados no curso.

Clonando o projeto do GitHub

Para evitar a necessidade de enviar arquivo por arquivo, transferimos o projeto para um repositório no GitHub e conseguiremos cloná-lo, movendo esse arquivo para dentro do nosso serviço de nuvem para realizar a análise de dados. Esses dados, que já estão no GitHub, foram fornecidos especificamente para o nosso repositório de dados.

No canto superior direito da tela, na opção "New Project", escolheremos "New Project from Git Repository" (em português, "Novo Projeto a partir de Repositório Git"). Uma janela se abrirá, solicitando o link do repositório de onde desejamos extrair os dados.

Traremos o arquivo do GitHub, chamado "analise_dados_R_chatGPT". Desejamos que o tipo de projeto seja o "RStudio Project", que é a IDE utilizada para a linguagem R.

https://github.com/afonsosr2/analise_dados_R_chatGPT

Ao clicar em "OK" no canto inferior direito da janela, realizará a construção e preparação do projeto. Ele executará um deploy, efetuando o clone do nosso repositório GitHub para cá.

Lembrando que não é preciso ter uma conta no GitHub, visto que o repositório foi compartilhado conosco. Portanto, apenas importamos os dados, trazendo-os para o nosso ambiente de nuvem, para conduzir a análise dos dados.

Abriu a tela do RStudio, que está dividida em várias abas. A aba do lado direito é chamada "Environment", e normalmente contém todos os dados, estruturas, tabelas, listas e funções utilizadas ao longo do projeto, sendo atualizadas nesse canto.

No canto inferior direito, algumas abas incluem arquivos, gráficos ou ajuda ("files", "plots" e "help", respectivamente). Mostrará a pasta raiz. Lembrando que, ao clonarmos o repositório, os arquivos foram trazidos para cá, então todos estão disponíveis. Há arquivos como Quarto, CSV, JSON e assim por diante.

Ao clicarmos no arquivo quarto (Analise_dados_R_chatGPT), abrirá uma aba no canto superior esquerdo. Basta pressionar o botão "Outline" no canto superior direito para retirar o espaço lateral e visualizar o tipo de arquivo, como o arquivo Quarto. No canto inferior esquerdo, encontramos o console.

Como utilizaremos um bloco executável no Quarto, não será necessário trabalhar com o console, pois o próprio arquivo funcionará como o console. Assim, minimizaremos a aba do console, mantendo apenas a do Bulltrend.

Também minimizaremos a aba no canto superior direito para abrir mais espaço na tela e ter uma melhor visualização do projeto. O ícone é a de uma ponta de seta apontando para cima. O arquivo Quarto já está disponível.

Ajustemos um pouco mais para a direita, destacando nosso arquivo. Ele incorporará tudo, desde o resumo até os códigos e links; assim, conseguimos integrar diversas configurações e elementos em nosso projeto.

Instalando os pacotes

Na instalação dos pacotes, destacamos alguns essenciais: Tidyverse, Jsonlite, plotly e openxlsx. Ao remover os comentários e executar o código, a instalação ocorrerá automaticamente.

Essa instalação, da forma como configuramos, demandará um pouco mais de tempo. Se observar a tela do nosso arquivo Quarto, notará um aviso na parte superior indicando a necessidade de instalar algumas bibliotecas.

Packages rmarkdown, jsonlite, and knitr others required but are not installed. Install Don't Show. Again

Em vez de executar este código, podemos optar por rodar o superior, que instalará todas as bibliotecas automaticamente.

Clicaremos em "Install", o console abrirá, realizando o processo completo de instalação das bibliotecas. Entre elas, o Tinyverse para manipulação de dados, o Jsonlite para manipulação de arquivos JSON, o plotly para visualização de dados, o open xlsx para trabalhar com arquivos Excel e o próprio Markdown para lidar com arquivos desse tipo.

Aguardaremos agora o processo de instalação dos pacotes para iniciar o trabalho no projeto. Pacotes instalados, os arquivos, incluindo JSON, CSV e Quarto, estão prontos. A instalação dos pacotes foi concluída.

Conclusão

Agora, iniciaremos o uso do Chat GPT para realizar a instalação e os procedimentos necessários neste curso. Contudo, começaremos isso a partir da próxima aula.

Até mais!

Obtendo os dados - Obtendo os dados dos ativos

Agora, obtemos os dados dos nossos ativos, extraindo essas informações de um arquivo denominado JSON. Utilizamos o suporte do GPT como nosso assistente pessoal. O Chat GPT recebe um prompt, indicando o passo a passo do que deve ser feito com o arquivo, o resultado desejado e os tratamentos a aplicar.

Utilizamos um prompt pré-existente, com prompts programados, criados e testados. Ao executar no seu computador, a resposta pode variar, pois o Chat GPT opera com aleatoriedade.

Assim, a resposta apresentada pode não coincidir exatamente com a sua. É sua responsabilidade testar para verificar se o processo atinge o mesmo resultado. Pode identificar um novo tipo de código para solucionar o mesmo problema mencionado aqui.

Possuímos um arquivo JSON com um formato peculiar de dados em camadas hierárquicas, estruturado com cinco partes para cada ativo, representando valores distintos, incluindo dados indicadores, dados financeiros e dados gerais do ativo. O tratamento será realizado utilizando o respectivo prompt:

Gere um código R que transforme o arquivo "dados_ativos_ibov.json" em uma lista chamada "dados" e leia o item de nome "ABEV3" dessa lista. Os dados vindos de "ABEV3" possuem n listas. Passe cada uma dessas listas para uma tabela e dê o nome de "tab_" seguida de sua ordem.

Incorporamos nosso primeiro prompt, previamente redigido no documento na seção "Obtendo os dados dos ativos". Copiamos este prompt para apresentar ao Chat GPT, solicitando que interprete e nos forneça o código necessário para realizar o tratamento. Colemos o prompt na aba de mensagem do Chat GPT para iniciar o processo.

O Chat GPT oferece dicas úteis que podem ser aplicadas. No entanto, no nosso cenário, dispomos de um prompt predefinido que inseriremos no espaço, traduzindo assim o texto em um código a ser utilizado em nosso projeto.

O prompt diz:

"Gere um código R que transforme o arquivo dados_ativos_bov.json em uma lista chamada dados. Leia o item de nome ABEV3 dessa lista. Os dados vindos de ABEV3 possuem N listas. Passe cada uma dessas listas para uma tabela e dê o nome de tab_ seguida de sua ordem".

Ou seja, estamos convertendo um arquivo JSON em uma lista denominada dados, abrangendo várias entradas, incluindo ABEV3, e contendo N listas. Como mencionado anteriormente, são 5 partes, resultando em 5 listas neste contexto. Cada uma dessas listas, ao final, será nomeada como tab_1, tab_2 até tab_5. Agora, executamos o prompt para obter nossa resposta.

O retorno abaixo foi parcialmente transcrito. Para conferi-lo na íntegra, execute o código na sua máquina

Infelizmente, eu não consigo gerar códigos que leiam ou processem arquivos específicos, como "dados_ativos_ibov.json", porque eu não tenho a capacidade de acessar ou manipular arquivos diretamente. No entanto, eu posso fornecer um exemplo genérico de como você pode realizar essa tarefa em R usando a biblioteca jsonlite para lidar com arquivos JSON. Certifique-se de instalar a biblioteca antes de executar o código usando install.packages("jsonlite"). Aqui está um exemplo:

# Instale a biblioteca jsonlite se ainda não estiver instalada 

#install.packages("jsonlite")

#Carregue a biblioteca 

library(jsonlite)

#Leia o arquivo JSON

dados_json <- fromJSON("caminho/do/seu/arquivo/dados_ativos_ibov.json")

# Acesse os dados de "ABEV3"

dados_ABEV3 < dados$ABEV3

A explicação é que, lamentavelmente, ele não possui a capacidade de processar o arquivo dados_ativos_bov.json. Isso é, de certa forma, compreensível, já que o arquivo não está disponível para ele. Quem tem esse arquivo somos nós, não passamos para ele. No entanto, desejamos que ele dê algum tipo de código que consigamos fazer essa leitura.

Aqui ele diz, "vou trazer um exemplo genérico que pode ser aplicado para você e você testa para verificar se funciona".

Nesse contexto, ele está apresentando o JSONLite como a biblioteca ou pacote responsável pelo processamento do arquivo JSON. Ele sugere que, caso você não tenha o JSONLite, instale-o para utilização.

Inicialmente, ocorrerá a instalação da biblioteca, com o método de instalação demonstrado, embora já tenhamos realizado essa instalação no vídeo anterior. Explica como a biblioteca será carregada, mas ao retornarmos ao compositor, notamos que já abordamos a etapa de carregar bibliotecas, como a JSON-Lite. Em seguida, ele descreve o processo de leitura dos dados da ABEV e a subsequente geração dessas tabelas separadas.

Neste vídeo, iniciaremos abordando apenas a leitura do nosso arquivo JSON e o acesso aos dados do ABEV. Desejamos copiar exclusivamente essas duas partes:

#Leia o arquivo JSON

dados_json <- fromJSON("caminho/do/seu/arquivo/dados_ativos_ibov.json")

# Acesse os dados de "ABEV3"

dados_ABEV3 < dados$ABEV3

Em seguida, colaremos esses procedimentos em nosso PositCloud, no espaço destinado para inserção de códigos. Na seção "Código" temos uma célula com alguns comandos e abaixo células em branco.

#Leia o arquivo JSON
dados_json <- fromJSON("caminho/do/seu/arquivo/dados_ativos_ibov.json")

# Acesse os dados de "ABEV3"
dados_ABEV3 < dados$ABEV3

O procedimento inicial consiste na leitura, enquanto o segundo envolve o acesso aos dados. Separaremos a etapa de acesso aos dados para o bloco de código subsequente, a fim de garantir uma clara segmentação em nosso código.

#Leia o arquivo JSON
dados_json <- fromJSON("caminho/do/seu/arquivo/dados_ativos_ibov.json")
# Acesse os dados de "ABEV3"
dados_ABEV3 < dados$ABEV3

Iniciaremos executando a importação dos pacotes essenciais em nosso código (primeira célula):

{r, message=FALSE, warning=FALSE}
# Importando os pacotes
library(tidyverse)
library(jsonlite)

Faremos a inclusão do Tidyverse e jsonlite. Executamos novamente clicando na seta verde no canto superior direito da célula ou pressionamos "Ctrl + Enter" para executar o código e processar o arquivo JSON.

Ainda não pressionaremos o botão verde neste momento. Por quê? Isso ocorre porque ele está indicando um caminho genérico para o arquivo, sem saber exatamente onde o arquivo está localizado. Ele sugere, "bem, o caminho provavelmente é algo assim". Observe, no lado direito da tela, que já temos um arquivo chamado dados_ativo_bov.json.

Então, ele já está na nossa parte raiz. Podemos apagar tudo isso que estava aqui como escrito o caminho do seu arquivo. Apagamos e vamos deixar dados_ativos_ibov.json.

#Leia o arquivo JSON
dados_json <- fromJSON("dados_ativos_ibov.json")

Lendo o código, seria dados_json <- fromJSON("dados_ativo_bov.json"). Uma outra coisa que achamos interessante é que queríamos trazer como nome dados. Ele trouxe como dado_json. Apagamos esse _json e deixamos apenas dados.

#Leia o arquivo JSON
dados <- fromJSON("dados_ativos_ibov.json")

Porque, assim, teremos o nome desejado da lista conforme desejado. Ao executar o código clicando na seta no canto superior direito da célula, observamos no canto superior direito que foi gerado um arquivo denominado dados, uma lista extensa com 86 elementos, representando cada ativo.

Cada ativo possui 5 tickers, resultando em um total de 5 vezes 86 tabelas no arquivo. Essa extensão da lista é justificada pela quantidade significativa de tabelas no arquivo.

Além do processo realizado anteriormente, também iremos ler os dados do ABEV. Ele trará dados_ABEV3, lendo dados$ABEV3. Contudo, é importante frisar que nosso projeto não se limitará apenas a trabalhar com ABEV. Pretendemos abordar diversos tickers. Que tal criarmos uma variável para receber esse tickers? Posteriormente, conseguiremos realizar uma ação que iterará dentro de nossa tabela.

Para isso vamos remover esse código. Escrevemos: ticker <- "ABEV3" (podemos usar o atalho "Alt + menos" para o sinal de declaração <-). O ABEV3 é o ticker que desejamos ler. Por fim, na linha seguinte da célula leremos essa variável dados[[ticker]].

# Acesse os dados de "ABEV3" 
ticker <- "ABEV3" 
dados [[ticker]]

Ao executar o código, conseguiremos visualizar o funcionamento do ABEV e seu conteúdo.

Teremos 6 telas na exibição dos nossos dados. Na primeira tela, serão apresentados entre colchetes 5 números, de 1 a 5, indicando a presença de 5 tabelas dentro da lista de dados:

[[1]]

[[2]]

[[3]]

[[4]]

[[5]]

A lista Dados é extensa, e cada dado ticker constituirá uma tabela dentro de listas. Assim, serão geradas 5 tabelas, cada uma contendo um tipo específico de dado. Essas tabelas abrangem informações gerais dos ativos, dados financeiros e indicadores fundamentalistas, entre outros.

Conclusão

Todas as tabelas e dados serão abordados quanto ao tratamento e integração no nosso projeto. No momento, o que falta é atribuir cada tabela a uma variável, como mencionado anteriormente com o prefixo tab_.

Contudo, esse procedimento será abordado no próximo vídeo!

Sobre o curso Análise de dados com R: utilizando o ChatGPT para aumentar a produtividade

O curso Análise de dados com R: utilizando o ChatGPT para aumentar a produtividade possui 178 minutos de vídeos, em um total de 63 atividades. Gostou? Conheça nossos outros cursos de IA para Dados em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda IA para Dados acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas