Primeiras aulas do curso Análise de dados: Introdução com R

Análise de dados: Introdução com R

Importação de planilha e primeiras análises - Introdução

Olá! Sejam bem-vindos ao curso de Introdução a Análise de Dados com R. Sou Rodolpho Bernabel, e minha intenção é que a partir deste curso vocês estejam aptos a fazerem suas primeiras análises estatísticas, quantitativas e preditivas de dados.

Utilizaremos o RStudio, uma plataforma que funciona como ferramenta de auxílio gráfico para aprender a Linguagem R. O download do programa será explicado durante o curso.

A imagem abaixo mostra como é sua interface:

Interface RStudio

Ela é composta por 4 partes e cada uma possui uma função:

Estudaremos conceitos estatísticos e como são feitos e especificados em termos de comandos, que virão com a explicação do nome e da função. Explicaremos o que está sendo pedido, por quê é importante e quais problemas queremos resolver.

Para isso, o curso será baseado em um projeto hipotético, no qual uma empresa de vídeos online pede uma análise dos cursos e vídeos da plataforma, a partir de uma amostra do banco de dados. Veremos a média de tempo que os alunos levam para concluir as aulas, quais são os cursos e quais vídeos de cada um deles são os mais acessados.

Faremos análise de correlação, verificando se a popularidade do curso está relacionada à sua média de duração. Importaremos bancos de dados e juntaremos informações externas, que precisamos ter em um mesmo local para fazer a análise.

Para concluir, sugiro para quem nunca estudou estatística ou estudou e está um pouco "enferrujado" que faça o curso "Estatística I: Entenda seus dados com R" da Alura, antes de começar o de "Introdução a Análise de Dados com R".

No curso sugerido, a Linguagem R é utilizada de maneira auxiliar no aprendizado de conceitos estatísticos. Assim, os alunos aprendem estatística, juntamente com alguns comandos de R.

Espero que gostem! Vamos lá!

Importação de planilha e primeiras análises - Importação e exibição dos dados

No projeto hipotético que trabalharemos, somos contratados por uma empresa de cursos online, para analisar quantitativamente seus vídeos. Assim, forneceremos informações a ela, como a popularidade, quanto tempo os alunos levam para concluir os cursos, entre outros.

O primeiro passo será importar o banco de dados, disponível em Excel, para o RStudio. Para isso, clicaremos no botão "Import Dataset", localizado na janela superior à direita, e selecionaremos a opção From Excel.

Localização do botão de importação de banco de dados

Feito isso, uma janela se abrirá, na qual poderemos buscar documentos, clicando em Browse. Procuraremos o banco de dados aulas.xlsx, disponibilizado para download.

Seleção arquivo `aulas.xlsx`

Selecionado o arquivo, caso apareça uma mensagem de erro, como a exibida abaixo, basta clicarmos em "OK". Isto verifica se o arquivo é mesmo em Excel.

Mensagem de erro: "Error: is this a valid Excel file?"

Em seguida, clicaremos no botão "Import":

Botão Import

Na tela do programa, serão exibidas as variáveis e observações. Lembrando que a edição de planilhas é melhor no Excel. No RStudio é possível editá-las, mas ele é mais adequado para trabalho estatístico.

Tela após importação de dados

Importado o banco de dados, teremos na parte superior da tela a planilha com as 3 variáveis da amostra:

Por exemplo, na primeira linha da tabela, a informação é que o usuário 18 fez o curso 88 e assistiu o vídeo 1815. Começaremos a trabalhar clicando no ícone verde com sinal de mais (+) branco, localizado no canto superior esquerdo do programa, para criar um novo documento de "R Script".

Criar novo documento R Script

Será aberta uma nova aba com espaço em branco para digitarmos e editarmos comandos, sem executá-los automaticamente, como acontece em editores de texto.

Novo arquivo R Script

Os comandos que acrescentarmos nesse novo arquivo serão executados logo abaixo, no Console. Tentaremos isolar a variável section_id, para analisar quantas vezes cada vídeo foi assistido. Para isso, digitaremos no novo arquivo "R Script": section_id.

Para executar a informação, ou seja, para que R busque a variável, clicaremos no botão "Run" ou utilizamos o atalho "Command + Enter" (MAC) ou "Ctrl + Enter" (Windows).

Localização do botão Run

Atenção: devemos prestar atenção ao local em que o cursor está antes de executarmos um comando.

Se por exemplo digitarmos section_id na linha 1 e o cursor estiver na linha 3, que no momento está em branco, e clicarmos em Run, nada será executado.

Execução linha 3, sem retorno

O cursor deve estar posicionado na linha a ser executada. Sendo assim, tentaremos executar section_id. O retorno que teremos no Console é de erro: Error: object 'section_id' not found.

Erro ao executar `section_id`

