Zweiter Teil der Case Study

Im zweiten Teil der Case Study werden Sie die eingelesenen und aufgearbeiten Daten aus Teil 1 deskriptiv untersuchen. Hierbei erhalten Sie einen Eindruck von den Daten und können mögliche Zusammenhänge entdecken, indem Sie unterschiedliche Informationen visualisieren und auch in Tabellenform auswerten. Ziele des zweiten Teils der Case Study:

  • Daten visualisieren und Zusämmenhänge grafisch veranschaulichen
  • Deskriptive Analysen mittels Korrelationstabellen und deskriptiven Tabellen anfertigen
  • Das Verständnis wie Sie ihre Informationen zu bestimmten Fragestellungen möglichst effektiv aufbereiten
  • Interaktive Grafiken erstellen

Sie erhalten durch deskriptive Analysen einen sehr guten Eindruck von den regionalen Unterschieden innerhalb Deutschlands. Das begleitende 3. RTutor Problem Set gibt ihnen einen sehr guten Eindruck davon, wie die Unterschiede zwischen den einzelnen Ländern auf europäischer Ebene aussehen.

Daten und Pakete laden

Nachdem wir uns im ersten Teil der Case Study alle Daten aus verschiedenen Datenquellen zusammengetragen und in R eingelesen haben, wollen wir in diesem zweiten Teil die darin enthaltenen Informationen analysieren, insbesondere visualisieren.

Hierzu laden wir uns die aus Teil 1 erstellten Datensätze:

library(tidyverse)
library(skimr)
library(sf)
library(viridis)
library(plotly)
library(kableExtra)
library(gt)
library(corrr)
# Daten einlesen
einkommen <- readRDS("data/einkommen.rds")
bundesland <- readRDS("data/bundesland.rds")
landkreise <- readRDS("data/landkreise.rds")
bip_zeitreihe <- readRDS("data/bip_zeitreihe.rds")
gemeinden <- readRDS("data/gemeinden.rds")
gesamtdaten <- readRDS("data/gesamtdaten.rds")
schulden_bereinigt <- readRDS("data/schulden_bereinigt.rds")

Deskriptive Analysen

Univariate deskriptive Analysen

Wir wollen uns zu Beginn unserer Analysen einen Überblick über die Daten verschaffen. D.h. wie viele Landkreise haben wir in den Daten? Wie ist die Verteilung der Schulden, Arbeitslosigkeit und des BIP?

Hierfür wollen wir uns im ersten Schritt die Arbeitslosenquote berechnen. Die Schulden pro Kopf und das BIP pro Kopf hatten wir bereits in dem ersten Teil der Case-Study berechnet. Die Arbeitslosenquote wollen wir als \(Arbeitslosenquote = Erwerbslose / (Erwerbstätige + Erwerbslose)\) berechnen. Bei der Berechnung der Arbeitslosenquote beziehen wir also das komplette Potential an erwerbsfähigen Personen ein.

In den nächsten Abschnitten wollen wir uns die Parameter für die einzelnen Variablen dann genauer anschauen.

# Zuerst wollen wir uns noch die Arbeitslosenquote pro Landkreis berechnen
gesamtdaten <- gesamtdaten %>%
  mutate(alo_quote = (total_alo / (erw+total_alo))*100)

Anzahl an Beobachtungen

Wir wollen zuerst einen Blick auf die Anzahl an Erwerbstätigen und Einwohnern in Deutschland werfen. Hier haben wir 41 Mio. Erwerbstätige und 76,5 Mio. Einwohner in Deutschland. Dies sollte stimmen, da wir Hamburg (1.8 Mio.), Berlin (3.75 Mio.) und Bremen (0.7 Mio.), sowie Bremerhaven (0.1 Mio.) nicht in unserem Datensatz haben. Die Daten wollen wir uns als einfachen Tibble Datensatz anzeigen lassen:

# Wie viele Erwerbstätige und Einwohner (ohne Berlin, Hamburg, Bremen und Bremerhaven) hat Deutschland?
gesamtdaten %>% 
  summarise(total_erw = sum(erw, na.rm=TRUE), total_einwohner = sum(Einwohner, na.rm=TRUE))
## # A tibble: 1 × 2
##   total_erw total_einwohner
##       <dbl>           <dbl>
## 1  41029891        76573483

Nun wollen wir uns die Variablen im Datensatz genauer anschauen. Eine Tabelle nur als Tibble darzustellen ist nicht besonders ansprechend. Wir können uns für einen ersten kurzen Überblick des skimr-Pakets bedienen:

