Skip to content

Latest commit

 

History

History
233 lines (208 loc) · 8.77 KB

Elemzes.md

File metadata and controls

233 lines (208 loc) · 8.77 KB

Elemzes

Balint Mazzag 2021 11 03

  1. Hasonlítsák össze az oktatók (4-es csoport) és az ügyintézők (5 és 6-os csoport együtt) keresetek szerinti eloszlását a lehető legteljesebben!

Az eredményeket foglalják össze, ahol annak helye van érzékeltessék ábrákkal! Igyekezzenek tömören, lényegretörően végezni a számításokat! Kérjük, egy word vagy pdf fájlban legyenek az eredmények, elemzések! Excelt, vagy más szoftvert természetesen használhatnak, de azok outputja ha feltétlenül kell, függelékként lehet az elemzésükben.

  1. Az egyetemi főiskolai oktatók/tanárok fizetése életkori csoportonként hogyan különbözik egymástól? Hasonlítsák össze valamilyen benchmark adattal, ezen az egyetemen mennyivel keresnek jobban/rosszabbul az egyetemi/főiskolai oktatók/tanárokéletkori csoportonkénti bontásban, mint az országos átlag?

## # A tibble: 6 x 7
##   eletkor_group  mean median    sd alpha3 kurtosis     n
##   <chr>         <dbl>  <dbl> <dbl>  <dbl>    <dbl> <int>
## 1 20-29          398.   372.  96.9  0.636     2.50    37
## 2 30-39          482.   443. 171.   1.28      4.24   116
## 3 40-49          501.   419. 242.   2.14      8.46   209
## 4 50-59          535.   414. 356.   3.16     14.1    191
## 5 60-69          561.   458. 286.   1.82      6.06    94
## 6 Összesen       511.   425. 274.   3.02     15.6    647

Életkor alapján való eloszlása a tanári fizetéseknek

Oktatük és ügyintézők kereseti eloszlása

## Warning: Using alpha for a discrete variable is not advised.

  1. Készítsenek elemzést arról, hogy nem (férfi-nő) szerint a havi átlagos bruttó keresetekben mekkora az átlagos különbség összességében és az egyéb ismérvek hatását kiszűrve, illetve azokkal összekapcsolódva! Használjanak az elemzéshez kétféle módszertant/modellt és hasonlítsák össze a kétféle módszerrel kapott eredmény(eke)t! Írjanak egy összefoglalást is az elemzések tapasztalatairól!

p-score, ols, fa, ..

## # A tibble: 2 x 2
##   nem   `mean(kereset)`
##   <chr>           <dbl>
## 1 Férfi            539.
## 2 Nő               493.

## # A tibble: 647 x 8
##        z nem   eletkor iskvegz      munkakor         kereset eletkor_group    id
##    <dbl> <chr>   <int> <ord>        <ord>              <dbl> <ord>         <int>
##  1 0.521 Férfi      50 Egyetem/Msc  Legfelsőbb veze~   2411. 50-59             1
##  2 0.516 Nő         51 Egyetem/Msc  Legfelsőbb veze~   1073. 50-59             2
##  3 0.507 Férfi      53 Egyetem/Msc  Legfelsőbb veze~   1990. 50-59             3
##  4 0.455 Nő         64 Egyetem/Msc  Legfelsőbb veze~   1609. 60-69             4
##  5 0.393 Férfi      32 Főiskola/Bsc Tanszék/intézet~    706. 30-39             5
##  6 0.477 Nő         33 Egyetem/Msc  Tanszék/intézet~    994. 30-39             6
##  7 0.384 Nő         34 Főiskola/Bsc Tanszék/intézet~    632. 30-39             7
##  8 0.380 Férfi      35 Főiskola/Bsc Tanszék/intézet~    512. 30-39             8
##  9 0.468 Férfi      35 Egyetem/Msc  Tanszék/intézet~    987. 30-39             9
## 10 0.468 Nő         35 Egyetem/Msc  Tanszék/intézet~    880. 30-39            10
## # ... with 637 more rows

## # A tibble: 1 x 3
##     ate  atet atet_no
##   <dbl> <dbl>   <dbl>
## 1  27.1  36.8    20.9

## Warning: Cannot retrieve the data used to build the model (so cannot determine roundint and is.binary for the variables).
## To silence this warning:
##     Call rpart.plot with roundint=FALSE,
##     or rebuild the rpart model with model=TRUE.

Függelék: R kódok

library(tidyverse)
teacher_df <- readxl::read_excel("3. forduló STAT WARS UNI.xlsx", sheet = 2) %>% 
  mutate(
    nem = case_when(
      nem == 1 ~ "Férfi",
      nem == 2 ~ ""
    ),
    eletkor = as.integer(eletkor),
    iskvegz = factor(iskvegz, levels = 1:3, ordered = TRUE),
    iskvegz = fct_relabel(iskvegz, function(l) {
      case_when(
      l == 1 ~ "Legfeljebb érettségi",
      l == 2 ~ "Főiskola/Bsc",
      l == 3 ~ "Egyetem/Msc"
    )}),
    munkakor = factor(munkakor, levels = 7:1, ordered = TRUE),
    munkakor = fct_relabel(munkakor, function(l) {
    case_when(
      l == 1 ~ "Legfelsőbb vezető",
      l == 2 ~ "Tanszék/intézetvezető",
      l == 3 ~ "Egyéb (gazdasági, jogi, műszaki, stb.)",
      l == 4 ~ "Egyetemi/főiskolai oktató/tanár",
      l == 5 ~ "Magasan képzett ügyintéző",
      l == 6 ~ "Ügyintéző/titkárnő",
      l == 7 ~ "Betanított/segédmunkát végző"
    )})
  )

teacher_df <- teacher_df %>% 
  mutate(
    eletkor_group = cut(eletkor, breaks = c((1:7)*10, Inf), right = FALSE, 
                        labels = FALSE),
    eletkor_group = factor(eletkor_group, levels = 1:6, ordered = TRUE),
    eletkor_group = fct_relabel(eletkor_group, function(l) {
      case_when(
        l == 1 ~ "-19",
        l == 7 ~ "70-",
        TRUE ~ str_c(as.numeric(l)*10, "-", as.numeric(l) * 10 + 9)
      )
    })
  )
teacher_df %>% 
  filter(munkakor == "Egyetemi/főiskolai oktató/tanár") %>% 
  select(-eletkor, -munkakor) %>% 
  GGally::ggpairs(aes(color = eletkor_group))
total_summarise <- function(x, g, ...) {
  bind_rows(
    x %>% 
      group_by({{ g }}) %>% 
      summarise(...) %>% 
      ungroup(),
    x %>% 
      summarise(...) %>% 
      mutate(g = "Összesen") %>% 
    select(g, everything()) %>% 
    rename("{{ g }}" := 1)
  )
}
total_summarise(teacher_df, eletkor_group, 
                mean = mean(kereset),
                median = median(kereset),
                sd = sd(kereset),
                alpha3 = moments::skewness(kereset),
                kurtosis = moments::kurtosis(kereset),
                n = n()
                )
teacher_df %>% 
  group_by(eletkor_group, nem) %>% 
  summarise(m = mean(kereset), s = sd(kereset), n = n()) %>% 
  mutate(
    cl = m - s/(n^.5),
    ch = m + s/(n^.5)
  ) %>% 
  ggplot() +
  aes(m, eletkor_group) +
  geom_linerange(aes(xmin = cl, xmax = ch, color = nem), size = 2, alpha = .5) +
  geom_point(aes(fill = nem), shape = 21, size = 3)

GGally::ggpairs(teacher_df, ggplot2::aes(colour=iskvegz))

teacher_df %>% 
  filter(
    munkakor %in% c("Ügyintéző/titkárnő", "Magasan képzett ügyintéző", "Egyetemi/főiskolai oktató/tanár")
  ) %>% 
  mutate(munkakor_group = ifelse(
    munkakor == "Egyetemi/főiskolai oktató/tanár", "Oktató", "ügyintéző"
  )) %>% 
  group_by(munkakor_group) %>% 
  mutate(iskvegz_ratio = round(sum(iskvegz == "Egyetem/Msc")/n(), 2),
         iskvegz_ratio = scales::percent(iskvegz_ratio),
         mean = mean(kereset)) %>% 
  ungroup() %>% 
  ggplot(aes(x = kereset, group = munkakor_group, color = munkakor_group,
             fill = munkakor_group, alpha = iskvegz_ratio)) +
  geom_density() +
  geom_vline(aes(xintercept = mean, color = munkakor_group), linetype = "dashed", size = 0.9) +
  facet_wrap(~nem)+
  labs(alpha = "Mesterfokú diplomával rendelkezők aránya")
teacher_df %>% 
  filter(
    munkakor %in% c("Ügyintéző/titkárnő", "Magasan képzett ügyintéző", "Egyetemi/főiskolai oktató/tanár")
  ) %>% 
  mutate(munkakor_group = ifelse(
    munkakor == "Egyetemi/főiskolai oktató/tanár", "Oktató", "ügyintéző"
  )) %>% 
  GGally::ggpairs(aes(color = munkakor_group))
teacher_df %>% 
  group_by(nem) %>% 
  summarise(mean(kereset)) # TODO
teacher_df %>% 
  lm(formula = kereset ~ .-eletkor_group) %>% 
  GGally::ggcoef_model()
teacher_df %>% 
  select(- eletkor_group) %>% 
  mutate(nem = nem == "Férfi") %>% 
  glm(formula = nem ~ eletkor + iskvegz + munkakor, family = "binomial") %>% 
  predict( type = "response") %>% 
  cbind(teacher_df) %>% 
  rename(z = 1) %>% 
  tibble() %>% 
  mutate(id = row_number())
teacher_df %>% 
  group_by(nem, iskvegz, munkakor, eletkor_group) %>% 
  summarise(kereset = mean(kereset), n = n()) %>% 
  pivot_wider(names_from = nem, values_from = c(kereset, n)) %>% 
  mutate(
    d = kereset_Férfi - kereset_Nő,
    n = n_Férfi + n_Nő
  ) %>% 
  ungroup() %>% 
  summarise(ate = weighted.mean(d, n, na.rm = T),
            atet = weighted.mean(d, n_Férfi, na.rm = TRUE),
            atet_no = weighted.mean(d, n_Nő, na.rm = TRUE))
teacher_df %>% 
  select(- eletkor_group) %>% 
  rpart::rpart(formula = kereset ~ ., cp = .001) %>% 
  rpart.plot::rpart.plot()