Isso aconteceu porque R possui o banco de dados mas não reconhece o nome das variáveis contidas nele. Para que ele as reconheça, utilizaremos a função de anexação attach(), abaixo de section_id e, entre parênteses, especificaremos o banco de dados "aulas" attach(aulas).

Notem que ao digitarmos attach() no Script, aparece a opção de autocompletar o comando que, ao executarmos, dessa vez utilizando o atalho "Command + Enter", nos trará o retorno correto no Console: attach(aulas).

Retorno correto no Console

Então, tentaremos executar novamente a variável section_id.

Retorno da execução de `section_id`

No Console, serão exibidas algumas observações em relação à variável. Agora que o programa as reconhece, podemos trabalhar com o nome delas. Observem que na última linha do retorno no Console, há uma mensagem dizendo que foi atingido o número máximo de exibição:

[ reached getOption("max.print") -- omitted 33829 entries ]

O banco de dados aulas.xlsl contém muitas informações, apesar de ser uma amostra. O aviso aponta que foram omitidas 33829 entradas. Ou seja, estamos visualizando apenas um trecho de section_id. Para acessá-la por inteiro, teremos que alterar a opção ("max.print"), o default de R, que estabelece o número de linhas que serão exibidas.

Para isso, utilizaremos a variável options com o parâmetro max.print, especificado com o número de linhas a serem exibidas entre parênteses. No Console, à direita, há um índice com a contagem de 991 linhas. Se 33829 estão omitidas, precisamos de, pelo menos, 34000 linhas. Sendo assim, estabeleceremos 40000, no Sprint, para acessarmos todos os dados.

options(max.print = 400000)

Ao executarmos o comando, o padrão de exibição será alterado no Console. Se posicionarmos o cursor em section_id e clicarmos em "Run", todos os dados serão exibidos, e conseguiremos acessar o banco de dados. No entanto, as informações estão desordenadas, e isso dificulta a visualização dos tipos de dados.

Pode haver dados faltando ou fora do padrão, os quais não conseguiremos identificar no meio de tantos números. Quando isso acontece, os valores fora do padrão ficam no começo ou no final da coluna. Se quisermos visualizar apenas os primeiros valores da variável, podemos isolá-los utilizando a função head, que em inglês significa "cabeça", especificando-se section_id entre parênteses.

head(section_id)

Após executarmos o comando, teremos no Console:

> head(section_id)
[1] 1815 1941 3526 3527 1816 584

Foram exibidas as primeiras observações de section_id, aparentemente sem problemas. Mas a apresentação dos códigos continua desordenada, o que pode trazer erros imperceptíveis. Poderemos ordenar a exibição dos valores; por exemplo, se quisermos ordená-los do menor para o maior, utilizaremos a função sort no Script:

sort(section_id)

Ao executarmos o comando no Console, teremos a variável section_id ordenada pelo código dos vídeos, em ordem crescente.

Códigos ordenados do menor para o maior

Na última linha, encontraremos o valor 999999, que destoa da amostra. Pode ser um valor incorreto, que entrou por erro ou que o desenvolvedor inseriu por engano, e ficamos sem saber do que se trata. Quando chegamos em um dado desse tipo, recorremos à empresa que solicitou a análise e informamos que há um dado fora do padrão, para que eles confiram e vejam o que houve. Caso seja um erro, solicitamos o valor correto da observação.

Importação de planilha e primeiras análises - Aumentando limite e ordenando a exibição

A empresa que nos contratou confirmou que 999999 foi inserido erroneamente no banco de dados. O desenvolvedor responsável nos passou o valor correto, que é 3255. Vamos corrigir o banco de dados antes de continuarmos a análise. Precisamos especificar em qual linha e coluna o valor deve ser alterado e, para isso, manipularemos a planilha, ou matriz, conceito que utilizaremos por se tratar de números em linhas e colunas.

No Script, digitaremos o banco de dados (aulas) e, entre colchetes ([]), indicaremos a linha e a coluna que sofrerão alterações, nessa ordem, e separadas por vírgula (,). Ao informar o valor correto, o desenvolvedor responsável nos passou que o dado foi inserido na linha 33137 e coluna 3.

O número da coluna tem a planilha do arquivo aulas.xlsl como referência, na qual encontramos a variável que estamos analisando (section_id) na terceira coluna. A substituição do valor correto será feita por meio do comando de atribuição, com o atalho "Option + -" (MAC) ou digitando o sinal de menor, seguido de sinal de menos, sem espaço entre eles (<-). Esse comando forma o desenho de uma seta. O valor à direita será atribuído à posição indicada à esquerda dela.

aulas[33137, 3] <- 3255

Ao clicarmos em "Run", o comando será executado sem problemas. O valor foi inserido no banco de dados. Em seguida, posicionaremos o cursor em sort(section_id), no Script, para executá-lo e verificar se o valor foi inserido corretamente. No retorno, o valor fora do padrão, 999999, permanece.

