Encuesta de Estructura Salarial

Author

Ágatha del Olmo

Introducción

En este trabajo vamos a estimar los parámetros poblacionales del salario a partir de los estadísticos (estimadores) muestrales, atendiendo a que obtener información de toda la población resulta inviable.

La población incluye a los trabajadores por cuenta ajena que presten sus servicios en centros de cotización en España, independientemente de su tamaño, y hayan estado dados de alta en la Seguridad Social (SS) durante todo el mes de octubre de 2018.

Se toma como referencia a los trabajadores que estuvieron de alta todo el mes de octubre para minimizar el número de trabajadores que o empezaron o finalizaron su trabajo este mes. Este mes es el que guarda la distribución más normal en referencia al resto de meses por estar poco afectado por las variaciones estacionales.

Cabe destacar que se han excluido a presidentes, miembros de consejos de administración, y todo aquel personal cuya remuneración no sea principalmente en forma de salario. También se han excluido a los trabajadores con contrato de aprendizaje , ya que forman un colectivo muy particular y son muy poco representativos.

Nótese que vamos a dar por hecho que la base de datos del Instuituto Nacional de Estadística (INE) de la cual hemos extraido los datos vamos a entenderla como poblacional y no muestral para efectos prácticos del trabajo.

1. Proceso de muestreo

Para empezar, cargamos los paquetes necesarios para realizar el muestreo.

if(!require("pacman")) install.packages("pacman")
Loading required package: pacman
pacman::p_load(ggplot2, modeest, caret, tidyverse, dplyr, kableExtra, classInt, RColorBrewer)

options(timeout=1000)

Cargamos los datos que hemos extraido del INE a través de la función load().

load("C:/Users/Portatil/OneDrive - Universitat de Valencia/Escritorio/Universidad/3º BIA/2n CUATRIMESTRE/MUESTREO/muestreo/practica1/Poblacion.Rdata")

load("C:/Users/Portatil/OneDrive - Universitat de Valencia/Escritorio/Universidad/3º BIA/2n CUATRIMESTRE/MUESTREO/muestreo/practica1/PoblacionNoCubierta.Rdata")

Para realizar el muestreo usamos la técnica de Muestreo Aleatorio Simple (MAS), que selecciona de forma completamente aleatoria, y cada individuo tiene la misma probabilidad de ser seleccionado.

Como la selección es aleatoria, fijamos una semilla (1) para asegurar su reproducibilidad en posteriores ejecuciones del código.

Hemos usado la función sample_n(), donde hemos especificado el dataframe, el número de individuos extraidos (1416) y que no realice repetición, ya que tenemos suficientes individuos en la población.

set.seed(1)
sample_pobl <- sample_n(Pobl, 1416, replace = FALSE)
head(sample_pobl)
  SEXO TIPOPAIS ESTU ANOANTI TIPOJOR TIPOCON SALBASE
1    6        1    2       1       2       1  519.60
2    1        1    2      10       2       1  472.62
3    1        1    7       9       2       1  544.03
4    6        1    4      19       1       1  856.32
5    1        1    5       5       1       1  962.55
6    1        1    6      13       2       2  262.26

Ahora, seleccionamos el estadístico más adecuado

sample_salario <- sample_pobl$SALBASE
sd(sample_salario)
[1] 1242.505
mean(sample_salario)
[1] 1444.879
max(sample_salario)
[1] 27404.01
min(sample_salario)
[1] 20.1
ggplot(data = data.frame(sample_salario), aes(x = sample_salario)) +
  geom_histogram(aes(y = after_stat(density), fill = after_stat(count)), 
                 bins = 30, color = "black") +
  geom_density(alpha = 0.5, color = "blue", fill = "lightblue") +
  scale_fill_distiller(palette = "YlGnBu", direction = 1) + # Puedes cambiar la paleta aquí
  theme_minimal() +
  labs(title = "Distribución de Sample Salario",
       x = "Salario",
       y = "Densidad",
       fill = "Frecuencia") +
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14))

VIendo estos datos, una desviación típica tan alta, y un mínimo y máximo tan dispares, podemos sospechar una desigualdad salarial en la muestra. Para estudiarla calculamos el coeficiente de Gini, una medida usada para determinar la desigualdad de los ingresos de un país.

