Les salaires dans le secteur privé en 2023

Data - INSEE


Info

  • L’augmentation des salaires reste inférieure à l’inflation.

Figure 3 - histogramme

Tous les centiles

Code
ip2020[[2]][[3]] %>%
  mutate(effectifs_cum = 1 - cumsum(effectifs)/sum(effectifs)) %>%
  ggplot(.) + theme_minimal() + xlab("Net monthly wage") + ylab("Countercumulative Distribution Function") + 
  geom_point(aes(x = salaires_max, y = effectifs_cum)) +
  scale_x_log10(breaks = c(1000, 1500, 2000, 3000, 4000, 6000, 8000),
                labels = dollar_format(prefix = "", accuracy = 1, suffix = " €")) + 
  scale_y_log10(breaks = c(seq(0.01, 0.05, 0.01), 0.1, 0.2, 0.4, 1))

80 au 99ème centile

Regression

Code
fit1 <- ip2020[[2]][[3]] %>%
  mutate(effectifs_cum = 1 - cumsum(effectifs)/sum(effectifs)) %>%
  filter(effectifs_cum <= 0.2) %>%
  filter(is.finite(salaires_max)) %>%
  lm(log(effectifs_cum) ~ log(salaires_max), data = .)

summ(fit1)
Observations 58
Dependent variable log(effectifs_cum)
Type OLS linear regression
F(1,56) 974123.23
1.00
Adj. R² 1.00
Est. S.E. t val. p
(Intercept) 20.06 0.02 852.14 0.00
log(salaires_max) -2.67 0.00 -986.98 0.00
Standard errors: OLS

Graph

Code
ip2020[[2]][[3]] %>%
  mutate(effectifs_cum = 1 - cumsum(effectifs)/sum(effectifs)) %>%
  filter(effectifs_cum <= 0.2) %>%
  ggplot(.) + theme_minimal() + xlab("Net monthly wage") + ylab("Countercumulative Distribution Function") + 
  geom_point(aes(x = salaires_max, y = effectifs_cum)) +
  scale_x_log10(breaks = c(1000, 1500, 2000, 3000, 4000, 5000, 6000, 7000, 8000),
                labels = dollar_format(prefix = "", accuracy = 1, suffix = " €")) + 
  scale_y_log10(breaks = c(seq(0.01, 0.05, 0.01), 0.1, 0.2, 0.4, 1)) +
  geom_function(aes(colour = paste0("Slope (Coefficient of Pareto): ", round(fit1$coefficients[2],3))), fun = function(x) exp(fit1$coefficients[1] + fit1$coefficients[2]*log(x))) +
  theme(legend.position = c(0.8, 0.9),
        legend.title = element_blank())

90 au 99ème centile

Regression

Code
fit1 <- ip2020[[2]][[3]] %>%
  mutate(effectifs_cum = 1 - cumsum(effectifs)/sum(effectifs)) %>%
  filter(effectifs_cum <= 0.1) %>%
  filter(is.finite(salaires_max)) %>%
  lm(log(effectifs_cum) ~ log(salaires_max), data = .)

summ(fit1)
Observations 47
Dependent variable log(effectifs_cum)
Type OLS linear regression
F(1,45) 845874.36
1.00
Adj. R² 1.00
Est. S.E. t val. p
(Intercept) 20.13 0.03 785.32 0.00
log(salaires_max) -2.68 0.00 -919.71 0.00
Standard errors: OLS

Graph

Code
ip2020[[2]][[3]] %>%
  mutate(effectifs_cum = 1 - cumsum(effectifs)/sum(effectifs)) %>%
  filter(effectifs_cum <= 0.1) %>%
  ggplot(.) + theme_minimal() + xlab("Net monthly wage") + ylab("Countercumulative Distribution Function") + 
  geom_point(aes(x = salaires_max, y = effectifs_cum)) +
  scale_x_log10(breaks = c(1000, 1500, 2000, 3000, 4000, 5000, 6000, 7000, 8000),
                labels = dollar_format(prefix = "", accuracy = 1, suffix = " €")) + 
  scale_y_log10(breaks = seq(0.01, 0.1, 0.01)) +
  geom_function(aes(colour = paste0("Pente (coeff Pareto): ", round(fit1$coefficients[2],3))), fun = function(x) exp(fit1$coefficients[1] + fit1$coefficients[2]*log(x))) +
  theme(legend.position = c(0.8, 0.9),
        legend.title = element_blank())

Evolution des salaires: 1996-2019

Tous

Code
ip2020[[2]][[5]] %>%
  rename(variable = 1) %>%
  gather(year, value, -variable) %>%
  year_to_date2() %>%
  group_by(variable) %>%
  mutate(value = 100*value/value[date == as.Date("1996-01-01")]) %>%
  ggplot() + ylab("Salaire net en EQTP depuis 1996, en € constants") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 2),
                     labels = dollar_format(accuracy = 1, prefix = ""))

2008-

Code
ip2020[[2]][[5]] %>%
  rename(variable = 1) %>%
  gather(year, value, -variable) %>%
  year_to_date2() %>%
  filter(date >= as.Date("2008-01-01")) %>%
  group_by(variable) %>%
  mutate(value = 100*value/value[date == as.Date("2008-01-01")]) %>%
  ggplot() + ylab("Salaire net en EQTP depuis 2008, en € constants") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = value, color = variable)) +
  
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.85),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(10, 300, 1),
                     labels = dollar_format(accuracy = 1, prefix = ""))