Transformarea variabilelor continue în variabile categorice (2)
Un caz special al transformării anterioare constă în împărțirea unei variabile continue în intervale definite de cuantilele acelei variabile. Această transformare este des folosită pentru a analiza răspunsuri din sondaje sau scoruri de recenzii. Dacă le ceri oamenilor să evalueze ceva de la una la cinci stele, adesea răspunsul median nu va fi trei stele. În acest caz, poate fi util să împarți scorurile pe cuantile. De exemplu, poți crea cinci grupe de cuintile prin împărțire la percentilele 0, 20, 40, 60, 80 și 100.
În R de bază, acest lucru se realizează cu cut() + quantile(). Echivalentul în sparklyr folosește transformarea ft_quantile_discretizer(). Aceasta primește argumentul num_buckets, care determină numărul de intervale. Cele două abordări sunt prezentate împreună mai jos. Ca și înainte, right = FALSE și include.lowest sunt setate.
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)
Ca și în cazul ft_bucketizer(), intervalele rezultate sunt numere, cu numerotare de la zero. Dacă vrei să lucrezi cu ele în R, convertește-le explicit la tip factor.
Acest exercițiu face parte din cursul
Introducere în Spark cu sparklyr în R
Instrucțiuni pentru exercițiu
O conexiune Spark a fost creată pentru tine sub numele spark_conn. Un tibble atașat la metadatele pieselor stocate în Spark a fost predefinit ca track_metadata_tbl. duration_labels este un vector de caractere care descrie intervale de durată.
- Creează o variabilă numită
familiarity_by_durationpornind de latrack_metadata_tbl.- Selectează câmpurile
durationșiartist_familiarity. - Folosește
ft_quantile_discretizer()pentru a crea un nou câmp,duration_bin, format din 5 intervale de cuantile ale luiduration. - Colectează rezultatul.
- Convertește câmpul
duration_binla tip factor cu etichetele dinduration_labels.
- Selectează câmpurile
- Creează un grafic box plot cu
ggplot()pentruartist_familiarityîn funcție deduration_bin.- Primul argument al
ggplot()este argumentul de date,familiarity_by_duration. - Al doilea argument al
ggplot()este estetica, care primeșteduration_binșiartist_familiarityînvelite înaes(). - Adaugă
geom_boxplot()pentru a desena graficul.
- Primul argument al
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(___, ___)) +
___()