gini <- function(x) {
  n <- length(x)
  mu <- mean(x)
  abs_diff <- outer(x, x, FUN = function(x, y) abs(x - y))
  G <- sum(abs_diff) / (2 * n^2 * mu)
  return(G)
}

gini_salario <- gini(sample_salario)
print(gini_salario)
[1] 0.3200275

Con el coeficiente de Gini de 0.32, vemos que la muestra manifiesta una estructura desigual, lo cual es común al hablar de los salarios de un país, con valores outliers sobre todo en los salarios más altos según el gráfico.

Teniéndolo en cuenta, la medida más adecuada es la mediana, ya que es robusta frente a valores atípicos, y aunque la moda también lo sea, es complicado que se repita un mismo salario teniendo en cuenta los céntimos.

mediana_salario <- median(sample_salario, na.rm = TRUE)
mediana_salario
[1] 1211.255

La mediana nos indica que el 50% de los trabajadores gana menos de 1211.26€ y el otro 50% gana más.

mediana_salario/1080
[1] 1.121532

Basándonos en los datos, el hecho de que la mediana salarial sea solo un 12% superior al salario mínimo impuesto por el Gobierno (1080€) sugiere que más de la mitad de la población española cobra sueldos cercanos al salario mínimo. Esto puede ser preocupante, ya que indica que muchos trabajadores ganan solo un poco más de lo mínimo establecido, y el resto incluso por debajo.

Probemos a realizar el mismo proceso con otra variable, por ejemplo, el sexo:

mediana_salario_hombres <- median(sample_pobl$SALBASE[sample_pobl$SEXO == "1"], na.rm = TRUE)
mediana_salario_mujeres <- median(sample_pobl$SALBASE[sample_pobl$SEXO == "6"], na.rm = TRUE)

mediana_salario_hombres
[1] 1272.05
mediana_salario_mujeres
[1] 1083.34
mediana_salario_hombres-mediana_salario_mujeres
[1] 188.71

Por lo que vemos, hay una clara diferencia entre hombres y mujeres en cuanto a su salario. En concreto, 188.71€.

2. Error de no cobertura

set.seed(1)
sample_poblNC <- sample_n(Pob_NC, 606, replace = FALSE)
head(sample_poblNC)
  SEXO TIPOPAIS ESTU ANOANTI TIPOJOR TIPOCON SALBASE
1    1        1    3      11       1       1 1574.91
2    6        1    6      11       1       1 1161.00
3    6        1    4      15       1       1 1092.83
4    6        1    6       2       1       1 1166.28
5    6        1    4      19       1       1 2053.33
6    1        2    7       3       1       1 2889.36
sample_salarioNC <- sample_poblNC$SALBASE
mediana_salarioNC <- median(sample_salarioNC, na.rm = TRUE)
mediana_salarioNC
[1] 1154.15
calcular_error_nc <- function(tasaNC, yC, yNC) {
  tasaC <- 1 - tasaNC
  
  errorNC <- tasaNC * (yC - yNC)
  
  yp <- (tasaC * yC) + (tasaNC * yNC)
  
  error_relativo_NC <- errorNC / yp
  
  return(list(
    error_NC = errorNC,
    error_relativo_NC = error_relativo_NC
  ))
}

numT <- length(sample_salario) + 606
numC <- 606 

tasaNC <- numC / numT

yC <- mediana_salario 
yNC <- mediana_salarioNC

errores_nc <- calcular_error_nc(tasaNC, yC, yNC)
errores_nc
$error_NC
[1] 17.11455

$error_relativo_NC
[1] 0.01433211

Como observamos, siendo el error de no cobertura positivo, habíamos subestimado el salario mediano de la población española, de forma que la situación es incluso peor de la que habíamos imaginado. El salario mediano español está incluso más cercano al salario mínimo, por lo tanto tiene sentido que los sindicatos busquen mejorar esta situación elevando el salario mínimo a 1184€.

En conclusión, el análisis de la estructura salarial en España muestra una mediana de salario cercana al salario mínimo, lo que indica una alta proporción de trabajadores con ingresos bajos. Además, el cálculo del error de no cobertura sugiere que la situación parece ser peor de lo que la muestra indica. Esto resalta la necesidad de elevar el salario mínimo para mejorar las condiciones de vida de los trabajadores, o llevar a cabo políticas para reforzar esta medida.