Makro II: Zusätzliches Material

by Markus Mößler


Konjunkturindikatoren


Dieses Dokument enthält Veröffentlichungen ausgewählter Stimmungs- und Aktivitätsindikatoren.


Einordnung


Für die Einordnung siehe auch Kapitel 2.2 “Vermessung von Wohlstand”.

Vorbereitung


Die Veröffentlichungen der Umfragen der wichtigsten Stimmungsindikatoren werden zum größten Teil aus dem Internet heruntergeladen und eingebunden.


Die Berichte zu den Veröffentlichungen für das ifo Geschäftsklima, EU Wirtschaftsvertrauen, ISM Einkaufsmanager und das Gfk Konsumklima werden über ein R-Skript aus dem Internet heruntergeladen

source("https://github.com/mmoessler/macro-dashboard/blob/main/r-scripts/r_web_scraping_functions.R")

Die Werte der aller weiteren wichtigen Aktivitätsindikatoren werden zum größten Teil von öffentlich zugänglichen Datenbanken herunterladen, aufereitet und dargestellt.

Dabei können die Daten entweder auf der entsprechenden Website oder über so genannte Programmierschnittstellen (APIs) heruntergeladen werden.

Für das Herunterladen der Daten über die APIs von FRED und eurostat und die Darstellung der Daten müssen die folgenden Schritte zur Vorbereitung durchgeführt werden.


Schritt 1: Setze dein Arbeitsverzeichniss

setwd("... insert-you-directory-here ...")

Schritt 2: Lade Pakete zum Herungeralden der Daten

library(eurostat)
library(fredr)

Schritt 3: Registriere dich bei FRED und fordere eines API Schlüssels an

  1. FRED Konto
  2. API Schlüssel
fredr_set_key("... insert-your-personal-key-here ...")

Schritt 4: Lade Pakete zur Verarbeitung der heruntergeladenen Daten

library(dplyr)
library(tidyr)
library(ggplot2)
library(scales)
library(zoo)
library(kableExtra)

Schritt 5: Lade Funktion zur Darstellung der Daten

Funktion zur Schattierung der US Rezessionen:

# See: https://rpubs.com/FSl/609471 (and edited by MM)
add_rec_shade <- function(st_date, ed_date, shade_color = "darkgray", zoo.mon = FALSE, zoo.qtr = FALSE) {
  
  library(fredr)
  library(ecm)
  library(ggplot2)
  library(zoo)
  
  recession  <-  fredr(series_id = "USRECD",observation_start = as.Date(st_date),observation_end = as.Date(ed_date))
  
  recession$diff <- recession$value-lagpad(recession$value, k = 1)
  recession <- recession[!is.na(recession$diff),]
  recession.start <- recession[recession$diff == 1,]$date
  recession.end <- recession[recession$diff == (-1),]$date
  
  if(length(recession.start) > length(recession.end)) {
    recession.end <- c(recession.end, Sys.Date())
  }
  if(length(recession.end)>length(recession.start)) {
    recession.start <- c(min(recession$date), recession.start)
  }
  
  recs <- as.data.frame(cbind(recession.start, recession.end))
  recs$recession.start <- as.Date(as.numeric(recs$recession.start), origin = as.Date("1970-01-01"))
  
  if(zoo.mon == TRUE){
    recs$recession.start <- as.yearmon(recs$recession.start, "%b%y")
  }
  if(zoo.qtr == TRUE){
    recs$recession.start <- as.yearqtr(recs$recession.start, "%y-Q%q")
  }
  
  recs$recession.end <- as.Date(recs$recession.end, origin = as.Date("1970-01-01"))
  
  if(zoo.mon == TRUE){
    recs$recession.end <- as.yearmon(recs$recession.end, "%b%y")
  }
  if(zoo.qtr == TRUE){
    recs$recession.end <- as.yearqtr(recs$recession.end, "%y-Q%q")
  }
  
  if(nrow(recs) > 0) {
    rec_shade <- geom_rect(data = recs, inherit.aes = FALSE, 
                           aes(xmin = recession.start, xmax = recession.end, ymin = -Inf, ymax = +Inf), 
                           fill = shade_color, alpha = 0.5)
    
    return(rec_shade)
  }
  
}

Schritt 6: Lade Grafikvorlage zur Darstellung der Daten

mod.theme.01 <- theme_gray() + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, size = 12),
                                     axis.text.y = element_text(size = 12),
                                     plot.title = element_text(size = 16),
                                     plot.subtitle = element_text(size = 12),
                                     plot.caption = element_text(size = 12),
                                     legend.text = element_text(size = 12))

mod.theme.01$legend.position <- c("bottom")

Stimmung


Produzenten


Ifo Geschäftsklima


Ifo Geschäftsklima Index