# Anschließend wollen wir eine Summary Statistic für alle Variablen ausgeben lassen
# Entfernen der Histogramme, damit alles auch schön in PDF gedruckt werden kann
gesamtdaten %>%
  select(alo_quote, Schulden_pro_kopf_lk, bip_pro_kopf, landkreis_name) %>%
  skim()
Data summary
Name Piped data
Number of rows 401
Number of columns 4
_______________________
Column type frequency:
character 1
numeric 3
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
landkreis_name 0 1 3 33 0 379 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
alo_quote 2 1.00 5.34 2.38 1.64 3.37 5.05 6.90 13.44 ▇▆▅▂▁
Schulden_pro_kopf_lk 4 0.99 2742.91 2147.50 264.28 1295.03 2080.59 3447.76 14580.57 ▇▂▁▁▁
bip_pro_kopf 2 1.00 36827.71 16196.93 15737.94 27544.90 32592.40 39857.83 165520.71 ▇▁▁▁▁

Wir haben 401 individuelle Beobachtungen in unserem Datensatz. Hierbei handelt es sich um alle Landkreise und kreisfreien Städte in Deutschland. Stimmen diese Angaben? Für einen kurzen Konsistenzcheck wollen wir uns Wikipedia bedienen.

In Deutschland gibt es 294 Landkreise. Die Anzahl der Landkreise pro Bundesland finden wir hier. Weiterhin gibt es in Deutschland 107 kreisfreie Städte, die genaue Auflistung finden wir hier. D.h. unsere 401 Landkreise und kreisfreien Städte sollten stimmen.

Jedoch gibt es nur 379 unterschiedliche Landkreis Namen in unserem Datensatz mit 401 unterschiedlichen Beobachtungen (Regionalschlüsseln). Dies kommt daher, dass z.B. die Stadt München eine Beobachtung ist und der Landkreis München eine weitere Beobachtung mit anderem Regionalschlüssel. D.h. der “landkreis_name” ist der Gleiche, jedoch ist der Regionalschlüssel ein anderer.

Für die Schulden und die Einwohnerzahlen fehlen uns leider Daten für vier Landkreise, für das BIP fehlen uns Daten für zwei Landkreise:

gesamtdaten %>%
  filter(is.na(Einwohner)) %>%
  select(landkreis_name)
## # A tibble: 4 × 1
##   landkreis_name
##   <chr>         
## 1 Hamburg       
## 2 Bremen        
## 3 Bremerhaven   
## 4 Berlin

Leider haben wir hier in den Originaldaten keine Informationen zu Schulden und BIP für diese Städte, daher können wir sie nicht mit in unsere Analysen einbeziehen.

Beschreibung der Tabelle

Arbeitslosenquote

Im Durchschnitt liegt die Arbeitslosenquote in 2017 bei 5,34 Prozent. Dies mag uns zuerst etwas hoch erscheinen, jedoch sollten wir bedenken, dass wir alle Arbeitslosen mit in unsere Analyse einbezogen haben, d.h. Bezieher von SGB II und SGB III. Ein kurzer Konsistenzcheck auf Statista zeigt uns die dort gemeldete Arbeitslosenquote von 5.7% für 2017. Unsere niedrigere Quote könnte insbesondere daran liegen, dass die Großstädte Berlin und Hamburg nicht in unserer Analyse enthalten sind. Die Standardabweichung beträgt 2,38 und zeigt damit, dass es in Deutschland deutliche regionale Unterschiede bzgl. der Arbeitslosenquote gibt. Ein Blick auf die Verteilung zeigt, dass der Landkreis mit der geringsten Arbeitslosenquote nur eine Arbeitslosenquote von 1,63% (p0 in der obigen Tabelle) aufweist und der Landkreis mit der höchsten Arbeitslosenquote von 13,44% (p100 in der obigen Tabelle). Zwar sind die Werte noch ein ganzes Stück von dem Durchschnitt der Arbeitslosenquote in Spanien entfernt (17% im Jahr 2017), zeigen jedoch schon, dass es auch in Deutschland durchaus Regionen mit einer sehr hohen Arbeitslosenquote gibt.

Verschuldung pro Kopf

Bei der Verschuldung der Landkreise ergibt sich ein ähnliches Bild. Durchschnittlich beträgt die Verschuldung der Landkreise 2743€, mit einer Standardabweichung von 2148€. D.h. auch hier gibt es eine große Bandbreite bzgl. der Verschuldung einzelner Landkreise.

BIP pro Kopf

Wie schon bei der Arbeitslosenquote und der Verschuldung sehen wir auch bei dem BIP pro Kopf deutliche Unterschiede zwischen den einzelnen Landkreisen in Deutschland. Im Durchschnitt liegt das BIP pro Kopf in den Landkreisen bei 36827€, jedoch haben wir eine Standardabweichung von 16196€, was zuerst nach sehr viel aussieht. Dies könnte jedoch an einzelnen Landkreisen liegen (so hat ein Landkreis bspw. ein BIP pro Kopf von 165520€). Da der Median des BIP pro Kopf bei 32592€ liegt haben wir hier schon einen Hinweis, dass das BIP pro Kopf vermutlich nicht normalverteilt über alle Landkreise ist und es wohl einzelne Ausreißer in den Daten gibt.

Summary Statistics auf Bundeslandebene für die Arbeitslosigkeit

Nachdem wir im vorherigen Abschnitt bereits gesehen haben, dass es wohl deutliche regionale Unterschiede bei allen Variablen geben muss, wollen wir uns nun noch die Arbeitslosenquote auf Bundeslandebene anschauen. Erinnern wir uns daran das wir hier Querschnittsdaten für das Jahr 2017 für alle deutschen Landkreise betrachten. Weiterhin hat uns die vorherige Tabelle bereits gezeigt, dass wir mit “missing Values” rechnen müssen (n_missing bei der skimr-Tabelle). Um nun einen ersten Überblick über die regionale Verteilung der Arbeitsenquote in 2017 zu gewinnen schauen wir uns die Arbeitslosenquote auf Bundeslandebene an, aggregiert über die Landkreise eines Bundeslandes. Hierzu wollen wir uns des Pakets kableExtra bedienen um schönere Tabellen zu erstellen:

bula_data <- gesamtdaten %>% 
  group_by( bundesland_name ) %>%
  summarise(mean_alo = mean(alo_quote), sd_alo = sd(alo_quote), median_alo = median(alo_quote)) %>%
  ungroup()

bula_data %>%
  arrange( mean_alo ) %>%
  filter( !is.na(mean_alo) ) %>%
  kbl(col.names = c("Bundesland",
                    "Mittelwert",
                    "Std.",
                    "Median"), digits = 2) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
  kable_paper(full_width = F) %>%
  row_spec(c(7,9, 11,12,14), bold = T, color = "white", background = "#BBBBBB") %>%
  add_header_above(c(" " = 1, "Arbeitslosenquote" = 3), align = "c") %>%
  footnote(general = "Wir haben keine Informationen zu Berlin und Hamburg, weshalb sie nicht in der Tabelle aufgeführt wurden.", 
           general_title = "Bitte beachten: ",
           number = "Die ostdeutschen Bundesländer sind grau hinterlegt.")
Arbeitslosenquote
Bundesland Mittelwert Std. Median
Bayern 3.04 0.77 3.00
Baden-Württemberg 3.31 0.64 3.33
Hessen 5.01 1.35 5.06
Rheinland-Pfalz 5.31 1.47 5.26
Saarland 5.85 1.73 5.32
Niedersachsen 6.16 1.77 6.01
Thüringen 6.30 1.80 5.70
Schleswig-Holstein 6.36 1.00 6.82
Sachsen 6.65 1.08 6.31
Nordrhein-Westfalen 7.15 2.43 6.88
Brandenburg 7.99 1.95 8.28
Mecklenburg-Vorpommern 8.45 1.58 8.00
Bremen 8.95 2.54 8.95
Sachsen-Anhalt 9.03 1.59 8.91
Bitte beachten:
Wir haben keine Informationen zu Berlin und Hamburg, weshalb sie nicht in der Tabelle aufgeführt wurden.
1 Die ostdeutschen Bundesländer sind grau hinterlegt.

