FORM
Se coloca la base de datos limpia a utilizar.
library(readxl)
BASELIMPIAFORM <- read_excel("C:\\Users\\luisa\\Documents\\R LUISA\\EVIDENCIA 2\\BASELIMPIAFORM.xlsx")
#View(BASELIMPIAFORM)
Se le llama a la librería.
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 1.00 1.00 9.00 14.08 34.50 36.00
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 18.00 25.25 33.50 35.62 45.00 68.00
Desviación estándar
## [1] 14.47145
## [1] 12.1604
Visualización de las medidas de tendencia central
# Crear un histograma para "Antigüedad"
ggplot(BASELIMPIAFORM, aes(x = Antiguedad)) +
geom_histogram(binwidth = 1, fill = "orange", color = "black") +
labs(title = "Antigüedad (Meses) de los empleados FORM", x = "Antigüedad", y = "Frecuencia")
# Crear un histograma para "Edad"
ggplot(BASELIMPIAFORM, aes(x = Edad)) +
geom_histogram(binwidth = 5, fill = "orange", color = "black") +
labs(title = "Edad (años) de los empleados FORM", x = "Edad", y = "Frecuencia")
##
## Administrativo Ayudante general Costurera Limpieza
## 17 46 7 2
## Mantenimiento Otro Soldador Supervisor
## 1 25 2 6
# Crear un gráfico de barras
barplot(tabla, main = "Puestos de Trabajo de los Empleados", xlab = "Puesto", ylab = "Frecuencia", col = "orange")
##
## Ambiente de trabajo Otro Por el salario
## 13 21 19
## Prestaciones Razones personales Ubicación de la empresa
## 2 19 32
# Crear un gráfico de barras
barplot(tabla, main = "Motivaciones del Empleado", xlab = "Motivación", ylab = "Frecuencia", col = "orange")
##
## No Prefiero no decirlo Si
## 89 1 16
# Crear un gráfico de barras
barplot(tabla, main = "¿Han sufrido algun Conflicto/Acoso en la empresa?", xlab = "`Conflicto/Acoso`", ylab = "Frecuencia", col = "orange")
##
## a gusto
## 2
## A gusto
## 2
## agusto
## 2
## Agusto
## 4
## agusto, feliz
## 1
## agusto, gusta el ambiente de trabajo, buenos modos
## 1
## Al momento bien
## 1
## Alegre, proactivo, optimista
## 1
## bastante bien
## 1
## bien
## 14
## Bien
## 21
## bien normal
## 1
## bien, a gusto
## 1
## Bien, a gusto
## 1
## Bien, agusto
## 1
## Bien, Agusto
## 1
## bien, aprendiendo
## 1
## Bien, comoda
## 1
## bien, cómoda
## 1
## Bien, comodo
## 1
## bien, le gusta
## 1
## Bien, pero podría mejorar en prestaciones. El bono es muy facil de perderlo
## 1
## bien, realizada, satisfecha
## 1
## comoda
## 1
## Comoda
## 4
## cómoda, no satisfecha
## 1
## cómoda, trabajo no tan complicado
## 1
## Comodo
## 1
## con mucho crecimiento profesional
## 1
## Contenta
## 1
## Contenta y capaz
## 1
## Contento
## 1
## En ambiente laboral ciertamente cómodo con mi equipo de trabajo.
## 1
## En crecimiento personal :)
## 1
## equis
## 1
## Estable
## 1
## feliz
## 2
## Feliz
## 1
## Feliz con lo que realizo
## 1
## Feliz y a gusto
## 1
## Feliz, en paz , y em mucho crecimiento personal y profesional.
## 1
## Insegura, falta mucha retroalimentacion por falta de nuestros jefes directos, las renovaciones de contratos no se dan en tiempo y forma.
## 1
## la mayor parte del tiempo bien
## 1
## Más o menos
## 1
## Me agrada lo que hago
## 1
## me sentía muy bien al principio, pero actualmente ya no.
## 1
## me siento comodo hasta el momento
## 1
## muy agusto trabajando
## 1
## muy bien
## 2
## Muy comoda con menos estres que antes
## 1
## no satisfecho
## 1
## Normal
## 2
## perfecto
## 1
## perfecto, buenas condiciones
## 1
## regular
## 1
## Satisfecho
## 2
## siento que hay un muy buen ambiente laboral, todos trabajan como equipo aunque a ves hay pequeños deacuerdos
## 1
## Tranquila y contenta
## 1
## Tranquila, contenta por el puesto y agradecida por el aprendizaje
## 1
## Tranquilo
## 1
##
## Femenino Masculino
## 69 37
# Crear un gráfico de barras
barplot(tabla, main = "Género de los Empleados", xlab = "Genero", ylab = "Frecuencia", col = "orange")
##
## Casado Divorciado Soltero Unión libre
## 38 1 47 20
# Crear un gráfico de barras
barplot(tabla, main = "Estado Civil de los Empleados", xlab = "`Estado Civil`", ylab = "Frecuencia", col = "orange")
##
## Apodaca Guadalupe Juárez Monterrey Otro Pesquería
## 77 4 12 3 6 4
# Crear un gráfico de barras
barplot(tabla, main = "Municipios donde Habitan los Emleados", xlab = "Municipio", ylab = "Frecuencia", col = "orange")
##
## Licenciatura Otro Preparatoria Primaria Secundaria
## 24 3 27 9 43
# Crear un gráfico de barras
barplot(tabla, main = "Nivel de Escolarización de los Empleados", xlab = "Escolaridad", ylab = "Frecuencia", col = "orange")
##
## 0 1 2 3
## 44 24 23 15
# Crear un gráfico de barras
barplot(tabla, main = "Número de Dependientes Económicos", xlab = "Dependientes", ylab = "Frecuencia", col = "orange")
##
## 1 2 3 4 5
## 11 11 8 35 41
##
## 1 2 3 4 5
## 21 19 10 22 34
##
## 1 2 3 4 5
## 8 6 10 19 63
##
## 1 2 3 4 5
## 20 2 9 15 60
##
## 1 2 3 4 5
## 35 7 12 14 38
##
## 1 2 3 4 5
## 13 9 20 21 43
##
## 1 2 3 4 5
## 15 9 2 14 66
##
## 1 2 3 4 5
## 8 5 4 18 71
##
## 1 2 3 4 5
## 9 5 15 21 56
BASELIMPIAFORM$Puesto <- as.factor(BASELIMPIAFORM$Puesto)
BASELIMPIAFORM$Edad <- as.integer(BASELIMPIAFORM$Edad)
BASELIMPIAFORM$Genero <- as.factor(BASELIMPIAFORM$Genero)
BASELIMPIAFORM$`Estado Civil` <- as.factor(BASELIMPIAFORM$`Estado Civil`)
BASELIMPIAFORM$Municipio <- as.factor(BASELIMPIAFORM$Municipio)
BASELIMPIAFORM$Escolaridad <- as.factor(BASELIMPIAFORM$Escolaridad)
View(BASELIMPIAFORM)
Regresion_Insatisfaccion <- lm(Rotación ~ Puesto + Antiguedad + Salario + Prestaciones + Jornada_Laboral + Herramientas + Temperatura + Estrés + Transporte + Instalaciones + Rotación + `Conflicto/Acoso`+ Edad + Genero + `Estado Civil` + Municipio + Escolaridad + Dependientes, data = BASELIMPIAFORM)
## Warning in model.matrix.default(mt, mf, contrasts): the response appeared on
## the right-hand side and was dropped
## Warning in model.matrix.default(mt, mf, contrasts): problem with term 11 in
## model.matrix: no columns are assigned
##
## Call:
## lm(formula = Rotación ~ Puesto + Antiguedad + Salario + Prestaciones +
## Jornada_Laboral + Herramientas + Temperatura + Estrés +
## Transporte + Instalaciones + Rotación + `Conflicto/Acoso` +
## Edad + Genero + `Estado Civil` + Municipio + Escolaridad +
## Dependientes, data = BASELIMPIAFORM)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.29616 -0.62052 0.04179 0.49072 2.01971
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.771775 0.799112 2.217 0.0298 *
## PuestoAyudante general -0.516669 0.523276 -0.987 0.3268
## PuestoCosturera 0.285826 0.671824 0.425 0.6718
## PuestoLimpieza -0.332525 0.972626 -0.342 0.7334
## PuestoMantenimiento 0.496362 1.252346 0.396 0.6930
## PuestoOtro -0.468914 0.478818 -0.979 0.3307
## PuestoSoldador 0.945539 1.055455 0.896 0.3733
## PuestoSupervisor -0.083012 0.661675 -0.125 0.9005
## Antiguedad 0.006051 0.009666 0.626 0.5333
## Salario 0.119638 0.104667 1.143 0.2568
## Prestaciones 0.216681 0.091986 2.356 0.0212 *
## Jornada_Laboral 0.026096 0.105882 0.246 0.8060
## Herramientas 0.151349 0.094886 1.595 0.1151
## Temperatura -0.151512 0.064029 -2.366 0.0207 *
## Estrés 0.069472 0.086045 0.807 0.4221
## Transporte 0.087999 0.088254 0.997 0.3221
## Instalaciones 0.015803 0.113598 0.139 0.8897
## `Conflicto/Acoso`Prefiero no decirlo -0.173756 1.109585 -0.157 0.8760
## `Conflicto/Acoso`Si -0.370540 0.347417 -1.067 0.2897
## Edad 0.017326 0.012709 1.363 0.1771
## GeneroMasculino -0.209099 0.261519 -0.800 0.4266
## `Estado Civil`Divorciado -0.342920 1.207940 -0.284 0.7773
## `Estado Civil`Soltero 0.056058 0.317207 0.177 0.8602
## `Estado Civil`Unión libre -0.476305 0.354776 -1.343 0.1836
## MunicipioGuadalupe 0.143323 0.596658 0.240 0.8109
## MunicipioJuárez -0.591303 0.404018 -1.464 0.1477
## MunicipioMonterrey 0.529007 0.778676 0.679 0.4991
## MunicipioOtro 0.266456 0.507965 0.525 0.6015
## MunicipioPesquería -0.689758 0.588317 -1.172 0.2449
## EscolaridadOtro 0.586581 0.841953 0.697 0.4882
## EscolaridadPreparatoria -0.341526 0.460508 -0.742 0.4607
## EscolaridadPrimaria 0.056646 0.607501 0.093 0.9260
## EscolaridadSecundaria 0.394320 0.484784 0.813 0.4187
## Dependientes -0.029480 0.125708 -0.235 0.8153
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9928 on 72 degrees of freedom
## Multiple R-squared: 0.587, Adjusted R-squared: 0.3977
## F-statistic: 3.101 on 33 and 72 DF, p-value: 3.127e-05
Observaciones de la regresión Lineal
La regresión Lineal se hizo la regresión lineal utilizando como variable dependiente la variable de Rotación, con el objetivo de explicar si los empleados consideran probable seguir trabajando en FORM.
Se obtuvo una R^2 de 0.39 y se utilizaron como variables independientes las demás variables que no eran preguntas abiertas en la encuesta.
Limpieza extra de base de datos para poder correr un cluster
Se debe determinar el número de clusters y asginar a los grupos
Se debe realizar una asignación de grupos
Se crea una visualización de datos mediante un gráfico
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_cluster(segmentos,data=BASELIMPIAFORM,palette=c("red","blue","darkgreen","yellow"),
ellipse.type="euclid",
star.plot= T,
repel=T,
ggtheme=theme())
##
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
##
## between, first, last
set.seed (123)
optimización <- clusGap(BASELIMPIAFORM,FUN=kmeans, nstart=1, K.max=10)
plot(optimización, xlab="Número de clusters k")
## [1] "C:/Users/luisa/Documents/R LUISA/EVIDENCIA 2"
library(readxl)
BASELIMPIAFORM <- read_excel("C:\\Users\\luisa\\Documents\\R LUISA\\EVIDENCIA 2\\BASELIMPIAFORM.xlsx")
#View(BASELIMPIAFORM)
# Seleccionar las columnas numéricas de BASELIMPIAFORM y almacenarlas en datos_numericos
datos_numericos <- BASELIMPIAFORM[sapply(BASELIMPIAFORM, is.numeric)]
# View(datos_numericos)
Escalar las variables numéricas
Calcular las medianas de las variables numéricas escaladas
clusters que deseas
k <- 3 # Cambia este valor por el número de clusters que deseas
indices_centroides_iniciales <- sample(1:nrow(datos_escalados), k)
centroides_iniciales <- datos_escalados[indices_centroides_iniciales, ]
# Ejecutar k-means con los centroides iniciales
resultado_kmeans <- kmeans(datos_escalados, centers = centroides_iniciales)
print(resultado_kmeans)
## K-means clustering with 3 clusters of sizes 65, 16, 25
##
## Cluster means:
## Antiguedad Salario Prestaciones Jornada_Laboral Herramientas Temperatura
## 1 0.04581365 0.3626082 0.4480907 0.4960589 0.4534784 0.08958709
## 2 -0.25138960 -1.2012483 -0.9008792 -0.1771124 -1.4441653 0.14653768
## 3 0.04177386 -0.1739824 -0.5884731 -1.1764012 -0.2547780 -0.32671056
## Estrés Transporte Instalaciones Rotación Edad Dependientes
## 1 0.1524490 0.3710519 0.3370262 0.36734886 0.005728939 0.006750785
## 2 -0.9779247 -0.2133885 -1.1244849 -1.39741185 -0.313323737 0.207570080
## 3 0.2295043 -0.8281663 -0.1565978 -0.06076345 0.185631950 -0.150396891
##
## Clustering vector:
## [1] 1 1 2 1 3 1 3 1 3 1 3 1 1 1 1 1 1 1 2 2 1 3 3 3 1 3 1 3 1 1 1 2 2 1 1 3 2
## [38] 2 2 1 1 1 3 1 1 1 2 1 2 1 3 1 1 1 1 2 1 1 1 1 1 3 1 1 3 3 3 1 3 2 1 1 1 3
## [75] 2 2 2 3 2 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 3 3 3 3 1 1 1 1 3 1 1 1
##
## Within cluster sum of squares by cluster:
## [1] 500.5013 198.3966 272.8571
## (between_SS / total_SS = 22.9 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
Ajustar el modelo k-means para diferentes valores de k
set.seed(123) # Para reproducibilidad
wcss <- vector() # Inicializar vector para almacenar los valores de WCSS
max_k <- 10 # Puedes cambiar esto para probar con más clústeres si lo deseas
for (k in 1:max_k) {
kmeans_model <- kmeans(datos_escalados, centers = k, nstart = 25)
wcss[k] <- kmeans_model$tot.withinss
}
Gráficar el método de codo
par(mar = c(4, 4, 1, 1)) # Los números representan los márgenes inferior, izquierdo, superior y derecho respectivamente.
plot(1:max_k, wcss, type = "b", xlab = "Numero de Clusters", ylab = "WCSS", main = "Metodo del Codo", pch = 19, frame = FALSE)
Realizar K-means con 4 clusters
## Antiguedad Salario Prestaciones Jornada_Laboral Herramientas Temperatura
## 1 0.5807662 -0.6829375 -0.45964588 -0.4135247 -0.4343081 -0.44284509
## 2 -0.6797783 0.3870086 0.03848613 0.3077267 0.3534262 -0.22329552
## 3 0.6678854 0.5157127 0.87347752 0.4317614 0.5298353 0.74602847
## 4 -0.3334477 -1.0920974 -1.14243027 -1.1869967 -1.5243127 0.02556421
## Estrés Transporte Instalaciones Rotación Edad Dependientes
## 1 -0.5718708 0.07328684 -0.1565978 0.1893696 0.3895726 0.5062559
## 2 0.3317205 0.04109209 0.3882955 -0.1597744 -0.6072619 -0.3380120
## 3 0.2560048 0.33743816 0.3817994 0.6363666 0.6584478 0.1927920
## 4 -0.5456353 -1.05573909 -1.8918372 -1.2671342 -0.1677008 -0.3054399
Añadir la columna de clusters al dataframe original
contingency <- table(datos1$Cluster, BASELIMPIAFORM$Genero)
# Convertir la tabla de contingencia a porcentajes
contingency <- prop.table(contingency, margin = 1) * 100
# Mostrar la tabla de contingencia
print(contingency)
##
## Femenino Masculino
## 1 84.00000 16.00000
## 2 59.52381 40.47619
## 3 59.25926 40.74074
## 4 58.33333 41.66667
contingency <- table(datos1$Cluster, BASELIMPIAFORM$Escolaridad)
# Convertir la tabla de contingencia a porcentajes
contingency <- prop.table(contingency, margin = 1) * 100
# Mostrar la tabla de contingencia
print(contingency)
##
## Licenciatura Otro Preparatoria Primaria Secundaria
## 1 20.000000 4.000000 28.000000 4.000000 44.000000
## 2 33.333333 0.000000 28.571429 4.761905 33.333333
## 3 14.814815 7.407407 11.111111 14.814815 51.851852
## 4 8.333333 0.000000 41.666667 16.666667 33.333333
contingency <- table(datos1$Cluster, BASELIMPIAFORM$Municipio)
# Convertir la tabla de contingencia a porcentajes
contingency <- prop.table(contingency, margin = 1) * 100
# Mostrar la tabla de contingencia
print(contingency)
##
## Apodaca Guadalupe Juárez Monterrey Otro Pesquería
## 1 84.000000 4.000000 4.000000 4.000000 4.000000 0.000000
## 2 71.428571 2.380952 16.666667 2.380952 2.380952 4.761905
## 3 62.962963 7.407407 7.407407 3.703704 11.111111 7.407407
## 4 75.000000 0.000000 16.666667 0.000000 8.333333 0.000000
contingency <- table(datos1$Cluster, BASELIMPIAFORM$`Estado Civil`)
# Convertir la tabla de contingencia a porcentajes
contingency <- prop.table(contingency, margin = 1) * 100
# Mostrar la tabla de contingencia
print(contingency)
##
## Casado Divorciado Soltero Unión libre
## 1 44.000000 0.000000 36.000000 20.000000
## 2 11.904762 2.380952 61.904762 23.809524
## 3 59.259259 0.000000 22.222222 18.518519
## 4 50.000000 0.000000 50.000000 0.000000
contingency <- table(datos1$Cluster, BASELIMPIAFORM$Puesto)
# Convertir la tabla de contingencia a porcentajes
contingency <- prop.table(contingency, margin = 1) * 100
# Mostrar la tabla de contingencia
print(contingency)
##
## Administrativo Ayudante general Costurera Limpieza Mantenimiento Otro
## 1 20.000000 28.000000 12.000000 0.000000 0.000000 20.000000
## 2 19.047619 57.142857 0.000000 0.000000 0.000000 23.809524
## 3 11.111111 33.333333 11.111111 3.703704 0.000000 29.629630
## 4 8.333333 50.000000 8.333333 8.333333 8.333333 16.666667
##
## Soldador Supervisor
## 1 8.000000 12.000000
## 2 0.000000 0.000000
## 3 0.000000 11.111111
## 4 0.000000 0.000000
Lo primero es entender la base de datos
## Puesto puesto_otro Antiguedad Motivación
## Length:106 Length:106 Min. : 1.00 Length:106
## Class :character Class :character 1st Qu.: 1.00 Class :character
## Mode :character Mode :character Median : 9.00 Mode :character
## Mean :14.08
## 3rd Qu.:34.50
## Max. :36.00
## Salario Prestaciones Jornada_Laboral Herramientas
## Min. :1.000 Min. :1.000 Min. :1.00 Min. :1.000
## 1st Qu.:3.000 1st Qu.:2.000 1st Qu.:4.00 1st Qu.:3.000
## Median :4.000 Median :4.000 Median :5.00 Median :5.000
## Mean :3.792 Mean :3.274 Mean :4.16 Mean :3.877
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.00 3rd Qu.:5.000
## Max. :5.000 Max. :5.000 Max. :5.00 Max. :5.000
## Temperatura Estrés Transporte Instalaciones
## Min. :1.000 Min. :1.000 Min. :1.000 Min. :1.000
## 1st Qu.:1.000 1st Qu.:3.000 1st Qu.:4.000 1st Qu.:4.000
## Median :3.000 Median :4.000 Median :5.000 Median :5.000
## Mean :3.123 Mean :3.679 Mean :4.009 Mean :4.311
## 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000 3rd Qu.:5.000
## Max. :5.000 Max. :5.000 Max. :5.000 Max. :5.000
## Rotación Conflicto/Acoso Satisfacción en el trabajo
## Min. :1.000 Length:106 Length:106
## 1st Qu.:3.000 Class :character Class :character
## Median :5.000 Mode :character Mode :character
## Mean :4.038
## 3rd Qu.:5.000
## Max. :5.000
## Emoción Edad Genero Estado Civil
## Length:106 Min. :18.00 Length:106 Length:106
## Class :character 1st Qu.:25.25 Class :character Class :character
## Mode :character Median :33.50 Mode :character Mode :character
## Mean :35.62
## 3rd Qu.:45.00
## Max. :68.00
## Municipio Escolaridad Dependientes
## Length:106 Length:106 Min. :0.000
## Class :character Class :character 1st Qu.:0.000
## Mode :character Mode :character Median :1.000
## Mean :1.085
## 3rd Qu.:2.000
## Max. :3.000
Se debe de limpiar la base de datos
# Extraer las variables de interés
db <- BASELIMPIAFORM[, c("Genero", "Estado Civil", "Edad", "Rotación", "Estrés", "Motivación", "Salario", "Prestaciones", "Puesto", "Instalaciones")]
# Cambiar edades
db$Edad <- as.numeric(db$Edad)
rango_edad <-seq(18, 68, by = 10)
db$rango_edad <- cut(db$Edad, breaks = rango_edad, labels = c("18-27", "28-37", "38-47", "48-57", "58-68"), include.lowest = TRUE, right = FALSE)
# ¿Cuántos NA tengo por variable?
sapply(db, function(x) sum(is.na(x)))
## Genero Estado Civil Edad Rotación Estrés
## 0 0 0 0 0
## Motivación Salario Prestaciones Puesto Instalaciones
## 0 0 0 0 0
## rango_edad
## 0
## tibble [106 × 11] (S3: tbl_df/tbl/data.frame)
## $ Genero : chr [1:106] "Femenino" "Femenino" "Femenino" "Femenino" ...
## $ Estado Civil : chr [1:106] "Unión libre" "Casado" "Soltero" "Casado" ...
## $ Edad : num [1:106] 30 54 21 20 43 61 55 29 56 36 ...
## $ Rotación : num [1:106] 4 5 1 4 3 5 3 5 5 5 ...
## $ Estrés : num [1:106] 5 2 1 5 3 4 5 4 4 5 ...
## $ Motivación : chr [1:106] "Por el salario" "Otro" "Ubicación de la empresa" "Ubicación de la empresa" ...
## $ Salario : num [1:106] 5 4 2 5 3 4 2 5 4 5 ...
## $ Prestaciones : num [1:106] 4 4 1 4 1 5 3 4 1 4 ...
## $ Puesto : chr [1:106] "Administrativo" "Costurera" "Ayudante general" "Ayudante general" ...
## $ Instalaciones: num [1:106] 5 4 4 5 5 4 4 5 5 5 ...
## $ rango_edad : Factor w/ 5 levels "18-27","28-37",..: 2 4 1 1 3 5 4 2 4 2 ...
## n= 106
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 106 171.849100 4.037736
## 2) Prestaciones< 2.5 40 81.975000 3.275000
## 4) Salario< 2.5 13 23.230770 2.461538 *
## 5) Salario>=2.5 27 46.000000 3.666667
## 10) Motivación=Otro,Ubicación de la empresa 16 28.437500 3.187500 *
## 11) Motivación=Ambiente de trabajo,Por el salario,Razones personales 11 8.545455 4.363636 *
## 3) Prestaciones>=2.5 66 52.500000 4.500000
## 6) Edad< 28.5 18 26.500000 3.833333 *
## 7) Edad>=28.5 48 15.000000 4.750000
## 14) Salario< 2.5 7 5.428571 4.285714 *
## 15) Salario>=2.5 41 7.804878 4.829268 *
Otra forma de hacer el árbol de decisión
## n= 106
##
## node), split, n, deviance, yval
## * denotes terminal node
##
## 1) root 106 171.849100 4.037736
## 2) Prestaciones< 2.5 40 81.975000 3.275000
## 4) Salario< 2.5 13 23.230770 2.461538 *
## 5) Salario>=2.5 27 46.000000 3.666667
## 10) Motivación=Otro,Ubicación de la empresa 16 28.437500 3.187500 *
## 11) Motivación=Ambiente de trabajo,Por el salario,Razones personales 11 8.545455 4.363636 *
## 3) Prestaciones>=2.5 66 52.500000 4.500000
## 6) Edad< 28.5 18 26.500000 3.833333 *
## 7) Edad>=28.5 48 15.000000 4.750000
## 14) Salario< 2.5 7 5.428571 4.285714 *
## 15) Salario>=2.5 41 7.804878 4.829268 *