In Germany we have a lot discussions about labour shortage and unemployed people how allegedly do not want to work. But how is it really?
I will give you here some instructions and R code to analys the relationship between unemployment and job vacancies between. The data on job
vacancies come from the Institut für Arbeitsmarkt - und Berufsforschung (IAB), and the data on the number of unemployed people come from the
official unemployment statistics of the Bundesagentur für Arbeit.
Your can download the dataset with vacancies from IAB here!
And the official statistic with absolute unemployment rate you can download here!
Then copy the datasets into the datasets folder
Make sure that you installed all packages you need for the code.
install.packages("readxl")
install.packages("tidyverse")
install.packages("gt")
install.packages("stargazer")
Do not forget to update your working directory!
setwd("##### Your directory path ####/Vacancies and structural Unemployment")
Run the code and have fun! :)
The first graph shows the time course between unemployment and October 2010 and January 2024. The vacancies from 2022 onwards are estimates.
Next, you get a table in which the missing jobs are calculated. For reasons of space, it only shows some data. The complete table is included at the end of the code.
Calculation of missing jobs | |||
---|---|---|---|
date | total1 | vacancies1 |
|
2010-10-01 | 2941 | 573.3 | 2367.7 |
2011-01-01 | 3346 | 574.1 | 2771.9 |
2017-01-01 | 2777 | 752.9 | 2024.1 |
2017-04-01 | 2569 | 820.5 | 1748.5 |
2022-10-01 | 2442 | 1631.7 | 810.3 |
2023-01-01 | 2616 | 1324.5 | 1291.5 |
2023-04-01 | 2586 | 1353.7 | 1232.3 |
2023-07-01 | 2617 | 1296.9 | 1320.1 |
2023-10-01 | 2607 | 1450.6 | 1156.4 |
1 Values in thousands | |||
2 From 2020 onwards, the calculation is based on estimates from the IAB |
The next thing the code does is calculate a regression model and output it as a table.
Dependent variable: | |
total | |
Constant | 3,253.375*** |
(80.272) | |
vacancies | -0.633*** |
(0.086) | |
Observations | 54 |
R2 | 0.509 |
Adjusted R2 | 0.499 |
Residual Std. Error | 190.236 (df = 52) |
F Statistic | 53.813*** (df = 1; 52) (p = 0.000) |
Note: | *p<0.1; **p<0.05; ***p<0.01 |