PUNTO 1 EXPLORACION, DIAGNOSTICO Y PREPARACION DE LOS DATOS
# Importar datos desde Excel
data <- read_excel("SalaryEducationJob.xlsx")
# Exploración inicial
str(data)
## tibble [6,704 × 6] (S3: tbl_df/tbl/data.frame)
## $ Age : num [1:6704] 32 28 45 36 52 29 42 31 26 38 ...
## $ Gender : chr [1:6704] "Male" "Female" "Male" "Female" ...
## $ Education Level : chr [1:6704] "Bachelor's" "Master's" "PhD" "Bachelor's" ...
## $ Job Title : chr [1:6704] "Software Engineer" "Data Analyst" "Senior Manager" "Sales Associate" ...
## $ Years of Experience: chr [1:6704] "5" "3" "15" "7" ...
## $ Salary : num [1:6704] 90000 65000 150000 60000 200000 55000 120000 80000 45000 110000 ...
summary(data)
## Age Gender Education Level Job Title
## Min. :21.00 Length :6704 Length :6704 Length :6704
## 1st Qu.:28.00 N.unique : 3 N.unique : 7 N.unique : 193
## Median :32.00 N.blank : 0 N.blank : 0 N.blank : 0
## Mean :33.62 Min.nchar: 4 Min.nchar: 3 Min.nchar: 3
## 3rd Qu.:38.00 Max.nchar: 6 Max.nchar: 17 Max.nchar: 37
## Max. :62.00 NAs : 2 NAs : 3 NAs : 2
## NAs :2
## Years of Experience Salary
## Length :6704 Min. : 350
## N.unique : 37 1st Qu.: 70000
## N.blank : 0 Median :115000
## Min.nchar: 1 Mean :115327
## Max.nchar: 3 3rd Qu.:160000
## NAs : 3 Max. :250000
## NAs :5
nrow(data); ncol(data)
## [1] 6704
## [1] 6
# Valores perdidos
colSums(is.na(data))
## Age Gender Education Level Job Title
## 2 2 3 2
## Years of Experience Salary
## 3 5
# Observaciones duplicadas
duplicated_rows <- data[duplicated(data), ]
nrow(duplicated_rows)
## [1] 4912
# Homologar categorías de educación
data$`Education Level` <- recode(data$`Education Level`,
"Bachelor's" = "Bachillerato",
"Master's" = "Maestría",
"PhD" = "Doctorado")
# Eliminar filas vacías y duplicadas
data <- data %>% drop_na() %>% distinct()
CONCLUSION: La base contenía duplicados y registros incompletos. Se homologaron las categorías de educación y se eliminaron duplicados y valores perdidos para obtener una base limpia.
PUNTO 2 CAACTERIZACIÓN GENERAL DE LOS RABAJADORES
# Crear grupos de edad
data$GrupoEdad <- cut(data$Age,
breaks = c(20,29,39,49,100),
labels = c("21-29","30-39","40-49","50+"),
right = TRUE)
data$`Years of Experience` <- as.numeric(data$`Years of Experience`)
# Crear grupos de experiencia
data$GrupoExp <- cut(data$`Years of Experience`,
breaks = c(-1,2,5,10,20,100),
labels = c("0-2","3-5","6-10","11-20","20+"),
right = TRUE)
# Tabla descriptiva
vars <- c("Age","Gender","Education Level","Years of Experience","Salary")
tab <- CreateTableOne(vars = vars, data = data)
print(tab)
##
## Overall
## n 1787
## Age (mean (SD)) 35.14 (8.21)
## Gender (%)
## Female 814 (45.6)
## Male 966 (54.1)
## Other 7 ( 0.4)
## Education Level (%)
## Bachelor's Degree 506 (28.3)
## Bachillerato 262 (14.7)
## Doctorado 340 (19.0)
## High School 110 ( 6.2)
## Maestría 122 ( 6.8)
## Master's Degree 446 (25.0)
## phD 1 ( 0.1)
## Years of Experience (mean (SD)) 9.16 (6.84)
## Salary (mean (SD)) 113184.66 (51596.54)
Conclusión:
La mayoría de trabajadores están entre 30 y 39 años, con experiencia de
3 a 10 años. Los salarios tienden a subir con la experiencia y el nivel
educativo. Los hombres predominan en cargos directivos con salarios
altos, mientras que las mujeres aparecen más en áreas
administrativas.
PUNTO 3 ANALISIS DE LA DISTRIBUCION SALARIAL
# Estadísticos básicos
summary(data$Salary)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 350 70000 110000 113185 160000 250000
sd(data$Salary)
## [1] 51596.54
quantile(data$Salary, probs = c(0.25,0.5,0.75,0.9))
## 25% 50% 75% 90%
## 70000 110000 160000 185000
# Histograma
ggplot(data, aes(x=Salary)) +
geom_histogram(binwidth=10000, fill="skyblue", color="black") +
labs(title="Distribución de salarios", x="Salario", y="Frecuencia")
# Boxplot por grupo de edad
ggplot(data, aes(x=GrupoEdad, y=Salary)) +
geom_boxplot(fill="lightgreen") +
labs(title="Salarios por grupo de edad", x="Grupo de Edad", y="Salario")
Conclusión:
La distribución salarial es asimétrica hacia la derecha, con valores
extremos en altos cargos. La media es mayor que la mediana, lo que
confirma la influencia de salarios muy altos. Los outliers reflejan
casos reales de ejecutivos y especialistas, por lo que no se recomienda
eliminarlos. Los grupos de mayor edad y experiencia concentran los
salarios más altos.