Podklad vypracovaný v rámci Analytického výstupu 13 v rámci Národného projektu „Podpora kvality sociálneho dialógu“: Realizácia politík v oblasti zamestnanosti z pohľadu sociálnych partnerov, zavedenie systému hodnotenia kvality verejných služieb zamestnanosti, hodnotenie dopadov aktívnych opatrení trhu práce.


Príspevok na vykonávanie absolventskej praxe

Tento automatizovaný report poskytuje informácie o jednom z nástrojov aktívnych opatrení na trhu práce (AOTP): Príspevok na vykonávanie absolventskej praxe, ktorý bol implementovaný na Slovensku v roku 2017. Príspevok na vykonávanie absolventskej praxe je poskytovaný na základe § 51 Zákona o službách zamestnanosti č. 2004/5.

1. Opis programu

Na základe Labour Market Policy Database (LMP), Databázy politiky trhu práce, ktorú spravuje Generálne riaditeľstvo Európskej komisie pre zamestnanosť, sociálne záležitosti a inklúziu, Príspevok na vykonávanie absolventskej praxe je klasifikovaný ako “stimuly k zamestnávaniu”, so špecifickým kódom programu 41_SK7.

Cieľom programu Príspevok na vykonávanie absolventskej praxe je: Podporovať aktivity a inovačné prístupy zacielené na vstupujúcich na trh práce. Tieto aktivity by mali kombinovať poradenstvo, odborné poradenstvo, prípravu a/alebo pracovné umiestnenie a podporiť mladých ľudí pri prechode zo školy do zamestnania.

Účastníci programu sú evidovaní uchádzači o zamestnanie do 26 rokov (absolventi).

Oprávnenými užívateľmi sú občan mladší ako 26 rokov veku, ktorý ukončil príslušným stupňom vzdelania sústavnú prípravu na povolanie v dennej forme štúdia pred menej ako dvomi rokmi a od jej ukončenia nemal pravidelne platené zamestnanie.

Implementácia: Počas vykonávania absolventskej praxe môže úrad práce poskytnúť absolventovi školy paušálny príspevok mesačne na úhradu jeho nevyhnutných osobných výdavkov spojených s vykonávaním absolventskej praxe. § 51 (1) Absolventská prax podľa tohto zákona umožňuje získanie odborných zručností a praktických skúseností u zamestnávateľa, ktoré zodpovedajú dosiahnutému stupňu vzdelania absolventa školy. Za absolventa školy sa považuje okrem absolventa školy aj každý uchádzač o zamestnanie do 26 rokov bez ohľadu na to, či absolvoval systematickú odbornú prípravu alebo či získal riadne platené zamestnanie. Absolventská prax sa vykonáva najviac 6 mesiacov, bez možnosti jej predĺženia a opakovaného vykonávania, v rozsahu 20 hodín týždenne. Úrad práce v priebehu absolventskej praxe poskytne absolventovi paušálny príspevok v sume životného minima pre jednu plnoletú fyzickú osobu podľa osobitného predpisu na pokrytie jeho nevyhnutných osobných výdavkov v súvislosti s ukončením absolventskej praxe. Úrad poskytne absolventovi školy náhradu poistného na úrazové poistenie počas vykonávania absolventskej praxe.


1.1 Účastníci a výdavky

#Preparing of participants and expenditures tables 
partSK <- subset(part, geo == 'SK' & year == format(as.Date(params$ep_start),"%Y") & age == 'TOTAL' & sex == 'T' & stk_flow == 'ENT' )
names(programesSK)[1] <- 'lmp_type'
partSK <- merge(partSK, programesSK, by = 'lmp_type', all = T)
partSK <- subset(partSK, substr(Classification, 1, 1) == '2' | substr(Classification, 1, 1) == '4' | substr(Classification, 1, 1) == '5' | substr(Classification, 1, 1) == '6' | substr(Classification, 1, 1) == '7')
partSK_datapie <- subset(partSK, lmp_type == lmp_code | lmp_type == '2' | lmp_type == '4' | lmp_type == '5' | lmp_type == '6' | lmp_type == '7')
partSK_datapie$value <- ifelse(is.na(partSK_datapie$value), 0, partSK_datapie$value)

expSK <- subset(exp, geo == 'SK' & year == format(as.Date(params$ep_start),"%Y") & exptype == 'XTOT' & unit == 'MIO_EUR')
expSK <- subset(expSK, Classification == '2' | Classification == '4' | Classification == '5' | Classification == '6' | Classification == '7')
expSK <- subset(expSK, !is.na(expSK$value))
expSK <- expSK %>% select(Classification, value) %>% group_by(Classification) %>% dplyr::summarise(value = sum(value))

#Share of expenditures and participants at programm
partSK_per <- partSK_datapie %>% select(lmp_type, value) %>% 
  subset(lmp_type != subset(qualitative, qualitative$almp == params$measure)$lmp_type.x[1]) %>%
  mutate(per = paste(round(100 * value / sum(value),2),'%'))

expSK_per <- expSK %>% select(Classification, value) %>% 
  mutate(per = paste(round(100 * value / sum(value),2),'%'))

program <-  data.frame(lmp_type  = c('total', subset(qualitative, qualitative$almp == params$measure)$lmp_type.x[1]),
                       participants = c(sum(partSK_per$value), subset(partSK_datapie, partSK_datapie$almp == params$measure)$value[1]),
                       per = c('100 %', paste(round(subset(partSK_datapie, partSK_datapie$almp == params$measure)$value[1] / sum(partSK_per$value) * 100,2),'%'))
                      )

type_share_exp <- expSK_per$per[expSK_per$Classification == subset(qualitative, qualitative$almp == params$measure)$Classification[1]]
type_share_par <- partSK_per$per[partSK_per$lmp_type == subset(qualitative, qualitative$almp == params$measure)$Classification[1]] 
prog_share_exp <- 20
prog_share_par <- program$per[program$lmp_type == subset(qualitative, qualitative$almp == params$measure)$lmp_type.x[1]]
prog_numb_par <- program$participants[program$lmp_type == subset(qualitative, qualitative$almp == params$measure)$lmp_type.x[1]]

Koláčový graf Účastníci (vľavo) zobrazuje podiel účastníkov v programoch AOTP zoskupených podľa typov AOTP klasifikácie LMP. Podiely vychádzajú z údajov LMP Databázy za kalendárny rok 2017.

Koláčový graf Výdavky (vpravo) zobrazuje podiel výdavkov pomocou rovnakej klasifikácie LMP ako koláčový graf Účastníkov. LMP Databáza vykazuje výdavky iba na úrovni agregovanej skupiny AOTP. Z toho dôvodu nie je možné zistiť výdavky konkrétneho programu.

Graf 1: Zdroje na Príspevok na vykonávanie absolventskej praxe počas 2017

#Preparing data for Pie Chart
#PARTICIPANTS
piechart_P <- select(partSK_datapie, lmp_type, value)

piechart_P$lmp_type <- ifelse(
  piechart_P$lmp_type == '2' | piechart_P$lmp_type == '4' | piechart_P$lmp_type == '5' | piechart_P$lmp_type == '6' | piechart_P$lmp_type == '7',       
  qualitative$class[match(piechart_P$lmp_type, qualitative$Classification)], 
  paste(qualitative$class[match(piechart_P$lmp_type, qualitative$lmp_type.x)], 
        qualitative$Labour.market.services_SK[match(piechart_P$lmp_type, qualitative$lmp_type.x)], 
        sep =': ' ))

piechart_P <- piechart_P[order(piechart_P$lmp_type),]
piechart_P$focus <- ifelse(
  piechart_P$lmp_type == paste(
    subset(qualitative, qualitative$almp == params$measure)$class[1],
    subset(qualitative, qualitative$almp == params$measure)$Labour.market.services_SK[1],
    sep =': '), 
  0.05,
  0)

#EXPENDITURES 
piechart_E <- select(expSK, Classification, value)
piechart_E <- piechart_E[order(piechart_E$Classification),]
piechart_E$Classification <- ifelse(piechart_E$Classification == '2' | piechart_E$Classification == '4' | piechart_E$Classification == '5' | piechart_E$Classification == '6' | piechart_E$Classification == '7', qualitative$class[match(piechart_E$Classification, qualitative$Classification)], qualitative$Labour.market.services[match(piechart_E$Classification, piechart_E$Classification)]) 
piechart_E <- piechart_E[order(piechart_E$Classification),]
piechart_E$focus <- ifelse(
  piechart_E$Classification == subset(qualitative, qualitative$almp == params$measure)$class[1],
  0.05, 0)

## PIE CHART
#PARTICIPANTS
piechart_P$lmp_type <- gsub("(.{25,}?)\\s", "\\1\n", piechart_P$lmp_type)

plot_piechart_P <- ggplot(piechart_P) + 
  theme_no_axes() + 
  theme_void() +
  coord_fixed()+
  ggtitle('Účastníci') +
  geom_arc_bar(aes(x0 = 0, y0 = 0, r0 = 0, r = 1, amount = value, 
                   fill = lmp_type, explode  = focus),
               data = piechart_P, stat = 'pie',color='white')+
  theme(plot.title = element_text(color="black", size=18, face="bold.italic"),
        legend.title = element_text(size=15, face="bold"),
        legend.text = element_text(size=12),
        legend.key.height=unit(1.1, "cm")) +
  guides(fill=guide_legend(title="Typ programu podľa LMP \n a program ")) +
  scale_fill_manual(values=c(ifelse(piechart_P$value != 0 & 
    piechart_P$lmp_type == gsub("(.{25,}?)\\s", "\\1\n",
                                paste(subset(qualitative, qualitative$almp == params$measure)$class[1],
                                      subset(qualitative, qualitative$almp == params$measure)$Labour.market.services[1],
                                      sep =': ')),  
    "steelblue3", 
    ifelse(
      piechart_P$lmp_type == subset(qualitative, qualitative$almp == params$measure)$class[1], 
      "steelblue1", 
      gray.colors(6, start = 0.8)))))

#EXPENDITURES
piechart_E$Classification <- gsub("(.{25,}?)\\s", "\\1\n", piechart_E$Classification)

plot_piechart_E <- ggplot(piechart_E) + 
  theme_no_axes() + 
  theme_void() +
  coord_fixed()+
  geom_arc_bar(aes(x0 = 0, y0 = 0, r0 = 0, r = 1, amount = value, 
                   fill = Classification, explode  = focus),
               data = piechart_E, stat = 'pie',color='white')+
  ggtitle('Výdavky') +
  theme(plot.title = element_text(color="black", size=18, face="bold.italic"),
        legend.title = element_text(size=15, face="bold"),
        legend.text = element_text(size=12),
        legend.key.height=unit(1.1, "cm"))+
  guides(fill=guide_legend(title="Typ programu podľa LMP")) +
  scale_fill_manual(values=c(ifelse(piechart_E$value != 0 &
    piechart_E$Classification == gsub("(.{25,}?)\\s", "\\1\n", subset(qualitative, qualitative$almp == params$measure)$class[1]), 
      "steelblue1", 
      gray.colors(6, start = 0.8))))