Hier sehen wir insbesondere für Landkreise in Bayern und Baden-Württemberg Arbeitslosenquoten von durchschnittlich unter 4% und für Landkreise in Sachsen-Anhalt, Bremen und Mecklenburg-Vorpommern Arbeitslosenquoten von durchschnittlich über 8%. Es fällt weiterhin auf, dass die Landkreise in ehemaligen ostdeutschen Bundesländern alle sehr hohe Arbeitslosenquoten aufweisen. Weiterhin ist die Standardabweichung, d.h. die Streuung um den Mittelwert, insgesamt für die Landkreise der einzelnen Bundesländer vergleichbar. Mit rund 1-2 Prozentpunkten ist die Standardabweichung auch recht hoch und deutet auf eine nicht unerhebliche Streuung unter den verschiedenen Landkreisen hin. Der Median für die Arbeitslosenquote der Landkreise liegt recht nahe am Mittelwert, was darauf hindeutet das die Landkreise in den einzelnen Bundesländern sich nicht stark voneinander unterscheiden (die Standardabweichungen sind auch recht klein). Da wir hier sehr große Unterschiede zwischen Ost- und Westdeutschland festgestellt haben wollen wir uns eine Dummyvariable “ost” generieren, welche 0 für alle ehemaligen westdeutschen und 1 für alle ehemaligen ostdeutschen Bundesländer ist:

gesamtdaten <- gesamtdaten %>%
  mutate( ost = as.factor(ifelse(bundesland_name %in% c("Brandenburg", "Mecklenburg-Vorpommern", "Sachsen", "Sachsen-Anhalt", "Thüringen"), 1, 0)),
          ost_name = ifelse(ost == 1, "Ostdeutschland", "Westdeutschland"))

Durch diese Aufteilung treten die Unterschiede in der Arbeitslosenquote zwischen den ehemaligen ost- und westdeutschen Landkreisen besonders stark zutage. Insbesondere wenn wir uns die Quantile anschauen: Im 25% Quantil in Ostdeutschland ist die Arbeitslosenquote bei 6,04%, in Westdeutschland ist das 75% Quantil bei einer Arbeitslosenquote von 6,22%!

gesamtdaten %>%
  group_by(ost_name) %>%
  summarise(mean_alo = mean(alo_quote, na.rm = T), sd_alo = sd(alo_quote, na.rm = T), min_alo = min(alo_quote, na.rm = T), q25 = quantile(alo_quote, c(0.25), na.rm = T), median_alo = median(alo_quote, na.rm = T), q75 = quantile(alo_quote, 0.75, na.rm = T), max_alo = max(alo_quote, na.rm = T)) %>%
  ungroup() %>%
  kbl(col.names = c("Bundesland",
                    "Mittelwert",
                    "Std.",
                    "Minimum",
                    "P25",
                    "Median",
                    "P75",
                    "Maximum"), digits = 2) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
  kable_paper(full_width = F) %>%
  add_header_above(c(" " = 1, "Arbeitslosenquote" = 7), align = "c") %>%
  footnote(general = "Wir haben keine Informationen zu Berlin und Hamburg, weshalb sie nicht in der Berechnung enthalten sind.",
           general_title = "Bitte beachten: ")
Arbeitslosenquote
Bundesland Mittelwert Std. Minimum P25 Median P75 Maximum
Ostdeutschland 7.49 1.96 3.76 6.04 7.34 8.87 12.90
Westdeutschland 4.84 2.18 1.64 3.21 4.25 6.22 13.44
Bitte beachten:
Wir haben keine Informationen zu Berlin und Hamburg, weshalb sie nicht in der Berechnung enthalten sind.

Nun haben wir uns ein erstes Bild über die Daten, insbesondere die Arbeitslosigkeit in 2017 machen können. Natürlich sollten die von uns heruntergeladenen Informationen zum BIP und den Schulden der einzelnen Landkreise auch berücksichtigt werden und wir können diese unseren Tabellen hinzufügen:

bula_data_all <- gesamtdaten %>% 
  group_by( bundesland_name ) %>%
  summarise(mean_alo = mean(alo_quote), sd_alo = sd(alo_quote), mean_bip_kopf = mean(bip_pro_kopf), sd_bip_kopf = sd(bip_pro_kopf), mean_schulden_kopf = mean(Schulden_gesamt/Einwohner), sd_schulden = sd(Schulden_gesamt/Einwohner)) %>%
  ungroup()