Überblick

  • Einordnung: Produzenten (generell)
  • Region: Deutschland
  • Herausgeber: Ifo-Institut (siehe)

Weitere Informationen

Der Ifo Geschäftsklima Index ist eine der wichtigsten Messzahlen für die Stimmung bei den deutschen Produzenten.


Ergebnisse


Quelle: Ifo Institut


EU Sentiment


EU Sentiment


Überblick

  • Einordnung: Produzenten (generell) und Konsumenten
  • Region: EU und Eurozone
  • Herausgeber: Europäische Kommission (siehe)

Weitere Informationen

Die Stimmungsindikatoren von der Europäischen Kommission sind eine der wichtigsten Messzahlen für die Stimmung in der Wirtschaft der EU und Eurozone.

Die Stimmung in der gesamten Wirtschaft (Produzenten und Konsumenten) wird durch das “Wirtschaftsvertrauen” (“Economic Sentiment”) dargestellt.

Ein wichtiger Teil des generellen “Wirtschaftsvertrauens” ist das “Konsumentenvertrauen” (“Consumer Confidence”).

Ein weiterer wichtiger Teil des generellen “Wirtschaftsvertrauens” ist das “Unternehmensvertrauens” (“Business Confidence”).


Ergebnisse


Quelle: Europäische Kommission


ISM EMIs (USA)


ISM Einkaufsmanagerindizes (EMI/PMI)


Überblick

  • Einordnung: Anbieter, veratbeitendes Gewerbe und Dienstleistungen
  • Region: USA
  • Herausgeber: Institute for Supply Management (ISM) (siehe)

Weitere Informationen

Die Einkaufsmanagerindizes vom Instiute for Supply Management (ISM) sind eine der wichtigsten Messzahlen für die Stimmung bei den US Produzenten.

Es gibt zwei Umfragen, eine im verarbeitenden Gewerbe sowie eine im Dienstleistungssektor.


Ergebnisse


Quelle: ISM Institut



Quelle: ISM Institut


Konsumenten


GfK Konsumklima


GfK Konsumklima


Überblick

  • Einordnung: Konsumenten
  • Region: Deutschland
  • Herausgeber: GfK (siehe)

Weitere Informationen

Das GfK Konsumentenvertrauen ist eine der wichtigsten Messzahlen für die Stimmung bei den deutschen Konsumenten.


Ergebnisse


Quelle: GfK


UoM Consumer Confidence


UoM Consumer Confidence


Überblick

  • Einordnung: Konsumenten
  • Region: USA
  • Herausgeber: University of Michigan (siehe)

Weitere Informationen

Das UoM Konsumentenvertrauen ist eine der wichtigsten Messzahlen für die Stimmung bei den US Konsumenten.


Ergebnisse

# Meta data
met.dat <- fredr_series_search_text("UMCSENT")

# Data
ser.dat <- fredr_series_observations(series_id = met.dat$id[1],
                                     observation_start = as.Date("2000-01-01"),
                                     units = "lin")
# Transform date to yearmon class
ser.dat$date.zoo <- as.yearmon(ser.dat$date, "%b%y")

# Construct plot
plot <- ggplot(data = ser.dat, mapping = aes(x = date.zoo, y = value,color = series_id)) +
  add_rec_shade(min(ser.dat$date), max(ser.dat$date), zoo.mon = TRUE, zoo.qtr = FALSE) +
  geom_line(color = "black", size = 1) +
  scale_y_continuous(name = "Index (1966-Q1=100)", labels = comma) +
  scale_x_yearmon(breaks=seq(from = min(ser.dat$date.zoo), to = max(ser.dat$date.zoo), by = 1),
                  minor_breaks = seq(from = min(ser.dat$date.zoo), to = max(ser.dat$date.zoo), by = 1),
                  format = "%b %y",
                  expand = c(0, 0)) +
  labs(title = met.dat$title[1],
       subtitle = paste0(c("(Letzter Beobachtungswert: "), as.yearmon(as.Date(met.dat$observation_end)), c(")")),
       caption = "Quelle: University of Michigan", 
       x = "", y = "Index (1966-Q1=100)") +
  mod.theme.01


# Return plot
plot

Datum Wert
Jul 2023 71,5
Aug 2023 69,4
Sep 2023 67,9
Oct 2023 63,8
Nov 2023 61,3
Dec 2023 69,7

Aktivität


Produzenten


EU Industrieproduktion

EU Industrieproduktion


Überblick

  • Einordnung: Produzenten, verarbeitendes Gewerbe
  • Region: EU Mitgliedstaaten
  • Herausgeber: Eurostat (siehe)
  • Bereinigung: Saison-, kalender- und preisbereinigung

Weitere Informationen

Die Industrieproduktion ist die wichtigste Messzahl um die Aktivität bei den Produzenten darzustellen.


Werte

