CommencerCommencer gratuitement

Transformer des variables continues en catégories (2)

Un cas particulier de la transformation précédente consiste à découper une variable continue en classes définies par les quantiles de cette variable. On utilise souvent cette transformation pour analyser des réponses à des enquêtes ou des notes. Si vous demandez aux personnes d’évaluer quelque chose de une à cinq étoiles, la médiane n’est pas forcément de trois étoiles. Dans ce cas, il peut être utile de répartir les notes par quantile. Par exemple, vous pouvez créer cinq groupes (quintiles) en coupant aux 0e, 20e, 40e, 60e, 80e et 100e centiles.

La méthode base R consiste à utiliser cut() + quantile(). L’équivalent sparklyr utilise la transformation ft_quantile_discretizer(). Elle prend un argument num_buckets, qui détermine le nombre de classes. Les approches base R et sparklyr sont montrées côte à côte. Comme précédemment, right = FALSE et include.lowest sont définis.

survey_response_group <- cut(
  survey_score,
  breaks = quantile(survey_score, c(0, 0.25, 0.5, 0.75, 1)),
  labels = c("hate it", "dislike it", "like it", "love it"),
  right  = FALSE,
  include.lowest = TRUE
)
survey_data %>%
  ft_quantile_discretizer("survey_score", "survey_response_group", num_buckets = 4)

Comme avec ft_bucketizer(), les classes obtenues sont des nombres commençant à zéro. Si vous souhaitez les manipuler dans R, convertissez-les explicitement en factor.

Cet exercice fait partie du cours

Introduction à Spark avec sparklyr en R

Afficher le cours

Instructions

Une connexion Spark a été créée pour vous sous le nom spark_conn. Un tibble lié aux métadonnées des pistes stockées dans Spark a été pré‑défini sous le nom track_metadata_tbl. duration_labels est un vecteur de caractères décrivant des durées.

  • Créez une variable nommée familiarity_by_duration à partir de track_metadata_tbl.
    • Sélectionnez les champs duration et artist_familiarity.
    • Utilisez ft_quantile_discretizer() pour créer un nouveau champ, duration_bin, à partir de 5 classes de quantiles de duration.
    • Collectez le résultat.
    • Convertissez le champ duration_bin en facteur avec les étiquettes duration_labels.
  • Tracez un diagramme en boîtes ggplot() de artist_familiarity par duration_bin.
    • Le premier argument de ggplot() est l’argument de données, familiarity_by_duration.
    • Le deuxième argument de ggplot() est l’esthétique, qui prend duration_bin et artist_familiarity enveloppés dans aes().
    • Ajoutez geom_boxplot() pour dessiner les boîtes.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# track_metadata_tbl, duration_labels have been pre-defined
track_metadata_tbl
duration_labels

familiarity_by_duration <- track_metadata_tbl %>%
  # Select duration and artist_familiarity
  ___ %>%
  # Bucketize duration
  ___ %>%
  # Collect the result
  ___ %>%
  # Convert duration bin to factor
  ___

# Draw a boxplot of artist_familiarity by duration_bin
ggplot(___, aes(___, ___)) +
  ___()  
Modifier et exécuter le code