Mediate el siguiente problema se busca comprender y prever los factores que influyen en la rotación de empleados entre distintos cargos. La empresa ha recopilado datos históricos sobre el empleo de sus trabajadores, incluyendo variables como la antigüedad en el cargo actual, el nivel de satisfacción laboral, el salario actual, edad y otros factores relevantes. La gerencia planea desarrollar un modelo de regresión logística que permita estimar la probabilidad de que un empleado cambie de cargo en el próximo período y determinar cuales factores indicen en mayor proporción a estos cambios.
Para lograr identificar todo esto el markdown estará dividido en los siguientes pasos
rotacion <- rotacion %>% clean_names()
En esta parte se busca entender el dataframe para tener el criterio tecnico de decision de tal forma que se puedan realizar las hipotesis con contexto
st_options(bootstrap.css = FALSE)
dfSummary(rotacion,
varnumbers = TRUE,
valid.col = TRUE,
na.col = TRUE,
graph.col = TRUE) %>%
print(method = "render",
table.classes = "table table-striped table-hover")
| No | Variable | Stats / Values | Freqs (% of Valid) | Graph | Valid | Missing | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | rotacion [character] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2 | edad [numeric] |
|
43 distinct values | 1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3 | viaje_de_negocios [character] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 4 | departamento [character] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5 | distancia_casa [numeric] |
|
29 distinct values | 1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6 | educacion [numeric] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 7 | campo_educacion [character] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 8 | satisfaccion_ambiental [numeric] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 9 | genero [character] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 10 | cargo [character] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 11 | satisfacion_laboral [numeric] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 12 | estado_civil [character] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13 | ingreso_mensual [numeric] |
|
1349 distinct values | 1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 14 | trabajos_anteriores [numeric] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 15 | horas_extra [character] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 16 | porcentaje_aumento_salarial [numeric] |
|
15 distinct values | 1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 17 | rendimiento_laboral [numeric] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 18 | anos_experiencia [numeric] |
|
40 distinct values | 1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 19 | capacitaciones [numeric] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 20 | equilibrio_trabajo_vida [numeric] |
|
|
1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 21 | antiguedad [numeric] |
|
37 distinct values | 1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 22 | antiguedad_cargo [numeric] |
|
19 distinct values | 1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 23 | anos_ultima_promocion [numeric] |
|
16 distinct values | 1470 (100.0%) | 0 (0.0%) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 24 | anos_acargo_con_mismo_jefe [numeric] |
|
18 distinct values | 1470 (100.0%) | 0 (0.0%) |
Generated by summarytools 1.1.5 (R version 4.5.1)
2026-03-25
Con la exploracion inicial nos podemos dar cuenta que el df debe ser transformado en lectura y en forma de representacion numerica, por lo tanto se ha creado la siguiente tabla con la variable su transformación y tipo.
diccionario_vars <- tribble(
~Variable, ~Transformacion, ~Tipo,
"rotacion", "Boolean", "Categórica nominal",
"edad", "Entero", "Cuantitativa",
"viaje_de_negocios", "Dummy (entero)", "Categórica nominal",
"departamento", "Dummy (entero)", "Categórica nominal",
"distancia_casa", "Numérico", "Cuantitativa",
"educacion", "Numérico ordinal", "Categórica ordinal",
"campo_educacion", "Dummy (entero)", "Categórica nominal",
"satisfaccion_ambiental", "Numérico ordinal", "Categórica ordinal",
"genero", "Dummy", "Categórica nominal",
"cargo", "One-hot encoding", "Categórica nominal",
"satisfaccion_laboral", "Numérico ordinal", "Categórica ordinal",
"estado_civil", "Dummy (entero)", "Categórica nominal",
"ingreso_mensual", "Numérico", "Cuantitativa",
"trabajos_anteriores", "Numérico", "Cuantitativa",
"horas_extra", "Boolean", "Categórica nominal",
"porcentaje_aumento_salarial", "Numérico; convertir a %", "Cuantitativa",
"rendimiento_laboral", "Numérico ordinal", "Categórica ordinal",
"anos_experiencia", "Numérico", "Cuantitativa",
"capacitaciones", "Numérico", "Cuantitativa",
"equilibrio_trabajo_vida", "Numérico ordinal", "Categórica ordinal",
"antiguedad", "Numérico", "Cuantitativa",
"antiguedad_cargo", "Numérico", "Cuantitativa",
"anos_ultima_promocion", "Numérico", "Cuantitativa",
"anos_acargo_con_mismo_jefe", "Numérico", "Cuantitativa"
)
datatable(
diccionario_vars,
rownames = FALSE,
filter = "top",
extensions = c("FixedHeader"),
options = list(
pageLength = 24,
paging = FALSE,
searching = TRUE,
ordering = TRUE,
info = FALSE,
scrollX = TRUE,
scrollY = "500px",
fixedHeader = FALSE,
dom = "ft"
),
caption = "Tabla 1: Diccionario de variables y transformación propuesta"
)%>%
formatStyle(
"Tipo",
target = "row",
fontWeight = "bold"
)
Como parte final del filtrado queremos conocer si la satisfacción laboral, y años a cargo con el mismo jefe estan relacionados con la rotación que se pueden ver en la siguiente tabla, esta es una forma de exploración que se realiza para definir las variables que se usaran en el modelo.
df_filtrado <- rotacion %>%
filter(satisfacion_laboral < 3,
anos_acargo_con_mismo_jefe > 2,
rotacion=="Si")
datatable(df_filtrado,
options = list(
pageLength = 24,
paging = FALSE,
searching = TRUE,
ordering = TRUE,
info = FALSE,
scrollX = TRUE,
scrollY = "500px",
fixedHeader = FALSE,
dom = "ft"
),
filter = "top",
rownames = FALSE,
caption = "Tabla 2: Filtrado inicial data"
)
Seleccionaremos 3 variables cuantitativas para el estudio.
Distancia a la casa : se espera que la distancia entre la vivienda y el lugar de trabajo este positivamente relacionada con la rotacion, debido al desgaste asociado al tiempo de desplazamiento diario. Es decir, a mayor distancia, mayor probabilidad de rotacion.
Años de experiencia : se espera que los años de experiencia estén negativamente relacionados con la rotación, ya que los empleados con mayor trayectoria tienden a tener mayor estabilidad laboral. Es decir, a mayor experiencia, menor probabilidad de rotación.
Años a cargo con mismo jefe : se espera que el tiempo bajo el mismo jefe influya en la rotación, de modo que periodos cortos puedan asociarse con mayor probabilidad de rotación, mientras que una mayor permanencia podría indicar estabilidad laboral
Seleccionaremos 3 variables cualitativas para el estudio.
Departamento : se espera que el departamento esté asociado con la rotación, dado que las condiciones laborales, cargas de trabajo y niveles de presión pueden variar entre áreas
Satisfaccion laboral : se espera que niveles bajos de satisfacción laboral estén asociados con una mayor probabilidad de rotación.
Horas Extra : se espera que la realización frecuente de horas extra esté positivamente relacionada con la rotación, debido al desgaste físico y emocional que estas generan.
Realizamos los siguientes graficos resumen en donde usamos el raincloudgraph para poder resumir rapidamente las variables cuantitativas
datos_long <- rotacion %>%
select(distancia_casa, anos_experiencia, anos_acargo_con_mismo_jefe) %>%
pivot_longer(
cols = everything(),
names_to = "variable",
values_to = "valor"
) %>%
mutate(
variable = case_when(
variable == "distancia_casa" ~ "Distancia a la casa",
variable == "anos_experiencia" ~ "Anos de experiencia",
variable == "anos_acargo_con_mismo_jefe" ~ "Anos con el mismo jefe"
)
)
ggplot(datos_long, aes(y = valor)) +
geom_violin(aes(x = 0), fill = "lightblue", alpha = 0.5, width = 0.8) +
geom_boxplot(aes(x = 0.08), width = 0.08, fill = "white", outlier.shape = NA) +
geom_jitter(aes(x = 0.18), width = 0.03, alpha = 0.30, size = 1, color = "darkblue") +
scale_x_continuous(breaks = NULL) +
facet_wrap(~ variable, scales = "free_y", nrow = 1) +
labs(
title = "Raincloud de variables cuantitativas",
x = "",
y = "Valor"
) +
theme_minimal()
Gráfico 1: Raincloud variables cuantitativas
En el grafico 1 se observa como las 3 variables presentan distribucion asimentrica con atipicos, especialmente en la distancia a la casa y años de experiencia. La concentracion esta en varoles bajos en la variable años con el mismo jefe lo cual sugiere baja permanencia con un mismo jefe que se verificara mas adelante
ggbetweenstats(
data = rotacion,
x = rotacion,
y = distancia_casa,
type = "nonparametric",
pairwise.comparisons = FALSE,
centrality.plotting = TRUE,
bf.message = FALSE,
messages = FALSE,
point.args = list(
position = position_jitter(width = 0.15),
alpha = 0.25,
size = 1.2
),
violin.args = list(alpha = 0.4),
boxplot.args = list(width = 0.15, alpha = 0.6),
title = "Distancia a la casa segun rotacion",
xlab = "Rotacion",
ylab = "Valor"
)
Gráfico 2: Distancia a la casa segun rotacion
En el grafico 2 podemos ver como hay mas rotacion con las personas que viven mas lejos de entrada la mediana es mayor y hay algunos puntos atipicos
ggbetweenstats(
data = rotacion,
x = rotacion,
y = anos_experiencia,
type = "nonparametric",
pairwise.comparisons = FALSE,
centrality.plotting = TRUE,
bf.message = FALSE,
messages = FALSE,
point.args = list(
position = position_jitter(width = 0.15),
alpha = 0.25,
size = 1.2
),
violin.args = list(alpha = 0.4),
boxplot.args = list(width = 0.15, alpha = 0.6),
title = "Anos de experiencia segun rotacion",
xlab = "Rotacion",
ylab = "Valor"
)
Gráfico 3: Anos de experiencia segun rotacion
Los años de experiencia en general nos idican como a mayor cantidad de años hay menor rotacion, teniendo una relacion negativa entre años y rotacion
ggbetweenstats(
data = rotacion,
x = rotacion,
y = anos_acargo_con_mismo_jefe,
type = "nonparametric",
pairwise.comparisons = FALSE,
centrality.plotting = TRUE,
bf.message = FALSE,
messages = FALSE,
point.args = list(
position = position_jitter(width = 0.15),
alpha = 0.25,
size = 1.2
),
violin.args = list(alpha = 0.4),
boxplot.args = list(width = 0.15, alpha = 0.6),
title = "Anos con el mismo jefe segun rotacion",
xlab = "Rotacion",
ylab = "Valor"
)
Gráfico 4: Anos con el mismo jefe segun rotacion
Se puede ver que los años con el mismo jefe son muy importantes puesto que hay concentracion en valores bajos lo que quiere decir que los empleados no permanece mucho con un mismo jefe.
La variable distancia a la casas tiene alta asimetria y outliers por lo que puede afectar los supuestos del modelo logistico y sus estimadores, de tal forma que hay que considerar realizar una transofrmacion logaritmica para reducir la asimetria, bajar la influencia de outliers y asi mejorar la realacion lineal existente
El resumen de los datos descriptivos de la variable estan en la Tabla 3
# Función para contar atípicos con regla IQR
contar_atipicos <- function(x) {
x <- x[!is.na(x)]
Q1 <- quantile(x, 0.25)
Q3 <- quantile(x, 0.75)
IQR_val <- IQR(x)
limite_inf <- Q1 - 1.5 * IQR_val
limite_sup <- Q3 + 1.5 * IQR_val
sum(x < limite_inf | x > limite_sup)
}
tabla_desc <- data.frame(
Variable = c("distancia_casa", "años experiencia", "años mismo jefe"),
N = c(
sum(!is.na(rotacion$distancia_casa)),
sum(!is.na(rotacion$anos_experiencia)),
sum(!is.na(rotacion$anos_acargo_con_mismo_jefe))
),
Media = c(
mean(rotacion$distancia_casa, na.rm = TRUE),
mean(rotacion$anos_experiencia, na.rm = TRUE),
mean(rotacion$anos_acargo_con_mismo_jefe, na.rm = TRUE)
),
Mediana = c(
median(rotacion$distancia_casa, na.rm = TRUE),
median(rotacion$anos_experiencia, na.rm = TRUE),
median(rotacion$anos_acargo_con_mismo_jefe, na.rm = TRUE)
),
Desv_Est = c(
sd(rotacion$distancia_casa, na.rm = TRUE),
sd(rotacion$anos_experiencia, na.rm = TRUE),
sd(rotacion$anos_acargo_con_mismo_jefe, na.rm = TRUE)
),
Min = c(
min(rotacion$distancia_casa, na.rm = TRUE),
min(rotacion$anos_experiencia, na.rm = TRUE),
min(rotacion$anos_acargo_con_mismo_jefe, na.rm = TRUE)
),
Max = c(
max(rotacion$distancia_casa, na.rm = TRUE),
max(rotacion$anos_experiencia, na.rm = TRUE),
max(rotacion$anos_acargo_con_mismo_jefe, na.rm = TRUE)
),
Skewness = c(
skewness(rotacion$distancia_casa, na.rm = TRUE),
skewness(rotacion$anos_experiencia, na.rm = TRUE),
skewness(rotacion$anos_acargo_con_mismo_jefe, na.rm = TRUE)
),
Curtosis = c(
kurtosis(rotacion$distancia_casa, na.rm = TRUE),
kurtosis(rotacion$anos_experiencia, na.rm = TRUE),
kurtosis(rotacion$anos_acargo_con_mismo_jefe, na.rm = TRUE)
),
Atipicos = c(
contar_atipicos(rotacion$distancia_casa),
contar_atipicos(rotacion$anos_experiencia),
contar_atipicos(rotacion$anos_acargo_con_mismo_jefe)
)
)
tabla_desc[, -1] <- round(tabla_desc[, -1], 2)
kable(
tabla_desc,
caption = "Tabla 3. Estadísticos descriptivos de las variables cuantitativas seleccionadas",
align = "lccccccccc"
) %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
| Variable | N | Media | Mediana | Desv_Est | Min | Max | Skewness | Curtosis | Atipicos |
|---|---|---|---|---|---|---|---|---|---|
| distancia_casa | 1470 | 9.19 | 7 | 8.11 | 1 | 29 | 0.96 | 2.77 | 0 |
| años experiencia | 1470 | 11.28 | 10 | 7.78 | 0 | 40 | 1.12 | 3.91 | 63 |
| años mismo jefe | 1470 | 4.12 | 3 | 3.57 | 0 | 17 | 0.83 | 3.17 | 14 |
En las Tablas 4, 5 y 6 se presentan las distribuciones de frecuencia y proporción de las variables categóricas seleccionadas. Estas permiten identificar la concentración de observaciones en cada categoría y posibles desequilibrios en la muestra. Estos datos pueden ser verificados en el EDA inicial, aun asi se decide incluirlo para continuar con el hilo del analisis planteado.
tabla_departamento <- rotacion %>%
count(departamento) %>%
mutate(Proporcion = n / sum(n)) %>%
rename(Categoria = departamento, Frecuencia = n)
kable(tabla_departamento,
caption = "Tabla 4. Distribucion de la variable Departamento",
align = "lcc") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
| Categoria | Frecuencia | Proporcion |
|---|---|---|
| IyD | 961 | 0.6537415 |
| RH | 63 | 0.0428571 |
| Ventas | 446 | 0.3034014 |
tabla_satisfaccion <- rotacion %>%
count(satisfacion_laboral) %>%
mutate(Proporcion = n / sum(n)) %>%
rename(Categoria = satisfacion_laboral, Frecuencia = n)
kable(tabla_satisfaccion,
caption = "Tabla 5. Distribucion de la variable Satisfaccion Laboral",
align = "lcc") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
| Categoria | Frecuencia | Proporcion |
|---|---|---|
| 1 | 289 | 0.1965986 |
| 2 | 280 | 0.1904762 |
| 3 | 442 | 0.3006803 |
| 4 | 459 | 0.3122449 |
tabla_horas <- rotacion %>%
count(horas_extra) %>%
mutate(Proporcion = n / sum(n)) %>%
rename(Categoria = horas_extra, Frecuencia = n)
kable(tabla_horas,
caption = "Tabla 6. Distribucion de la variable Horas Extra",
align = "lcc") %>%
kable_styling(
bootstrap_options = c("striped", "hover", "condensed", "responsive"),
full_width = FALSE,
position = "center"
)
| Categoria | Frecuencia | Proporcion |
|---|---|---|
| No | 1054 | 0.7170068 |
| Si | 416 | 0.2829932 |
par(mfrow = c(1, 4))
barplot(table(rotacion$satisfacion_laboral),
main = "Satisfacción laboral",
xlab = "Categorías",
ylab = "Frecuencia",
col = "lightblue")
barplot(table(rotacion$departamento),
main = "Departamento",
xlab = "Categorías",
ylab = "Frecuencia",
col = "lightgreen",
las = 2)
barplot(table(rotacion$horas_extra),
main = "Horas extra",
xlab = "Categorías",
ylab = "Frecuencia",
col = "lightpink")
barplot(table(rotacion$rotacion),
main = "rotacion",
xlab = "categorias",
ylab = "Frecuencia",
col = "lightyellow")
A continuacion
rotacion$rotacion <- ifelse(rotacion$rotacion == "Si", 1, 0)
analisis1 <- glm(factor(rotacion) ~ distancia_casa, data = rotacion, family = binomial)
summary(analisis1)
##
## Call:
## glm(formula = factor(rotacion) ~ distancia_casa, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.890051 0.111382 -16.969 < 0.0000000000000002 ***
## distancia_casa 0.024710 0.008312 2.973 0.00295 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1298.6 on 1469 degrees of freedom
## Residual deviance: 1290.0 on 1468 degrees of freedom
## AIC: 1294
##
## Number of Fisher Scoring iterations: 4
analisis2 <- glm(factor(rotacion) ~ anos_experiencia, data = rotacion, family = binomial)
summary(analisis2)
##
## Call:
## glm(formula = factor(rotacion) ~ anos_experiencia, family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -0.88306 0.12744 -6.929 0.00000000000423 ***
## anos_experiencia -0.07773 0.01217 -6.387 0.00000000016900 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1298.6 on 1469 degrees of freedom
## Residual deviance: 1248.1 on 1468 degrees of freedom
## AIC: 1252.1
##
## Number of Fisher Scoring iterations: 5
analisis3 <- glm(factor(rotacion) ~ anos_acargo_con_mismo_jefe, data = rotacion, family = binomial)
summary(analisis3)
##
## Call:
## glm(formula = factor(rotacion) ~ anos_acargo_con_mismo_jefe,
## family = binomial, data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.14677 0.10244 -11.195 < 0.0000000000000002 ***
## anos_acargo_con_mismo_jefe -0.14138 0.02407 -5.874 0.00000000426 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1298.6 on 1469 degrees of freedom
## Residual deviance: 1258.7 on 1468 degrees of freedom
## AIC: 1262.7
##
## Number of Fisher Scoring iterations: 5
analisis4 <- glm(factor(rotacion) ~ factor(satisfacion_laboral), data = rotacion, family = binomial)
summary(analisis4)
##
## Call:
## glm(formula = factor(rotacion) ~ factor(satisfacion_laboral),
## family = binomial, data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.2175 0.1401 -8.689 < 0.0000000000000002
## factor(satisfacion_laboral)2 -0.4092 0.2137 -1.915 0.0555
## factor(satisfacion_laboral)3 -0.4028 0.1899 -2.122 0.0339
## factor(satisfacion_laboral)4 -0.8401 0.2033 -4.132 0.0000359
##
## (Intercept) ***
## factor(satisfacion_laboral)2 .
## factor(satisfacion_laboral)3 *
## factor(satisfacion_laboral)4 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1298.6 on 1469 degrees of freedom
## Residual deviance: 1281.2 on 1466 degrees of freedom
## AIC: 1289.2
##
## Number of Fisher Scoring iterations: 4
analisis5 <- glm(factor(rotacion) ~ factor(departamento), data = rotacion, family = binomial)
summary(analisis5)
##
## Call:
## glm(formula = factor(rotacion) ~ factor(departamento), family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -1.82866 0.09342 -19.576 < 0.0000000000000002 ***
## factor(departamento)RH 0.38175 0.33417 1.142 0.25330
## factor(departamento)Ventas 0.48116 0.14974 3.213 0.00131 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1298.6 on 1469 degrees of freedom
## Residual deviance: 1288.1 on 1467 degrees of freedom
## AIC: 1294.1
##
## Number of Fisher Scoring iterations: 4
analisis6 <- glm(factor(rotacion) ~ factor(horas_extra), data = rotacion, family = binomial)
summary(analisis6)
##
## Call:
## glm(formula = factor(rotacion) ~ factor(horas_extra), family = binomial,
## data = rotacion)
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.1496 0.1007 -21.338 <0.0000000000000002 ***
## factor(horas_extra)Si 1.3274 0.1466 9.056 <0.0000000000000002 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 1298.6 on 1469 degrees of freedom
## Residual deviance: 1217.2 on 1468 degrees of freedom
## AIC: 1221.2
##
## Number of Fisher Scoring iterations: 4