Na základe databázy LMP sa počas roku 2017 zúčastnilo na programe Príspevok na vykonávanie absolventskej praxe 5812 jednotlivcov , čo predstavuje 3.01 % z celkového počtu účastníkov na všetkých AOTP na Slovensku (LMP typy 2-7). Kategória Stimuly k zamestnávaniu predstavuje 54.12 % z celkových nákladov na všetky AOTP na Slovenku (typy PTP 2-7) a 61.68 % všetkých účastníkov na AOTP.


1.2 The Príspevok na vykonávanie absolventskej praxe in the context of ALMPs in Slovakia

Najskôr pomocou administratívnych údajov zobrazíme dôležitosť programu Príspevok na vykonávanie absolventskej praxe v kontexte AOTP na Slovensku. Nasledujúci vývojový diagram zobrazuje toky uchádzačov o zamestnanie evidovaných v databáze nezamestnanosti v roku 2017. Toky reprezentujú pohyb jednotlivcov počas dvoch rokov od ich registrácie. Toto obdobie je rozdelené na čiastkové, 6-mesačné obdobia (0/6/12/18/24). Počas týchto čiastkových období sledujeme toky registrovaných uchádzačov o zamestnanie do zamestnania, alebo ich vyradenia z databázy nezamestnaných z iných dôvodov. Uchádzači o zamestnanie sa taktiež môžu presunúť do jedného z programov AOTP. Vyznačená, modrá čiara predstavuje tok uchádzačov o zamestnanie do opatrenia P051, Príspevok na vykonávanie absolventskej praxe.

Graf 2: Príspevok na vykonávanie absolventskej praxe v štruktúre tokov uchádzačov o zamestnanie registrovaných v roku 2017

## Preparing of df
# we observe only  young people under XX (age) which inflow in XXXX (entry year) 
df_r <- subset(df, age <= params$age_group_max)
df_r <- subset(df_r, format(as.Date(df_r$entry),"%Y")== format(as.Date(params$ep_start),"%Y"))
df_r <- df_r %>% mutate_all(na_if,"") #if cells are empty -> change it to NAs
df_r <- subset(df_r, healthy < 3)

# DOVOD VYRADENIA 
dovod_vyradenia = c('V01','V02','V03','V1','V12','V15') #zamestnali sa 

# NASTROJ 
nastroj_kod <- c('Iný dôvod vyradenia','Umiestnenie na TP','P051','P51A2','P054','P052','P54P','P52A','P54R') #nástroje pre mladých 
#another reason a employed treba vždy nechať špecifikované aby sa nám to potom nespojilo s tými ostatnými opatreniami do ktorých evidovaný išli 

## Spojenie DF a ALMPS 
df_almps <- merge(almps, df_r, by = 'klient_id', all.y = T)

# Urobím si dva dataframe, tí, ktorý na ALMPS neboli a tí ktorí boli 
df_no_almps <- subset(df_almps, is.na(df_almps$entrya))
df_almps_ <- subset(df_almps, !is.na(df_almps$entrya))

# Podmienka prieniku času pri databáze pri nezamestnaní a v programe 
df_almps_ <- subset(df_almps_, entry <= entrya & exita <= (exit +7))

# Spojíme dataframe s účastníkmi ALMPS a s tými ktorý sa nezúčastnili na ALMPS
df_almps <- rbind(df_almps_, df_no_almps)
remove(df_almps_, df_no_almps)

# upravíme si dáta ktoré budeme používať pri grafe
df_s <- select(df_almps, klient_id, entrya, exita, entry, exit, nastroj, dovod_vyradenia_kod)
df_s <- relocate(df_s, c(entry, exit), .after = klient_id)
df_s$days <- as.numeric(difftime(df_s$entrya, df_s$entry, units = 'days'))
df_s$days <- ifelse(is.na(df_s$nastroj),as.numeric(difftime(df_s$exit, df_s$entry, units = 'days')), df_s$days)
df_s_almps <- subset(df_s, !is.na(df_s$nastroj))
df_s_noalmps <- subset(df_s, is.na(df_s$nastroj))

df_s_noalmps <- df_s_noalmps %>% 
  mutate(nastroj = case_when(df_s_noalmps$dovod_vyradenia_kod %in% dovod_vyradenia ~ 'Umiestnenie na TP',
                             !df_s_noalmps$dovod_vyradenia_kod %in% dovod_vyradenia ~ 'Iný dôvod vyradenia')
         )

df_s <- rbind(df_s_almps, df_s_noalmps)
remove(df_almps, df_s_almps, df_s_noalmps)

df_s$years <- round(df_s$days/365) 

Sankey <- select(df_s, nastroj, days, years) #dataframe, ktorý budem používať pri tvorbe grafu

Sankey <- Sankey %>%mutate(
  time = case_when(
    Sankey$days %in% seq(0,182,1)  ~ 6,
    Sankey$days %in% seq(183,365,1)  ~ 12, 
    Sankey$days %in% seq(366,548,1)  ~ 18,
    Sankey$days %in% seq(549,730,1)  ~ 24,
    Sankey$days %in% seq(731,10000,1)  ~ 30,
  ) 
)

Sankey <- select(Sankey, nastroj, time)

Sankey$sources <- ifelse(Sankey$time == 6 | Sankey$time == 12 |
                         Sankey$time == 18 | Sankey$time == 24 | Sankey$time == 30, 
                         Sankey$time - 6, Sankey$time)


#zosumarizuj, koľký mladý išli v ktorom roku do ktorého opatrenia
San <- Sankey %>%  group_by(sources, nastroj , time) %>% summarise(num = n(), .groups = 'drop') 

# rozdeľ opatrenia, na tie ostatné almps - OTHER ALMPS 
San_aplmps <- subset(San, nastroj %in% nastroj_kod | nastroj == params$measure)
San_other_aplmps <- subset(San, !nastroj %in% nastroj_kod & !nastroj == params$measure)

San_other_aplmps <- San_other_aplmps %>%  group_by(sources , time) %>% summarise(num = sum(num), .groups = 'drop') 
San_other_aplmps$nastroj <- 'Iný program APTP'
San_other_aplmps <- relocate(San_other_aplmps, nastroj, .after = sources)

San <- rbind(San_aplmps, San_other_aplmps)
remove(San_aplmps, San_other_aplmps)

# uzly grafu (jedinečné), musia tu byť všetky opatrenia aj časové pásma 
node <- data.frame(
  name=c(as.character(San$nastroj),as.character(San$sources))%>% unique()
)

# definovanie koľko registrovaných bude medzi tými rokmi  
velky_df <- data.frame()
for (i in seq(6,30,6)){
  pocet <- San %>%  group_by( 'sources' = sources >= i) %>% summarise(num = sum(num), .groups = 'drop') 
  pocet <- subset(pocet, sources == TRUE)
  pocet$sources <- i
  velky_df <- rbind(velky_df, pocet)
}

# musím si velky_df prisposobiť tak, aby roky boli ako nodes aby som to mohla spojiť s dataframe San s ktorým potom budem ďalej robiť graf
# preto sources budu ako nastroj -> aby som spravila nodes, years su sources ale sources su years -1 v skutočnosti (v san grafe)
colnames(velky_df) <- c('nastroj', 'num')
velky_df$time <- velky_df$nastroj
velky_df$sources <- San$sources[match(velky_df$time, San$time)] 
velky_df <- relocate(velky_df, sources, .before = nastroj)
velky_df <- relocate(velky_df, time, .before = num)

San <- rbind(San, velky_df)

#urobím IDsources a ID target podľa uzlov aby garf vedel ten flow medzi jednotlivími uzlami 
San$IDsource <- match(San$sources, node$name)-1 
San$IDtarget <- match(San$nastroj, node$name)-1

#colors
San$group <- ifelse(San$nastroj == params$measure, 'type_a', 'type_b')

time <- seq(0,24,6)
ALMP <- subset(node, substr(name, 1, 1) == 'P' &  !name == params$measure | name == 'Iný program APTP')
ALMP <-c(ALMP$name)
NOALMP <- c('Iný dôvod vyradenia', 'Umiestnenie na TP') 

node <- node %>% mutate(group = case_when(node$name %in% time ~ 'A',
                                          node$name %in% ALMP ~ 'B',
                                          node$name %in% NOALMP ~ 'C',
                                          node$name == params$measure ~ 'D'
                                          )
)
  

my_color <- 'd3.scaleOrdinal() .domain(["type_a", "type_b", "A","B","C","D"]) .range(["red", "lightgray", "rosybrown","thistle","darkseagreen","red"])'

San <- as.data.frame(San)

node$name_f <- ifelse(
  node$name == params$measure, 
  'Hodnotený program',
  node$name
)

Sankey_younght_NO_half_n <- sankeyNetwork(Links = San, Nodes = node,
                                   Source = "IDsource", Target = "IDtarget",
                                   Value = "num", NodeID = "name_f", 
                                   sinksRight=F, fontSize = 14,
                                   fontFamily = "sans-serif",
                                   colourScale=my_color, LinkGroup="group", NodeGroup="group",
                                   nodePadding=10)
Sankey_younght_NO_half_n

Graf 3: Toky účastníkov po ukončení účasti v programe Príspevok na vykonávanie absolventskej praxe

## Preparing of df
# we observe only  young people under XX (age) which inflow in XXXX (entry year) 
df_r <- subset(df, age <= params$age_group_max)
df_r <- subset(df_r, format(as.Date(df_r$entry),"%Y")== format(as.Date(params$ep_start),"%Y"))
df_r <- df_r %>% mutate_all(na_if,"") #if cells are empty -> change it to NAs
df_r <- subset(df_r, healthy < 3)

# DOVOD VYRADENIA 
dovod_vyradenia = c('V01','V02','V03','V1','V12','V15') #zamestnali sa 

## Spojenie DF a ALMPS 
df_almps <- merge(almps, df_r, by = 'klient_id')

## Vyfiltruj iba tie klient_id. pri ktorých nástroj je params$measure
partic_measure <- df_almps[df_almps$nastroj == params$measure, 'klient_id']
df_almps <- filter(df_almps, klient_id %in% partic_measure) #tu su tí, ktorí boli na aj na params$measure ale aj na iných opatreniach 

