Cette étude est un ‘Capstone Project’ pour la certification professionnelle Google Data Analytics.
Bellabeat est une entreprise de haute technologie qui fabrique des produits intelligents axés sur la santé qui aident les femmes à suivre leur état de santé et de bien-être général.
L’entreprise a cinq produits principaux : bellabeat app, leaf, time, spring et bellabeat membership.
Leaf est un tracker de bien-être intégré à un bijou qui peut être porté comme un collier ou un bracelet. Il est beaucoup plus attrayant et féminin qu’un tracker de fitness standard.
Time est un tracker basé sur une montre, et Spring est une bouteille intelligente qui permet de suivre la consommation d’eau.
J’utiliserai les 6 phases du processus d’analyse (Demander, Préparer, Traiter, Analyser, Partager et Agir) pour guider mon analyse des ensembles de données.
J’ai été chargée d’analyser les données relatives aux appareils intelligents afin de comprendre comment les consommateurs utilisent ces appareils. Les informations que nous découvrirons permettront ensuite d’orienter la stratégie marketing de l’entreprise.
Principaux partenaires: Urska Srsen - Directrice générale et cofondatrice de Bellabeat Sando Mur - Mathématicien et cofondateur de Bellabeat Autres partenaires: *Équipe d’analyse marketing de Bellabeat
Urška Sršen m’a encouragé à utiliser des données publiques qui explorent les habitudes quotidiennes des utilisateurs d’appareils intelligents:
FitBit Fitness Tracker Data (CC0: Domaine public, jeu de données mis à disposition via Mobius) : Ce jeu de données Kaggle contient un tracker de fitness personnel de trente utilisateurs de fitbit. Trente utilisateurs éligibles de Fitbit ont consenti à la soumission de données de suivi personnel, y compris la sortie au niveau minute pour l’activité physique, la fréquence cardiaque et la surveillance du sommeil. Il comprend des informations sur l’activité quotidienne, les pas et la fréquence cardiaque qui peuvent être utilisés pour explorer les habitudes des utilisateurs.
Reliable (Fiables) : Ces données ne sont pas fiables. Il n’y a pas d’information sur la marge d’erreur et un échantillon de petite taille (33 participants) a été utilisé, ce qui peut limiter la quantité d’analyse qui peut être faite. Toutefois, il est préférable de disposer d’un échantillon plus important pour l’analyse.
Original (Originales) : Non - il a été collecté à l’origine à partir d’Amazon Mechanical Murk.
Comprehensive (Complètes) : Il n’y a pas d’informations sur les participants, telles que le sexe, l’âge, l’état de santé, etc. Étant donné que BellaBeat crée des produits exclusivement pour les femmes, une des limites de ces données est que nous ne connaissons pas le genre des volontaires. Si les données sont biaisées, les conclusions de l’analyse ne seront pas équitables pour tous les types de personnes.
Current (Actuelles) : Ces données ont été collectées en 2016, et sont actuellement dépassées - peut etre qu’elles ne peuvent ne pas représenter les tendances actuelles.
Cited (Citées) : Nous n’avons aucune information sur la crédibilité de cette source.
L’ensemble comporte 33 données d’utilisateur pour l’activité quotidienne, 24 pour le sommeil et seulement 8 pour le poids.
Les données comprennent 18 fichiers .csv, dont je me suis concentré sur les 4 principaux : daily activity, sleep, steps et weight.
Les fichiers étaient quelque peu corrompus et désordonnés. Je les ai nettoyés à l’aide d’Excel, en supprimant les colonnes et lines vides et les doublons. J’ai ajouté une colonne modifiant les données relatives à la date pour indiquer le jour de la semaine où l’activité/l’enregistrement a eu lieu.
J’ai ensuite examiné les fichiers daily activity, sleep et weight.dans R, en utilisant Posit Cloud.
install.packages("tidyverse")
install.packages("dplyr")
install.packages("readr")
install.packages("ggplot2")
library(tidyverse)
library(dplyr)
library(readr)
library(magrittr)
daily_activity <- read.csv("dailyActivity_merged.csv")
head(daily_activity)
## Id ActivityDate TotalSteps TotalDistance TrackerDistance
## 1 1503960366 4/12/2016 13162 8.50 8.50
## 2 1503960366 4/13/2016 10735 6.97 6.97
## 3 1503960366 4/14/2016 10460 6.74 6.74
## 4 1503960366 4/15/2016 9762 6.28 6.28
## 5 1503960366 4/16/2016 12669 8.16 8.16
## 6 1503960366 4/17/2016 9705 6.48 6.48
## LoggedActivitiesDistance VeryActiveDistance ModeratelyActiveDistance
## 1 0 1.88 0.55
## 2 0 1.57 0.69
## 3 0 2.44 0.40
## 4 0 2.14 1.26
## 5 0 2.71 0.41
## 6 0 3.19 0.78
## LightActiveDistance SedentaryActiveDistance VeryActiveMinutes
## 1 6.06 0 25
## 2 4.71 0 21
## 3 3.91 0 30
## 4 2.83 0 29
## 5 5.04 0 36
## 6 2.51 0 38
## FairlyActiveMinutes LightlyActiveMinutes SedentaryMinutes Calories
## 1 13 328 728 1985
## 2 19 217 776 1797
## 3 11 181 1218 1776
## 4 34 209 726 1745
## 5 10 221 773 1863
## 6 20 164 539 1728
sleep_day <- read.csv("sleepDay_merged.csv")
head(sleep_day)
## Id SleepDay TotalSleepRecords TotalMinutesAsleep
## 1 1503960366 4/12/2016 12:00:00 AM 1 327
## 2 1503960366 4/13/2016 12:00:00 AM 2 384
## 3 1503960366 4/15/2016 12:00:00 AM 1 412
## 4 1503960366 4/16/2016 12:00:00 AM 2 340
## 5 1503960366 4/17/2016 12:00:00 AM 1 700
## 6 1503960366 4/19/2016 12:00:00 AM 1 304
## TotalTimeInBed
## 1 346
## 2 407
## 3 442
## 4 367
## 5 712
## 6 320
weight <- read.csv("weightLogInfo_merged.csv")
head(weight)
## Id Date WeightKg WeightPounds Fat BMI
## 1 1503960366 5/2/2016 11:59:59 PM 52.6 115.9631 22 22.65
## 2 1503960366 5/3/2016 11:59:59 PM 52.6 115.9631 NA 22.65
## 3 1927972279 4/13/2016 1:08:52 AM 133.5 294.3171 NA 47.54
## 4 2873212765 4/21/2016 11:59:59 PM 56.7 125.0021 NA 21.45
## 5 2873212765 5/12/2016 11:59:59 PM 57.3 126.3249 NA 21.69
## 6 4319703577 4/17/2016 11:59:59 PM 72.4 159.6147 25 27.45
## IsManualReport LogId
## 1 True 1.462234e+12
## 2 True 1.462320e+12
## 3 False 1.460510e+12
## 4 True 1.461283e+12
## 5 True 1.463098e+12
## 6 True 1.460938e+12
J’ai examiné de plus près les statistiques de daily_activity (activité quotidienne) :
daily_activity %>%
select(TotalSteps,
TotalDistance,
VeryActiveMinutes,
FairlyActiveMinutes,
LightlyActiveMinutes,
SedentaryMinutes,
Calories) %>%
summary()
## TotalSteps TotalDistance VeryActiveMinutes FairlyActiveMinutes
## Min. : 0 Min. : 0.000 Min. : 0.00 Min. : 0.00
## 1st Qu.: 3790 1st Qu.: 2.620 1st Qu.: 0.00 1st Qu.: 0.00
## Median : 7406 Median : 5.245 Median : 4.00 Median : 6.00
## Mean : 7638 Mean : 5.490 Mean : 21.16 Mean : 13.56
## 3rd Qu.:10727 3rd Qu.: 7.713 3rd Qu.: 32.00 3rd Qu.: 19.00
## Max. :36019 Max. :28.030 Max. :210.00 Max. :143.00
## LightlyActiveMinutes SedentaryMinutes Calories
## Min. : 0.0 Min. : 0.0 Min. : 0
## 1st Qu.:127.0 1st Qu.: 729.8 1st Qu.:1828
## Median :199.0 Median :1057.5 Median :2134
## Mean :192.8 Mean : 991.2 Mean :2304
## 3rd Qu.:264.0 3rd Qu.:1229.5 3rd Qu.:2793
## Max. :518.0 Max. :1440.0 Max. :4900
TotalSteps TotalDistance VeryActiveMinutes FairlyActiveMinutes Min. :
0 Min. : 0.000 Min. : 0.00 Min. : 0.00
1st Qu.: 3790 1st Qu.: 2.620 1st Qu.: 0.00 1st Qu.: 0.00
Median : 7406 Median : 5.245 Median : 4.00 Median : 6.00
Mean : 7638 Mean : 5.490 Mean : 21.16 Mean : 13.56
3rd Qu.:10727 3rd Qu.: 7.713 3rd Qu.: 32.00 3rd Qu.: 19.00
Max. :36019 Max. :28.030 Max. :210.00 Max. :143.00
LightlyActiveMinutes SedentaryMinutes Calories
Min. : 0.0 Min. : 0.0 Min. : 0
1st Qu.:127.0 1st Qu.: 729.8 1st Qu.:1828
Median :199.0 Median :1057.5 Median :2134
Mean :192.8 Mean : 991.2 Mean :2304
3rd Qu.:264.0 3rd Qu.:1229.5 3rd Qu.:2793
Max. :518.0 Max. :1440.0 Max. :4900
La moyenne des minutes de sédentarité était de 991,2 minutes ou 16,5 heures. La moyenne des minutes très actives et des minutes assez actives était respectivement de 21,16 minutes et de 13,56 minutes. La moyenne des minutes légèrement actives était de 192,8 minutes, soit 3,2 heures. La quantité moyenne de calories brûlées par jour était d’environ 2304 kcal.
Ces données suggèrent que les participants ont été largement inactifs tout au long de la journée et n’ont pas passé beaucoup de temps à faire de l’exercice.
En ce qui concerne les données sur le sleep (sommeil),
sleep_day %>%
select(TotalSleepRecords,
TotalMinutesAsleep,
TotalTimeInBed) %>%
summary()
## TotalSleepRecords TotalMinutesAsleep TotalTimeInBed
## Min. :1.000 Min. : 58.0 Min. : 61.0
## 1st Qu.:1.000 1st Qu.:361.0 1st Qu.:403.0
## Median :1.000 Median :433.0 Median :463.0
## Mean :1.119 Mean :419.5 Mean :458.6
## 3rd Qu.:1.000 3rd Qu.:490.0 3rd Qu.:526.0
## Max. :3.000 Max. :796.0 Max. :961.0
TotalSleepRecords TotalMinutesAsleep TotalTimeInBed Min. :1.000 Min.
: 58.0 Min. : 61.0
1st Qu.:1.000 1st Qu.:361.0 1st Qu.:403.0
Median :1.000 Median :433.0 Median :463.0
Mean :1.119 Mean :419.5 Mean :458.6
3rd Qu.:1.000 3rd Qu.:490.0 3rd Qu.:526.0
Max. :3.000 Max. :796.0 Max. :961.0
Les participants ont passé en moyenne 458,6 minutes (7,64 heures) au lit. Le temps de sommeil moyen était de 419,5 minutes ou 7 heures.
Les données relatives au weight (poids) donnent un aperçu supplémentaire des utilisateurs :
weight %>%
select(Fat,
BMI) %>%
summary()
## Fat BMI
## Min. :22.00 Min. :21.45
## 1st Qu.:22.75 1st Qu.:23.96
## Median :23.50 Median :24.39
## Mean :23.50 Mean :25.19
## 3rd Qu.:24.25 3rd Qu.:25.56
## Max. :25.00 Max. :47.54
## NA's :65
Fat BMI
Min. :22.00 Min. :21.45
1st Qu.:22.75 1st Qu.:23.96
Median :23.50 Median :24.39
Mean :23.50 Mean :25.19
3rd Qu.:24.25 3rd Qu.:25.56
Max. :25.00 Max. :47.54
NA’s :65
Le BMI moyen est de 25,19, ce qui est juste à la limite de la fourchette “normale” de 18,5 à 24,99 - bien que les utilisateurs se situent entre un minimum de 21,45 et un maximum de 47,54. La moyenne de la graisse corporelle est toutefois de 23,5, ce qui est tout à fait conforme aux lignes directrices en matière de santé pour les femmes.
J’ai également examiné le fichier steps à l’aide de SQL.
SELECT AVG(StepTotal) FROM Bellabeat.daily_steps WHERE StepTotal != 0
Le nombre moyen de pas (en excluant les jours où il n’y a pas de pas) varie de 4 à un nombre impressionnant de 36019, avec une moyenne de 8319 par jour.
Il est intéressant d’examiner la relation entre les pas effectués et les calories brûlées.
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
…et à la relation entre le nombre de pas et le temps de sédentarité
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
La relation entre le mouvement et les calories est complexe - il n’est pas vrai que les personnes qui ne font aucun pas ne brûlent aucune calorie ! Et ceux qui font beaucoup de pas ne continuent pas à brûler des calories au même rythme. Il existe un juste milieu où la combustion des calories est la plus efficace
## `geom_smooth()` using formula = 'y ~ x'
## Warning: The following aesthetics were dropped during statistical transformation: colour
## ℹ This can happen when ggplot fails to infer the correct grouping structure in
## the data.
## ℹ Did you forget to specify a `group` aesthetic or to convert a numerical
## variable into a factor?
À l’aide d’Excel, j’ai également examiné les jours où les gens font le plus de pas :
Pas par jour
Les données sur le sommeil sont intéressantes - il semble que les utilisateurs dorment bien, en moyenne. La relation entre le temps passé au lit peut démontrer l’importance de se coucher à une bonne heure :
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
Il est également intéressant de joindre les tableaux de l’activité et du sommeil afin d’examiner l’influence du sommeil sur l’activité :
## Id ActivityDate TotalSteps TotalDistance TrackerDistance
## 1 1503960366 5/7/2016 11992 7.71 7.71
## 2 1503960366 5/7/2016 11992 7.71 7.71
## 3 1503960366 5/7/2016 11992 7.71 7.71
## 4 1503960366 5/7/2016 11992 7.71 7.71
## 5 1503960366 5/7/2016 11992 7.71 7.71
## 6 1503960366 5/7/2016 11992 7.71 7.71
## LoggedActivitiesDistance VeryActiveDistance ModeratelyActiveDistance
## 1 0 2.46 2.12
## 2 0 2.46 2.12
## 3 0 2.46 2.12
## 4 0 2.46 2.12
## 5 0 2.46 2.12
## 6 0 2.46 2.12
## LightActiveDistance SedentaryActiveDistance VeryActiveMinutes
## 1 3.13 0 37
## 2 3.13 0 37
## 3 3.13 0 37
## 4 3.13 0 37
## 5 3.13 0 37
## 6 3.13 0 37
## FairlyActiveMinutes LightlyActiveMinutes SedentaryMinutes Calories
## 1 46 175 833 1821
## 2 46 175 833 1821
## 3 46 175 833 1821
## 4 46 175 833 1821
## 5 46 175 833 1821
## 6 46 175 833 1821
## SleepDay TotalSleepRecords TotalMinutesAsleep TotalTimeInBed
## 1 4/12/2016 12:00:00 AM 1 327 346
## 2 4/13/2016 12:00:00 AM 2 384 407
## 3 4/15/2016 12:00:00 AM 1 412 442
## 4 4/16/2016 12:00:00 AM 2 340 367
## 5 4/17/2016 12:00:00 AM 1 700 712
## 6 4/19/2016 12:00:00 AM 1 304 320
## `geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Il est bien sur difficile d’être actif quand on n’a pas dormi - mais peut-être aussi que plus d’activité favorise le sommeil.
Recommendations:
Sur la base de ces résultats, je suggérerais que Bellabeat puisse aider ses utilisateurs en les encourageant à se concentrer sur l’exercice dans une zone utile, où ils brûleront le plus de calories (si cela est important pour eux).
Il pourrait également les encourager à se coucher à une heure régulière, en se donnant suffisamment de temps au lit pour bien dormir.
Données:
Si ces données sont intéressantes, elles ne nous renseignent pas beaucoup sur l’avenir de Bellabeat et sur ce qu’il devrait faire.
Nous avons besoin de plus de données pour prendre des décisions judicieuses pour l’avenir. Ces données peuvent provenir d’autres ensembles de données disponibles - ou éventuellement des données internes de l’entreprise. Son application recueille vraisemblablement des données sur les utilisateurs qui peuvent être utiles.
Les utilisateurs de Bellabeat sont susceptibles d’être différents de l’utilisateur standard d’un tracker de fitness, donc si aucune donnée interne n’est disponible, elle devrait être collectée par le biais d’une enquête spécifique.
Je suggère que cette enquête devrait se concentrer sur le Leaf car c’est là que Bellabeat se distingue et n’est pas en concurrence avec d’autres options de haut niveau.