The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Aan de slag met staat1cho

Wat doet dit package?

staat1cho berekent vier studie-indicatoren per instroomcohort op basis van de 1CHO-aanlevering van DUO:

De pipeline

De functies werken in vaste volgorde. Elke stap bouwt voort op de vorige.

maak_basisbestand()
    └── maak_instroom_cohort()  ──┐
    └── maak_diploma_behaald()  ──┼── bereken_rendement()   ──┐
                                  ├── bereken_uitval()       ──┼── combineer_indicatoren()
                                  └── bereken_studiewissel() ──┘

Voorbeeld met synthetische data

In productie begint de pipeline met maak_basisbestand(), die het 1CHO CSV-bestand inleest. Hier bouwen we een minibestand handmatig om de stappen te laten zien.

library(tibble)

## Drie studenten, twee cohortjaren
## S1: behaalt diploma in 2022 (binnen 3 jaar na instroom 2020)
## S2: valt uit na 1 jaar (verschijnt alleen in 2020)
## S3: wisselt opleiding na 1 jaar (andere opleidingscode in 2021)

hoofd <- "hoofdinschrijving binnen het domein actuele instelling"
bachelor_diploma <- "Hoofd-bachelor-diploma binnen de actuele instelling"

basisbestand <- tibble(
  persoonsgebonden_nummer = c("S1", "S1", "S2", "S3", "S3"),
  inschrijvingsjaar       = c(2020L, 2021L, 2020L, 2020L, 2021L),
  verblijfsjaar_actuele_instelling = c(1L, 2L, 1L, 1L, 2L),
  soort_hoger_onderwijs   = "hbo",
  soort_inschrijving_actuele_instelling = hoofd,
  soort_inschrijving_actuele_instelling_label = hoofd,
  diplomajaar             = c(NA_integer_, 2022L, NA_integer_, NA_integer_, NA_integer_),
  soort_diploma_instelling = c(NA, bachelor_diploma, NA, NA, NA),
  soort_diploma_instelling_label = c(NA, bachelor_diploma, NA, NA, NA),
  geslacht_label = "man",
  opleidingsvorm = "voltijd",
  opleidingsvorm_label = "voltijd",
  indicatie_internationale_student_label = "geen internationale student",
  indicatie_eer_actueel_label = "geen EER-student",
  croho_onderdeel_actuele_opleiding = "techniek",
  croho_onderdeel_actuele_opleiding_label = "techniek",
  opleiding_actueel_equivalent = c("34401", "34401", "34401", "34401", "39999"),
  type_hoger_onderwijs_binnen_soort_hoger_onderwijs = "ba",
  leeftijd_per_peildatum_1_oktober = 19L,
  postcodecijfers_student_op_1_oktober = "4818",
  postcodecijfers_van_de_hoogste_vooropl_voor_het_ho = "4818",
  locatie_label = "Breda"
)

Stap 1: instroomcohort

maak_instroom_cohort() filtert op nieuwe eerstejaarsstudenten. Studenten die al eerder waren ingeschreven (verblijfsjaar > 1) vallen af.

cohorten <- maak_instroom_cohort(basisbestand, soort_ho = "hbo")
cohorten[, c("persoonsgebonden_nummer", "inschrijvingsjaar", "eerstejaar_instelling")]
#> # A tibble: 3 × 3
#>   persoonsgebonden_nummer inschrijvingsjaar eerstejaar_instelling
#>   <chr>                               <int>                 <int>
#> 1 S1                                   2020                  2020
#> 2 S2                                   2020                  2020
#> 3 S3                                   2020                  2020

Stap 2: diploma bepalen

maak_diploma_behaald() zoekt het vroegste diploma per student.