# Podmienka prieniku času pri databáze nezamestnaných a v zúčastnili sa evaluated measure
df_almps_measure <- subset(df_almps, entry <= entrya & exita <= (exit +7) & nastroj == params$measure) # tu su tí, ktorí išli v skúmanom čase do opatrenia params$measure 
##### toto je moja základňa môj prvý stĺpec 

##### Podmienka prieniku času pri databáze nezamestnaných a iných programoch ako evaluated measue ale zároveň sú to tí, ktorí už niekedy na evaluated measure už boli 
df_almps_other <- subset(df_almps, entry <= entrya & exita <= (exit +7) & nastroj != params$measure)

# upravíme si dáta ktoré budeme používať pri grafe
df_almps_measure <- select(df_almps_measure, klient_id, entry, exit, entrya, exita, nastroj, dovod_vyradenia_kod)
df_almps_other <- select(df_almps_other, klient_id, entry, exit, entrya, exita, nastroj, dovod_vyradenia_kod)


#smojím iba tých ktorí boli aj v evaluated measure aj v iných opatreniach, all.x = T lebo chceme aj tých ktorý boli iba na evaluated measure (nemuseli sa zúčastniť aj iných programov)
flow <- merge(df_almps_measure, df_almps_other, by = 'klient_id', all.x = T) 

#dni od začatia opatrenia entrya.x po začatie iného opatrenia entrya.y alebo po zamestnanie/odchod z iného dôvodu exit.x
flow$days <- ifelse(is.na(flow$nastroj.y),
                    as.numeric(difftime(flow$exit.x, flow$entrya.x, units = 'days')),
                    as.numeric(difftime(flow$entrya.y, flow$entrya.x, units = 'days')))

#ak je dovod vyradenia NA ale zúčastnili sa na opatrení 
flow$dovod_vyradenia_kod.y <- ifelse(is.na(flow$dovod_vyradenia_kod.y) & !is.na(flow$nastroj.y), 'V01', flow$dovod_vyradenia_kod.y)

#vyfiltruj tých ktorý boli aj na evaluated measure aj na inom opatrení alebo sa zamestnali a days nie je záporné 
#podmienka -> entrya do ďalšieho projektu musí byť väčšie ako entrya do evaluated measure
#flow$days nemôže byť záporné 
flow <- filter(flow, days > 0)

#nastroj -> ak dovod vyradenia sa rovna nejakému prvku z vektoru dovodov vyradenia tak -> employed inak another reason
flow <- flow %>% 
  mutate(nastroj.y = case_when(is.na(flow$nastroj.y) & flow$dovod_vyradenia_kod.x %in% dovod_vyradenia ~ 'Umiestnenie na TP',
                               is.na(flow$nastroj.y) & !flow$dovod_vyradenia_kod.x %in% dovod_vyradenia ~ 'Iný dôvod vyradenia',
                               !is.na(flow$nastroj.y) ~ flow$nastroj.y)
  )


#dataframe, ktorý budem používať pri tvorbe grafu
Sankey_measure <- flow %>% select(nastroj.x, nastroj.y, days) %>% 
           mutate(month = ceiling(days/30.417))

Sankey_measure <- Sankey_measure %>%mutate(
  time = case_when(
    Sankey_measure$month %in% seq(0,6,1)  ~ 6,
    Sankey_measure$month %in% seq(7,12,1)  ~ 12, 
    Sankey_measure$month %in% seq(13,18,1)  ~ 18,
    Sankey_measure$month %in% seq(19,100,1)  ~ 24,
  ) 
)

Sankey_measure$sources <- ifelse(Sankey_measure$time == 6 | Sankey_measure$time == 12 |
                                   Sankey_measure$time == 18 | Sankey_measure$time == 24, 
                                 Sankey_measure$time - 6, 
                                 Sankey_measure$time)

# Opatrenie P032 je ako employed (ak sa budú meniť aj iné opatrenia ako napr. 54R a 54Rp tak tu sa to opraví (%in% c()))
Sankey_measure$nastroj.y <- ifelse(Sankey_measure$nastroj.y == 'P032', 'Umiestnenie na TP', Sankey_measure$nastroj.y)

#zosumarizuj, koľký mladí išli do ktorého opatrenia, zamestnali sa alebo odišli z registra z iných dôvodov
San_measure <- Sankey_measure %>% select(nastroj.y, time, sources) %>%
  group_by(nastroj.y, time, sources) %>% summarise(num = n(), .groups = 'drop') %>%
  rename(nastroj = nastroj.y)

# uzly grafu (jedinečné), musia tu byť všetky opatrenia
node_m <- data.frame(
  name=c(as.character(San_measure$nastroj), as.character(San_measure$sources))%>% unique()
)

# definovanie koľko registrovaných bude medzi tými rokmi  
velky_df <- data.frame()
for (i in seq(6,24,6)){
  pocet <- San_measure %>%  group_by('sources' = sources >= i) %>% summarise(num = sum(num), .groups = 'drop') 
  pocet <- subset(pocet, sources == TRUE)
  pocet$sources <- i
  velky_df <- rbind(velky_df, pocet)
}

# musím si velky_df prisposobiť tak, aby roky boli ako nodes aby som to mohla spojiť s dataframe San s ktorým potom budem ďalej robiť graf
# preto sources budu ako nastroj -> aby som spravila nodes, years su sources ale sources su years -1 v skutočnosti (v san grafe)
colnames(velky_df) <- c('nastroj', 'num')
velky_df$time <- velky_df$nastroj
velky_df$sources <- San_measure$sources[match(velky_df$time, San_measure$time)] 
velky_df <- relocate(velky_df, num, .after = sources)

San_measure <- rbind(San_measure, velky_df)

#urobím IDsources a ID target podľa uzlov aby garf vedel ten flow medzi jednotlivími uzlami 
San_measure$IDsource <- match(San_measure$sources, node_m$name)-1 
San_measure$IDtarget <- match(San_measure$nastroj, node_m$name)-1

#Color 
time <- seq(0,24,6)
NOALMP <- c('Iný dôvod vyradenia', 'Umiestnenie na TP')
node_m <- node_m %>% mutate(group = case_when(node_m$name %in% NOALMP ~ 'A',
                                              !node_m$name %in% NOALMP & !node_m$name %in% time ~ 'B',
                                              node_m$name %in% time ~ 'C'
)
)

San_measure$group <- 'type_a'

my_color <- 'd3.scaleOrdinal() .domain(["type_a", "A","B", "C"]) .range(["lightgray", "darkseagreen", "thistle", "rosybrown", "red"])'

San_measure <- as.data.frame(San_measure)

Sankey_ev.measure <- sankeyNetwork(Links = San_measure, Nodes = node_m,
                                   Source = "IDsource", Target = "IDtarget",
                                   Value = "num", NodeID = "name", 
                                   sinksRight=F, fontSize = 14,
                                   fontFamily = "sans-serif",
                                   colourScale=my_color, LinkGroup="group", NodeGroup="group",
                                   nodePadding=10)
Sankey_ev.measure



2. Dáta a opis vzorky použitej na hodnotenie

Tento report využíva administratívne údaje z registra nezamestnaných uchádzačov o zamestnanie (UoZ) na Slovensku, ktoré sú prepojiteľné s databázou účastníkov na opatreniach AOTP. Export dát zabezpečilo Ústredie práce, sociálnych vecí a rodiny Slovenskej republiky (ÚPSVR) na začiatku roka 2021 a pokrýva obdobie od januára 2014 do decembera 2020.

### DEFINE THE EVALUATION PERIOD #
ep_start <- as.Date(params$ep_start)
ep_end <- as.Date(params$ep_end)
un_spell <- params$spell
measure <- params$measure

    ########################################x
    ## SELECTING THE EVALUATION SAMPLE #
    ########################################x,
    
treated<-filter(almps, nastroj==toString(params$measure))

#Sub-groups to be dropped: 
# - those with ALMP participation 2 years before the EP
IDalmps_before<-unique(almps$klient_id[almps$entrya<ep_start & almps$entrya>=ep_start-730]) 
# - those with ALMP participation in other ALMP during the EP
IDalmps_during_ep<-unique(almps$klient_id[(almps$entrya<=ep_end & almps$entrya>=ep_start) & almps$nastroj!=toString(params$measure)])

###DEFINE THE ELIGIBILITY CRITERIA 
#the EC are measure specific, in the case of looping over multiple measures EC need to be elaborated t a form of table or a list and added to the parameters
#SUBSETTING THE BASE EVALUATION DATASET OF ELIGIBLE 
cond0<-as.logical(df$entry<=ep_end & df$exit>=ep_start) # Being on the register of unemployed during the evaluation period
cond1<-as.logical(df$age < params$age_group_max) 
cond2<-as.logical((df$exit-df$entry)>=un_spell) #LENGTH OF PREVIOUS UNEMPLOYMENT SPELL
cond3<-as.logical(df$entry>=ep_start-730) # Dropping old unemployment spells (cases inflowing more than 730 days before the start of the evaluation period)

dfe<-df[cond0 & cond1 & cond2 & cond3,]
sampleIDs<-unique(df$klient_id[cond0 & cond1 & cond2 & cond3])

###
#### ONLY KEEP THE SPELLS OF PARTICIPANTS DURING WHICH THEY PARTICIPATED 
#### Creating dataframe of participants in the evaluated programme during the evaluation period.
dfa<-filter(treated, entrya<=ep_end & entrya>=ep_start)
npart0<-length(unique(dfa$klient_id))
npart1<-dim(dfa)[1]

#Drop other ALMP participations from the group of participants as well as the eligible non-participants
dfa<-filter(dfa, !klient_id %in% IDalmps_before)
dfe<-filter(dfe, !klient_id %in% IDalmps_before)
dfa<-filter(dfa, !klient_id %in% IDalmps_during_ep)
dfe<-filter(dfe, !klient_id %in% IDalmps_during_ep)



#### Only participants with one participation during the evaluation period are sampled. 
#### JS with multiple participations are droped from the sample
dfa<-dfa %>%
  group_by(klient_id) %>% 
  mutate(rep=n()) # rep is the number of participations of one JS repeating during 2014

dfa<-filter(dfa, rep==1)
npart2<-dim(dfa)[1] # Number of participants after cleaning with multiple ALMP participations

###Participants who also participated in other ALMP measures (§54) are dropped
progOUT<-c("P050", "P50A", "P50C","P50J", "P50K" ,"P51A", "P054", "P54D", "P54E", "P54O", "P54P", "P54U")
outIDs<-unique(almps$klient_id[(almps$entrya>=as.Date(params$ep_start) & almps$entrya<=as.Date(params$ep_end)+730) & as.logical(almps$nastroj %in% progOUT)])
dfa<-(filter(dfa, !klient_id %in% outIDs))
dfe<-(filter(dfe, !klient_id %in% outIDs))