bula_data_all %>%
  arrange( mean_alo ) %>%
  filter( !is.na(mean_schulden_kopf) ) %>%
  kbl(col.names = c("Bundesland", "Mittelwert","Std.","Mittelwert","Std.", "Mittelwert","Std."), digits = 2, format = "html", 
      caption = "Deskriptive Tabelle komplett") %>%
  #kbl(col.names = c("Mittelwert","Std.", "Mittelwert","Std."), digits = 0) %>%
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) %>%
  kable_paper(full_width = F) %>%
  row_spec(c(7,9, 11,12,13), bold = T, color = "white", background = "#BBBBBB") %>%
  add_header_above(c(" " = 1, "Arbeitslosenquote" = 2, "BIP pro Kopf" = 2, "Schulden pro Kopf" = 2), align = "c") %>%
  footnote(general = "Wir haben keine Informationen zu Berlin, Hamburg und Bremen bzgl. ihrer Schulden pro Kopf, weshalb sie nicht in der Tabelle aufgeführt wurden.", 
           general_title = "Bitte beachten: ",
           number = "Die ostdeutschen Bundesländer sind grau hinterlegt.") 
Deskriptive Tabelle komplett
Arbeitslosenquote
BIP pro Kopf
Schulden pro Kopf
Bundesland Mittelwert Std. Mittelwert Std. Mittelwert Std.
Bayern 3.04 0.77 42891.12 20008.07 1896.94 1399.73
Baden-Württemberg 3.31 0.64 43673.84 12934.97 2185.49 1612.86
Hessen 5.01 1.35 40082.52 16755.57 3730.85 2870.38
Rheinland-Pfalz 5.31 1.47 33954.05 13965.48 3130.70 3593.36
Saarland 5.85 1.73 32923.33 7383.88 5958.80 1363.06
Niedersachsen 6.16 1.77 35274.47 22951.65 1941.34 1381.10
Thüringen 6.30 1.80 28009.18 5925.85 2832.09 547.15
Schleswig-Holstein 6.36 1.00 32494.36 7691.09 2601.65 1700.98
Sachsen 6.65 1.08 28562.48 5242.58 2305.58 674.06
Nordrhein-Westfalen 7.15 2.43 35807.86 10894.53 4243.47 2483.34
Brandenburg 7.99 1.95 28803.45 5853.89 2831.16 1473.58
Mecklenburg-Vorpommern 8.45 1.58 28193.92 6239.42 3564.62 1667.49
Sachsen-Anhalt 9.03 1.59 26810.40 4096.90 2809.25 1092.19
Bitte beachten:
Wir haben keine Informationen zu Berlin, Hamburg und Bremen bzgl. ihrer Schulden pro Kopf, weshalb sie nicht in der Tabelle aufgeführt wurden.
1 Die ostdeutschen Bundesländer sind grau hinterlegt.

Was wir hier gut sehen können ist folgendes: Für alle Bundesländer in denen wir niedrige Arbeitslosenquoten pro Landkreis haben gibt es auch durchschnittlich ein hohes BIP pro Kopf über die Landkreise des Bundeslandes hinweg. D.h. speziell in unserem Datensatz von 2017 ist in den Bundesländern mit einer durchschnittlich hohen Wirtschaftsleistung in den Landkreisen die Arbeitslosenquote gering. Insbesondere für ostdeutsche Landkreise ist das BIP pro Kopf durchschnittliche nicht über 30 000€, bei den westdeutschen Landkreisen liegt das BIP pro Kopf hingegen durchschnittliche über 30 000€. Bei den Schulden ist dieser Sachverhalt weniger deutlich ausgeprägt. Es gibt westdeutsche Landkreise, wie z.B. in den Bundesländern Bayern und Baden-Württemberg, mit sehr geringen Schulden pro Kopf, doch dies trifft auch für Landkreise in Sachsen oder Thüringen zu. Insbesondere Landkreise im Saarland haben durchschnittlich eine sehr hohe Verschuldung pro Kopf von über 5900€.

Allein durch den Mittelwert und die Standardabweichung konnten wir bereits sehr viel über unsere Daten lernen und haben hier schon einige deutliche Unterschiede zwischen ostdeutschen und westdeutschen Landkreisen feststellen können.

Wir können in deskriptiven Statistiken nun nicht nur Ouerschnittsdaten für ein bestimmtes Jahr betrachten, sondern auch Paneldaten analysieren. Hierbei können wir den Mittelwert und die Standardabweichung über den kompletten Datensatz bilden, wie in den Querschnittsdaten, oder wir können Trends in den Daten beschreiben. Eine solche Trendanalyse wollen wir mit der folgenden Tabelle unternehmen. Dieses mal nehmen wir für unsere Analyse das Paket gt.

bundesland_name <- gesamtdaten %>%
  select(bundesland_name, bundesland, ost_name) %>%
  distinct() %>%
  rename(Regionalschluessel = bundesland)

