1. Carga de datos

# Instalar y cargar librerías necesarias
if(!require(tidyverse)) install.packages("tidyverse")
## Loading required package: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.1     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tidyverse)

# Cargar datos desde archivo CSV
datos <- read.csv("datos_negocios_var_1_empleados.csv", sep=",", header=TRUE)

# Ver estructura de los datos
str(datos)
## 'data.frame':    100 obs. of  4 variables:
##  $ Departamento        : chr  "Finanzas" "Operaciones" "Finanzas" "Operaciones" ...
##  $ Salario             : num  5705 2614 2514 5799 5424 ...
##  $ Años_Experiencia    : int  21 30 4 30 20 13 15 2 1 30 ...
##  $ Evaluacion_Desempeno: num  4.3 5 4.2 4.6 3.4 3.7 3.5 4.2 4.2 3.2 ...

2. Análisis Descriptivo

Tablas Descriptivas

# Resumen estadístico de variables numéricas
resumen_numerico <- summary(select_if(datos, is.numeric))
print(resumen_numerico)
##     Salario     Años_Experiencia Evaluacion_Desempeno
##  Min.   :2171   Min.   : 1.00    Min.   :3.000       
##  1st Qu.:3344   1st Qu.: 8.00    1st Qu.:3.500       
##  Median :4840   Median :15.00    Median :3.900       
##  Mean   :4835   Mean   :14.64    Mean   :3.951       
##  3rd Qu.:6085   3rd Qu.:21.00    3rd Qu.:4.525       
##  Max.   :7904   Max.   :30.00    Max.   :5.000
# Frecuencia de la variable categórica
tabla_departamento <- table(datos$Departamento)
print(tabla_departamento)
## 
##    Finanzas Operaciones        RRHH      Ventas 
##          24          23          30          23

Interpretación de Tablas Descriptivas

El resumen estadístico muestra medidas clave como la media, mediana, desviación estándar, valores mínimos y máximos de las variables numéricas. La tabla de frecuencia nos indica la cantidad de empleados en cada departamento.

Gráficos Descriptivos

# Histograma de Salario
hist(datos$Salario, main="Distribución de Salario", xlab="Salario ($)", col="lightblue", border="black")

# Gráfico de Barras para Departamento
barplot(tabla_departamento, col=rainbow(5), main="Frecuencia por Departamento")

# Boxplot de Evaluación de Desempeño
boxplot(datos$Evaluacion_Desempeno, main="Boxplot de Evaluación de Desempeño", col="pink", horizontal=TRUE)

Interpretación de los Gráficos

  • El histograma nos permite visualizar la distribución de los salarios, identificando si hay sesgo o concentración en ciertos rangos.
  • El gráfico de barras nos muestra la cantidad de empleados por departamento.
  • El boxplot ayuda a detectar valores atípicos en la evaluación de desempeño.

3. Estimaciones Estadísticas

3.1. Intervalo de confianza para la media del salario

n <- nrow(datos)
media_muestral <- mean(datos$Salario)
error_estandar <- sd(datos$Salario) / sqrt(n)
z <- qnorm(0.975)  # Valor crítico para 95%
IC_media <- c(media_muestral - z * error_estandar, media_muestral + z * error_estandar)
print(paste("El intervalo de confianza para la media del salario es:", round(IC_media[1], 2), "a", round(IC_media[2], 2)))
## [1] "El intervalo de confianza para la media del salario es: 4509.37 a 5160.11"

Interpretación

Este intervalo nos indica el rango dentro del cual esperamos que esté la verdadera media poblacional del salario con un 95% de confianza.

3.2. Intervalo de confianza para la proporción de empleados en Finanzas

x <- sum(datos$Departamento == "Finanzas")
p_muestral <- x / n
error_prop <- sqrt((p_muestral * (1 - p_muestral)) / n)
IC_prop <- c(p_muestral - z * error_prop, p_muestral + z * error_prop)
print(paste("El intervalo de confianza para la proporción de empleados en Finanzas es:", round(IC_prop[1], 4), "a", round(IC_prop[2], 4)))
## [1] "El intervalo de confianza para la proporción de empleados en Finanzas es: 0.1563 a 0.3237"

Interpretación

El intervalo muestra el rango en el cual se encuentra la proporción real de empleados que trabajan en el departamento de Finanzas con 95% de confianza.

3.3. Intervalo de confianza para la varianza del salario

var_muestral <- var(datos$Salario)
IC_varianza <- c((n-1) * var_muestral / qchisq(0.975, df=n-1), (n-1) * var_muestral / qchisq(0.025, df=n-1))
print(paste("El intervalo de confianza para la varianza del salario es:", round(IC_varianza[1], 2), "a", round(IC_varianza[2], 2)))
## [1] "El intervalo de confianza para la varianza del salario es: 2124522.27 a 3719075.21"

Interpretación

Este intervalo nos permite estimar con un 95% de confianza el rango en el que se encuentra la varianza real de los salarios.

3.4. Diferencia de medias entre Finanzas y Operaciones (Salario)

grupo1 <- filter(datos, Departamento == "Finanzas")$Salario
grupo2 <- filter(datos, Departamento == "Operaciones")$Salario
prueba_medias <- t.test(grupo1, grupo2, var.equal=TRUE)
print(prueba_medias)
## 
##  Two Sample t-test
## 
## data:  grupo1 and grupo2
## t = -0.16007, df = 45, p-value = 0.8735
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -1018.2328   868.3007
## sample estimates:
## mean of x mean of y 
##  4681.108  4756.074

Interpretación

Este test evalúa si hay una diferencia significativa entre los salarios medios de los empleados de Finanzas y Operaciones.

3.5. Diferencia de proporciones (Empleados en Finanzas vs Operaciones)

grupo1_p <- sum(datos$Departamento == "Finanzas") / n
grupo2_p <- sum(datos$Departamento == "Operaciones") / n
prueba_prop <- prop.test(c(sum(datos$Departamento == "Finanzas"), sum(datos$Departamento == "Operaciones")),
                         c(n, n))
print(prueba_prop)
## 
##  2-sample test for equality of proportions with continuity correction
## 
## data:  c(sum(datos$Departamento == "Finanzas"), sum(datos$Departamento == "Operaciones")) out of c(n, n)
## X-squared = 9.9074e-32, df = 1, p-value = 1
## alternative hypothesis: two.sided
## 95 percent confidence interval:
##  -0.1175161  0.1375161
## sample estimates:
## prop 1 prop 2 
##   0.24   0.23

Interpretación

Se compara la proporción de empleados en Finanzas vs Operaciones para determinar si la diferencia es estadísticamente significativa.

3.6. Razón de varianzas entre Finanzas y Operaciones (Salario)

prueba_varianzas <- var.test(grupo1, grupo2)
print(prueba_varianzas)
## 
##  F test to compare two variances
## 
## data:  grupo1 and grupo2
## F = 0.90626, num df = 23, denom df = 22, p-value = 0.815
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.3866022 2.1074345
## sample estimates:
## ratio of variances 
##          0.9062618