Permanência do valor `999999` na execução de `sort(section_id)`

Isso acontece porque trabalhamos com a cópia da variável (section_id), que se encontra na memória do RStudio. Isto é, não trabalhamos diretamente com o banco de dados. Devemos prestar atenção ao especificarmos a variável, após o uso de attach(). Essa função de anexação cria uma cópia da variável na memória do programa.

Quando trabalhamos com a cópia, não trabalhamos com o banco de dados, e vice-versa. Na análise, precisamos ficar atentos para manipular os objetos obtendo resultados nele, e não em outros. Nesse caso, para conseguirmos o resultado esperado, digitaremos o nome do banco de dados na função sort.

sort(aulas$section_id)

Funciona. No Console, o valor 999999 não aparece mais:

Console sem `999999`

Agora, localizaremos o valor correto 3255 no banco de dados, selecionando e executando aulas[33137, 3]. Assim, estaremos solicitando a execução do trecho selecionado, que contém o nome do banco de dados, a linha e a coluna que estamos procurando. Ao executarmos, teremos como retorno no Console:

> aulas[33137, 3]
# A tibble: 1 x 1
    section_id
            <dbl>
1            3255
>

O valor foi inserido corretamente no banco de dados, e não em sua cópia. Podemos fazer a mesma análise com dados de cursos e alunos, mas a princípio estamos interessados nos vídeos. Trabalharemos com as outras variáveis mais adiante.

Precisaremos descobrir a quantidade de vídeos únicos, pois há uma porção de valores repetidos no Console, indicando que um mesmo vídeo foi assistido mais de uma vez.

Códigos repetidos no Console

Na primeira linha, destacada na imagem acima, por exemplo, 3914 é repetido diversas vezes. Esse comportamento é esperado, considerando que vários alunos fizeram a mesma aula ou um mesmo aluno visualizou o mesmo vídeo diversas vezes.

Se repararmos, veremos que o primeiro código de curso não segue linearmente até o último. Isso significa que na hora de codificar os cursos, a empresa pulou códigos propositalmente, ou que na amostra que estamos analisando a sequência não esteja linear, o que dificulta a análise.

Para descobrirmos a quantidade de cursos únicos, analisaremos somente uma exibição por curso. Para isso, utilizaremos a função unique(), que fornecerá uma exibição por curso.

unique(aulas$section_id)

No Console, após executarmos o comando, serão exibidas somente uma observação por curso. O RStudio fornece uma facilidade gráfica que nos permite saber quantos cursos existem no banco de dados. Na coluna à esquerda do Console, entre colchetes ([ ]), está o índice das observações exibidas. Nele, podemos ver a ordem do primeiro valor da linha.

Por exemplo, a observação [1966] é o vídeo 4135, e a observação [1981] é o vídeo 3872. Para sabermos quantos vídeos temos no total, contamos os códigos da linha. Por exemplo, na linha de [1981], há 3 códigos: 3872, 4237 e 4187. Isso significa que nela, temos 3 vídeos: [1981], [1982] e [1983].

A contagem nessa linha é fácil, por conter poucos valores, mas caso isto não ocorra, fica difícil, e nos sujeitamos a erros na contagem. No RStudio, a função length() nos fornece diretamente o tamanho do vetor. Vamos especificá-la com unique().

length(unique(aulas$section_id))

Executando a linha desse comando, teremos de retorno no Console:

> length(unique(aulas$section_id))
[1] 1983

Obtém-se o mesmo resultado da contagem anterior, de uma maneira mais prática. Essa função é útil para conseguirmos o tamanho do vetor. Notem que copiamos a função unique() e a inserimos dentro de outra, length(). Esse alinhamento, com inserção de uma função, que terá valor input em outra define o conceito de nesting, muito utilizado no RStudio.

Obtivemos a quantidade significativa de vídeos contidos na amostra, são 1983 vídeos em apenas uma delas. No banco de dados da empresa que estamos atendendo devem haver muito mais. Lembrem-se que o objetivo é analisar a popularidade dos cursos, precisamos entender o universo em que estamos trabalhando. Não é interessante para a empresa analisar todo o conteúdo do banco de dados de uma vez só, assim como analisar uma pequena parte dele.

Se esse fosse o caso, caberia a nós sugerir uma análise qualitativa para poucos vídeos. No entanto, verificamos que a quantidade é significativa, portanto, identificaremos quais são os mais e menos assistidos. Serão informações importantes, a partir das quais a empresa poderá economizar gastos, esforço e tempo de trabalho.

Sobre o curso Análise de dados: Introdução com R

O curso Análise de dados: Introdução com R possui 158 minutos de vídeos, em um total de 46 atividades. Gostou? Conheça nossos outros cursos de Data Science em Data Science, ou leia nossos artigos de Data Science.

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

Aprenda Data Science acessando integralmente esse e outros cursos, comece hoje!

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1222 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?

Acesso completo por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas