¿Qué son las variables categóricas?

| Última modificación: 16 de mayo de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes que son las variables categoricas?, ¿las variables categóricas se pueden clasificar en ordinales, binarias y nominales?

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.

#proposiciones categóricas
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.

#variables categorica
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:

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
// ejemplo de variable cualitativa categorica
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

// categorias de una variable
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.

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!

Sandra Navarro

Business Intelligence & Big Data Advisor & Coordinadora del Bootcamp en Data Science, Big Data & Machine Learning.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado