Thumbnail image

Estudo De Caso Bellabeats: Reconhecimento De Padrões Com Dados De Fitness Tracker

Table of Contents

Objetivo da análise

Neste projeto procuro encontrar tendências de uso em um banco de dados que contém dados de 33 usuários, provenientes do Fitibit, um fitness tracker da Bellabeats.

Preparação e processamento dos dados

Descrição dos dados

Será utilizado o banco de dados do fitibit do kaggle, o qual é composto por 18 planilhas contendo dados de atividades, passos, calorias, sono e batimento cardíaco de uma lista de usuários que consentiram em compartilhar informações. O banco de dados está sob a licença CC0: Public Domain. Sendo que para esta tarefa especifica foi escolhido trabalhar com dados diários fornecidos pelos usuários, sendo utilizadas seguintes as tabelas:

  • “dailyActivity_merged” que contém dados de atividades diárias, como distância percorrida, passos, calorias gastas, tempo sedentário e de atividades leves, moderadas ou avançadas;

  • “sleepDay_merged” que contém informações de quantidade de sono, tempo na deitado cama e número de eventos de sono;

  • “heartrate_seconds_merged” que contém o registro dos batimentos cardíacos dos usuários por segundo;

  • “weightLogInfo_merged” que contém informações sobre peso, índice de massa corporal e percentual de gordura corporal.

Descrição da processo de limpeza dos dados

Para desempenhar esta análise foi escolhido a linguagem de programação R e para o tratamento de dados foram seguidos os seguintes passos:

  • Todas as tabelas foram carregadas no plataforma;

  • Em cada tabela a coluna responsável pelo armazenamento da data do registro foi alterada do tipo string para o tipo data, tendo seus nomes alterados para “date” afim de facilitar a manipulação dos dados;

  • Na tabela “heartrate_seconds_merged” foi alterada a escala temporal de segundos para diário e calculado a média de batimentos cardíacos por dia;

  • Foi feita a união das tabelas através de uma left-join entre a tabela “dailyActivity_merged” e as outras 3 tabelas;

  • A coluna que contém o ID dos usuários foi alterada para algo mais legível, foi escolhido o prefixo “U” seguido por um numeral. Como por exemplo “U1” para usuário 1;

  • A ordem das colunas foi alterada para que colunas correlacionadas fiquem adjacente uma a outra;

  • O resultado foi salvo na numa variável chamada “daily_data”.

daily_data <- reduce(list(daily_activity,
                          heartrate,
                          daily_sleep,
                          weight_log
                          ),
                     left_join,
                     by = c("id", "date")) |> 
  mutate(id = as.factor(id),
         day_of_the_week = lubridate::wday(date,
                                           label = TRUE),
         total_time_asleep = total_minutes_asleep/60,
         total_time_in_bed = total_time_in_bed/60,
         sedentary_time = sedentary_minutes/60,
         lightly_active_time = lightly_active_minutes/60,
         fairly_active_time = fairly_active_minutes/60,
         very_active_time = very_active_minutes/60,
         id = fct_relabel(id, ~ paste0('U', 1:33))
         ) |>
  select(-c(total_minutes_asleep, sedentary_minutes, lightly_active_minutes,
            fairly_active_minutes, very_active_minutes, log_id,
            is_manual_report, weight_pounds, fat, logged_activities_distance)) |> 
  relocate(where(is.numeric), .after = last_col())

Análise e visualização

Resumo dos dados

A tabela resultante pode ser encontrada a seguir:

Sumário dos dados

Através do pacote skimr podemos gerar um relatório detalhado das variáveis da tabela resultante. Feito isso, podemos observar o seguinte:

  • a distância ativa média diária é de 5,5 km diários;

  • a média de passos diários é de 7652 passos por dia;

  • usuários queimam em média 2308 calorias por dia;

  • a média de frequência cardíaca é de 78 batimentos;

  • a média do índice de massa corporal é de 25,2;

  • usuários dormem em média, aproximadamente, 7 hora por dia;

  • o tempo médio de sedentário dos usuários é de 16,5 horas.

Com os dados extraídos acima observamos que o tempo sedentário entre os usuários é alto e por mais que a média de sono dos usuários seja de 7 horas, os valores variam muito entre o valor mínimo de 1 hora e máximo de 13,3 horas diárias. Podemos analisar mais afundo e ver se há alguma variação entre esses achados com a queima de caloria, índice de massa corporal e outras variáveis.

Primeiramente realizamos a comparação entre a distância ativa percorrida e tempo por tipo de atividade, ambos em relação ao dia da semana. Podemos observar que os dias mais ativos são terça, quarta e quinta. Bem como que por mais que atividades leves, moderadas e intensas sejam a menor parte do dia, são responsáveis por virtualmente 100% do tempo ativo dos usuários.

No gráfico abaixo temos a relação entre a distância ativa percorrida e o tempo por atividade. Conseguimos confirmar que por mais que o usuários passem muito tempo sedentários esse tempo não contribui na distância ativa percorrida por dia, também podemos observar que a relação entre distância ativa e tempo de atividade vai crescendo com a intensidade da atividade.

Abaixo temos a relação entre tempo da atividade em relação a queima de calorias diárias. verificamos que há uma relação inversa entre o tempo sedentário e a queima de calorias, em contrapartida queima de calorias tem uma relação positiva com a intensidade da atividade.

Da mesma forma há uma relação negativa com o tempo sedentário e a quantidade de passos diários totais entre os usuários e uma relação positiva entre a intensidade da atividade com a quantidade de passos diários. Em média, quanto mais sedentário um usuário permanece, menos calorias são gastas e passos são dados durante o dia.

Analisando a relação do quantidade de horas dormidas e os passos diários observamos que usuários que dormem menos de 6 horas diários tendem a queimar menos calorias que usuários dormem de 6 a 10 horas por dia. Observamos também que a relação entre queima de calorias e passos diários não é tão forte entre os usuários que dormem mais de 10 horas diárias, contudo isso pode se dar pela baixa quantidade de usuários nessa faixa de sono o que requer dados adicionais para chegarmos a uma conclusão dessa faixa de usuários. Com os dados disponíveis podemos ver que a relação anterior entre passos diários e queima de calorias é quebrado, fazendo que mesmo que os usuários sejam ativo durante o dia a queima de caloria é diminuída em relação as usuários que tem ua boa relação com as hora de sono.

Fazendo um paralelo entre as duração do sono e o média de batimentos cardíacos vemos que usuários que dormem menos de 6 horas diárias tendem a ter uma média batimentos cardíacos mais elevados do que usuários de dormem de 6 à 10 horas diárias. Uma boa noite de sono, ao que indicam os dados podem ajudar a evitar possível doenças cardíacas em pessoas com pré disposição a isso.

Comparando a média de horas dormidas com o índice de massa corporal médio vemos que usuários que dormem menos de 6 horas tem na média um percentual masa corporal maior que usuários que dormem entre 6 e 10 horas por dia.

Resumos do análise

Analisando os dados encontramos as seguintes relações:

  • quanto mais tempo um usuário permanece sedentário menos passos/calorias esse usuário percorre/gasta durante o dia;

  • a relação entre passos diários, bem como calorias gastas, e o tempo da atividade é positiva e essa relação tende a aumentar com a intensidade da atividade;

  • usuários que dormem menos de 6 horas por dia tentem a gastar, em média, menos calorias por dia;

  • usuários que dormem menos de 6 horas tendem a ter a frequência cardíaca e o índice de massa corporal maior que usuários que dormem de 6 a 10 horas por dia.