bip_daten <- bip_zeitreihe %>%
  left_join(., bundesland_name, by="Regionalschluessel") %>%
  filter( nchar(Regionalschluessel) == 2 ) %>%
  filter( Regionalschluessel != 17) %>% #17 = Deutschland
  filter( Jahr == 1992 | Jahr == 2005 | Jahr == 2017) %>%
  group_by(ost_name, bundesland_name, Jahr) %>%
  summarise( mean_bip = mean(bip_pro_kopf)) %>%
  ungroup()


bip_daten %>% 
  pivot_wider(names_from = "Jahr", values_from = "mean_bip") %>%
  gt(groupname_col = "ost_name") %>% 
  fmt_number(columns = vars(`1992`, `2005`, `2017`), decimals = 0) %>%
  fmt_currency(columns = vars(`1992`, `2005`, `2017`), rows = 1, currency = "EUR", decimals = 0) %>%
  cols_align(align = "left",
             columns = vars(`bundesland_name`)) %>% 
  cols_label(bundesland_name = md("")) %>%
  tab_spanner(label = "BIP pro Kopf in den einzelnen Bundesländern", columns = vars(`1992`, `2005`, `2017`)) %>% 
  tab_style(
    style = cell_text(color = "black", weight = "bold"),
    locations = list(
      cells_column_spanners(everything()),
      cells_column_labels(everything())
    )
  ) %>%  
  tab_options(
    row_group.border.top.width = px(3),
    row_group.border.top.color = "black",
    row_group.border.bottom.color = "black",
    table_body.hlines.color = "white",
    table.border.top.color = "white",
    table.border.top.width = px(3),
    table.border.bottom.color = "white",
    table.border.bottom.width = px(3),
    column_labels.border.bottom.color = "black",
    column_labels.border.bottom.width = px(2),
  ) %>% 
  tab_source_note(md("**Daten**: Statistische Ämter Deutschlands<br>**Inspiration**: @thomas_mock"))
BIP pro Kopf in den einzelnen Bundesländern
1992 2005 2017
Ostdeutschland
Brandenburg 9,667 19,140 28,265
Mecklenburg-Vorpommern 9,397 17,984 27,428
Sachsen 9,785 19,980 29,852
Sachsen-Anhalt 9,124 18,580 27,317
Thüringen 8,896 18,485 28,394
Westdeutschland
Baden-Württemberg 25,458 31,917 45,260
Bayern 24,263 32,124 46,726
Berlin 21,848 26,741 39,320
Bremen 28,401 37,841 47,638
Hamburg 38,063 51,832 64,042
Hessen 27,050 35,068 44,972
Niedersachsen 20,383 25,010 36,195
Nordrhein-Westfalen 22,793 28,090 37,929
Rheinland-Pfalz 20,788 24,567 34,428
Saarland 20,626 27,397 35,510
Schleswig-Holstein 20,256 23,985 32,094
Daten: Statistische Ämter Deutschlands
Inspiration: @thomas_mock

Auch in dieser Tabelle treten die Unterschiede zwischen westdeutschen und ostdeutschen Landkreisen zutage. Während die westdeutschen Landkreise bereits im Jahr 1992 ein BIP pro Kopf von durchschnittlich über 20 000€ aufweisen konnten, hatten viele ostdeutsche Landkreise diese Schwelle noch nicht einmal im Jahr 2005 erreicht. Jedoch gibt es seit dem Jahr 1992 einen Aufholprozess der ostdeutschen Landkreise an die westdeutschen Landkreise. Dieser Prozess fand jedoch hauptsächlich in den Jahren direkt nach der Wende statt. Z.B. war das durchschnittliche BIP pro Kopf in den Landkreisen in Thüringen im Jahr 1992 nur 34,9% des durchschnittlichen BIP pro Kopf der Landkreise in Baden-Württemberg. In 2005 kletterte der Anteil bereits auf 57,9% und in 2017 liegt er bei 62,7%. Durch die Ergebnisse unserer Tabelle bestärkt, könnten wir vermuten das die Erneuerung der Infrastruktur und der Ansiedlung neuer Industriezweige in den ostdeutschen Landkreisen zu einem schnelleren Wachstum dieser Landkreise direkt nach der Wende und in den 1990er Jahren geführt hat. Dieses Wachstum hat sich jedoch in den letzten Jahren deutlich verlangsamt und es kommt nur noch zu einer sehr moderaten Anpassung des BIP pro Kopf.

