Dieses Dokument enthält Veröffentlichungen ausgewählter Stimmungs- und Aktivitätsindikatoren.
Für die Einordnung siehe auch Kapitel 2.2 “Vermessung von Wohlstand”.
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
Schritt 2: Lade Pakete zum Herungeralden der Daten
Schritt 3: Registriere dich bei FRED und fordere eines API Schlüssels an
Schritt 4: Lade Pakete zur Verarbeitung der heruntergeladenen Daten
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")
Ifo Geschäftsklima Index
Überblick
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
Überblick
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 Einkaufsmanagerindizes (EMI/PMI)
Überblick
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
GfK Konsumklima
Überblick
Weitere Informationen
Das GfK Konsumentenvertrauen ist eine der wichtigsten Messzahlen für die Stimmung bei den deutschen Konsumenten.
Ergebnisse
Quelle: GfK
UoM Consumer Confidence
Überblick
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 |
EU Industrieproduktion
Überblick
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 |
USA Industrieproduktion
Überblick
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 |
EU Einzelhandelsumsätze
Überblick
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
Überblick
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 |