Las variables categóricas (también conocidas como factor o variables cualitativas) son variables que clasifican los valores observacionales en grupos. Son de string o numéricas y se denominan variables factoriales en el modelado estadístico. Guardar variables de string normales como factores ahorra mucha memoria. Los factores también se pueden almacenar como variables de nivel o etiqueta. Tienen un número limitado de valores diferentes, llamados niveles. Por ejemplo, el género de los individuos es una variable categórica que puede tomar dos niveles: Masculino o Femenino . La regresión requiere variables numéricas. Entonces, cuando un investigador quiere incluir una variable categórica en un modelo de regresión, se necesitan pasos para hacer que los resultados sean interpretables. Veamos todo esto con un ejemplo de código en lenguaje R.
Implementación en R
Almacenar strings o números como factores
En primer lugar, vamos a crear un conjunto de datos de muestra.
R
# creating sample samp <- sample(0:1, 20, replace = TRUE) samp
Producción:
[1] 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1
Convertir los números establecidos como factores.
R
samp <- sample(0:1, 20, replace = TRUE) # converting sampleto factors samp1 <- factor(samp) # to find if its a factor lets use is.factor() is.factor(samp1)
Producción:
[5]TRUE
Ahora haz lo mismo para las cuerdas.
R
# creating string sample str1 <- c("small", "big", "medium", "small", "small", "big", "medium", "medium", "big") str1 # will show output of string f.str1<-factor(str1) # check if f.str1 is factor or not is.factor(f.str1) # check if str1 is factor or not is.factor(str1)
Producción:
[1]"small" "big" "medium" "small" "small" "big" "medium" "medium" "big" [10]TRUE [12]FALSE
Factores con etiquetas
R
# creating sample with labels lab <- factor(samp1, labels = c("sweet", "bitter")) lab
Producción:
bitter bitter sweet bitter bitter bitter sweet sweet bitter sweet [11] sweet bitter bitter bitter bitter bitter bitter bitter sweet bitter Levels: sweet bitter
Factores ordenados
R
str1 <- c("small", "big", "medium", "small", "small", "big", "medium", "medium", "big") # ordering the factors w.r.t levels order <- ordered(str1, levels = c("small", "medium", "big")) order f.order <- factor(order)
Producción:
[1] small big medium small small big medium medium big Levels: small < medium < big
Otra forma de ordenar un factor es:
R
# another way to order f.order = factor(str1, levels = c("small", "medium", "big"), ordered = TRUE)
Para encontrar la media
R
mean(samp1) # shows NA has output mean(as.numeric(levels(samp1)[samp1]))
NA 0.7
Eliminando niveles
R
f.new <- f.order[f.order != "small"] f.new
Producción:
[1] big medium big medium medium big Levels: small < medium < big
Implementar con regresión
Considere el experimento como las horas que los estudiantes permanecen en la escuela durante los festivales.
R
# consider a dataframe student student <- data.frame( # id of students id = c (1:5), # name of students name = c("Payal", "Dan", "Misty", "Ryan", "Gargi"), # gender of students gender = c("F", "M", "F", "M", "F"), # gender represented in numbers F-1,M-0 gender_num = c(1, 0, 1, 0, 1), # the hours students stay at fests hours = c(2.5, 4, 5.3, 3, 2.2) ) student
Producción:
id name gender gender_num hours 1 1 Payal F 1 2.5 2 2 Dan M 0 4.0 3 3 Misty F 1 5.3 4 4 Ryan M 0 3.0 5 5 Gargi F 1 2.2
La ecuación de regresión es
y = segundo 0 + segundo 1 *x
Dónde
y: variable de salida predicha sobre la base de una variable predictora (x),
b 0 + b 1 : coeficientes beta, que representan el intercepto y la pendiente, respectivamente.
b 0 + b 1: si un estudiante es hombre, b 0: si un estudiante es mujer. Los coeficientes se pueden interpretar de la siguiente manera:
- b 0 es el promedio de horas de permanencia de las alumnas en festivales,
- b 0 + b 1 es el promedio de horas que los estudiantes varones permanecieron en festivales y
- b 1 es la diferencia promedio en horas entre estudiantes hombres y mujeres.
R crea variables ficticias automáticamente con el siguiente código:
R
# making the regression model model <- lm(hours ~ gender, data = student) summary(model)$coef
Producción:
Estimate Std. Error t value Pr(>|t|) (Intercept) 3.3333333 0.8397531 3.9694209 0.02857616 genderM 0.1666667 1.3277662 0.1255241 0.90804814
El valor estimado para estudiantes F es 3,3333333 y para estudiantes M es 0,16666667. El valor Pr de estudiantes M y estudiantes F no es tan significativo y solo 0.90-0.02 ~ 0.9, es decir, no hay evidencia real de que los estudiantes M permanezcan más horas que las mujeres.
Publicación traducida automáticamente
Artículo escrito por tedious_wings y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA