¿Qué son las variables categóricas?

Autor: | Última modificación: 19 de octubre de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

Las variables categóricas son aquellas que no presentan un valor de un número real, sino una categoría; es decir, pueden tomar un valor dentro de un conjunto fijo y limitado de posibles valores, con o sin orden. Por ejemplo:

  • Variables binarias: si/no
  • Categóricas con orden: nada/poco/normal/mucho.
  • Categóricas sin orden: rojo/verde/azul

¿Cómo utilizar las variables categóricas?

Antes de utilizar una de estas variables categóricas en un algoritmo de aprendizaje hay que convertirlo en un número real. Es necesario codificarlo para que el algoritmo correspondiente lo interprete correctamente.

Ejemplo de variables categóricas: peso de niños/niñas en función de la edad y del peso

Queremos un modelo completo para calcular la longitud de un bebe en función de su edad en días y su peso en kg.

In [100]: df_weight_height = read.csv ("data/weight_babys.csv")
head (df_weight_height)
set.seed (123)
idx <- sample (l:nrow(df_weight_height), nrow(df_weight_height) * 0.7)
train.df <- df_weight_height [idx,]
test.df <- df_weight_height [-idx,]
genderdayheightweight
<chr><int><dbl><dbl>
1girl107995.4860213.171765
2boy1662106.6661217.591256
3boy17566.623368.731773
4boy1646109.8295119.583067
5girl1772109.2633121.579168
6girl100396.8447811.761331

Exploramos cómo se relacionan las variables entre sí, analizando niños y niñas por separado. Se ve una alta correlación entre peso, altura y edad.

In [ ]: library(GGally)
options (repr.plot.height=4, repr.plot.width=6)

ggpairs(df_weight_height.ggplot2::aes (colour mender, alpha=0.5), lower = list(continuous = wrap("points, alpha=0.8,size=0.1))

Aquí tenemos cómo se distribuyen:

variables categóricas: resultado 1

Como queremos hacer un modelo predictivo, vamos a dividir los datos entre test y training:

In [ ]: set.seed(123)

idx<-sample(l:hrow(df_weight_height), nrow(df_weight_height)*0.7) train.df<-df_weight_height[idx,]
test.df<-df_weight_height[-idx,]

Calculemos para la fórmula:

¿Qué son las variables categóricas? 1

Donde gender es una variable categórica que se traducirá a dos valores:

  • Boy-0
  • Girl-1
In : model <- lm(data=train.df, formula = height-day+gender) summary (model)
variables categóricas: resultado 2

A igual número de días, una niña pesará, aproximadamente, una media 1.07 kg menos.

Sin embargo, si miramos al intervalo de confianza del coeficiente asociado al género, es muy amplio, llegando a ser incluso positivo.

In [104]: confint (model)
2.5 %97.5 %
(Intercept)61.4869188764.91457799
day0.026851450.02987543
gendergirl-2.639659250.50130757

Podemos ver las figuras de calidad de la predicción:

variables categóricas: resultado 3
In [105]: library(caret)
print("Training: ")
trair.df$pred <- predict (model, train.df)
postResample(train.df$pred, obs = train.df$height)
print("Testing:")
test.df$pred <- predict(model, test.df)
postResample(test.df$pred, obs = test.df$height)

Loading required package: lattice

[1] «Training:»

RMSE: 4.62460353027955 Rsquared: 0.9146361323399 MAE: 3.74075111634861

[1] Testing:»

RMSE: 4.2239352227268 Rsquared: 0.917310902779838 MAE: 3.3127036920325

In [ ] : options (repr.plot.height=2, repr.plot.width=4, repr.plot.res = 400)
ggplot(train.df,aes(x-day, y-pred, color = gender)) + geom_line()

Los resultados pintados se verían así:

variables categóricas: resultado 4

Tendríamos dos rectas: una para niños y otra para niñas. La de niñas siempre estaría 1cm más abajo que la de niños, porque este es el resultado que nos arroja el análisis.

¿Qué sigue?

El análisis de variables categóricas es un tema que nos concierne en Big Data, ya que siempre vamos a requerir hacer análisis de corte estadístico, no solo cuantitativa, sino también cualitativamente.

Si quieres seguir aprendiendo, te invitamos a inscribirte en nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp, en donde, en poco tiempo, aprenderás todo lo necesario para incursionar en el mercado laboral. ¡Anímate a solicitar más información para cambiar tu vida profesional!

👉 Descubre más del Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.