Skip to content

Instantly share code, notes, and snippets.

@USMortality
Last active January 8, 2025 15:55
Show Gist options
  • Save USMortality/f6309c5796509292198562c2be63dba4 to your computer and use it in GitHub Desktop.
Save USMortality/f6309c5796509292198562c2be63dba4 to your computer and use it in GitHub Desktop.
Age Standardized Mortality Rate by Cause of Death [Germany]
# Data Source: https://www.gbe-bund.de/gbe
# Table: Sterbefälle, Sterbeziffern (je 100.000 Einwohner, altersstandardisiert)
# Table selection settings, see screenshot
library(readr)
library(stringr)
library(tidyr)
library(dplyr)
library(ggplot2)
library(fable)
library(tsibble)
sf <- 2
width <- 600 * sf
height <- 335 * sf
options(vsc.dev.args = list(width = width, height = height, res = 72 * sf))
df <- read_delim("/Users/Ben/Downloads/Indikator.csv",
skip = 10,
delim = ";",
n_max = 25,
locale = locale(encoding = "utf8")
)
a <- df |>
setNames(c("icd10", "type", 2023:2017, "other")) |>
fill(icd10) |>
select(-other) |>
filter(str_detect(type, "altersstandardisiert")) |>
select(icd10, type, as.character(2017:2023))
# Clean and prepare the data
a_clean <- a |>
mutate(across(as.character(2017:2023), ~ as.numeric(gsub("\\.", "", gsub(",", ".", .)))))
# Reshape to long format for ggplot2
a_long <- a_clean[-1, ] |>
pivot_longer(
cols = as.character(2017:2023),
names_to = "year",
values_to = "value"
) |>
mutate(year = as.integer(year))
ggplot(a_long, aes(x = year, y = value, color = icd10, group = icd10)) +
geom_line() +
scale_y_log10() +
labs(
title = "Age Standardized Mortality Rate by Cause of Death [Germany]",
subtitle = "ICD10 Code I60-I69; Source: gbe-bund.de",
x = "Year",
y = "Deaths/100k Standard Population",
color = "ICD10"
)
# With Mean/95%PI
# Convert to tsibble if not already
ts <- a_long |>
select(-type) |>
mutate(year = as.integer(year)) |>
as_tsibble(index = year, key = icd10)
# Fit the model for 2017–2019
model <- ts |>
filter(year >= 2017 & year <= 2019) |>
model(lm = TSLM(value))
# Generate forecasts for 5 years with 95% prediction intervals
forecasts <- model |>
forecast(h = "4 years", level = 95) |>
mutate(hl = hilo(value, level = 95)) |>
unpack_hilo(cols = hl) |>
as_tibble() |>
mutate(year = as.integer(year)) |>
select(year, icd10, .mean, hl_lower, hl_upper)
# Compute fitted values for the pre-2020 period
fitted_values <- model |>
augment() |>
select(year, icd10, .fitted)
# Join fitted values and forecasts with the original data
ts_augmented <- ts |>
left_join(fitted_values, by = c("year", "icd10"))
ts_with_forecast <- ts_augmented |>
left_join(forecasts, by = c("year", "icd10"))
# Plot the results
ggplot(ts_with_forecast, aes(x = year)) +
geom_line(aes(y = value), size = 0.8, color = "black") + # Actual values
geom_line(aes(y = .fitted), linetype = "dashed") + # Fitted values
geom_line(aes(y = .mean)) + # Forecasted mean
geom_ribbon(aes(ymin = hl_lower, ymax = hl_upper), alpha = 0.2) +
scale_y_log10() +
facet_wrap(vars(icd10), scales = "free") +
labs(
title = "Forecast with Fitted and Prediction Intervals",
x = "Year",
y = "Value",
color = "ICD10",
fill = "ICD10"
) +
theme(legend.position = "none")
We can make this file beautiful and searchable if this error is corrected: Illegal quoting in line 9.
Sterbef�lle, Sterbeziffern (je 100.000 Einwohner, altersstandardisiert) (ab 1998). Gliederungsmerkmale: Jahre, Region, Alter, Geschlecht, Nationalit�t, ICD-10, Art der Standardisierung
****************************************************************************************************
Diese Tabelle bezieht sich auf:
Region:;Deutschland
Alter:;Alle Altersgruppen
Geschlecht:;Insgesamt
Nationalit�t:;Alle Nationalit�ten
Art der Standardisierung:;Standardbev�lkerung &quot;Deutschland 2011&quot;
;;"2023";"2022";"2021";"2020";"2019";"2018";"2017";
"I00-I99 Krankheiten des Kreislaufsystems";"Sterbef�lle";"348.312";"358.219";"340.619";"338.001";"331.211";"345.274";"344.524";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"412,1";"427,5";"409,4";"406,4";"398,6";"416,5";"416,8";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"332,2";"344,8";"332,3";"335,4";"337,3";"360,4";"366,2";
" I60-I69 Zerebrovaskul�re Krankheiten";"Sterbef�lle";"53.155";"55.265";"53.082";"53.308";"53.119";"55.287";"55.404";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"62,9";"66,0";"63,8";"64,1";"63,9";"66,7";"67,0";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"51,7";"54,2";"52,6";"53,6";"54,6";"58,2";"59,3";
" I60-I61 Subarachnoidalblutung und intrazerebrale Blutung";"Sterbef�lle";"9.398";"9.311";"9.360";"9.182";"9.756";"9.566";"9.492";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"11,1";"11,1";"11,3";"11,0";"11,7";"11,5";"11,5";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"9,7";"9,7";"9,8";"9,7";"10,4";"10,4";"10,5";
" I60 Subarachnoidalblutung";"Sterbef�lle";"1.946";"1.951";"2.015";"1.881";"1.944";"1.792";"1.713";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"2,3";"2,3";"2,4";"2,3";"2,3";"2,2";"2,1";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"2,1";"2,1";"2,2";"2,1";"2,2";"2,0";"2,0";
" I61 Intrazerebrale Blutung";"Sterbef�lle";"7.452";"7.360";"7.345";"7.301";"7.812";"7.774";"7.779";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"8,8";"8,8";"8,8";"8,8";"9,4";"9,4";"9,4";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"7,5";"7,5";"7,6";"7,6";"8,3";"8,4";"8,6";
" I62 Sonstige nichttraumatische intrakranielle Blutung";"Sterbef�lle";"1.326";"1.359";"1.234";"1.291";"1.065";"1.496";"1.550";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"1,6";"1,6";"1,5";"1,6";"1,3";"1,8";"1,9";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"1,3";"1,3";"1,2";"1,3";"1,1";"1,6";"1,7";
" I63 Hirninfarkt";"Sterbef�lle";"15.954";"16.060";"15.177";"14.879";"15.115";"15.026";"14.864";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"18,9";"19,2";"18,2";"17,9";"18,2";"18,1";"18,0";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"15,6";"15,8";"15,1";"15,1";"15,6";"15,9";"16,0";
" I64 Schlaganfall, nicht als Blutung oder Infarkt bezeichnet";"Sterbef�lle";"9.715";"10.562";"10.629";"10.918";"10.702";"12.024";"12.587";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"11,5";"12,6";"12,8";"13,1";"12,9";"14,5";"15,2";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"9,1";"10,0";"10,2";"10,6";"10,7";"12,4";"13,2";
" I65 Verschluss und Stenose pr�zerebraler Arterien ohne resultierenden Hirninfarkt";"Sterbef�lle";"-";"-";"-";"-";"-";"-";"-";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"-";"-";"-";"-";"-";"-";"-";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"-";"-";"-";"-";"-";"-";"-";
" I66 Verschluss und Stenose zerebraler Arterien ohne resultierenden Hirninfarkt";"Sterbef�lle";"-";"-";"-";"-";"-";"-";"-";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"-";"-";"-";"-";"-";"-";"-";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"-";"-";"-";"-";"-";"-";"-";
" I67 Sonstige zerebrovaskul�re Krankheiten";"Sterbef�lle";"3.800";"4.310";"4.098";"4.388";"4.449";"4.624";"4.640";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"4,5";"5,1";"4,9";"5,3";"5,4";"5,6";"5,6";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"3,5";"4,0";"3,9";"4,2";"4,4";"4,7";"4,8";
" I68 Zerebrovaskul�re St�rungen bei anderenorts klassifizierten Krankheiten";"Sterbef�lle";"-";"-";"-";"-";"-";"-";"-";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"-";"-";"-";"-";"-";"-";"-";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"-";"-";"-";"-";"-";"-";"-";
" I69 Folgen einer zerebrovaskul�ren Krankheit";"Sterbef�lle";"12.962";"13.663";"12.584";"12.650";"12.032";"12.551";"12.271";
;"Sterbef�lle&nbsp; je&nbsp;100.000 Einwohner";"15,3";"16,3";"15,1";"15,2";"14,5";"15,1";"14,8";
;"Sterbef�lle&nbsp;je 100.000 Einwohner (altersstandardisiert)";"12,5";"13,3";"12,3";"12,6";"12,3";"13,1";"13,1";
****************************************************************************************************
Fu�noten
****************************************************************************************************
1.;Bis 1997 wurden die Sterbef�lle nach der ICD-9 erhoben. Die Angaben sind daher in einer separaten gestaltbaren Tabelle aufgef�hrt (siehe Links auf andere Fundstellen).
2.;Berichtsjahr 2019: Von zwei Bundesl�ndern wurden auf regionaler Ebene aus Geheimhaltungsgr�nden andere Daten ver�ffentlicht. Es kann daher zwischen den regionalen Ver�ffentlichungen und den
hier ver�ffentlichten Daten zu geringf�gigen Abweichungen kommen.
3.;Im September 2019 wurden bei den altersstandardisierten Werten des Jahres 2017 Korrekturen vorgenommen, durch die sich Abweichungen zu fr�her angezeigten Werten ergeben k�nnen.
4.;Verletzungen und Vergiftungen (ICD-10 Pos-Nr. S00-T98) sind die Folgen der �u�eren Ursachen (ICD-10 Pos-Nr. V00-Y98) und d�rfen nicht zu diesen hinzu addiert werden.
****************************************************************************************************
Die Tabelle wurde am 08.01.2025 16:09 Uhr unter www.gbe-bund.de erstellt.
****************************************************************************************************
Quelle(n):
Todesursachenstatistik, Statistisches Bundesamt, Zweigstelle Bonn
Fortschreibung des Bev�lkerungsstandes, Statistisches Bundesamt
@USMortality
Copy link
Author

plot

@USMortality
Copy link
Author

plot-1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment