Участники из группы БЭК-194: Пономарев Павел-Рафаэль, Абгарян Арен, Сафронова Анна, Щетинина Екатерина, Игнатова Елизавета, Остроумов Андрей, Щеглов Всеволод

Цель нашего исследования - проверить, есть ли отличие в заработных платах мужчин и женщин в России, а также выяснить причины этого отличия

На основе изученной литературы была выдвинута гипотеза в России есть отличия между уровнем заработной платы мужчин и женщин

Для анализа были выбраны данные анкеты Российского мониторинга экономического положения и здоровья населения НИУ ВШЭ за 2019 год.

data = read.spss("RLMS_2019.sav",to.data.frame=T)

Расчет Gender Pay Gap

Для анализа неравенства доходов гендерных групп использыется показатель gender pay gap - он рассчитывается как разница медиан заработков женщин и мужчин в процентах от медианы заработков мужчин.

Ниже приведен расчет pay gap для данных РМЭЗ-2019. В качестве показателя была использована заработная плата индивидов за месяц.

data_gap = data %>% dplyr::select(h5,j13_2,j6_2) %>% rename(gender=h5, mwage=j13_2, hours = j6_2) %>% filter(mwage!="ЗАТРУДНЯЮСЬ ОТВЕТИТЬ" & mwage!="ОТКАЗ ОТ ОТВЕТА" & mwage!="НЕТ ОТВЕТА") 
data_gap$mwage=as.numeric(levels(data_gap$mwage))[data_gap$mwage]
c = data_gap %>% group_by(gender) %>% summarise(median = median(mwage))
kable(c)
gender median
МУЖСКОЙ 30000
ЖЕНСКИЙ 20000
gap1 = 1-c[2,2]/c[1,2]
kable(gap1,col.names = c("Pay gap"))
Pay gap
0.3333333

Pay gap составил 33%. Для проверки статистической значимости выявленной связи между полом и уровнем заработной платы был проведен тест Манна-Уитни. Нулевая гипотеза - пол не влияет на уровне заработной платы

wilcox.test(mwage ~ gender, data = data_gap)

    Wilcoxon rank sum test with continuity correction

data:  mwage by gender
W = 7576378, p-value < 0.00000000000000022
alternative hypothesis: true location shift is not equal to 0

P-value составил 0.00000000000000022. На 1% уровне значимости мы отвергаем нулевую гипотезу. Связь между полом и заработной платой есть и она статистически значима.

Это также можно увидеть, проанализировав графики распределения заработных плат в зависимости от пола.

ggplot(data_gap %>% filter(mwage<150000))+
  geom_boxplot(aes(x = gender, y = mwage/1000))+
  xlab("Пол")+
  ylab("Зарплата (в тысячах)")+
  ggtitle("Распределение заработной платы в зависимости от пола")

Распределение зарплаты женщин “смещено” ниже относительно зарплат мужчин. Числовое выражение этого смещения можно увидеть в таблицах с описательными статистиками:

female=data_gap %>% filter(gender=="ЖЕНСКИЙ") %>% filter(mwage>1000)
male=data_gap %>% filter(gender=="МУЖСКОЙ")%>% filter(mwage>1000)

Для подсчета моды применяем готовую функцию.

#Функция для нахождения моды:
mode <- function(x) {
d <- density(x)
d$x[which.max(d$y)]
}
des= describe(male$mwage)  %>% dplyr::select(-vars, -n, -sd, -trimmed, -mad, -se)%>% rename(asimetria = skew) %>% mutate(firstQu = quantile(male$mwage,0.25)) %>% mutate(thirdQu = quantile(male$mwage,0.75)) %>% mutate(sko = sd(male$mwage)) %>% mutate(moda = mode(male$mwage)) %>% mutate_all(funs(ifelse(.<1, round(.,3), ifelse(.<10,round(.,2),ifelse(.<100,round(.,1),round(.,0)))))) 
kable(des, row.names = F, caption = "Описательные характеристики распределения зарплат у мужчин")
Описательные характеристики распределения зарплат у мужчин
mean median min max range asimetria kurtosis firstQu thirdQu sko moda
35130 30000 1440 420000 418560 4.47 48.2 20000 40000 23745 28234
des1= describe(female$mwage)  %>% dplyr::select(-vars, -n, -sd, -trimmed, -mad, -se)%>% rename(asimetria = skew) %>% mutate(firstQu = quantile(female$mwage,0.25)) %>% mutate(thirdQu = quantile(female$mwage,0.75)) %>% mutate(sko = sd(female$mwage)) %>% mutate(moda = mode(female$mwage)) %>% mutate_all(funs(ifelse(.<1, round(.,3), ifelse(.<10,round(.,2),ifelse(.<100,round(.,1),round(.,0))))))
kable(des1, row.names = F, caption = "Описательные характеристики распределения зарплат  у женщин")
Описательные характеристики распределения зарплат у женщин
mean median min max range asimetria kurtosis firstQu thirdQu sko moda
25304 20000 1200 180000 178800 2.7 13 15000 30000 16109 15823

Видна существенная разница в максимумах и мерах центральности.

Рассмотрим также графики распределения зарплат в зависимости от пола:

ggplot(male) +geom_histogram(aes(x = mwage/1000), fill='#228B22',col='black',binwidth = 10)+
  ggtitle("Распределение зарплат мужчин")+
  xlab("Зарплата в тыс.рублей")+
  ylab("Абсолютная частота")

ggplot(male)+geom_density(aes(x=mwage/1000))+
  ggtitle("График эмпирической плотности распределения зарплат\nмужчин")+
  ylab("")+
  xlab("Зарплата в тыс.рублей")+
  geom_vline(xintercept = mean(male$mwage/1000), color = 2, linetype = "dashed")+
  annotate("text", x = mean(male$mwage/1000),y=0.024, label = " Среднее", color = 2)+
  geom_vline(xintercept = mode(male$mwage/1000), color = 3, linetype = "dashed")+
  annotate("text", x = mode(male$mwage/1000), y = 0.017, label = "Мода", color = 3)+
  geom_vline(xintercept = median(male$mwage/1000), color = 4, linetype = "dashed")+
  annotate("text", x = median(male$mwage/1000), y = 0.02, label = "Медиана", color = 4)

ggplot(female) +geom_histogram(aes(x = female$mwage/1000),fill = "#87CEEB", col="black", binwidth = 10)+
  ggtitle("Распределение зарплат женщин")+
  xlab("Зарплата в тыс.рублей")+
  ylab("Абсолютная частота")

ggplot(female)+geom_density(aes(x=female$mwage/1000))+
  ggtitle("График эмпирической плотности распределения зарплат\nженщин")+
  ylab("")+
  xlab("Зарплата в тыс.рублей")+
  geom_vline(xintercept = mean(female$mwage/1000), color = 2, linetype = "dashed")+
  annotate("text", x = mean(female$mwage/1000),y=0.041, label = " Среднее", color = 2)+
  geom_vline(xintercept = mode(female$mwage/1000), color = 3, linetype = "dashed")+
  annotate("text", x = mode(female$mwage/1000), y = 0.021, label = "Мода", color = 3)+
  geom_vline(xintercept = median(female$mwage/1000), color = 4, linetype = "dashed")+
  annotate("text", x = median(female$mwage/1000), y = 0.029, label = "Медиана", color = 4)

Распределения в целом схожи, но, как упоминалось выше, распределение зарплат женщин смещено левее.

Причины появления разрыва в уровнях зарплат мужчин и женщин

Общее время работы и разница в зарплатах мужчин и женщин

Следующим этапом анализа является выяснение причин появления gender pay gap. Первое предположение - женщины в целом работают меньше мужчин. Из-за того что именно на женщин приходится основная часть работы по дому, забота о детях, в месяце у них получается меньше рабочих часов. Чтобы скорректировать gender pay gap рассчитаем его на основе часовой оплаты, а не ежемесячной. Мы исследуем среднюю заработную плату на почасовой основе и включаем всех работников, у которых положительное количество рабочих часов. Этот почасовой показатель представляет собой ограниченную «корректировку» в методологии исследования, поскольку он учитывает тот факт, что мужчины в среднем работают больше часов в течение года и что больше женщин работают неполный рабочий день. Эта ограниченная корректировка позволяет нам сравнивать заработную плату женщин и мужчин, не предполагая, что женщины, которые все еще несут непропорционально много обязанностей по дому, смогут или захотят работать столько же часов, сколько и их коллеги-мужчины.

data_gap = data_gap %>% filter(hours != "ЗAТРУДНЯЮCЬ ОТВЕТИТЬ" & hours != "ОТКAЗ ОТ ОТВЕТA" & hours != "НЕТ ОТВЕТA")
data_gap$hours=as.numeric(levels(data_gap$hours))[data_gap$hours]
data_gap$hours=data_gap$hours*4
data_gap$hwage = data_gap$mwage/(data_gap$hours)
b = data_gap %>% group_by(gender) %>% summarise(median = median(hwage))
kable(b)
gender median
МУЖСКОЙ 166.6667
ЖЕНСКИЙ 125.0000
gap2 = 1-b[2,2]/b[1,2]
kable(gap2,col.names = c("Pay Gap"))
Pay Gap
0.25

Скорректированный pay gap оказался меньше и составил 25%. Вывод - значимая доля pay gap появляется из-за того что женщины в целом работают меньше. Выполним проверку на значимость зависимости между часовой оплатой и полом.

wilcox.test(hwage ~ gender, data = data_gap)

    Wilcoxon rank sum test with continuity correction

data:  hwage by gender
W = 6294394, p-value < 0.00000000000000022
alternative hypothesis: true location shift is not equal to 0

P-value составил 0.00000000000000022. Связь между полом и часовой заработной платой есть и она статистически значима.

Вертикальная иерархия и разница в зарплатах мужчин и женщин

Следующее предположение, которое было выдвинуто, - pay gap появляется из-за того, что женщины реже занимают руководящие должности. Проверим его, проанализировав ответы респондентов на вопрос “Есть ли у вас подчиненные?”

data_vert = data %>% dplyr::select(h5,j6, j6_0, j13_2) %>% rename(gender = h5, subord = j6,num_sub = j6_0) %>% filter(subord != "ЗAТРУДНЯЮCЬ ОТВЕТИТЬ" & subord != "ОТКAЗ ОТ ОТВЕТA" & subord != "НЕТ ОТВЕТA" & subord != "ЗАТРУДНЯЮСЬ ОТВЕТИТЬ" & subord != "ОТКАЗ ОТ ОТВЕТА" & subord != "НЕТ ОТВЕТА")
ggplot(data_vert)+
  geom_bar(aes(x = gender,fill = subord),color = "black")+scale_fill_discrete(name = "Есть ли подчиненные?")+
  xlab("Пол")+ylab("")+ggtitle("Наличие подчиненных в зависимости от пола")

Ситуация в двух группах примерно одинаковая. Поэтому дальнейший анализ будем строить на количестве подчиненных.

data_vert= data_vert %>% filter(num_sub != "ЗAТРУДНЯЮCЬ ОТВЕТИТЬ" & num_sub != "ОТКAЗ ОТ ОТВЕТA" & num_sub != "НЕТ ОТВЕТA")
data_vert$num_sub=as.numeric(levels(data_vert$num_sub))[data_vert$num_sub]
data_vert$num_sub1 = case_when(
  data_vert$num_sub < 10 ~ "<10",
  data_vert$num_sub < 30 ~ "10 - 30",
  data_vert$num_sub < 60 ~ "30-60",
  data_vert$num_sub < 100 ~ "60-100",
  TRUE ~ ">100"
)
ggplot(data_vert)+
  geom_bar(aes(x = gender,fill = num_sub1),color = "black")+scale_fill_discrete(name="Кол-во подчиненных")+xlab("Пол")+ylab("")+ggtitle("Количество подчиненных в зависимости \n от пола")

В каждой группе наблюдается преимущество мужчин. Большая часть наблюдений - это те, у которых меньше 10 подчиненных. Уберем их из анализа, чтобы увидеть более подробную картину:

data_vert = data_vert %>% filter(num_sub>10)
data_vert$num_sub2 = case_when(
  data_vert$num_sub < 25 ~ "<25",
  data_vert$num_sub < 60 ~ "25 - 60",
  data_vert$num_sub < 125 ~ "60-125",
  TRUE ~ ">125"
)
ggplot(data_vert)+
  geom_bar(aes(x = gender,fill = num_sub2),color = "black")+scale_fill_discrete(name="Кол-во подчиненных")+xlab("Пол")+ylab("")+ggtitle("Количество подчиненных в зависимости от пола")

В первую очередь по графику видно, что мужчин-руководителей в целом больше. Также в каждой отдельной группе наблюдается преимущество мужчин. И этого мы можем сделать вывод, что наше предположение верно, мужчины действительно чаще занимают руководящие должности и это влияет на образование pay gap.

Вид деятельности и разница в зарплатах мужчин и женщин

В связи с предыдущим выводом было решено проверить следующее предположение: разница в зарплатах между мужчинами и женщинами, занимающимся одним и тем же видом деятельности (занимающими равные по уровню должности), должна быть незначительной. Чтобы проверить это, мы делим респондентов по профессиональным группам, в каждой из которых также примерно одинаковый уровень занимаемых должностей и считаем pay gap для каждой из групп.

data_occ = data %>% select(occup08,h5,j13_2) %>% rename(gender = h5, occ = occup08,mwage = j13_2) %>% filter(!is.na(occ)) %>% filter(occ != "ЗАТРУДНЯЮСЬ ОТВЕТИТЬ" & occ != "ОТКАЗ ОТ ОТВЕТА" & occ != "НЕТ ОТВЕТА")

data_occ = data_occ %>% filter(!is.na(mwage)) %>% filter(mwage != "ЗАТРУДНЯЮСЬ ОТВЕТИТЬ" & mwage != "ОТКАЗ ОТ ОТВЕТА" & mwage != "НЕТ ОТВЕТА")
data_occ$mwage=data_occ$mwage=as.numeric(levels(data_occ$mwage))[data_occ$mwage]

data_occ_count = data_occ %>% count(occ) %>% filter(n>sum(n)/100)
data_occ=data_occ %>% filter(occ %in% data_occ_count$occ)

d = data_occ %>% group_by(occ,gender) %>% summarise(median = median(mwage))
datatable(d,caption="Таблица профессиональных групп и медианных зарплат мужчин/женщин", colnames=c("Должность", "gender","meadian"))
ggplot(d)+
  geom_bar(aes(x = occ,y = median, fill = gender), position = "dodge", stat = "identity")+
  theme(axis.text.x = element_text(angle = 45, hjust = 1))+scale_fill_discrete("Пол")+ylab("Медианная зарплата")+xlab("Должности")+coord_flip()+ggtitle("Разница в зарплатах \nпо \nпрофессиональным \nгруппам")

Наше предположение оказалось неверным - pay gap сохраняется во всех профессиональных группах. При этом, чем выше уровень занимаемой должности, тем больше разрыв.

Традиционная семья и заработная плата женщин

Мы переходим к анализу устоявшихся в обществе традиций относительно трудоустройства и положения женщин и мужчин в семье. Наша цель - проверить на данных, имеют ли они место. Наша гипотеза состоит в том, что женщины в целом работают реже, чем мужчины. Это связано с устоявшимися семейными традициями (“мужчина зарабатывает деньги, женщина занимается домом”) и стереотипами (“карьера - не главное для женщины”).

data_work = data %>% dplyr::select(h5,j1, marst) %>% rename(gender = h5,work = j1) 

data_work = data_work %>% filter(work =="Или у Вас сейчас нет работы")
ggplot(data_work)+
  geom_bar(aes(x = gender), color = 'black', fill = 4)+xlab("Пол")+ylab("")+ggtitle("Сравнение долей неработающих индивидов \nпо полу")

Наше предположение подтвердилось.

Проверяя все те же устоявшиеся стереотипы, оценим долю женщин в браке, которые занимаются домашним хозяйством (теряя тем самым возможности для карьерного роста).

data_house = data %>% select(h5,j90,marst) %>% filter(marst=="Состоите в зарегистрированном браке") %>% filter(h5=="ЖЕНСКИЙ")
data_house$j90 = ifelse(data_house$j90=="Домашняя хозяйка, ухаживаете за другими членами семьи, воспитыва\xd0","Домашняя хозяйка",ifelse(data_house$j90 =="Находитесь в официальном отпуске по уходу за ребенком до 3-х лет с " | data_house$j90=="Находитесь в декретном отпуске", "В декретном отпуске", ifelse(data_house$j90 =="Фермер"|data_house$j90 =="Предприниматель"|data_house$j90 =="Работаете на предприятии, в организации, колхозе, совхозе, коопер\xd0"|data_house$j90 =="Работаете не на предприятии, в организации, учреждении, колхозе, с","Есть работа", "Нет работы по другим причинам")))

ggplot(data_house)+
  geom_bar(aes(x=h5,fill = j90),position = "fill", color = 1)+xlab("")+ylab("")+labs(fill="Статус")

