Dass in letzter Zeit viele auf ein, zwei oder auch mehrere Pakete warteten, dürften allseits bekannt sein. Doch wie wichtig war das Thema in den letzten Wochen tatsächlich? Gibt es einen Zusammenhang mit dem Lockdown? Die Analyse im Folgenden habe ich wieder mit dem Paket gtrends in R gemacht, womit man die relative Wichtigkeit von Suchanfragen bei Google abfragen kann.
Wohlgemerkt, gibt es Kritik an den Zahlen von Google (hier ein Artikel dazu). Dennoch ergeben die folgenden Grafiken ein interessantes Bild und sprechen für sich. Nur nicht allzu genau nehmen.
Als erstes die Entwicklung der relativen Wichtigkeit der für uns interessanten Suchbegriffe: es wird sichtbar, je näher Weihnachten kommt, desto mehr wird nach "Sendungsverfolgung" (Pakete!) und nach "Porto" (Grußkarten?) gesucht.
Interessant ist, dass "Sendungsverfolgung" v.a. in den neuen Bundesländern gesucht wird und dass in den anderen Bundesländern "Paket" viel öfters gesucht wird:
Nachvollziehbar ist, dass am Wochenende weniger nach "Paket", "Porto" und "Sendungsverfolgung" gesucht wird:
library(ggplot2)
library(gtrendsR)
library(dplyr)
library(stringr)
library(viridis)
# Popularität von Schlagwörtern über die Zeit (mit Smoothing)
keywords=c("Paket", "Porto", "Sendungsverfolgung")
country=c('DE') #eg DE = Germany
time=("today 1-m") #"now 2-H" for last 2 hour / "now 4-d" for last four days / "today 1-m" for last seven days / "today 12-m" for past 12months / "all" for last five years
channel='web' # "web" / "news" / "images" / "froogle" / "youtube"
trends = gtrends(keywords, gprop=channel, geo=country, time=time)
trends %>%
.$interest_over_time %>%
mutate_at("hits", ~ifelse(. == "<1", 0.5, .)) %>% # replace with 0.5
mutate_at("hits", ~as.numeric(.)) %>% # convert to numeric
ggplot(aes(x = date, y = hits, group=keyword, col=keyword))+
geom_smooth(span=0.5,se=FALSE, size=1.1) +
geom_line(size = 0.5, alpha=0.5) +
scale_color_viridis(discrete=TRUE, option="plasma") +
theme_minimal()+
theme(legend.title = element_blank(),legend.position="bottom")+
labs(x = NULL, y = NULL,
title = paste("Popularität der Suchbegriffe"),
caption = "Plot 1")
# Popularität über Regionen hinweg
trends %>%
.$interest_by_region %>%
mutate_at("hits", ~ifelse(is.na(.), 0, .)) %>% # replace with 0
mutate_at("hits", ~as.numeric(.)) %>% # convert to numeric
ggplot(aes(x=location, y=hits, group=keyword, col=keyword, fill=keyword)) +
geom_area(position="dodge", stat="identity", color=NA, alpha=0.5) +
scale_fill_viridis(discrete=TRUE, option="plasma") +
theme_minimal() +
theme(legend.title = element_blank(),legend.position="bottom",
axis.text.x=element_text(angle = -90, hjust = 0)) +
labs(x = NULL, y = NULL,
title = paste("Interesse per Region"),
caption = "Plot 2")
# an welchen Tagen gibt es durchschnittlich am meisten Anfragen?
dayLabs<-c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday")
day_trend <- trends %>%
.$interest_over_time %>%
mutate(day = weekdays(date)) %>%
group_by(day) %>%
summarise(mean = mean(hits))
day_trend %>%
ggplot(aes(x = factor(day, levels=dayLabs) , y=mean, fill=factor(day, levels=dayLabs))) +
geom_bar(stat="identity")+
xlab('Tage') + ylab('Relatives Interesse') +
scale_fill_viridis(discrete=TRUE, option="plasma") +
theme_minimal()+
theme(legend.position = "none") +
labs(x = NULL, y = NULL,
title = paste("Interesse per Wochentag"),
caption = "Plot 3")
# Populäre verwandte Anfragen (funktioniert nur mit einem Suchbegriff)
keywords2=c("Paket")
trends2 = gtrends(keywords2, gprop=channel, geo=country, time=time)
trends2 %>%
.$related_queries %>%
filter(related_queries == 'top') %>%
mutate(value=factor(value,levels=rev(as.character(value))),
subject=as.numeric(subject)) %>%
ggplot(aes(x=value,y=subject, fill=value)) +
geom_bar(stat='identity') +
coord_flip() +
theme(legend.position = "none") +
scale_fill_viridis(discrete=TRUE, option="plasma") +
labs(x = NULL, y = "relatives Interesse",
title = paste("Verwandte populäre Anfragen"),
caption = "Plot 4")
# die "rising" Anfragen im Trend (mit evergreen herausgerechnet)
# ergibt einen Prozentwachstum der Anfragen im definierten Zeitraum vs. dem zuvor ("breakout" = +5000%)
trends2 %>%
.$related_queries %>%
mutate(subject2 = gsub("\\,","", subject)) %>%
mutate(subject3 = gsub("Breakout", "+5000%", subject2)) %>%
mutate(subject = str_sub(subject3, 2, str_length(subject3)-1)) %>%
filter(related_queries == 'rising') %>%
mutate(value=factor(value,levels=rev(as.character(value))),
subject=as.numeric(subject)) %>%
ggplot(aes(x=value,y=subject, fill=value)) +
geom_bar(stat='identity') +
scale_fill_viridis(discrete=TRUE, option="plasma") +
coord_flip() +
theme(legend.position = "none") +
labs(x = NULL, y = "Wachstum an Anfragen",
title = paste("Verwandte Trending Anfragen"),
caption = "Plot 5")