Visualisierung der Unterschiede

Tabellen sind hilfreich um Informationen kompakt zu präsentieren. Jedoch ist es oft ebenso wichtig (und manchmal für ihre Argumentation umso wichtiger) Erkenntnisse visuell zu veranschaulichen. In diesem Abschnitt wollen wir mehr über die Zusammensetzung jeder Variablen erfahren und dafür Grafiken verwenden.

Arbeitslosenquote

Die Variable, welche uns besonders interessiert ist die Arbeitslosenquote, insbesondere da ihr Cousin gemeint hat, dass Deutschland kein Problem mit der Arbeitslosigkeit hat. Wir wollen hier alle Datenpunkte zeigen, d.h. die Arbeitslosenquote eines jeden Landkreises für das Jahr 2017, getrennt nach Ost- und Westdeutschland. Weiterhin wollen wir unsere Grafik um einen Boxplot erweitern um einen Vergleich des Medians der Arbeitslosenquote in Ost- und Westdeutschland zu ermöglichen.

alo_quote_jitter <- gesamtdaten %>%
  select(alo_quote, landkreis_name, bundesland_name, ost_name) %>%
  ggplot(aes(x = ost_name, y=alo_quote)) +
  geom_jitter(alpha=0.5) +
  geom_boxplot(alpha = 0.1) +
  theme_minimal() +
  labs(title = "Arbeitslosenquote in Deutschland",
       subtitle = "Eine Beobachtung repräsentiert einen Landkreis",
       x = "",
       y = "Arbeitslosenquote",
       caption = "Quelle: Daten der Agentur für Arbeit aus dem Jahr 2017")
  
alo_quote_jitter

Das Schaubild zeigt uns zum Einen, dass es deutlich mehr westdeutsche, wie ostdeutsche Landkreise gibt (nicht verwunderlich), aber auch, dass diese westdeutschen Landkreise zu einem sehr großen Teil weniger als 5% Arbeitslosigkeit aufweisen, wohingegen der größte Teil aller ostdeutschen Landkreise mehr als 5% Arbeitslosigkeit aufweist. Selbst der ostdeutsche Landkreis mit der niedrigsten Arbeitslosenquote ist nur leicht unter dem Median in Westdeutschland. Jedoch können wir konstatieren, dass ihr Cousin recht hatte mit seiner Behauptung, denn es gibt sowohl in Ost als auch in Westdeutschland nur sehr wenige Landkreise welche eine Arbeitslosenquote von mehr als 10% haben. In Spanien gibt es fast keine Region mit einer Arbeitslosenquote unter 10%! Nichtsdestotrotz sind auch in Deutschland regionale Unterschiede erkennbar, welche wir insbesondere im dritten Teil der Case Study zu erklären versuchen. Als mögliche Faktoren, welche die Arbeitslosenquote erklären könnten, wollen wir hier das BIP pro Kopf und die Pro-Kopf-Verschuldung näher untersuchen.

Wir haben nun auch noch die Möglichkeit bestimmte Regionen in unterschiedlichen Farben zu markieren. Wollen wir beispielsweise alle Landkreise aus Baden-Württemberg hervorheben, so können wir diese beispielsweise rot einfärben und bekommen dadurch einen Eindruck wo Baden-Württemberg im deutschlandweiten Vergleich der Arbeitslosenquote pro Landkreis steht.

alo_quote_jitter_farbe <- gesamtdaten %>%
  select(alo_quote, landkreis_name, bundesland_name, ost_name) %>%
  mutate(baden_wuerttemberg = as.factor(ifelse(bundesland_name == "Baden-Württemberg", 1, 0))) %>%
  ggplot(aes(x = ost_name, y=alo_quote)) +
  geom_jitter(alpha=0.5, aes(color = ifelse(baden_wuerttemberg == 1, "darkred", "darkgrey"))) +
  scale_color_identity() +
  geom_boxplot(alpha = 0.1) +
  theme_minimal() +
  labs(title = "Arbeitslosenquote in Deutschland",
       subtitle = "Eine Beobachtung repräsentiert einen Landkreis",
       x = "",
       y = "Arbeitslosenquote",
       caption = "Quelle: Daten der Agentur für Arbeit aus dem Jahr 2017\nDie roten Datenpunkte sind Landkreise aus Baden-Württemberg") +
  theme(legend.position = "none")
  
alo_quote_jitter_farbe