diploma <- maak_diploma_behaald(basisbestand)
diploma
#> # A tibble: 1 × 4
#>   persoonsgebonden_nummer jaar_eerste_diploma verblijfsjaar_eerste_dip…¹ diploma
#>   <chr>                                 <int>                      <int> <chr>  
#> 1 S1                                     2022                          2 Diplom…
#> # ℹ abbreviated name: ¹​verblijfsjaar_eerste_diploma

S1 heeft een diploma in 2022, S2 en S3 niet.

Stap 3: rendement

bereken_rendement() berekent of een student binnen 3, 5 of 8 jaar een diploma heeft behaald.

rendement <- bereken_rendement(cohorten, diploma)
rendement[, c("persoonsgebonden_nummer", "rendement_3jr", "rendement_5jr", "rendement_8jr")]
#> # A tibble: 3 × 4
#>   persoonsgebonden_nummer rendement_3jr         rendement_5jr      rendement_8jr
#>   <chr>                   <fct>                 <fct>              <fct>        
#> 1 S1                      Diploma binnen 3 jaar Diploma binnen 5 … Diploma binn…
#> 2 S2                      Geen diploma          Geen diploma       Geen diploma 
#> 3 S3                      Geen diploma          Geen diploma       Geen diploma

Stap 4: uitval

bereken_uitval() bepaalt de status van elke student: diploma behaald, zittend, of uitgevallen.

## peiljaar = het jaar na het laatste jaar in de data
uitval <- bereken_uitval(basisbestand, diploma, cohorten, jaar = 2023L)
uitval[, c("persoonsgebonden_nummer", "status", "uitval_1jr", "uitval_3jr")]
#> # A tibble: 3 × 4
#>   persoonsgebonden_nummer status          uitval_1jr                  uitval_3jr
#>   <chr>                   <fct>           <fct>                       <fct>     
#> 1 S1                      Diploma behaald Na 1 jaar nog ingeschreven… Na 3 jaar…
#> 2 S2                      Uitgevallen     Uitgevallen binnen 1 jaar   Uitgevall…
#> 3 S3                      Uitgevallen     Na 1 jaar nog ingeschreven… Uitgevall…

Stap 5: studiewissel

bereken_studiewissel() detecteert of een student binnen 1 of 3 jaar van opleiding is gewisseld.

wissel <- bereken_studiewissel(basisbestand, cohorten, diploma, uitval)
wissel[, c("persoonsgebonden_nummer", "studiewissel_1jr", "studiewissel_3jr")]
#> # A tibble: 3 × 3
#>   persoonsgebonden_nummer studiewissel_1jr             studiewissel_3jr   
#>   <chr>                   <fct>                        <fct>              
#> 1 S1                      Niet gewisseld binnen 1 jaar Geen switch bepaald
#> 2 S2                      Geen switch bepaald          Geen switch bepaald
#> 3 S3                      Gewisseld binnen 1 jaar      Geen switch bepaald

Stap 6: combineren

combineer_indicatoren() voegt alle stappen samen tot één analysebestand.

indicatoren <- combineer_indicatoren(cohorten, rendement, uitval, wissel)
indicatoren[, c("inschrijvingsjaar", "opleidingscode", "status", "rendement", "uitval", "studiewissel")]
#> # A tibble: 3 × 6
#>   inschrijvingsjaar opleidingscode status          rendement uitval studiewissel
#>               <int> <fct>          <fct>           <chr>     <chr>  <chr>       
#> 1              2020 34401          Diploma behaald Diploma … Niet … Niet gewiss…
#> 2              2020 34401          Uitgevallen     Geen dip… Uitge… Niet gewiss…
#> 3              2020 34401          Uitgevallen     Geen dip… Uitge… Gewisseld b…

Dashboard

Voor interactieve verkenning van de data kun je het dashboard starten:

start_dashboard()

Het dashboard vraagt om een 1CHO CSV-bestand en berekent automatisch alle indicatoren. Vanuit het dashboard kun je filteren op jaar, locatie, sector en opleiding, en de gefilterde data downloaden als CSV.

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.