npart3<-length(unique(dfa$klient_id)) # The number of participants after we drop participations in supported employment during the outcome observation period 

#MERGING PARTICIPATIONS AND UNEMPLOYMENT SPELLS
#First we add the date of the entry and exit from the registration into the table of participations in measure (evaluated measure params$measure). We only import entry dates for the individuals in the evaluation sample. 
dfa<-merge(dfa, select(dfe, klient_id, entry, exit), by="klient_id", all.x = TRUE)

#Second we filter only the registrations of members of the evaluation sample during which the programme participation took place. 
dfa<-filter(dfa, dfa$exit+30>=dfa$entrya & dfa$entrya<=ep_end & entrya >= entry) # Keeping only the participations happening during an unemployment spell
npart4<-dim(dfa)[1] # Number of participants after cleaning participations outside an unemployment spell (data quality issue)

## Participants #
particIDs<-unique(dfa$klient_id)
## Eligible #
# nonpartIDs<-sampleIDs[!(sampleIDs %in% particIDs)]
nonpart<-filter(dfe, !(klient_id %in% particIDs))
###Out of the participants only one-time participations happening during an unemployment spell are used 
partic<-merge(dfe, dfa, by = c("klient_id", "entry"), all.x = FALSE)


### Cleaning and renaming #
partic$exit.y<-NULL
partic<-partic %>% rename(exit=exit.x)

nonpart$entrya<-NA
nonpart$exita<-NA
nonpart$nastroj<-NA
nonpart$naklady<-NA
nonpart$projekt<-NA
partic$rep<-NULL

#Filter extreme values (1%) of the waiting time until participation in the evaluated measure 
wte<-quantile(as.numeric(partic$entrya)-as.numeric(partic$entry),na.rm=TRUE, probs=0.99)
partic<-filter(partic, as.numeric(entrya)-as.numeric(entry)<=wte)

esample<-rbind(nonpart, partic)
esample$treated<-!is.na(esample$entrya)
#Filter extreme values of the waiting time until participation in the evaluated measure 

###Unemployment spells ending with LM placements
#esample<-filter(esample, dovod_vyradenia_kod == 'V01' | dovod_vyradenia_kod == 'V02' | dovod_vyradenia_kod == 'V03' | dovod_vyradenia_kod == 'V1' | dovod_vyradenia_kod == 'V12' | dovod_vyradenia_kod == 'V15')

    ########################################x
    ## GENERATING EXPLANATORY VARIABLES #
    ########################################x,
    esample$ent <- as.numeric(as.Date(ep_start))-as.numeric(as.Date(esample$entry))

    ########AGEG
    esample$ageg <- cut_interval(esample$age, 5, labels=FALSE)
    esample$ageg <- as.factor(esample$ageg)
    
    ####Extra columns for dummy variables go into the esample_est for further testing
    esample <- dummy_cols(esample, select_columns = c("ageg"), remove_first_dummy = TRUE)
    ageg_dummies<-colnames(esample)[grepl("ageg_", colnames(esample))]

  #######Regional Unemployment rate during the implementation period
    esample[, "UR_region"] <- esample[, paste0("UR_region_",year(ep_start), "")]
    esample[,grepl("UR_region_", colnames(esample))]<-NULL

  

#Cleaning
#nonpart<-NULL
#partic<-NULL




# Share of repeated unemployment after participation in ALMP
# Merge esample, history table
h_esample <- merge(select(esample, klient_id, entry, exit, dovod_vyradenia_kod, entrya, exita, nastroj, treated), dfh, by = 'klient_id', all.x = T, all.y = F)

# as.Date
entry <- paste('entry', seq(1:15), sep = '')
exit <- paste('exit', seq(1:15), sep = '')

for (e in entry){
  h_esample[ ,e] <- as.Date(h_esample[ ,e], origin = '1970-01-01')
}
for (x in exit){
  h_esample[ ,x] <- as.Date(h_esample[ ,x], origin = '1970-01-01')
}
h_esample$exita <- as.Date(h_esample$exita, origin = '1970-01-01')

#Dropping cases with over than 15 unemployment spells 
h_esample<-filter(h_esample, is.na(entry16)) #subset (klient_id) jobseekers who became unemployment only 15 times 
esample <- subset(esample, klient_id %in% h_esample$klient_id) 
#remove entry16+ and exit16+ columns
h_esample<-select(h_esample, -entry16, -entry17, -entry18, -entry19, -entry20, -exit16, -exit17, -exit18, -exit19, -exit20)

2.1 Opis účastníkov na opatrení a oprávnených uchádzačov o zamestnanie

Dátová vzorka použitá na hodnotenie pozostáva z 108 547 oprávnených jednotlivcov, registrovaných ako uchádzačov o zamestnanie počas hodnotiaceho obdobia od 2017-01-01 do 2017-12-31. Z nich sa počas hodnoteného obdobia na opatrení Príspevok na vykonávanie absolventskej praxe zúčastnilo 5 336 účastníkov. 2 637 účastníkov a 11 602 oprávnených UoZ sme zo vzorky vyradili z dôvodu účasti v inom programe APTP počas, alebo po ukončení, sledovaného obdobia (prípadne opakovanej účasti vo vyhodnocovanom programe). Po očistení týchto prípadov nám vo vzorke zostalo 2 699 účastníkov s jednorázovou účasťou výlučne vo vyhodnocovanom programe. Zároveň sme vybrali 62 264 UoZ ktorý sa programu nezúčastnili, hoci na to v sledovanom období spĺňali všetky nutné podmienky.

Skupiny účastníkov a oprávnených UoZ sa však líšia vo viacerých zo sledovaných znakov. Tabuľka 1 zobrazuje prehľad týchto rozdielov na výbraných znakoch.


Tabuľka 1: Popisné štatistiky účastníkov a oprávnených uchádzačov o zamestnanie (vybrané charakteristiky)

####
## number of participants and eligible 
####

#separate table dfe with participants in ALMP  and eligible 
elig <- distinct_at(nonpart,vars(klient_id),.keep_all = TRUE)
part <- distinct_at(partic,vars(klient_id),.keep_all = TRUE)

#BASIC DESCRIPTIVE TABLE

# The number of participants and eligible in the sample'
#tab1<-cbind(sum(!is.na(dfe$entrya)),sum(is.na(dfe$entrya)))
tab1 <- cbind(format(length(unique(esample$klient_id[esample$treated==TRUE])), big.mark=" ", scientific=FALSE), format(length(unique(esample$klient_id[esample$treated==FALSE])), big.mark=" ", scientific=FALSE))
colnames(tab1) <- c('Účastníci', 'Oprávnení')
tab1 <- data.frame(cbind(Description = 'Počet pozorovaní', tab1))

####
## Age distribution
####

age_par <- part %>% select(age) %>% group_by(age) %>% dplyr::summarise(Participants_total = n())  %>%
  mutate(Participants_percent = paste0(round(100 * Participants_total / sum(Participants_total),2), "%"))