source("https://raw.githubusercontent.com/mmoessler/macro-dashboard/main/r-scripts/r_eurostat_helper_functions.R")

# Url
url <- "https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/sts_inpr_m?format=JSON&geo=DE&geo=FR&geo=EA19&freq=M&unit=I15&s_adj=SCA&indic_bt=PROD&nace_r2=B-D"

# Data
ser.dat <- get_eurostat_fun(url = url)

# Transform date to date class
ser.dat$date.dat <- as.Date(as.yearmon(ser.dat$time))
# Transform date to yearmon class
ser.dat$date.zoo <- as.yearmon(ser.dat$date.dat, "%b%y")

# Subset data
ser.dat <- subset(ser.dat, date.dat %in% seq(as.Date("2015-01-01"), Sys.Date(), by = "month"))

# Construct plot
plot <- ggplot(data = ser.dat, mapping = aes(x = date.zoo, y = values, color = geo)) +
  geom_line(size = 1) +
  scale_x_yearmon(breaks = seq(from = min(ser.dat$date.zoo), to = max(ser.dat$date.zoo), by = 3/12),
                  minor_breaks = seq(from = min(ser.dat$date.zoo), to = max(ser.dat$date.zoo), by = 1/12),
                  format = "%b %y",
                  expand = c(0, 0)) +
  scale_y_continuous(breaks = seq(0, 200, 5)) + 
  scale_color_discrete(name = "", labels = c("DEU","EURO-19","FRA")) +
  labs(title = "Industrieproduktion (saison- und kalenderbereinigt)",
       subtitle = paste0(c("(Letzter Beobachtungswert: "), as.yearmon(as.Date(ser.dat$date.dat[length(ser.dat$time)])), c(")")),
       caption = "Quelle: Eurostat", 
       x = "", y = "Mengenindex (2015=100)") +
  mod.theme.01

# Return plot
plot

Zeitraum DEU FRA EURO-19
Mar 2023 95,4 97,8 104,0
Apr 2023 95,4 98,4 105,1
May 2023 95,3 99,6 105,3
Jun 2023 94,2 98,9 105,1
Jul 2023 93,1 99,3 103,8
Aug 2023 93,5 99,4 104,2
Sep 2023 91,9 98,8 103,3
Oct 2023 91,9 98,3 102,6
Nov 2023 91,8 98,7 102,3
Dec 2023 90,7 99,8 NA

US Industrieproduktion

USA Industrieproduktion


Überblick

  • Einordnung: Produzenten
  • Region: USA
  • Herausgeber: Board of Governors of the Federal Reserve System (siehe)
  • Bereinigung: Saison- und preisbereinigung, keine kalenderbereingung

Weitere Informationen

Die Industrieproduktion ist die wichtigste Messzahl um die Aktivität bei den Produzenten darzustellen.


Ergebnisse

# Meta data
met.dat <- fredr_series_search_text("INDPRO")

# Data
ser.dat <- fredr_series_observations(series_id = met.dat$id[1],
                                     observation_start = as.Date("2000-01-01"),
                                     units = "lin")

# Transform date to yearmon class
ser.dat$date.zoo <- as.yearmon(ser.dat$date, "%b%y")

# Construct plot
plot <- ggplot(data = ser.dat, mapping = aes(x = date.zoo, y = value, color = series_id)) +
  add_rec_shade(min(ser.dat$date), max(ser.dat$date), zoo.mon = TRUE, zoo.qtr = FALSE) +
  geom_line(color = "black", size = 1) +
  scale_x_yearmon(breaks = seq(from = min(ser.dat$date.zoo), to = max(ser.dat$date.zoo), by = 1),
                  minor_breaks = seq(from = min(ser.dat$date.zoo), to = max(ser.dat$date.zoo), by = 1),
                  format = "%b %y",
                  expand = c(0, 0)) +
  labs(title = "Industrieproduktion (saisonbereinigt)",
       subtitle = paste0(c("(Letzter Beobachtungswert: "), as.yearmon(as.Date(met.dat$observation_end)), c(")")),
       caption = "Quelle: Board of Governors of the Federal Reserve System", 
       x = "", y = "Mengenindex (2017=100)") +
  mod.theme.01

# Return plot
plot

Zeitraum Wert
Mar 2023 102,66
Apr 2023 103,15
May 2023 102,92
Jun 2023 102,30
Jul 2023 103,19
Aug 2023 103,24
Sep 2023 103,33
Oct 2023 102,46
Nov 2023 102,43
Dec 2023 102,48

Konsumenten


EU Einzelhandelsumsätze

EU Einzelhandelsumsätze


Überblick

  • Einordnung: Konsumenten
  • Region: EU Mitgliedsstaaten
  • Herausgeber: Eurostat (siehe)
  • Bereinigung: Saison-, Kalender- und Preisbereinigung

Weitere Informationen

