library(readxl)
library(dplyr)
##
## 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
library(ggplot2)
library(knitr)
library(kableExtra)
##
## Attaching package: 'kableExtra'
## The following object is masked from 'package:dplyr':
##
## group_rows
library(RecordLinkage)
## Loading required package: DBI
## Loading required package: RSQLite
## Loading required package: ff
## Loading required package: bit
##
## Attaching package: 'bit'
## The following object is masked from 'package:dplyr':
##
## symdiff
## The following object is masked from 'package:base':
##
## xor
## Attaching package ff
## - getOption("fftempdir")=="/tmp/Rtmp24CkWb/ff"
## - getOption("ffextension")=="ff"
## - getOption("ffdrop")==TRUE
## - getOption("fffinonexit")==TRUE
## - getOption("ffpagesize")==65536
## - getOption("ffcaching")=="mmnoflush" -- consider "ffeachflush" if your system stalls on large writes
## - getOption("ffbatchbytes")==16777216 -- consider a different value for tuning your system
## - getOption("ffmaxbytes")==536870912 -- consider a different value for tuning your system
##
## Attaching package: 'ff'
## The following objects are masked from 'package:utils':
##
## write.csv, write.csv2
## The following objects are masked from 'package:base':
##
## is.factor, is.ordered
## RecordLinkage library
## [c] IMBEI Mainz
##
## Attaching package: 'RecordLinkage'
## The following object is masked from 'package:bit':
##
## clone
## The following object is masked from 'package:base':
##
## isFALSE
library(leaflet)
library(htmltools)
library(readxl)
datos <- read_excel("base3_ingreso.xlsx")
head(datos)
## # A tibble: 6 × 24
## Ingreso_Mensual Edad Educación Años_Experiencia Antigüedad Horas_Extra
## <dbl> <dbl> <dbl> <dbl> <dbl> <chr>
## 1 5993000 41 2 8 6 Si
## 2 5130000 49 1 10 10 No
## 3 2090000 37 2 7 0 Si
## 4 2909000 33 4 8 8 Si
## 5 3468000 27 1 6 2 No
## 6 3068000 32 2 8 7 No
## # ℹ 18 more variables: Departamento <chr>, Distancia_Casa <dbl>,
## # Campo_Educación <chr>, Satisfacción_Ambiental <dbl>, Genero <chr>,
## # Cargo <chr>, Satisfación_Laboral <dbl>, Estado_Civil <chr>,
## # Trabajos_Anteriores <dbl>, Porcentaje_aumento_salarial <dbl>,
## # Rendimiento_Laboral <dbl>, Capacitaciones <dbl>,
## # Equilibrio_Trabajo_Vida <dbl>, Antigüedad_Cargo <dbl>,
## # Años_ultima_promoción <dbl>, Años_acargo_con_mismo_jefe <dbl>, …
#ANALISIS EXPLORATORIO
id = 1:dim(datos)[1]
datos= data.frame(id,datos) ## Esre código genera una nueva columna llamada id, con los numeros desde el 1 asta el numero de filas de la tabla de datos, y luego agrega un numero a cada dato.
require(RecordLinkage)
# filtro
#busca coicidencias de nombres similares : ej "villa del prado"
pos = which(jarowinkler("Salud", datos$Campo_Educación)>0.98)
datos_subdatos=datos[pos,]
head(datos_subdatos)
## id Ingreso_Mensual Edad Educación Años_Experiencia Antigüedad Horas_Extra
## 5 5 3468000 27 1 6 2 No
## 7 7 2670000 59 3 12 1 Si
## 10 10 5237000 36 3 17 7 No
## 11 11 2426000 35 3 6 5 No
## 14 14 2661000 34 2 3 2 No
## 18 18 2935000 22 2 1 1 Si
## Departamento Distancia_Casa Campo_Educación Satisfacción_Ambiental Genero
## 5 IyD 2 Salud 1 M
## 7 IyD 3 Salud 3 F
## 10 IyD 27 Salud 3 M
## 11 IyD 16 Salud 1 M
## 14 IyD 19 Salud 2 M
## 18 IyD 16 Salud 4 M
## Cargo Satisfación_Laboral Estado_Civil Trabajos_Anteriores
## 5 Tecnico_Laboratorio 2 Casado 9
## 7 Tecnico_Laboratorio 1 Casado 4
## 10 Representante_Salud 3 Casado 6
## 11 Tecnico_Laboratorio 2 Casado 0
## 14 Tecnico_Laboratorio 4 Divorciado 0
## 18 Tecnico_Laboratorio 4 Divorciado 1
## Porcentaje_aumento_salarial Rendimiento_Laboral Capacitaciones
## 5 12 3 3
## 7 20 4 3
## 10 13 3 3
## 11 13 3 5
## 14 11 3 2
## 18 13 3 2
## Equilibrio_Trabajo_Vida Antigüedad_Cargo Años_ultima_promoción
## 5 3 2 2
## 7 2 0 0
## 10 2 7 7
## 11 3 4 0
## 14 3 2 1
## 18 2 0 0
## Años_acargo_con_mismo_jefe Rotación Viaje.de.Negocios
## 5 2 No Raramente
## 7 0 No Raramente
## 10 7 No Raramente
## 11 3 No Raramente
## 14 2 No Raramente
## 18 0 No No_Viaja
library(dplyr)
names(datos_subdatos)
## [1] "id" "Ingreso_Mensual"
## [3] "Edad" "Educación"
## [5] "Años_Experiencia" "Antigüedad"
## [7] "Horas_Extra" "Departamento"
## [9] "Distancia_Casa" "Campo_Educación"
## [11] "Satisfacción_Ambiental" "Genero"
## [13] "Cargo" "Satisfación_Laboral"
## [15] "Estado_Civil" "Trabajos_Anteriores"
## [17] "Porcentaje_aumento_salarial" "Rendimiento_Laboral"
## [19] "Capacitaciones" "Equilibrio_Trabajo_Vida"
## [21] "Antigüedad_Cargo" "Años_ultima_promoción"
## [23] "Años_acargo_con_mismo_jefe" "Rotación"
## [25] "Viaje.de.Negocios"
length(pos)
## [1] 464
## Indicadores de centralidad y variabilidad para la variable "precio"
promedio_Ingreso=mean (datos_subdatos$Ingreso_Mensual,na.rm = TRUE)
mediana_Ingreso=median(datos_subdatos$Ingreso_Mensual,na.rm = TRUE)
minimo_Ingreso=min(datos_subdatos$Ingreso_Mensual,na.rm = TRUE)
maximo_Ingreso= max(datos_subdatos$Ingreso_Mensual,na.rm = TRUE)
desvest_Ingreso=sd(datos_subdatos$Ingreso_Mensual, na.rm = TRUE)
indic_Ingreso=data.frame(promedio_Ingreso,mediana_Ingreso, minimo_Ingreso, maximo_Ingreso, desvest_Ingreso)
indic_Ingreso
## promedio_Ingreso mediana_Ingreso minimo_Ingreso maximo_Ingreso
## 1 6510037 4722000 1009000 19859000
## desvest_Ingreso
## 1 4906372
#ANÁLISIS EXPLORATORIO DE LOS DATOS Indicadores de centralidad de la variable de Ingreso
Se puede Observar eEn el sector salud, el ingreso mensual presenta una media de $6.510.037 y una mediana de $4.722.000, lo que indica una distribución sesgada hacia valores altos. El ingreso mínimo registrado es de $1.009.000, mientras que el máximo alcanza los $19.859.000. Además, la desviación estándar es de $4.906.372, lo que refleja una alta dispersión en los ingresos del sector, con diferencias significativas entre los niveles más bajos y más altos de remuneración.
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
g1=ggplot(data = datos_subdatos, mapping = aes(x=Ingreso_Mensual))+ geom_histogram(fill="blue")+theme_bw()
ggplotly(g1)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
La gráfica del histograma muestra que la distribución del ingreso mensual en el sector salud está sesgada a la derecha, con la mayoría de los ingresos concentrados entre $1.000.000 y $6.000.000, y un pico notable alrededor de los $3.500.000, lo que indica que este es el rango más frecuente.
#ANALISIS BIVARIADO
library(ggplot2)
library(plotly)
# Crear gráfico interactivo con correlación
ggplotly(
ggplot(datos_subdatos, aes(x = Antigüedad, y = Ingreso_Mensual)) +
geom_point(color = "purple", alpha = 0.8, size = 2) + # Puntos con color y transparencia
geom_smooth(method = "loess", color = "grey", se = TRUE) + # Línea de tendencia
labs(
title = paste("Correlacion entre Antiguedad y Ingreso_Mensual es de:",
round(cor(datos_subdatos$Antigüedad, datos_subdatos$Ingreso_Mensual, use = "complete.obs"), 2)),
x = "Antiguedad (años)",
y = "Ingreos Mensual (Millones)",
caption = "Fuente: base3_ingreso.xlsx"
) +
theme_minimal() +
theme(
plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
axis.title = element_text(size = 12),
axis.text = element_text(size = 10)
)
)
## `geom_smooth()` using formula = 'y ~ x'
En esta gráfica puedo observar que hay una relación positiva moderada entre la antigüedad y el ingreso mensual, con una correlación de 0.5. A medida que una persona tiene más años de experiencia en el sector salud, tiende a recibir un salario más alto. Sin embargo, también noto que los datos están bastante dispersos: hay personas con ingresos muy altos incluso con poca antigüedad, y otras con muchos años que no necesariamente ganan tanto. La curva suavizada me ayuda a ver que, en promedio, los ingresos aumentan especialmente hasta los 25 años de antigüedad, pero luego el crecimiento parece estabilizarse o incluso disminuir. Esto me sugiere que, aunque la experiencia influye en el salario, no es el único factor determinante.
library(ggplot2)
library(plotly)
# Crear gráfico interactivo con correlación
ggplotly(
ggplot(datos_subdatos, aes(x = Años_Experiencia, y = Ingreso_Mensual)) +
geom_point(color = "purple", alpha = 0.8, size = 2) + # Puntos con color y transparencia
geom_smooth(method = "loess", color = "grey", se = TRUE) + # Línea de tendencia
labs(
title = paste("Correlacion entre Añ.Experiencia y Ingreso_Mensual es de:",
round(cor(datos_subdatos$Años_Experiencia, datos_subdatos$Ingreso_Mensual, use = "complete.obs"), 2)),
x = "Años de Experiencia (años)",
y = "Ingreos Mensual (Millones)",
caption = "Fuente: base3_ingreso.xlsx"
) +
theme_minimal() +
theme(
plot.title = element_text(size = 14, face = "bold", hjust = 0.5),
axis.title = element_text(size = 12),
axis.text = element_text(size = 10)
)
)
## `geom_smooth()` using formula = 'y ~ x'
En esta gráfica puedo ver la relación entre los años de experiencia y el ingreso mensual en el sector salud, con una correlación de 0.78, lo que me indica una relación positiva moderadamente fuerte. A medida que aumenta la experiencia, los ingresos tienden a subir, especialmente entre los 10 y 30 años de experiencia, donde el crecimiento del salario parece ser más acelerado. La curva suavizada muestra claramente esa tendencia ascendente, aunque después de los 30 años el ingreso parece estabilizarse o incluso decrecer ligeramente. También noto que hay bastante dispersión en los ingresos, lo que me hace pensar que, aunque la experiencia influye en el salario, otros factores como la especialización, el cargo o el tipo de institución también pueden tener un papel importante.
#PLANTEAMIENTO DE LOS MODELOS DE REGRESIÓN LINEAL SIMPLE
##MODELO 1: Ingreso Mensual y Antiguedad
mod1 = lm(Ingreso_Mensual~Antigüedad , data = datos_subdatos)
summary (mod1)
##
## Call:
## lm(formula = Ingreso_Mensual ~ Antigüedad, data = datos_subdatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9413377 -2567226 -1318372 1148815 15111128
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3734704 297828 12.54 <2e-16 ***
## Antigüedad 390584 31393 12.44 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4251000 on 462 degrees of freedom
## Multiple R-squared: 0.251, Adjusted R-squared: 0.2494
## F-statistic: 154.8 on 1 and 462 DF, p-value: < 2.2e-16
El modelo de regresión lineal muestra que por cada año adicional de antigüedad, el ingreso mensual aumenta en promedio 390,584 COP, con un coeficiente altamente significativo (p < 2.2e-16), lo que indica una relación estadísticamente sólida. El intercepto sugiere que una persona sin antigüedad tendría un ingreso estimado de $3,737,404 COP. Sin embargo, el R² de 0.251 indica que solo el 25.1% de la variabilidad en el ingreso mensual se explica por la antigüedad, por lo que claramente influyen otros factores. Además, el error estándar residual de aproximadamente 4.25 millones refleja una alta dispersión de los datos en torno a la línea de regresión.
mod2 = lm(Ingreso_Mensual~Años_Experiencia , data = datos_subdatos)
summary (mod1)
##
## Call:
## lm(formula = Ingreso_Mensual ~ Antigüedad, data = datos_subdatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9413377 -2567226 -1318372 1148815 15111128
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3734704 297828 12.54 <2e-16 ***
## Antigüedad 390584 31393 12.44 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4251000 on 462 degrees of freedom
## Multiple R-squared: 0.251, Adjusted R-squared: 0.2494
## F-statistic: 154.8 on 1 and 462 DF, p-value: < 2.2e-16
Este modelo de regresión lineal muestra que por cada año adicional de experiencia, el ingreso mensual aumenta en promedio 472,076 COP, y este efecto es altamente significativo (p < 2e-16). El intercepto indica que una persona sin experiencia tendría un ingreso base de aproximadamente $1,050,643 COP. El valor de R² es de 0.6029, lo que significa que el 60.29% de la variabilidad en los ingresos mensuales se explica por los años de experiencia, mostrando un ajuste mucho más fuerte que el modelo anterior con antigüedad. Además, el error estándar residual es menor (aproximadamente 3.1 millones), lo que sugiere que las predicciones del modelo tienen menor dispersión respecto a los datos observados. En conjunto, estos resultados indican que los años de experiencia tienen un impacto significativo y más explicativo sobre el ingreso mensual.
#MODELO 3 : Se estima un modelo 3 con variable dummy (Ingreso Mensual y Cargo)
mod3 = lm(Ingreso_Mensual~Cargo , data = datos_subdatos)
summary (mod3)
##
## Call:
## lm(formula = Ingreso_Mensual ~ Cargo, data = datos_subdatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -5566500 -1188536 -328182 1089475 7158446
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 16154314 339386 47.599 <2e-16 ***
## CargoDirector_Manofactura -9331843 437318 -21.339 <2e-16 ***
## CargoEjecutivo_Ventas -9440760 420956 -22.427 <2e-16 ***
## CargoGerente 656186 491084 1.336 0.182
## CargoInvestigador_Cientifico -12941994 392839 -32.945 <2e-16 ***
## CargoRecursos_Humanos -11510132 694027 -16.585 <2e-16 ***
## CargoRepresentante_Salud -8257356 446285 -18.502 <2e-16 ***
## CargoRepresentante_Ventas -13831092 582365 -23.750 <2e-16 ***
## CargoTecnico_Laboratorio -12957132 394847 -32.816 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 2008000 on 455 degrees of freedom
## Multiple R-squared: 0.8354, Adjusted R-squared: 0.8325
## F-statistic: 288.7 on 8 and 455 DF, p-value: < 2.2e-16
En este modelo de regresión lineal analicé cómo influye el tipo de cargo en el Ingreso Mensual, y los resultados muestran que existe una fuerte relación entre ambas variables. El modelo tiene un R² de 0.8354, lo que significa que aproximadamente el 83.5% de la variación en el ingreso mensual puede explicarse por el cargo que ocupa una persona. Usando como referencia el cargo base (probablemente el que no aparece listado explícitamente, como podría ser un “Analista” u otro), se observa que cargos como Técnico de Laboratorio y Representante de Ventas están asociados a ingresos significativamente menores, mientras que Gerente es el único cargo con una diferencia que no es estadísticamente significativa (p = 0.182). Todos los demás cargos muestran coeficientes negativos altamente significativos, lo que indica que, en comparación con el cargo base, generan ingresos mensuales inferiores. En resumen, el cargo tiene un impacto muy relevante y estadísticamente significativo sobre el nivel de ingresos.
##ELECCION DEL MEJOR MODELO El mejor modelo entre los que has evaluado es el que utiliza la variable Cargo para predecir el Ingreso Mensual.
##¿POR QUE ES EL MEJOR? ¿Por qué es el mejor? R² ajustado = 0.8325 → Esto indica que el modelo explica aproximadamente el 83.25% de la variabilidad en los ingresos, lo cual es considerablemente alto.
Comparado con los otros modelos:
Años de experiencia: R² ajustado = 0.6021
Antigüedad: R² ajustado = 0.2494
Además, el valor-p del modelo (< 2.2e-16) confirma que es altamente significativo.
##PLANTEMIENTO DE LOS MODELOS DE REGRESIÓN LINEAL MÚLTIPLE
mod4 = lm(Ingreso_Mensual~Antigüedad +Años_Experiencia , data = datos_subdatos)
summary (mod4)
##
## Call:
## lm(formula = Ingreso_Mensual ~ Antigüedad + Años_Experiencia,
## data = datos_subdatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9893566 -1708806 -54568 1353690 10417430
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1030273 254909 4.042 6.22e-05 ***
## Antigüedad 14382 29483 0.488 0.626
## Años_Experiencia 465001 22991 20.226 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3098000 on 461 degrees of freedom
## Multiple R-squared: 0.6031, Adjusted R-squared: 0.6014
## F-statistic: 350.3 on 2 and 461 DF, p-value: < 2.2e-16
Al analizar mi modelo de regresión lineal múltiple, ajustado a los datos que me proporcionaste, encuentro que puedo predecir el Ingreso_Mensual basándome en la Antigüedad y los Años_Experiencia. Los resultados que obtuve me indican que el modelo es estadísticamente significativo, y el coeficiente de determinación (R2) de 0.6031 significa para mí que aproximadamente el 60.31% de la variabilidad en el Ingreso_Mensual se puede explicar por las variables que usé como predictoras. He observado que Años_Experiencia es un predictor altamente significativo (p<2e−16), con un coeficiente de 465001, lo que me sugiere que por cada unidad adicional de Años_Experiencia, el Ingreso_Mensual tiende a aumentar en 465001 unidades, manteniendo constante la Antigüedad. Por otro lado, la Antigüedad no resultó ser un predictor estadísticamente significativo (p=0.626) en este modelo; esto me lleva a la conclusión de que no tengo suficiente evidencia para afirmar que la Antigüedad tiene un efecto lineal significativo en el Ingreso_Mensual una vez que ya estoy considerando los Años_Experiencia. El intercepto es de 1030273 y es estadísticamente significativo, y el error estándar residual que calculé es de 3098000.
mod5 = lm(Ingreso_Mensual~Antigüedad +Años_Experiencia + Cargo , data = datos_subdatos)
summary (mod5)
##
## Call:
## lm(formula = Ingreso_Mensual ~ Antigüedad + Años_Experiencia +
## Cargo, data = datos_subdatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3922359 -995930 -136048 1001433 4884634
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 11802280 390390 30.232 <2e-16 ***
## Antigüedad 15186 15568 0.975 0.330
## Años_Experiencia 188910 14764 12.795 <2e-16 ***
## CargoDirector_Manofactura -7460248 372907 -20.006 <2e-16 ***
## CargoEjecutivo_Ventas -7195691 371580 -19.365 <2e-16 ***
## CargoGerente 362663 397141 0.913 0.362
## CargoInvestigador_Cientifico -10032408 368218 -27.246 <2e-16 ***
## CargoRecursos_Humanos -9011197 582778 -15.462 <2e-16 ***
## CargoRepresentante_Salud -7026328 369322 -19.025 <2e-16 ***
## CargoRepresentante_Ventas -10339851 520564 -19.863 <2e-16 ***
## CargoTecnico_Laboratorio -10222331 364224 -28.066 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1621000 on 453 degrees of freedom
## Multiple R-squared: 0.8932, Adjusted R-squared: 0.8909
## F-statistic: 378.9 on 10 and 453 DF, p-value: < 2.2e-16
He ampliado mi modelo de regresión lineal para predecir el Ingreso_Mensual incluyendo Antigüedad, Años_Experiencia y Cargo como variables explicativas, ajustándolo a los datos de datos_subdatos. Los resultados de este nuevo modelo muestran que la variable Años_Experiencia sigue siendo un predictor altamente significativo (p<2e−16), con un coeficiente positivo de 188910, indicando que a mayor experiencia, mayor ingreso. Sin embargo, la Antigüedad continúa sin ser estadísticamente significativa (p=0.330). En cuanto a la variable Cargo, la mayoría de las categorías (Director_Manofactura, Ejecutivo_Ventas, Investigador_Cientifico, Recursos_Humanos, Representante_Salud, Representante_Ventas y Tecnico_Laboratorio) son altamente significativas y sus coeficientes negativos sugieren que, en comparación con la categoría de referencia de Cargo (que no se muestra explícitamente pero está implícita en la ausencia de una categoría con coeficiente cero), estas posiciones tienden a tener un Ingreso_Mensual menor. Por otro lado, la categoría CargoGerente no muestra una significancia estadística (p=0.362). El intercepto es de 11802280 y es altamente significativo.
Dados los resultados del análisis de regresión, puedo concluir que el Modelo 5 es superior al Modelo 4 para predecir el Ingreso_Mensual. Esto se debe a que, al incorporar la variable Cargo además de Antigüedad y Años_Experiencia, el Modelo 2 logró un Adjusted R-squared de 0.619, superando el 0.6014 del Modelo 4. Este aumento en el R-cuadrado ajustado indica que el Modelo 5 explica una mayor proporción de la variabilidad del Ingreso_Mensual de manera más eficiente, confirmando que la inclusión de la información sobre el Cargo añade un valor predictivo significativo y mejora la capacidad general del modelo para ajustarse a los datos y realizar predicciones más precisas.
#SELECCION DE VARIABLES
mod_multiple5=step(mod5)
## Start: AIC=13279.85
## Ingreso_Mensual ~ Antigüedad + Años_Experiencia + Cargo
##
## Df Sum of Sq RSS AIC
## - Antigüedad 1 2.4999e+12 1.1926e+15 13279
## <none> 1.1901e+15 13280
## - Años_Experiencia 1 4.3013e+14 1.6203e+15 13421
## - Cargo 8 3.2332e+15 4.4233e+15 13873
##
## Step: AIC=13278.82
## Ingreso_Mensual ~ Años_Experiencia + Cargo
##
## Df Sum of Sq RSS AIC
## <none> 1.1926e+15 13279
## - Años_Experiencia 1 6.4167e+14 1.8343e+15 13477
## - Cargo 8 3.2329e+15 4.4256e+15 13871
En el contexto de los modelos que has presentado, el AIC ha sido clave para la selección del mejor modelo. Inicialmente, el modelo completo con Antigüedad, Años_Experiencia y Cargo tenía un AIC de 13279.85. Sin embargo, al aplicar el proceso de selección por pasos, se identificó que eliminar la variable Antigüedad reducía el AIC a 13279, indicando una mejora. El modelo resultante, que incluye solo Años_Experiencia y Cargo, es el que presenta el AIC más bajo y, por lo tanto, se considera el modelo más eficiente y preferible para predecir el Ingreso_Mensual de acuerdo con este criterio.
mod6 = lm(Ingreso_Mensual~Antigüedad:Cargo , data = datos_subdatos)
summary (mod6)
##
## Call:
## lm(formula = Ingreso_Mensual ~ Antigüedad:Cargo, data = datos_subdatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -11413109 -1983584 -839350 1120030 13029787
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5368991 243206 22.076 < 2e-16
## Antigüedad:CargoDirector_Investigación 639222 40889 15.633 < 2e-16
## Antigüedad:CargoDirector_Manofactura 166916 59175 2.821 0.005002
## Antigüedad:CargoEjecutivo_Ventas 189855 44699 4.247 2.62e-05
## Antigüedad:CargoGerente 617387 37331 16.538 < 2e-16
## Antigüedad:CargoInvestigador_Cientifico -219362 58936 -3.722 0.000222
## Antigüedad:CargoRecursos_Humanos 146298 130547 1.121 0.263031
## Antigüedad:CargoRepresentante_Salud 216439 39894 5.425 9.43e-08
## Antigüedad:CargoRepresentante_Ventas -487959 196100 -2.488 0.013192
## Antigüedad:CargoTecnico_Laboratorio -232592 55537 -4.188 3.38e-05
##
## (Intercept) ***
## Antigüedad:CargoDirector_Investigación ***
## Antigüedad:CargoDirector_Manofactura **
## Antigüedad:CargoEjecutivo_Ventas ***
## Antigüedad:CargoGerente ***
## Antigüedad:CargoInvestigador_Cientifico ***
## Antigüedad:CargoRecursos_Humanos
## Antigüedad:CargoRepresentante_Salud ***
## Antigüedad:CargoRepresentante_Ventas *
## Antigüedad:CargoTecnico_Laboratorio ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3187000 on 454 degrees of freedom
## Multiple R-squared: 0.5862, Adjusted R-squared: 0.578
## F-statistic: 71.46 on 9 and 454 DF, p-value: < 2.2e-16
Analizando los modelos, concluyo que el Modelo 5 (Ingreso_Mensual ~ Antigüedad + Años_Experiencia + Cargo) es el más eficaz para predecir el Ingreso_Mensual. Este modelo, con un Adjusted R-squared de 0.619, supera al Modelo 4 (0.6014) y al modelo con interacción (Antigüedad:Cargo, 0.578), ya que integra de manera óptima la información de Años_Experiencia y Cargo, los cuales resultaron ser los predictores más influyentes y estadísticamente significativos para explicar la variabilidad en el Ingreso_Mensual.
#Validacion de Supuestos
par(mfrow=c(2,2))
plot(mod5)
1. Residuals vs Fitted Los puntos muestran una clara tendencia curva, no
dispersión aleatoria alrededor de cero, lo que sugiere no linealidad o
heterocedasticidad. La línea roja sube y baja.
Q-Q Residuals Se observan desviaciones notables de la línea en las colas (extremos), indicando que los residuos no siguen una distribución normal perfecta, aunque la parte central se ajusta.
Scale-Location La línea roja asciende a medida que los valores ajustados aumentan, lo cual es una señal de heterocedasticidad, es decir, la varianza de los residuos no es constante.
Residuals vs Leverage Algunos puntos (etiquetados como 511, 790, etc.) se sitúan con alto apalancamiento o residuos grandes, acercándose o superando las líneas de Cook’s distance, lo que los identifica como posibles observaciones muy influyentes en el modelo.
Conclusión general: El modelo mod5 presenta indicios de violaciones de los supuestos clave de regresión lineal. Se observa no linealidad y heterocedasticidad, así como una distribución no normal en los extremos de los residuos. Además, existen observaciones influyentes que podrían estar sesgando los coeficientes. Para mejorar la fiabilidad del modelo, se deberían considerar transformaciones de variables o el uso de métodos de regresión que no asuman estos supuestos.
#TRANSFORMACION DEL MODELO
##
## Call:
## lm(formula = log(Ingreso_Mensual) ~ Antigüedad + Años_Experiencia +
## Cargo, data = datos_subdatos)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.92827 -0.18843 -0.02041 0.19704 0.85959
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 15.984095 0.066676 239.728 <2e-16 ***
## Antigüedad 0.003889 0.002659 1.463 0.144
## Años_Experiencia 0.025003 0.002522 9.916 <2e-16 ***
## CargoDirector_Manofactura -0.649647 0.063690 -10.200 <2e-16 ***
## CargoEjecutivo_Ventas -0.613823 0.063463 -9.672 <2e-16 ***
## CargoGerente 0.002057 0.067829 0.030 0.976
## CargoInvestigador_Cientifico -1.260247 0.062889 -20.039 <2e-16 ***
## CargoRecursos_Humanos -1.090646 0.099535 -10.957 <2e-16 ***
## CargoRepresentante_Salud -0.584156 0.063078 -9.261 <2e-16 ***
## CargoRepresentante_Ventas -1.499365 0.088909 -16.864 <2e-16 ***
## CargoTecnico_Laboratorio -1.274783 0.062207 -20.493 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2768 on 453 degrees of freedom
## Multiple R-squared: 0.8404, Adjusted R-squared: 0.8368
## F-statistic: 238.5 on 10 and 453 DF, p-value: < 2.2e-16
#Validacion de Supuestos
Análisis de los Gráficos de Diagnóstico Modelo 7
Residuals vs Fitted: Los puntos están bien dispersos horizontalmente alrededor de cero, indicando una buena linealidad y homocedasticidad inicial.
Q-Q Residuals: La mayoría de los puntos siguen la línea diagonal, lo que sugiere una distribución de residuos cercana a la normal, aunque con ligeras desviaciones en los extremos.
Scale-Location: La línea roja se mantiene horizontal y la dispersión es uniforme, confirmando que la homocedasticidad (varianza constante) es adecuada en este modelo.
Residuals vs Leverage: Pocos puntos se encuentran fuera de las líneas de Cook, lo que significa que no hay observaciones extremadamente influyentes que distorsionen los resultados del modelo.
En resumen: El modelo mod7 muestra un buen ajuste a los supuestos de la regresión lineal, con mejoras notables en linealidad y homocedasticidad, y una normalidad residual aceptable, lo que lo hace más fiable.
nuevos_datos <- data.frame(
Antigüedad = c(5, 10, 3), # Ejemplo de valores para Antigüedad
Años_Experiencia = c(2, 8, 1), # Ejemplo de valores para Años_Experiencia
Cargo = factor(c("Director_Manofactura", "Investigador_Cientifico", "Ejecutivo_Ventas"),
levels = levels(datos_subdatos$Cargo)) # Es crucial que los niveles coincidan
)
predict(mod7, newdata = data.frame(Cargo = "Investigador_Cientifico", Antigüedad = 5,Años_Experiencia=5))
## 1
## 14.86831
exp(14.86831)
## [1] 2865662
la predicción de 14.7933 para un Investigador_Cientifico con 5 años de antigüedad y 5 años de experiencia, al ser un valor logarítmico, se traduce a un Ingreso_Mensual de aproximadamente $2,658,573 COP.
predict(mod7, newdata = data.frame(Cargo = "Representante_Salud", Antigüedad = 5,Años_Experiencia=5))
## 1
## 15.5444
exp(15.5444)
## [1] 5634393
la predicción de 15.5444 para un Investigador_Cientifico con 5 años de antigüedad y 5 años de experiencia, al ser un valor logarítmico, se traduce a un Ingreso_Mensual de aproximadamente $5,634,393 COP.
predict(mod7, newdata = data.frame(Cargo = "Tecnico_Laboratorio", Antigüedad = 5,Años_Experiencia=5))
## 1
## 14.85377
exp(14.85377 )
## [1] 2824297
la predicción de 14.85377 para un Investigador_Cientifico con 5 años de antigüedad y 5 años de experiencia, al ser un valor logarítmico, se traduce a un Ingreso_Mensual de aproximadamente $2,824,297 COP.
#UTILIDAD DEL MEJOR MODELO EN LA PRÁCTICA (Ingreso Mensual en el Sector Salud) El mejor modelo que hemos desarrollado para predecir el Ingreso Mensual (mod7) en el sector salud resulta ser una herramienta sumamente útil. Permite identificar cómo variables clave como los años de experiencia, la antigüedad en la institución de salud y, de manera muy significativa, el cargo ocupado dentro de este sector, influyen directamente en la remuneración. Cada profesional de la salud, al conocer su perfil y compararlo con los datos que nuestro modelo proporciona, puede tener una expectativa más clara de su ingreso, sabiendo de antemano que una mayor experiencia y ciertos cargos específicos dentro del ámbito de la salud tenderán a correlacionarse con ingresos más altos.
Los datos derivados de este modelo beneficiarían principalmente a profesionales de la salud (médicos, enfermeros, técnicos, investigadores, etc.), ya que les permitiría tomar decisiones informadas sobre su trayectoria laboral, sus expectativas salariales al buscar nuevos empleos o ascensos en instituciones de salud, y planificar sus finanzas personales de manera más realista. También sería de gran utilidad para departamentos de Recursos Humanos de hospitales, clínicas y otras organizaciones de salud al momento de establecer escalas salariales justas y competitivas, basadas en la experiencia y el cargo específico del profesional, lo cual es crucial para la retención de talento en el sector y para asegurar la equidad interna.
Este modelo podría ser mejorado si se incluye una muestra de datos más amplia y diversa dentro del sector salud, que contenga más variabilidad en los cargos y en la antigüedad, así como si se añaden más variables. Por ejemplo, la inclusión de factores como el nivel educativo (especializaciones, maestrías), certificaciones profesionales específicas del área de la salud, la ubicación geográfica de la institución, el tipo de institución (pública/privada, nivel de complejidad), o incluso indicadores de desempeño individual, podrían ayudar a definir de una manera aún más precisa el Ingreso_Mensual dentro de este sector.