age_elig <- elig %>% select(age) %>% group_by(age) %>% dplyr::summarise(Eligible_total = n())  %>%
  mutate(Eligible_percent = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%"))

age <- merge(age_par, age_elig, by='age', all = T)
age$Participants_percent <- ifelse(is.na(age$Participants_percent), paste(0,'%'), age$Participants_percent)
age$Participants_total <- ifelse(is.na(age$Participants_total), 0, age$Participants_total)

mean_age_par <- round(mean(part$age),1)
mean_age_elig <- round(mean(elig$age),1)

##### MEAN 
mean_age<-data.frame(mean_age_par,mean_age_elig)
mean_age <- cbind(Description = 'Vek', mean_age)
mean_age <- rename(mean_age, Participants = mean_age_par, Eligible=mean_age_elig)
####

age_elig$desc <- 'Účastníci'
age_par$desc <- 'Oprávnení'
age_elig <- age_elig %>% rename(total = Eligible_total, percent = Eligible_percent)
age_par <- age_par %>% rename(total = Participants_total, percent = Participants_percent)
age_r <- rbind(age_par,age_elig)

age_plot <- ggplot(age_r, aes(x = age, y = total, group= desc)) +
  geom_point(aes(color = desc), size = 1.5)+
  geom_line(aes(color = desc), size = 1) + 
  ylim(0,23000) +
  theme_light() +
  geom_text(aes(label = paste(percent, '\n\n' )), col ='black', size = 3, fontface ='italic')+
  labs(
    title = "Compare of age distribution (%)",
    x = "Age",
    y = "Total Count"
  )

####
## Gender distribution
####

gender_par <- part %>% select(male) %>% group_by(male) %>% dplyr::summarise(Participants_total = n())  %>%
  mutate(Participants_percent = paste0(round(100 * Participants_total / sum(Participants_total),2), "%"))

gender_elig <- elig %>% select(male) %>% group_by(male) %>% dplyr::summarise(Eligible_total = n())  %>%
  mutate(Eligible_percent = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%"))

gender <- merge(gender_par, gender_elig, by='male', all = T)

####
male <- data.frame(gender_par[2,3], gender_elig[2,3])
male <- cbind(Description = 'Muži', male)
male <- rename(male, 'Účastníci' = Participants_percent, 'Oprávnení' = Eligible_percent)


####
##  Education distribution
####

education_par <- part %>% select(noedu, primary, lsec, usec, tertiary) %>% 
  group_by(noedu, primary, lsec, usec, tertiary) %>% dplyr::summarise(Participants_total = n(), .groups = 'drop')  %>%
  mutate(Participants = round(100 * Participants_total / sum(Participants_total),2))
education_par <- education_par[!(is.na(education_par$noedu)),]
education_par <- melt(education_par, measure.vars = c('noedu', 'primary', 'lsec', 'usec', 'tertiary'))
education_par <- education_par[education_par$value == 1,] 
education_par <- select(education_par, -value)

education_elig <- elig %>% select(noedu, primary, lsec, usec, tertiary) %>% 
  group_by(noedu, primary, lsec, usec, tertiary) %>% dplyr::summarise(Eligible_total = n(), .groups = 'drop')  %>%
  mutate(Eligible = round(100 * Eligible_total / sum(Eligible_total),2))
education_elig <- education_elig[!(is.na(education_elig$noedu)),]
education_elig <- melt(education_elig, measure.vars = c('noedu', 'primary', 'lsec', 'usec', 'tertiary'))
education_elig <- education_elig[education_elig$value == 1,] 
education_elig <- select(education_elig, -value)

education <- merge(education_par, education_elig, by='variable', all = T)
education <- select(education, variable, Participants, Eligible)
education <- rename(education, Popis = variable)

education <- education%>%mutate(
  Popis = case_when(
    education$Popis ==  'noedu' ~ 'Bez vzdelania',    
    education$Popis ==  'primary' ~ 'Základné', 
    education$Popis ==  'lsec' ~ 'Nižšie sekundárne',
    education$Popis ==  'usec' ~ 'Vyššie sekundárne',
    education$Popis ==   'tertiary' ~ 'Terciárne', 
    TRUE~as.character(education$Popis)
  ) 
)

education <- education %>% group_by(Popis) %>%
  dplyr::summarise('Účastníci' = paste0(sum(Participants),  "%"), 'Oprávnení' = paste0(sum(Eligible),  "%")) 

x <- c('Bez vzdelania','Základné','Nižšie sekundárne', 'Vyššie sekundárne', 'Terciárne')
education <- education %>% slice(match(x, Popis))

####
##  skills
####

l_skills_par <- part %>%  select(flang) %>%  
  mutate(flang = case_when(part$flang == 1 ~ 'Cudzí jazyk')) %>%  
  group_by(flang) %>% summarise(Participants_total = n())  %>%
  mutate(Participants_percent = paste0(round(100 * Participants_total / sum(Participants_total),2), "%")) %>%
  rename(Popis = flang) %>% filter(row_number() == 1L)

l_skills_elig <- elig %>%  select(flang) %>%  
  mutate(flang = case_when(elig$flang == 1 ~ 'Cudzí jazyk')) %>%  
  group_by(flang) %>% summarise(Eligible_total = n())  %>%
  mutate(Eligible_percent = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%")) %>%
  rename(Popis = flang) %>% filter(row_number() == 1L)

PC_skills_par <- part %>%  select(pc) %>%  
  mutate(pc = case_when(part$pc == 1 ~ 'Počitačové zručnosti')) %>%  
  group_by(pc) %>% summarise(Participants_total = n())  %>%
  mutate(Participants_percent = paste0(round(100 * Participants_total / sum(Participants_total),2), "%")) %>%
  rename(Popis = pc) %>% filter(row_number() == 1L)

PC_skills_elig <- elig %>%  select(pc) %>%  
  mutate(pc = case_when(elig$pc == 1 ~ 'Počitačové zručnosti')) %>%  
  group_by(pc) %>% summarise(Eligible_total = n())  %>%
  mutate(Eligible_percent = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%")) %>%
  rename(Popis = pc) %>% filter(row_number() == 1L)

d_skills_par <- part %>%  select(drive) %>%  
  mutate(drive = case_when(part$drive == 1 ~ 'Vodičský preukaz')) %>%  
  group_by(drive) %>% summarise(Participants_total = n())  %>%
  mutate(Participants_percent = paste0(round(100 * Participants_total / sum(Participants_total),2), "%")) %>%
  rename(Popis = drive) %>% filter(row_number() == 1L)

d_skills_elig <- elig %>%  select(drive) %>%  
  mutate(drive = case_when(elig$drive == 1 ~ 'Vodičský preukaz')) %>%  
  group_by(drive) %>% summarise(Eligible_total = n())  %>%
  mutate(Eligible_percent = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%")) %>%
  rename(Popis = drive) %>% filter(row_number() == 1L)


l_skills <- merge(l_skills_par, l_skills_elig, by='Popis', all = T)
PC_skills <- merge(PC_skills_par, PC_skills_elig, by='Popis', all = T)
d_skills <- merge(d_skills_par, d_skills_elig, by='Popis', all = T)

skills <- rbind(l_skills, PC_skills, d_skills)
skills <- select(skills, Popis, Participants_percent, Eligible_percent)
skills <- rename(skills, 'Účastníci' = Participants_percent, 'Oprávnení'=Eligible_percent)

####
##  region
####

part <- part %>% mutate(
  okres = case_when(
    grepl('SK010',okres)  ~ 'Bratislavský', 
    grepl('SK021',okres)  ~ 'Trnavský', 
    grepl('SK022',okres)  ~ 'Trenčiansky', 
    grepl('SK023',okres)  ~ 'Nitriansky', 
    grepl('SK031',okres)  ~ 'Žilinský', 
    grepl('SK032',okres)  ~ 'Banskobystrický', 
    grepl('SK041',okres)  ~ 'Prešovský', 
    grepl('SK042',okres)  ~ 'Košický', 
    TRUE~as.character(okres)
  )
)

elig <- elig %>% mutate(
  okres = case_when(
    grepl('SK010',okres)  ~ 'Bratislavský', 
    grepl('SK021',okres)  ~ 'Trnavský', 
    grepl('SK022',okres)  ~ 'Trenčiansky', 
    grepl('SK023',okres)  ~ 'Nitriansky', 
    grepl('SK031',okres)  ~ 'Žilinský', 
    grepl('SK032',okres)  ~ 'Banskobystrický', 
    grepl('SK041',okres)  ~ 'Prešovský', 
    grepl('SK042',okres)  ~ 'Košický', 
    TRUE~as.character(okres)
  )
)

okres_par <- part %>% select(okres) %>% group_by(okres) %>% dplyr::summarise(Participants_total = n())  %>%
  mutate('Účastníci' = paste0(round(100 * Participants_total / sum(Participants_total),2), "%"))

okres_elig <- elig %>% select(okres) %>% group_by(okres) %>% dplyr::summarise(Eligible_total = n())  %>%
  mutate('Oprávnení' = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%"))

okres <- merge(okres_par, okres_elig, by='okres', all = T)
okres <- select(okres, okres, 'Účastníci', 'Oprávnení')
okres <- rename(okres, Popis = okres)
okres <- okres[okres$Popis != 'N/A',]

####
##  Previous employment
####

prev_emp_part <- part  %>% select(empl) %>% group_by(empl) %>% summarise(Participants_total = n())  %>%
  mutate(Participants_percent = paste0(round(100 * Participants_total / sum(Participants_total),2), "%")) %>% 
  rename(Popis = empl, 'Účastníci' = Participants_percent)  

prev_emp_elig <- elig  %>% select(empl) %>% group_by(empl) %>% summarise(Eligible_total = n())  %>%
  mutate(Eligible_percent = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%")) %>%
  rename(Popis = empl, 'Oprávnení' = Eligible_percent)

prev_emp <- merge(prev_emp_part, prev_emp_elig, by='Popis', all = T)
prev_emp <- select(prev_emp, Popis, 'Účastníci', 'Oprávnení')
prev_emp <- prev_emp[prev_emp$Popis == 1,] 
prev_emp$Popis[prev_emp$Popis == 1 ] <- 'Predošlé zamestnanie'

####
##  Nationality
####
nat_part <- part  %>% select(slovak, hungarian, roma, czech, othern) %>% 
  group_by(slovak, hungarian, roma, czech, othern) %>% summarise(Participants_total = n(), .groups = 'drop') %>%
  mutate('Účastníci' = paste0(round(100 * Participants_total / sum(Participants_total),2),'%')) 
nat_part$othern <- ifelse(nat_part$othern == 'TRUE', 1,0)
nat_part <- melt(nat_part, measure.vars = c('slovak', 'hungarian', 'roma', 'czech', 'othern'))
nat_part <- nat_part[nat_part$value == 1,] 
nat_part <- select(nat_part, -value)

nat_elig <- elig  %>% select(slovak, hungarian, roma, czech, othern) %>% 
  group_by(slovak, hungarian, roma, czech, othern) %>% summarise(Eligible_total = n(), .groups = 'drop') %>%
  mutate('Oprávnení' = paste0(round(100 * Eligible_total / sum(Eligible_total),2),'%')) 
nat_elig$othern <- ifelse(nat_elig$othern == 'TRUE', 1,0)
nat_elig <- melt(nat_elig, measure.vars = c('slovak', 'hungarian', 'roma', 'czech', 'othern'))
nat_elig <- nat_elig[nat_elig$value == 1,] 
nat_elig <- select(nat_elig, -value)

nat <-  merge(nat_part, nat_elig, by='variable', all = T)
nat <- select(nat, variable, 'Účastníci', 'Oprávnení')
nat <- rename(nat, Popis = variable)

nat <- nat %>%mutate(
  Popis = case_when(
    nat$Popis == 'slovak' ~ 'Slovenská', 
    nat$Popis == 'hungarian' ~ 'Maďarská', 
    nat$Popis == 'czech'~ 'Česká', 
    nat$Popis == 'roma' ~ 'Rómska', 
    nat$Popis == 'othern'~ 'Ostatné', 
  ) 
)


x <- c('Slovenská','Maďarská', 'Česká','Rómska','Ostatné')
nat <- nat %>% slice(match(x, Popis))


####
##  Length of the unemployment spell
####

part$un_spell <- as.integer(part$exit - part$entry)
elig$un_spell <- as.integer(elig$exit - elig$entry)

un_spell_t <- cbind(round(mean(part$un_spell),2), round(mean(elig$un_spell),2))
un_spell_t <- data.frame(cbind(Popis = 'Dĺžka nezamestnanosti (v dňoch)', un_spell_t))
un_spell_t <- rename(un_spell_t, 'Účastníci'= V2, 'Oprávnení'=V3)


####
##  Length of spell between unemployment and participation
####

#Rozdiel medzi evidenciou nezamestnanosti a nastúpenia do AOTP 
part$spell_b <- as.integer(part$entrya - part$entry)

spell_bup <- part %>% select(spell_b) %>% 
  mutate(month = ceiling(spell_b/30.417)) #roundup -> ceiling

spell_bup_p <- ggplot(data=spell_bup, aes(month)) + 
  geom_histogram(binwidth=1, fill="grey", color="black", alpha=0.9) +
  theme_light() +
  theme(legend.position = "none")+
  labs(
    title = "Prítok do programu podľa počtu mesiacov od začiatku nezamestnanosti",
    x = "Mesiac",
    y = "Počet účastníkov"
  )  + 
  scale_x_continuous()

####
##  Length of AOTP
####

part$spell_aotp <- as.integer(part$exita - part$entrya)

spell_aotp <- part %>% select(spell_aotp) %>% 
  mutate(month = ceiling(spell_aotp/30.417)) #roundup -> ceiling

spell_aotp_p <- ggplot(data=spell_aotp, aes(month)) + 
  geom_histogram(binwidth=1, fill="grey", color="black", alpha=0.9) +
  theme_light() +
  theme(legend.position = "none") +
  labs(
    title = "Dĺžka účasti \n (v mesiacoch)",
    x = "Mesiace",
    y = "Počet účastníkov"
  ) + 
  scale_x_continuous(breaks = scales::breaks_extended(length(unique(spell_aotp$month))))


####
##  Compare of length spell
####

spell_p <- ggarrange(spell_bup_p, spell_aotp_p)


####
##  In flow
####

a <- format(seq(as.Date(ep_start),length=3,by="1 month"),"%Y-%m")
b <- format(seq((ymd(as.Date(ep_start)) %m+% months(3)),length=3,by="1 month"),"%Y-%m")
c <- format(seq((ymd(as.Date(ep_start)) %m+% months(6)),length=3,by="1 month"),"%Y-%m")
d <- format(seq((ymd(as.Date(ep_start)) %m+% months(9)),length=3,by="1 month"),"%Y-%m")

#vstúpili do programu
in_part <- part %>% select(entrya) %>% group_by(format(as.Date(entrya),"%Y-%m")) %>%
  summarise(Participants_total = n()) %>%
  mutate(Participants_percent = round(100 * Participants_total / sum(Participants_total),2)) 
colnames(in_part)[1] <- 'Description'
in_part <- filter(in_part, str_detect(in_part$Description, (format(as.Date(ep_start),"%Y"))))

in_part <- in_part%>%mutate(
  Description = case_when(
    in_part$Description %in% a ~  paste0('1Q.', (format(as.Date(ep_start),"%Y"))), 
    in_part$Description %in% b ~  paste0('2Q.', (format(as.Date(ep_start),"%Y"))), 
    in_part$Description %in% c ~  paste0('3Q.', (format(as.Date(ep_start),"%Y"))), 
    in_part$Description %in% d ~  paste0('4Q.', (format(as.Date(ep_start),"%Y"))), 
  ) 
)

in_part <- in_part %>% select(Description, Participants_total) %>% group_by(Description) %>%
  summarise(Participants_total = sum(Participants_total)) %>% 
  mutate(Participants = paste0(round(100 * Participants_total / sum(Participants_total),2),'%'))

#sa stali nezamestnaný 
in_elig <- elig %>% select(entry) %>% group_by(format(as.Date(entry),"%Y-%m")) %>%
  summarise(Eligible_total = n()) %>%
  mutate(Eligible_percent = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%")) 
colnames(in_elig)[1] <- 'Description'
in_elig <- filter(in_elig, str_detect(in_elig$Description, (format(as.Date(ep_start),"%Y"))))

in_elig <- in_elig%>%mutate(
  Description = case_when(
    in_elig$Description %in% a ~ paste0('1Q.', (format(as.Date(ep_start),"%Y"))), 
    in_elig$Description %in% b ~ paste0('2Q.', (format(as.Date(ep_start),"%Y"))), 
    in_elig$Description %in% c ~ paste0('3Q.', (format(as.Date(ep_start),"%Y"))), 
    in_elig$Description %in% d ~ paste0('4Q.', (format(as.Date(ep_start),"%Y"))), 
  ) 
)

in_elig <- in_elig %>% select(Description, Eligible_total) %>% group_by(Description) %>%
  summarise(Eligible_total  = sum(Eligible_total)) %>%
  mutate(Eligible = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%")) 

inflow <- merge(in_part, in_elig, by='Description', all = F)
inflow <- select(inflow, Description, Participants, Eligible)


####
##  Outflow
####

#vystúpili z programu

out_part <- part %>% select(exita) %>% group_by(format(as.Date(exita),"%Y-%m")) %>%
  summarise(Participants_total = n()) %>%
  mutate(Participants_percent = round(100 * Participants_total / sum(Participants_total),2)) 
colnames(out_part)[1] <- 'Description'
out_part <- filter(out_part, str_detect(out_part$Description, (format(as.Date(ep_start),"%Y"))))

out_part <- out_part%>%mutate(
  Description = case_when(
    out_part$Description %in% a ~ paste0('1Q.', (format(as.Date(ep_start),"%Y"))), 
    out_part$Description %in% b ~ paste0('2Q.', (format(as.Date(ep_start),"%Y"))), 
    out_part$Description %in% c ~ paste0('3Q.', (format(as.Date(ep_start),"%Y"))), 
    out_part$Description %in% d ~ paste0('4Q.', (format(as.Date(ep_start),"%Y"))), 
  ) 
)

out_part <- out_part %>% select(Description, Participants_total) %>% group_by(Description) %>%
  summarise(Participants_total = sum(Participants_total)) %>% 
  mutate(Participants = paste0(round(100 * Participants_total / sum(Participants_total),2),'%'))

#vystúpili z evidencie -> zamestnali sa 
out_elig <- elig %>% select(exit) %>% group_by(format(as.Date(exit),"%Y-%m")) %>%
  summarise(Eligible_total = n()) %>%
  mutate(Eligible_percent = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%")) 
colnames(out_elig)[1] <- 'Description'
out_elig <- filter(out_elig, str_detect(out_elig$Description, (format(as.Date(ep_start),"%Y"))))

out_elig <- out_elig%>%mutate(
  Description = case_when(
    out_elig$Description %in% a ~ paste0('1Q.', (format(as.Date(ep_start),"%Y"))), 
    out_elig$Description %in% b ~ paste0('2Q.', (format(as.Date(ep_start),"%Y"))), 
    out_elig$Description %in% c ~ paste0('3Q.', (format(as.Date(ep_start),"%Y"))), 
    out_elig$Description %in% d ~ paste0('4Q.', (format(as.Date(ep_start),"%Y"))), 
  ) 
)

out_elig <- out_elig %>% select(Description, Eligible_total) %>% group_by(Description) %>%
  summarise(Eligible_total  = sum(Eligible_total)) %>%
  mutate(Eligible = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%")) 

outflow <- merge(out_part, out_elig, by='Description', all = F)
outflow <- select(outflow, Description, Participants, Eligible)


####
##  Children in the household
####

child_part <- part  %>% select(kids) %>% group_by(kids) %>% summarise(Participants_total = n())  %>%
  mutate(Participants = paste0(round(100 * Participants_total / sum(Participants_total),2), "%")) %>% 
  rename(Description = kids)  

child_elig <- elig  %>% select(kids) %>% group_by(kids) %>% summarise(Eligible_total = n())  %>%
  mutate(Eligible = paste0(round(100 * Eligible_total / sum(Eligible_total),2), "%")) %>%
  rename(Description = kids)

child <- merge(child_part, child_elig, by='Description', all = T)
child <- select(child, Description, Participants, Eligible)
child <- child[child$Description == 1,] 
child$Description[child$Description == 1] <- 'Children in the household'


####
##  Fields of study
####

study_part <- part  %>% select(odbor) %>% group_by(odbor) %>%
  summarise(Participants_total = n()) %>%
  mutate(Participants = round(100 * Participants_total / sum(Participants_total),2)) 

study_elig <- elig  %>% select(odbor) %>% group_by(odbor) %>%
  summarise(Eligible_total = n()) %>%
  mutate(Eligible = round(100 * Eligible_total / sum(Eligible_total),2)) 

study <- merge(study_part, study_elig, by='odbor', all = T)
study <- select(study, odbor, Participants, Eligible)
study$Participants <- ifelse(is.na(study$Participants), 0, study$Participants)

a <- as.character(c(seq(11,19,1)))
b <- as.character(c(seq(21,39,1)))
c <- as.character(c(seq(41,49,1)))
d <- as.character(c(seq(51,59,1)))
e <- as.character(c(seq(61,79,1)))
f <- as.character(c(seq(81,89,1)))
g <- as.character(c(seq(91,98,1)))

study <- study%>%mutate(
  odbor = case_when(
    study$odbor %in% a ~ 'Prírodné vedy', 
    study$odbor %in% b ~ 'Technické vedy a náuky ', 
    study$odbor %in% c ~ 'Poľnohospodársko-lesnícke a veterinárne vedy a náuky', 
    study$odbor %in% d ~ 'Zdravotníctvo', 
    study$odbor %in% e ~ 'Spoločenské vedy, náuky a služby', 
    study$odbor %in% f ~ 'Vedy a náuky o kultúre a umení', 
    study$odbor %in% g ~ 'Vojenské a bezpečnostné vedy a náuky',
    study$odbor == 99 || study$odbor == 0 || study$odbor == 10 ~ 'Všeobecné vedy a služby',
    TRUE~as.character(study$odbor)
  ) 
)

study <- study %>% select(odbor, Participants, Eligible) %>%
  group_by(odbor)  %>% 
  summarise(Participants = sum(Participants), Eligible = sum(Eligible))  %>%
  mutate(Participants = paste0(Participants, "%")) %>%
  mutate(Eligible = paste0(Eligible, "%")) 
study <- rename(study, Description = odbor)


####
##  SUMMARIZE ####
####
colnames(tab1)<-c("Popis", "Účastníci", "Oprávnení")
colnames(mean_age)<-c("Popis", "Účastníci", "Oprávnení")
colnames(male)<-c("Popis", "Účastníci", "Oprávnení")
colnames(prev_emp)<-c("Popis", "Účastníci", "Oprávnení")
colnames(un_spell_t)<-c("Popis", "Účastníci", "Oprávnení")
colnames(child)<-c("Popis", "Účastníci", "Oprávnení")
basics <- rbind(tab1, mean_age, male, prev_emp, un_spell_t, child)

tables <- c('basics', 'education', 'study', 'skills', 'okres', 'nat', 'inflow', 'outflow')

for (name in tables){
  table <- get(name)
  table$Variable <- name 
  colnames(table) <- c("Popis", "Účastníci", "Oprávnení", "Variable")
  assign(name, table)
}

sum_table <- rbind(basics, education, study, skills, okres, nat, inflow, outflow)
sum_table <- sum_table %>% relocate(Variable, .before = Popis) %>%mutate(
  Variable = case_when(
    sum_table$Variable == 'basics' ~ 'Základné štatistiky',
    sum_table$Variable == 'education' ~ 'Stupeň vzdelania',
    sum_table$Variable == 'study' ~ 'Štúdijný odbor',
    sum_table$Variable == 'skills' ~ 'Zručnosti',
    sum_table$Variable == 'okres' ~ 'Kraj',
    sum_table$Variable == 'nat' ~ 'Národnosť',
    sum_table$Variable == 'inflow' ~ 'Prítok do nezamestnanosti',
    sum_table$Variable == 'outflow' ~ 'Odtok z nezamestnanosti',
    TRUE ~ as.character(sum_table$Variable)
  )
) 

sum_table[,2:4]  %>% kbl(format = 'html', booktabs = T , align = 'c', caption = 'Overview', row.names = F) %>%
  column_spec(1,  border_right = T) %>%
  kable_paper('hover', full_width = F) %>%
  pack_rows(index = table(fct_inorder(sum_table$Variable)))
Overview
Popis Účastníci Oprávnení
Základné štatistiky
Počet pozorovaní 2 699 62 264
Vek 21.4 21.8
Muži 37.35% 55.78%
Predošlé zamestnanie 1.85% 4.92%
Dĺžka nezamestnanosti (v dňoch) 258.4 163.68
Children in the household 0.52% 5.73%
Stupeň vzdelania
Bez vzdelania NA% 1.15%
Základné 1.15% 19.98%
Nižšie sekundárne 6.82% 15.78%
Vyššie sekundárne 59.69% 44.85%
Terciárne 32.35% 18.23%
Štúdijný odbor
Poľnohospodársko-lesnícke a veterinárne vedy a náuky 0.29% 1.23%
Prírodné vedy 0.19% 0.28%
Spoločenské vedy, náuky a služby 6.65% 17.9%
Technické vedy a náuky 1.55% 13.2%
Vedy a náuky o kultúre a umení 0.22% 0.98%
Vojenské a bezpečnostné vedy a náuky 0.04% 0.1%
Všeobecné vedy a služby 90.85% 65.44%
Zdravotníctvo 0.19% 0.88%
Zručnosti
Cudzí jazyk 90.18% 74.25%
Počitačové zručnosti 87.96% 72.55%
Vodičský preukaz 61.17% 50.57%
Kraj
Banskobystrický 11.97% 12.14%
Bratislavský 5.08% 9.35%
Košický 20.38% 15.11%
Nitriansky 10.71% 11.18%
Prešovský 20.93% 20.49%
Trenčiansky 11.37% 9.62%
Trnavský 7.48% 8.49%
Žilinský 12.08% 13.61%
Národnosť
Slovenská 93.29% 92.14%
Maďarská 6.52% 7.17%
Česká NA 0.16%
Rómska NA 0.19%
Ostatné 0.19% 0.34%
Prítok do nezamestnanosti
1Q.2017 17.67% 22.76%
2Q.2017 18.27% 27.75%
3Q.2017 23.97% 30.9%
4Q.2017 40.09% 18.59%
Odtok z nezamestnanosti
1Q.2017 5.46% 25.93%
2Q.2017 24.47% 26.66%
3Q.2017 34.81% 25.84%
4Q.2017 35.26% 21.56%

Graf 4 (vľavo) zobrazuje podiely účastníkov programu podľa toho, koľko mesiacov ubehlo od začiatku ich nezamestnanosti do ich zaradenia do programu. Na pravej strane je vidieť podiely účastníkov podľa dĺžky ich účasti v programe.

Graf 4: Časovanie prítoku (vľavo) a dĺžka účasti (vpravo) na Príspevok na vykonávanie absolventskej praxe počas 2017

par(mfrow = c(1,2))
hist(spell_bup$month, 
     breaks= unique(spell_bup$month),
     main = "Prítok do programu \n v mesiacoch od začiatku nezam.",
     xlab = "Mesiac",
     ylab = "Počet")

hist(spell_aotp$month,  
     breaks= unique(spell_aotp$month),
     main = "Dĺžka účasti v programe \n (v mesiacoch)",
     xlab = "Mesiac",
     ylab = "Počet")

par(mfrow = c(1,1))


3 Výsledky účastníkov a oprávnených žiadateľov po účasti v programe

Vyhodnotení účinnosti pomoci poskytovanej UoZ je založené na sledovaní správania sa účastníkov a porovnávať ho so správaním sa oprávnených UoZ. Dostupné údaje nám umožnňujú sledovať výlučne prítomnosť jednotlivcov v evidencií UoZ. Na základe tejto informácie sme zostrojili tri indikátory sledovaného výsledku:
+ Miera prítomnosti v evidencií UoZ (proxy pre mieru zamestnanosti)
+ Dĺžka obdobia od účasti do prvého opustenia evidencie UoZ
+ Kumulatívny počet období (štvrťrokov/mesiacov) mimo evidenciu UoZ

Jednoduché porovnanie hodnôt zvolených indikátorov výsledku by bolo skreslené rozdielným zložením skupiny účastníkov a oprávnených UoZ. Z toho dôvodu vybráme spomedzi oprávnených UoZ kontrolnú skupinu metódou jedného najbližšieho suseda. Takýmto spôsobom odhadneme účinok účasti na opatrení APTP na sledované výsledky populácie účastníkov programu.

Prítomnosť v evidencií UoZ sledujeme v štvrťročnej periodicite, vždy ku začiatku štvrťroka. Graf 5 porovnáva podiel osôb mimo evidencie UoZ samostatne pre účastníkov a oprávnených ex-post vybraných do kontrolnej skupiny. Prítomnosť je zisťovaná na začiatku štvrťroka. Počas štrťroku 0 došlo k účasti v opatrení. Graf zobrazuje podiel účastníkov a kontrolnej skupiny v evidencií UoZ počas jedného roka pred účasťou a troch rokov po účasti v opatrení.

Graf 5: Podiel účastníkov programu a kontrolnej skupiny oprávnených mimo evidencie UoZ

graphER

Rozdiel v podiele týchto dvoch skupín predstavuje efekt opatrneia. Nakoľko bola kontrolná skupina vyberaná Negatívny efekt na prítomnosť v evidencii pozorovaný v období tesne po účasti je v literatúre opísaný ako tzv. efekt uzavretia (lock-in) v opatrení; kedy v dôsledku samotnej účasti, alebo poklesu úsilia v hľadaní si práce, účastníci vykazujú relatívne vyššiu prítomnosť v evidencií UoZ (rovnaký efekt zvykne byť pozorovaný aj pri miere zamestnanosti).

Graf 6: Rozdiel v podiele účastníkov programu a kontrolnej skupiny oprávnených mimo evidencie UoZ

graphATT

Tabuľka 2 zobrazuje rovnaké hodnoty ako Graf 6, doplnené o počet štvrťrokov strávených v evidencií UoZ po účasti v opatrení do prvého opustenia evidencie UoZ (firstempl) a kumulatívny počet štvrťrokov mimo evidenciu UoZ (cumempl).

Tabuľka 2: Priemerné efekty účasti na sledovaných indikátoroch výsledku

resultsDF %>% kbl(format = 'html', booktabs = T , align = 'c',  
                      caption = 'Priemerný efekt účasti na opatrení (ATT)') %>%
  column_spec(1,  border_right = T) %>%
  kable_paper('hover', full_width = F) %>%
  kableExtra::footnote(number = paste('Signif. codes:',  0.0000, ' " *** " ', 0.001, ' " ** " ', 0.01, ' " * " ', 0.05, ' " . " ', 0.1, '" "',  1))
Priemerný efekt účasti na opatrení (ATT)
O_vars effect results_sd pval Significance
empl.4 -0.0007067 0.0013315 0.5955746
empl.3 0.0033729 0.0019709 0.0870228 .
empl.2 -0.0055920 0.0035686 0.1171152
empl.1 -0.0132710 0.0032598 0.0000468 ***
empl0 -0.0201485 0.0043030 0.0000028 ***
empl1 -0.0205940 0.0058649 0.0004458 ***
empl2 -0.1101691 0.0065047 0.0000000 ***
empl3 0.0043875 0.0061425 0.4750488
empl4 0.0182731 0.0071361 0.0104473
empl5 0.0539149 0.0065433 0.0000000 ***
empl6 0.0324593 0.0052865 0.0000000 ***
empl7 0.0247140 0.0050520 0.0000010 ***
empl8 0.0313012 0.0047053 0.0000000 ***
empl9 0.0299400 0.0045005 0.0000000 ***
empl10 0.0162099 0.0045284 0.0003442 ***
empl11 0.0180632 0.0046861 0.0001159 ***
empl12 0.0145832 0.0049258 0.0030707 **
firstempl -0.0269795 0.0258099 0.2958768
cumempl 0.0929347 0.0318302 0.0035036 **
1 Signif. codes: 0 " *** " 0.001 " ** " 0.01 " * " 0.05 " . " 0.1 " " 1

Hodnoty priemernych efektov odhadnutých pre celú populaáciu účastníkov sa môžu výrazne líšiť pre jednotlivé podskupiny účastníkov. Z toho dôvodu reportujeme výsledky v triedení podľa pohlavia, stupňa vzdelania a podielu rómov v obci trvalého bydliska.

Tabuľka 3: Priemerné efekty účasti pre vybrané podskupiny účastníkov

result_tableg %>% kbl(format = 'html', booktabs = T , align = 'c',  
                      caption = 'Priemerný efekt účasti v opatrení podľa pohlavia') %>%
  column_spec(c(1,5,9),  border_right = T) %>%
  kable_paper('hover', full_width = F) %>%
  add_header_above(c(" " = 1, "Spolu" = 4,  "Ženy" = 4, "Muži" = 4)) %>%
  add_header_above(c(" ", " " = 4, "Pohlavie" = 8)) %>%
  kableExtra::footnote(number = paste('Signif. codes:',  0, ' " ** " ', 0.001, ' " * " ', 0.01, ' " * " ', 0.05, ' " . " ', 0.1, '" "',  1))
Priemerný efekt účasti v opatrení podľa pohlavia
Pohlavie
Spolu
Ženy
Muži
effect results_sd pval Significance effect results_sd pval Significance effect results_sd pval Significance
empl.4 -0.0007067 0.0013315 0.5955746 0.0009506 0.0015503 0.5397473 -0.0041745 0.0023765 0.0789969 .
empl.3 0.0033729 0.0019709 0.0870228 . -0.0011144 0.0024236 0.6456577 0.0112085 0.0034101 0.0010131 **
empl.2 -0.0055920 0.0035686 0.1171152 -0.0012199 0.0047413 0.7969455 -0.0096076 0.0072044 0.1823466
empl.1 -0.0132710 0.0032598 0.0000468 *** -0.0076257 0.0047800 0.1106400 -0.0217718 0.0070895 0.0021336 **
empl0 -0.0201485 0.0043030 0.0000028 *** -0.0276267 0.0058307 0.0000022 *** -0.0077318 0.0068789 0.2610158
empl1 -0.0205940 0.0058649 0.0004458 *** -0.0041086 0.0079750 0.6064224 -0.0430646 0.0107043 0.0000574 ***
empl2 -0.1101691 0.0065047 0.0000000 *** -0.1186972 0.0085101 0.0000000 *** -0.1015367 0.0113823 0.0000000 ***
empl3 0.0043875 0.0061425 0.4750488 0.0044006 0.0084389 0.6020402 -0.0001410 0.0115482 0.9902577
empl4 0.0182731 0.0071361 0.0104473
0.0369386 0.0093596 0.0000793 *** -0.0115830 0.0126069 0.3582099
empl5 0.0539149 0.0065433 0.0000000 *** 0.0666050 0.0084540 0.0000000 *** 0.0360341 0.0108767 0.0009231 ***
empl6 0.0324593 0.0052865 0.0000000 *** 0.0281626 0.0062135 0.0000058 *** 0.0379960 0.0093927 0.0000523 ***
empl7 0.0247140 0.0050520 0.0000010 *** 0.0208808 0.0061784 0.0007258 *** 0.0316488 0.0086089 0.0002366 ***
empl8 0.0313012 0.0047053 0.0000000 *** 0.0305277 0.0057238 0.0000001 *** 0.0330652 0.0081583 0.0000506 ***
empl9 0.0299400 0.0045005 0.0000000 *** 0.0315199 0.0055583 0.0000000 *** 0.0264445 0.0078404 0.0007439 ***
empl10 0.0162099 0.0045284 0.0003442 *** 0.0177518 0.0054820 0.0012029 ** 0.0135562 0.0077820 0.0815097 .
empl11 0.0180632 0.0046861 0.0001159 *** 0.0184949 0.0058197 0.0014832 ** 0.0182740 0.0077885 0.0189613
empl12 0.0145832 0.0049258 0.0030707 ** 0.0150681 0.0059944 0.0119477
0.0172927 0.0088237 0.0500194 .
firstempl -0.0269795 0.0258099 0.2958768 -0.0211990 0.0337976 0.5305073 -0.0306159 0.0469233 0.5140997
cumempl 0.0929347 0.0318302 0.0035036 ** 0.1199173 0.0411839 0.0035940 ** 0.0502543 0.0573243 0.3806679
1 Signif. codes: 0 " ** " 0.001 " * " 0.01 " * " 0.05 " . " 0.1 " " 1
result_tablee %>% kbl(format = 'html', booktabs = T , align = 'c',  
                      caption = 'Priemerný efekt účasti v opatrení podľa vzdelania') %>%
  column_spec(c(1,5,9,13),  border_right = T) %>%
  kable_paper('hover', full_width = F) %>%
  add_header_above(c(" " = 1, "Spolu" = 4, 'ZŠ' = 4, 'SŠ bez maturity' = 4, 'SŠ' = 4)) %>%
  add_header_above(c(" ", " " = 4, "Vzdelanie" = 12)) %>%
  kableExtra::footnote(number = paste('Signif. codes:',  0, ' " ** " ', 0.001, ' " * " ', 0.01, ' " * " ', 0.05, ' " . " ', 0.1, '" "',  1))
Priemerný efekt účasti v opatrení podľa vzdelania
Vzdelanie
Spolu
SŠ bez maturity
effect results_sd pval Significance effect results_sd pval Significance effect results_sd pval Significance effect results_sd pval Significance
empl.4 -0.0007067 0.0013315 0.5955746 0.0000000 0.0000000 0.2896112 -0.0110211 0.0051612 0.0327307
-0.0047120 0.0019795 0.0172934
empl.3 0.0033729 0.0019709 0.0870228 . -0.0255477 0.0191002 0.1810389 0.0113849 0.0079616 0.1527221 0.0089461 0.0023918 0.0001838 ***
empl.2 -0.0055920 0.0035686 0.1171152 -0.0146169 0.0622322 0.8143038 -0.0698834 0.0194064 0.0003169 *** -0.0034034 0.0050541 0.5007010
empl.1 -0.0132710 0.0032598 0.0000468 *** -0.2464859 0.0570219 0.0000154 *** 0.0075019 0.0173913 0.6662084 0.0011235 0.0047860 0.8144013
empl0 -0.0201485 0.0043030 0.0000028 *** 0.0661357 0.0586583 0.2595421 0.0009174 0.0137705 0.9468832 -0.0287063 0.0068683 0.0000292 ***
empl1 -0.0205940 0.0058649 0.0004458 *** 0.2110367 0.0682050 0.0019738 ** -0.0149661 0.0227762 0.5111199 -0.0495712 0.0077850 0.0000000 ***
empl2 -0.1101691 0.0065047 0.0000000 *** -0.2165351 0.1077326 0.0444385
-0.1143328 0.0287369 0.0000693 *** -0.1399305 0.0091701 0.0000000 ***
empl3 0.0043875 0.0061425 0.4750488 -0.0761204 0.1128336 0.4999139 -0.0792011 0.0294253 0.0071111 ** -0.0158816 0.0085449 0.0630839 .
empl4 0.0182731 0.0071361 0.0104473
0.1455407 0.1225944 0.2351598 -0.0760702 0.0338830 0.0247625
0.0041360 0.0093208 0.6572309
empl5 0.0539149 0.0065433 0.0000000 *** 0.3227500 0.1043408 0.0019799 ** 0.0747643 0.0281464 0.0079012 ** 0.0531645 0.0088316 0.0000000 ***
empl6 0.0324593 0.0052865 0.0000000 *** 0.1670291 0.1141399 0.1433657 0.0834358 0.0252074 0.0009330 *** 0.0218248 0.0069717 0.0017452 **
empl7 0.0247140 0.0050520 0.0000010 *** 0.0679634 0.1234167 0.5818515 0.0378197 0.0284646 0.1839618 0.0132488 0.0066729 0.0470923
empl8 0.0313012 0.0047053 0.0000000 *** 0.0502859 0.1071517 0.6388580 0.0541388 0.0251502 0.0313486
0.0200171 0.0063551 0.0016341 **
empl9 0.0299400 0.0045005 0.0000000 *** 0.0684580 0.0995201 0.4915278 0.0689575 0.0232797 0.0030552 ** 0.0204688 0.0061354 0.0008494 ***
empl10 0.0162099 0.0045284 0.0003442 *** 0.0076134 0.0758770 0.9200758 0.0183269 0.0225968 0.4173433 0.0074019 0.0061313 0.2273454
empl11 0.0180632 0.0046861 0.0001159 *** 0.1138852 0.0658170 0.0835713 . 0.0040845 0.0265090 0.8775466 0.0085266 0.0059481 0.1517171
empl12 0.0145832 0.0049258 0.0030707 ** 0.0234091 0.0793152 0.7678864 0.0005680 0.0254338 0.9821820 0.0084604 0.0066713 0.2047348
firstempl -0.0269795 0.0258099 0.2958768 0.2431110 0.3542236 0.4925109 -0.1571941 0.1424475 0.2698000 0.1029106 0.0346146 0.0029486 **
cumempl 0.0929347 0.0318302 0.0035036 ** 0.9514517 0.5953913 0.1100369 0.0584426 0.1730994 0.7356460 -0.0768406 0.0441133 0.0815271 .
1 Signif. codes: 0 " ** " 0.001 " * " 0.01 " * " 0.05 " . " 0.1 " " 1
result_tablers %>% kbl(format = 'html', booktabs = T , align = 'c',  
                       caption = 'Priemerný efekt účasti na opatrení podľa podielu Rómov v obci trvalého bydliska') %>%
  column_spec(column_space,  border_right = T) %>%
  kable_paper('hover', full_width = F) %>%
  add_header_above(header = header1) %>%
  add_header_above(header = header2) %>%
  kableExtra::footnote(number = paste('Signif. codes:',  0, ' " ** " ', 0.001, ' " * " ', 0.01, ' " * " ', 0.05, ' " . " ', 0.1, '" "',  1))
Priemerný efekt účasti na opatrení podľa podielu Rómov v obci trvalého bydliska
Spolu
Podiel Rómov v obci
Sample
0-10%
10-100%
effect results_sd pval Significance effect results_sd pval Significance effect results_sd pval Significance
empl.4 -0.0007067 0.0013315 0.5955746 -0.0012504 0.0014477 0.3877437 0.0016519 0.0035121 0.6381102
empl.3 0.0033729 0.0019709 0.0870228 . 0.0058709 0.0021644 0.0066784 ** -0.0073786 0.0046480 0.1124055
empl.2 -0.0055920 0.0035686 0.1171152 -0.0021776 0.0045550 0.6325981 -0.0114245 0.0104370 0.2736825
empl.1 -0.0132710 0.0032598 0.0000468 *** -0.0135162 0.0038381 0.0004290 *** -0.0102359 0.0107025 0.3388711
empl0 -0.0201485 0.0043030 0.0000028 *** -0.0215857 0.0049859 0.0000150 *** -0.0111499 0.0097444 0.2525272
empl1 -0.0205940 0.0058649 0.0004458 *** -0.0280192 0.0069377 0.0000538 *** -0.0150744 0.0157708 0.3391518
empl2 -0.1101691 0.0065047 0.0000000 *** -0.1220795 0.0075501 0.0000000 *** -0.0893179 0.0167031 0.0000001 ***
empl3 0.0043875 0.0061425 0.4750488 -0.0029030 0.0074522 0.6968677 0.0005397 0.0170693 0.9747757
empl4 0.0182731 0.0071361 0.0104473
0.0113451 0.0081299 0.1628692 0.0307410 0.0184782 0.0961860 .
empl5 0.0539149 0.0065433 0.0000000 *** 0.0530143 0.0072620 0.0000000 *** 0.0542384 0.0164098 0.0009490 ***
empl6 0.0324593 0.0052865 0.0000000 *** 0.0256503 0.0059065 0.0000141 *** 0.0397028 0.0125375 0.0015416 **
empl7 0.0247140 0.0050520 0.0000010 *** 0.0206678 0.0054591 0.0001531 *** 0.0304903 0.0130064 0.0190655
empl8 0.0313012 0.0047053 0.0000000 *** 0.0131012 0.0048385 0.0067747 ** 0.0844015 0.0132773 0.0000000 ***
empl9 0.0299400 0.0045005 0.0000000 *** 0.0210499 0.0047132 0.0000080 *** 0.0612925 0.0125829 0.0000011 ***
empl10 0.0162099 0.0045284 0.0003442 *** 0.0120340 0.0048953 0.0139607
0.0370078 0.0120309 0.0020975 **
empl11 0.0180632 0.0046861 0.0001159 *** 0.0094607 0.0049323 0.0550982 . 0.0527101 0.0125057 0.0000250 ***
empl12 0.0145832 0.0049258 0.0030707 ** -0.0011725 0.0052694 0.8239205 0.0704859 0.0135583 0.0000002 ***
firstempl -0.0269795 0.0258099 0.2958768 0.0487358 0.0276918 0.0784189 . -0.1889790 0.0799516 0.0180951
cumempl 0.0929347 0.0318302 0.0035036 ** -0.0094366 0.0350942 0.7880122 0.3460676 0.0925069 0.0001833 ***
1 Signif. codes: 0 " ** " 0.001 " * " 0.01 " * " 0.05 " . " 0.1 " " 1