Hinweis zur vorherigen Grafik: Falls wir dem Leser etwas mehr Freiheiten einräumen möchten und unsere Grafik als HTML Datei übergeben, so können wir auch eine interaktive Grafik nutzen. So kann der Leser mit unserer Ausarbeitung interagieren:

# Zusätzlich Info um welchen Landkreis es sich handelt
alo_quote_jitter_plotly <- gesamtdaten %>%
  select(alo_quote, landkreis_name, bundesland_name, ost_name) %>%
  ggplot(aes(x = ost_name, y=alo_quote, label = landkreis_name)) +
  geom_jitter(alpha=0.5) +
  geom_boxplot(alpha = 0.1) +
  theme_minimal() +
  labs(title = "Arbeitslosenquote in Deutschland",
       subtitle = "Eine Beobachtung repräsentiert einen Landkreis",
       x = "",
       y = "Arbeitslosenquote",
       caption = "Quelle: Daten der Bundesagentur Agentur für Arbeit aus dem Jahr 2017.")

ggplotly(alo_quote_jitter_plotly)

Bruttoinlandsprodukt pro Kopf

Wir haben im vorherigen Abschnitt gesehen, dass es durchaus deutliche regionale Unterschiede in der Arbeitslosenquote in 2017 gibt. Doch was könnten die Treiber dafür sein?

In diesem Unterabschnitt wollen wir uns das Bruttoinlandsprodukt pro Kopf auf Landkreisebene näher anschauen. Hierbei haben wir nicht nur die Daten für 2017, sondern können uns einer längeren Zeitreihe bedienen. Somit können wir uns die Entwicklung des BIP pro Kopf in den ehemaligen ost- und westdeutschen Bundesländern näher anschauen. Diese Zeitreihen sind für uns nützliche Hinweise, denn dadurch können wir sehen:

  • ob es auch regionale Unterschiede im BIP pro Kopf gibt und nicht nur in der Arbeitslosenquote
  • ob die regionalen Unterschiede schon längere Zeit bestehen
  • ob die regionalen Unterschiede sich vergrößern oder verkleinern

Das Bruttoinlandsprodukt stellt die wichtigste gesamtwirtschaftliche Kenngröße dar. Es gibt Aufschluss darüber, wie viele Güter und Dienstleistungen in dem jeweiligen Landkreis produziert wurden. Falls das BIP in einem Landkreis hoch ist könnte dies unter anderem daran liegen, dass

  • viele Personen in diesem Landkreis erwerbstätig sind,
  • oder das die Erwerbstätigen in Branchen mit hoher Produktivität arbeiten.

Falls der erste Punkt zutrifft sollte ein hohes BIP pro Kopf (man beachte das hier das BIP pro Einwohner berechnet wird) auch mit einer niedrigeren Arbeitslosenquote einhergehen.

# Zuerst die Information zu landkreis_name und bundesland_name zum Datensatz big_long hinzumergen
namen <- gesamtdaten %>%
  select(Regionalschluessel, bundesland_name, landkreis_name, ost_name)

bip_zeitreihe_namen <- bip_zeitreihe %>%
  filter( nchar(Regionalschluessel) == 5) %>%
  left_join(.,namen, by="Regionalschluessel")

options(scipen = 5)
plot_bip <- bip_zeitreihe_namen %>%
  filter( Jahr >= 2000 ) %>%
  group_by(ost_name, Jahr) %>%
  mutate( durchschnitt = mean(bip_pro_kopf),
          ulm = ifelse(landkreis_name == "Ulm", bip_pro_kopf,NA)) %>%
  ggplot() +
  geom_line(aes(x = Jahr, y = bip_pro_kopf, group = Regionalschluessel), color = "grey") +
  geom_line(aes(x = Jahr, y = durchschnitt, group = Regionalschluessel), color = "darkblue") +
  geom_line(aes(x = Jahr, y = ulm, group = Regionalschluessel), color = "darkgreen") +
  scale_y_continuous(trans = "log10") + 
  theme_minimal() +
  facet_wrap(ost_name ~ .) +
  theme(legend.position = "none") +
  labs(title = "Ein Vergleich des BIP pro Kopf von ost- und westdeutschen Landkreisen",
       subtitle = "Durchschnittswerte in Dunkelblau, Ulm in Dunkelgrün",
       caption = "Quelle: Daten der Statistischen Ämter der Länder und des Bundes.",
       x = "Jahr",
       y = "BIP pro Kopf")

plot_bip