library(tidyverse) library(lubridate) # Aufgabe 1 currency_list = read_csv('https://raw.githubusercontent.com/NikoStein/dma_data/main/currency_list.csv') currency_prices = read_csv('https://raw.githubusercontent.com/NikoStein/dma_data/main/currency_price.csv') gpu_list = read_csv('https://raw.githubusercontent.com/NikoStein/dma_data/main/gpu_list.csv') gpu_prices = read_csv('https://raw.githubusercontent.com/NikoStein/dma_data/main/gpu_price.csv') # a) Stellen Sie die Preisentwicklung der gelisteten Grafikkarten in einem geeigneten Diagramm dar. gpu_prices %>% left_join(gpu_list, by = c('id' = 'id')) %>% mutate(date = ymd(date)) %>% ggplot(aes(x=date, y=price, color=name)) + geom_line() + theme_bw() # b) Berechnen Sie die Preisänderung der einzelnen Grafikkarten im Vergleich zum ersten Listing und # speichern Sie diese in einer neuen Variablen. gpu_prices %>% left_join(gpu_list, by = c('id' = 'id')) %>% mutate(date = ymd(date)) %>% group_by(id) %>% arrange(date) %>% mutate(price_change = (price-first(price))/first(price)) %>% ggplot(aes(x=date, y=price_change, color=name)) + geom_line() + theme_bw() + scale_y_continuous(labels=scales::percent) + ylab("Preisaenderung") + xlab('Datum') # c) Offensichtlich unterliegen die Grafikkartenpreise teils großen Schwankungen. Berechnen Sie für jede # gelistete Grafikkarte geeignete Statistiken, um die Preisschwankungen zu aggregieren. # Welche Grafikkarte unterliegt den höchsten Schwankungen, welche den geringsten? gpu_prices %>% left_join(gpu_list, by = c('id' = 'id')) %>% mutate(date = ymd(date)) %>% group_by(id) %>% arrange(date) %>% mutate(price_change = (price-first(price))/first(price)) %>% group_by(name) %>% summarise(min = min(price_change), mean = mean(price_change), median = median(price_change), max = max(price_change), var = var(price_change)) %>% arrange(var) # d) Stellen Sie im nächsten Schritt die Preisentwicklung der gelisteten Kryptowährungen in einem geeigneten # Diagramm dar. Berechnen und visualisieren Sie zusätzlich die prozentualen Preisänderungen. currency_prices %>% mutate(date = ymd(date)) %>% filter(price > 0) %>% group_by(id) %>% arrange(date) %>% mutate(crypto_price_change = (price-first(price))/first(price)) %>% ggplot(aes(x=date, y=crypto_price_change, color=name)) + geom_line() + theme_bw() + scale_y_continuous(labels=scales::percent) + ylab("Preisaenderung") + xlab('Datum') # e) Verbinden Sie die beiden Datensätze und vergleichen Sie die Preisentwicklung der Kryptowährungen mit # der Preisentwicklung der Grafikkarten. gpu_prices %>% left_join(gpu_list, by = c('id' = 'id')) %>% mutate(date = ymd(date)) %>% group_by(id) %>% arrange(date) %>% mutate(price_change = (price-first(price))/first(price)) -> gpu_prep currency_prices %>% mutate(date = ymd(date)) %>% group_by(id) %>% arrange(date) %>% mutate(crypto_price_change = (price-first(price))/first(price)) -> crypto_prep gpu_prep %>% left_join(crypto_prep, by = c('date'='date')) %>% ggplot(aes(x=date)) + geom_line(aes(y=price_change, group=name.x), color='blue') + geom_line(aes(y=crypto_price_change, group=name.y), color='red') + scale_y_continuous(labels=scales::percent) + ylab("Preisaenderung") + xlab('Datum') + theme_bw() # extra gpu_prep %>% group_by(date) %>% summarise(mean_price_change = mean(price_change)) -> gpu_prep2 crypto_prep %>% group_by(date) %>% summarise(crypto_mean_price_change = mean(crypto_price_change)) -> crypto_prep2 gpu_prep %>% left_join(crypto_prep, by = c('date'='date')) %>% ggplot(aes(x=date)) + geom_line(aes(y=price_change, group=name.x), color='blue', alpha = 0.2) + geom_line(aes(y=crypto_price_change, group=name.y), color='red', alpha = 0.2) + geom_line(data= gpu_prep2, aes(y=mean_price_change), color='blue') + geom_line(data = crypto_prep2, aes(y=crypto_mean_price_change), color='red') + scale_y_continuous(labels=scales::percent) + ylab("Preisaenderung") + xlab('Datum') + theme_minimal() # Aufgabe 2 obesity = read_csv('https://raw.githubusercontent.com/NikoStein/dma_data/main/obesity.csv') # a) Zeigen Sie die weltweite Entwicklung von Adipositas im Zeitverlauf mittels einer geeigneten Grafik. obesity %>% filter(Country == 'Germany') %>% ggplot(aes(x=Year, y=ObesePer100, color=Sex)) + geom_line() + theme_bw() # b) In wie vielen Ländern gibt es 2016 einen höheren Anteil an Adipositas als 1975, in wie vielen einen geringeren? obesity %>% na.omit() %>% filter(Sex == 'Both sexes') %>% group_by(Country) %>% arrange(Year) %>% summarise(obesity_75 = first(ObesePer100), obesity_16 = last(ObesePer100)) %>% mutate(more_obese_today = obesity_16 > obesity_75) %>% ggplot(aes(x=more_obese_today)) + geom_bar() obesity %>% na.omit() %>% group_by(Country) %>% filter(Sex == 'Both sexes') %>% arrange(Year) %>% summarise(obesity_75 = first(ObesePer100), obesity_16 = last(ObesePer100)) %>% mutate(more_obese_today = obesity_16 >= obesity_75) %>% group_by(more_obese_today) %>% summarise(count = n()) # c) Vergleichen Sie die Entwicklung von Adipositas in den G7 Staaten # (Deutschland, Frankreich, Italien, Japan, Kanada, Vereinigtes Königreich, USA). g7_nations = c('Germany', 'France', 'Italy', 'Japan', 'Canada', 'United Kingdom of Great Britain and Northern Ireland', 'United States of America') obesity %>% filter(Country %in% g7_nations) %>% ggplot(aes(x=Year, y=ObesePer100, color=Country)) + geom_line() + facet_wrap(~Sex) + theme(legend.position = 'top') #d) In wie vielen Ländern sind Frauen häufiger von Adipositas betroffen als Männer? # Wie hat sich die Verteilung über die Jahre verändert? obesity %>% na.omit() %>% filter(Sex != 'Both sexes') %>% group_by(Year, Country) %>% summarise(Frauen = ObesePer100[Sex=='Male'] < ObesePer100[Sex == 'Female'], Maenner = ObesePer100[Sex=='Male'] >= ObesePer100[Sex == 'Female']) %>% group_by(Year) %>% summarise(Frauen = sum(Frauen), Maenner = sum(Maenner)) %>% ggplot(aes(x=Year)) + geom_line(aes(y=Frauen), color = 'red') + geom_line(aes(y=Maenner), color='blue') + theme_bw() + xlab('Jahr') + ylab('Anzahl Laender') obesity %>% na.omit() %>% filter(Sex != 'Both sexes') %>% filter(Country %in% g7_nations) %>% group_by(Year, Country) %>% summarise(Frauen = ObesePer100[Sex=='Male'] < ObesePer100[Sex == 'Female'], Maenner = ObesePer100[Sex=='Male'] >= ObesePer100[Sex == 'Female']) %>% group_by(Year) %>% summarise(Frauen = sum(Frauen), Maenner = sum(Maenner)) %>% ggplot(aes(x=Year)) + geom_line(aes(y=Frauen), color = 'red') + geom_line(aes(y=Maenner), color='blue') + theme_bw() + xlab('Jahr') + ylab('Anzahl Laender') # e) In welchen Ländern hat Adipositas verhältnismäßig am stärksten zugenommen? Wie erklären Sie sich die Ergebnisse? obesity %>% na.omit() %>% filter(Sex == 'Both sexes') %>% group_by(Country) %>% summarise(change = (ObesePer100[Year == 2016] - ObesePer100[Year == 1975])/ObesePer100[Year == 1975], obese75 = ObesePer100[Year == 1975], obese16 = ObesePer100[Year == 2016]) %>% arrange(desc(change))