Как мы видим по графику, большая часть замужних женщин не работает. Значительная доля женщин занимается в браке домашним хозяйством. На этом же графике мы видим другую причину, по которой женщины могут проигрывать карьерную гонку коллегам-мужчинам, в связи с чем уровень их зарплат относительно зарплат мужчин снижается, - это рождение детей, декретный отпуск, отпуск по уходу за ребенком. В семьях именно женщины в первую очередь занимаются детьми. Как можно увидеть из графика ниже, распределение зарплат женщин, у которых есть дети, незначительно, но все-таки смещено относительно распределения зарплат женщин без детей (медиана и квартили ниже)

data_kinder = data %>% select(h5, j13_2, j144_1,j72_171) %>% rename(gender = h5, mwage = j13_2,important = j144_1,child =j72_171 ) %>% filter(child =="Да" | child=="Нет") %>% filter(mwage!="ЗАТРУДНЯЮСЬ ОТВЕТИТЬ" & mwage!="ОТКАЗ ОТ ОТВЕТА" & mwage!="НЕТ ОТВЕТА")  %>% filter(!is.na(mwage))
data_kinder$mwage=as.numeric(levels(data_kinder$mwage))[data_kinder$mwage]
data_kinder=data_kinder %>% filter(mwage>1000)
female = data_kinder %>%  filter(gender== "ЖЕНСКИЙ")
male = data_kinder %>%  filter(gender== "МУЖСКОЙ")
female$child=female$child %>% as.character()
male$child=male$child %>% as.character()
female$child=female$child %>% as.factor()
male$child=male$child %>% as.factor()
female %>%filter(mwage<150000) %>% ggplot()+
  geom_boxplot(aes(x = child,y= mwage/1000))+ylab("Зарплата (тыс.руб.)")+ xlab("Есть ли дети")+ggtitle("Распределение зарплат женщин \nв зависимости от наличия детей")

Проверим, является ли это различие статистически значимым с помощью теста Манна-Уитни. Нулевая гипотеза - распределение зарплат женщин не зависит от наличия детей.

wilcox.test(mwage ~ child, data = female)

    Wilcoxon rank sum test with continuity correction

data:  mwage by child
W = 765255, p-value = 0.0000000138
alternative hypothesis: true location shift is not equal to 0

P-value составил 0.0000000138 - нулевая гипотеза отвергается, различия в распределении зарплат женщин с детьми и без детей есть и они статистически значимы.

Рассчитаем значение Gender Pay Gap среди тех, у кого есть дети и тех, у кого нет детей:

kin = data_kinder %>% filter(child =="Да") %>% group_by(gender) %>% summarise(median = median(mwage))
gap_kin = 1-kin[2,2]/kin[1,2]
kable(gap_kin,col.names = c("Pay Gap при наличии детей"))
Pay Gap при наличии детей
0.3333333
kin1 = data_kinder %>% filter(child =="Нет") %>% group_by(gender) %>% summarise(median = median(mwage))
gap_kin1 = 1-kin1[2,2]/kin1[1,2]
kable(gap_kin1,col.names = c("Pay Gap при отсутствии детей"))
Pay Gap при отсутствии детей
0.1666667

Pay gap среди тех, у кого есть дети, составил 30%. Pay gap среди тех, у кого нет детей - 16,6%. Существенная разница, которая говорит о том, что наличие детей является важной причиной образования разницы в уровне зарплат.

data_kinder %>%filter(mwage<150000)  %>% filter(child =="Да") %>% ggplot()+
  geom_boxplot(aes(x = gender,y= mwage/1000))+ylab("Зарплата (тыс.руб.)")+ xlab("Пол")+ggtitle("Распределение зарплат у индивидов с детьми \nв зависимости от пола")

Вывод - в России сохраняются традиции патриархальной семьи. Для многих женщин карьера (и соответственно, высокая заработная плата) - не является первым приоритетом, что также ведет к образованию Gender Pay Gap. Появление детей ведет к относительному снижению уровня заработной платы женщины и замедлению ее карьерного роста.

Заключение

Выдвинутая гипотеза была подтверждена - статистически значимые различия между уровнем зарплат мужчин и женщин в России есть. На появление подобного разрыва влияет множество факторов - общее время работы, вертикальная иерархия, наличие детей, род деятельности.