Cómo crear variables ficticias en R (paso a paso)

Una variable ficticia es un tipo de variable que creamos en el análisis de regresión para que podamos representar una variable categórica como una variable numérica que toma uno de dos valores: cero o uno.

Por ejemplo, supongamos que tenemos el siguiente conjunto de datos y nos gustaría usar la edad y el estado civil para predecir los ingresos :

Para utilizar el estado civil como variable predictiva en un modelo de regresión, debemos convertirlo en una variable ficticia.

Dado que actualmente es una variable categórica que puede tomar tres valores diferentes (“Soltero”, “Casado” o “Divorciado”), necesitamos crear k -1 = 3-1 = 2 variables ficticias.

Para crear esta variable ficticia, podemos dejar que “Único” sea nuestro valor de referencia, ya que ocurre con mayor frecuencia. Por lo tanto, así es como convertiríamos el estado civil en variables ficticias:

Este tutorial proporciona un ejemplo paso a paso de cómo crear variables ficticias para este conjunto de datos exacto en R y luego realizar un análisis de regresión utilizando estas variables ficticias como predictores.

Paso 1: crear los datos

Primero, creemos el conjunto de datos en R:

#create data frame 
df <- data. marco (ingresos = c (45000, 48000, 54000, 57000, 65000, 69000,
                          78000, 83000, 98000, 104000, 107000),
                 edad = c (23, 25, 24, 29, 38, 36, 40, 59, 56, 64, 53),
                 status = c ('Único', 'Único', 'Único', 'Único',
                          'Casado', 'Soltero', 'Casado', 'Divorciado',
                          'Divorciado', 'Casado', 'Casado'))

#ver marco de datos
 df

   estado de edad de ingresos
1 45000 23 Soltero
2 48000 25 Soltero
3 54000 24 Soltero
4 57000 29 Soltero
5 65000 38 Casado
6 69000 36 Soltero
7 78000 40 Casado
8 83000 59 Divorciado
9 98000 56 Divorciado
10 104000 64 Casado
11 107000 53 Casado

Paso 2: cree las variables ficticias

A continuación, podemos usar la función ifelse () en R para definir variables ficticias y luego definir el marco de datos final que nos gustaría usar para construir el modelo de regresión:

#crear variables ficticias 
casado <- ifelse (df ​​$ status == ' Casado ', 1, 0)
divorciado <- ifelse (df ​​$ status == ' Divorced ', 1, 0)

#create data frame para usar en la regresión
 df_reg <- data. frame (ingresos = df $ ingresos,
                     edad = df $ edad,
                     casado = casado,
                     divorciado = divorciado)

#ver marco de datos
 df_reg

   edad de ingresos casado divorciado
1 45000 23 0 0
2 48000 25 0 0
3 54000 24 0 0
4 57000 29 0 0
5 65000 38 1 0
6 69000 36 0 0
7 78000 40 1 0
8 83000 59 0 1
9 98000 56 0 1
10 104000 64 1 0
11 107000 53 1 0

Paso 3: realizar una regresión lineal

Por último, podemos usar la función lm () para ajustar un modelo de regresión lineal múltiple:

#crear modelo de regresión modelo
 <- lm (ingresos ~ edad + casados ​​+ divorciados, datos = df_reg)

#ver el resumen de resultados del modelo de regresión
 (modelo)

Llamada:
lm (fórmula = ingresos ~ edad + casado + divorciado, datos = df_reg)

Derechos residuales de autor:
    Mín. 1T Mediana 3T Máx. 
-9707,5 -5033,8 45,3 3390,4 12245,4 

Coeficientes:
            Estimar Std. Valor t de error Pr (> | t |)   
(Intercepción) 14276.1 10411.5 1.371 0.21266   
edad 1471,7 354,4 4,152 0,00428 **
casado 2479,7 9431,3 0,263 0,80018   
divorciados -8397,4 12771,4 -0,658 0,53187   
---
Signif. códigos: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0,1 pulg. 1

Error estándar residual: 8391 en 7 grados de libertad
R cuadrado múltiple: 0,9008, R cuadrado ajustado: 0,8584 
Estadístico F: 21,2 en 3 y 7 DF, valor de p: 0,0006865

La línea de regresión ajustada resulta ser:

Ingresos = 14,276.1 + 1,471.7 * (edad) + 2,479.7 * (casado) – 8,397.4 * (divorciado)

Podemos usar esta ecuación para encontrar los ingresos estimados de una persona en función de su edad y estado civil. Por ejemplo, se estima que una persona que tiene 35 años y está casada tiene un ingreso de $ 68,264 :

Ingresos = 14,276.2 + 1,471.7 * (35) + 2,479.7 * (1) – 8,397.4 * (0) = $ 68,264

A continuación, se explica cómo interpretar los coeficientes de regresión de la tabla:

  • Intercepción: La intersección representa el ingreso promedio de una sola persona que tiene cero años. Obviamente, no puede tener cero años, por lo que no tiene sentido interpretar la intersección por sí misma en este modelo de regresión en particular.
  • Edad: Cada aumento de un año en la edad está asociado con un aumento promedio de $ 1,471.70 en ingresos. Dado que el valor p (.004) es menor que .05, la edad es un predictor estadísticamente significativo del ingreso.
  • Casado: una persona casada, en promedio, gana $ 2,479.70 más que una sola persona. Dado que el valor p (0,800) no es menor que 0,05, esta diferencia no es estadísticamente significativa.
  • Divorciado: Una persona divorciada, en promedio, gana $ 8,397.40 menos que una sola persona. Dado que el valor p (0,532) no es menor que 0,05, esta diferencia no es estadísticamente significativa.

Dado que ambas variables ficticias no fueron estadísticamente significativas, podríamos eliminar el estado civil como predictor del modelo porque no parece agregar ningún valor predictivo para los ingresos.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

A menudo, puede usar subparcelas para mostrar varias parcelas una al lado de la otra en Matplotlib. Desafortunadamente, estas subtramas…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!