Die Einzelhandelsumsätze ist eine der wichtigsten Messzahlen um die Aktivität bei den Konsumenten darzustellen.


Werte

source("https://raw.githubusercontent.com/mmoessler/macro-dashboard/main/r-scripts/r_eurostat_helper_functions.R")

# Url
url <- "https://ec.europa.eu/eurostat/api/dissemination/statistics/1.0/data/sts_inpr_m?format=JSON&geo=DE&geo=FR&geo=EA19&freq=M&unit=I15&s_adj=SCA&indic_bt=PROD&nace_r2=B-D"

# Data
ser.dat <- get_eurostat_fun(url = url)

# Transform date to date class
ser.dat$date.dat <- as.Date(as.yearmon(ser.dat$time))
# Transform date to yearmon class
ser.dat$date.zoo <- as.yearmon(ser.dat$date.dat, "%b%y")

# Subset data
ser.dat <- subset(ser.dat, date.dat %in% seq(as.Date("2015-01-01"), Sys.Date(), by = "month"))

# Construct plot
plot <- ggplot(data = ser.dat, mapping = aes(x = date.zoo, y = values, color = geo)) +
  geom_line(size = 1) +
  scale_x_yearmon(breaks = seq(from = min(ser.dat$date.zoo), to = max(ser.dat$date.zoo), by = 3/12),
                  minor_breaks = seq(from = min(ser.dat$date.zoo), to = max(ser.dat$date.zoo), by = 1/12),
                  format = "%b %y",
                  expand = c(0, 0)) +
  scale_y_continuous(breaks = seq(0, 200, 10)) + 
  scale_color_discrete(name = "", labels = c("DEU","EURO-19","FRA")) +
  labs(title = "Einzelhandelsumsätze (saison-, kalender- und preisbereinigt)",
       subtitle = paste0(c("(Letzter Beobachtungswert: "), as.yearmon(as.Date(ser.dat$date.dat[length(ser.dat$time)])), c(")")),
       caption = "Quelle: Eurostat", 
       x = "", y = "Index 2015=100") +
  mod.theme.01

# Return plot
plot

Zeitraum DEU FRA EURO-19
Mar 2023 95,4 97,8 104,0
Apr 2023 95,4 98,4 105,1
May 2023 95,3 99,6 105,3
Jun 2023 94,2 98,9 105,1
Jul 2023 93,1 99,3 103,8
Aug 2023 93,5 99,4 104,2
Sep 2023 91,9 98,8 103,3
Oct 2023 91,9 98,3 102,6
Nov 2023 91,8 98,7 102,3
Dec 2023 90,7 99,8 NA

US Einzelhandelsumsätze

US Einzelhandelsumsätze


Überblick

  • Einordnung: Konsumenten
  • Region: USA
  • Herausgeber: U.S. Census Bureau (siehe)
  • Bereinigung: Saisonbereinigung, keine kalender- und preisbereinigung

Weitere Informationen

Die Einzelhandelsumsätze ist eine der wichtigsten Messzahlen um die Aktivität bei den Konsumenten darzustellen.


Werte

# Meta data
met.dat <- fredr_series_search_text("RSXFS")

# Data
ser.dat <- fredr_series_observations(series_id=met.dat$id[1],
                                     observation_start=as.Date("2000-01-01"),
                                     units="lin")

# Transform date to yearmon class
ser.dat$date.zoo <- as.yearmon(ser.dat$date,"%b%y")

# Transform from "Millions of Dollars" to "Billions of Dollars"
ser.dat$value <- ser.dat$value/1000

# Construct plot
plot <- ggplot(data=ser.dat,mapping=aes(x=date.zoo,y=value,color=series_id)) +
  add_rec_shade(min(ser.dat$date),max(ser.dat$date),zoo.mon=TRUE,zoo.qtr=FALSE) +
  geom_line(color = "black", size = 1) +
  scale_x_yearmon(breaks = seq(from = min(ser.dat$date.zoo), to = max(ser.dat$date.zoo), by = 1),
                  minor_breaks = seq(from = min(ser.dat$date.zoo), to = max(ser.dat$date.zoo), by = 1),
                  format = "%b %y",
                  expand = c(0, 0)) +
  scale_y_continuous(breaks = seq(0, 1000, 50)) + 
  labs(title = "Einzelhandelsumsätze (saisonbereinigt)",
       subtitle = paste0(c("(Letzter Beobachtungswert: "), as.yearmon(as.Date(met.dat$observation_end)), c(")")),
       caption = "Quelle: U.S. Census Bureau", 
       x = "", y = "US Dollar in Milliarden") +
  mod.theme.01

# Return plot
plot

Datum Wert
Jul 2023 603,792
Aug 2023 608,386
Sep 2023 612,633
Oct 2023 610,561
Nov 2023 611,454
Dec 2023 615,331


Zurück zur Startdatei