This repository has been archived by the owner on Jan 30, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.Rmd
277 lines (238 loc) · 10.4 KB
/
index.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
---
title: "Verwendung des Begriffs 'Mindset' in Internet Korpora"
author:
- name: "Marco Blank"
affiliation: "Friedrich-Alexander Universität Erlangen-Nürnberg (FAU)"
- name: "Maximilian Held"
affiliation: "Friedrich-Alexander Universität Erlangen-Nürnberg (FAU)"
- name: "Manuel Nicklich"
affiliation: "Friedrich-Alexander Universität Erlangen-Nürnberg (FAU)"
- name: "Sabine Pfeiffer"
affiliation: "Friedrich-Alexander Universität Erlangen-Nürnberg (FAU)"
- name: "Stefan Sauer"
affiliation: "Friedrich-Alexander Universität Erlangen-Nürnberg (FAU)"
- name: "Amelie Tihlarik"
affiliation: "Friedrich-Alexander Universität Erlangen-Nürnberg (FAU)"
date: "`r format(Sys.time(), '%d %B, %Y')`"
bibliography:
- SOZTAG-EXPL2019.bib
- packages.bib
nocite: |
"`r paste0('@R-', names(knitr::write_bib(x = remotes::local_package_deps(), file = 'packages.bib')), collapse = ', ')`"
editor_options:
chunk_output_type: console
---
## Der Begriff Mindset
Der Begriff des 'Mindset' ist scheinbar in aller Munde; insbesondere in der Personalverwaltung und Führung.
Daher gilt es zunächst die Verbreitung des Begriffes zu quantifizieren, sowie den Kontext auszuleuchten.
Verwendung und Kontext eines neuerdings einschlägigen Begriffes lassen sich besonders einfach und schnell auf der Grundlage von Online Korpora abschätzen.
```{r setup, cache = FALSE, include = FALSE}
source("setup.R")
```
# Verwendung in Büchern
Google Books stellt für die 2012er Korpora n-Gramme bereit, also die die Häufigkeit von (n) aufeinander folgenden Wörtern [@Michel2011].
Damit lässt sich auch die Verbreitung von *einzelnen* Wörtern in Büchern messen.
Die unten stehende Abbildung \@ref(fig:books) zeigt die Verwendung des Begriffs "mindset" im englischen und deutschen Korpus.
Die Rohdaten sind recht verrausscht, daher wird hier ein locally estimated scatterplot smoothing [LOESS nach @Cleveland1979] zur Glättung verwendet.
```{r books, fig.cap="Google Books Unigramme"}
ngram2 <- function(phrases, corpus) {
ng <- ngramr::ngram(
phrases = phrases,
corpus = corpus,
year_start = 1945,
year_end = 2019,
case_ins = TRUE,
smoothing = 0
)
ng$Phrase <- as.character(tolower(ng$Phrase))
ng$Corpus <- as.character(tolower(ng$Corpus))
ng
}
corpora <- c(german = "ger_2012", english = "eng_2012")
phrases <- c("mindset")
combs <- expand.grid(
phrases = phrases,
corpus = corpora,
stringsAsFactors = FALSE
)
ng <- purrr::pmap_dfr(
.l = combs,
.f = ngram2
)
ng <- ng %>%
group_by(Year, Phrase, Corpus) %>%
summarise(Frequency = sum(Frequency))
ggplot(
data = ng,
mapping = aes(x = Year, y = Frequency, colour = Phrase, linetype = Corpus)
) +
geom_smooth(
formula = y ~ x,
method = "loess",
se = TRUE,
na.rm = TRUE,
span = 0.2
) +
xlab(lab = "Jahr") + ylab(label = "Relative Häufigkeit von allen Unigrammen") +
scale_linetype_discrete(labels = c("Englisch", "Deutsch")) +
labs(linetype = "Korpus", subtitle = "Foo") +
theme(legend.position = "bottom") +
guides(color = FALSE) +
ggtitle(
label = "'Mindset' in Büchern",
subtitle = "Unigrams aus Google Books 2012 Korpora (1945-2010, LOESS)"
)
```
Der Begriff des "Mindsets" wird in in den letzten Jahrzehnten zunehmenden in gedruckten Werken verwandt, beginnend in englischen Veröffentlichungen in den 1980er Jahren, in deutschsprachigen Büchern dann ab den 2000er Jahren.
Abgebildet sind hier die relativen Häufigkeiten der Unigramme in den jeweiligen Korpora.
Spezifischere n-Grams wie etwa "growth mindset" [@Dweck2017] kommen leider in den zur Verfügung stehenden Korpora bis 2010 nicht vor.[^grenze]
[^grenze]: Nur n-Gramme die in mindestens 40 Büchern vorkommen sind Teil des Datensatzes; es kann also sein dass "growth mindset" in den Korpora bis 2010 vereinzelt vorkommt.
# Suchanfragen
Suchanfragen können als grober Indikator für öffentliches Interesse an einem Thema verwendet werden [etwa @Choi2012].
Google stellt mit "Google Trends" Teile dieser Suchanfragen in aggregierter Form öffentlich bereit.
Die Daten auf Google Trends basieren auf einer Stichprobe von Suchanfragen bei den Google Suchmaschinen.
Außerdem werden die einzelnen Suchanfragen mittels eines proprietären Themenmodells zu Such*themen* zusammengefasst.
Die Suchhäufigkeiten sind zu 100 auf das jeweils häufigste Suchthema an einem Tag indiziert und können daher *nicht* zwischen verschiedenen Abfragen verglichen werden.
Die Daten werden hier von der Google Trends API mit dem *gtrendsR* Package heruntergeladen [@R-gtrendsR].
## Gesuchte Themen
```{r gtrends-vars}
keywords <- c(
"mindset",
"growth mindset",
"fixed mindset",
"agile* mindset",
"digital mindset"
)
geos <- c(Welt = NA, Deutschland = "DE", USA = "US")
```
```{r gtrends-download, eval=FALSE}
# rerunning this would change results and requires google api access, so this is rarely done
# search topics
gtrends2 <- function(geo, subset = "related_queries") {
trends <- gtrendsR::gtrends(
keyword = keywords,
time = "all",
geo = geo,
low_search_volume = FALSE
)
trends <- trends[[subset]]
trends <- as_tibble(trends)
if (subset == "interest_over_time") {
trends$hits <- as.integer(trends$hits)
trends$hits[is.na(trends$hits)] <- 0
}
if (subset == "related_queries") {
trends <- trends %>%
filter(related_queries == "top") %>%
mutate(subject = as.integer(subject))
}
trends
}
map_dfr(
.x = geos,
.f = gtrends2,
subset = "interest_over_time",
.id = "browser_geo"
) %>%
readr::write_rds(path = "interest_over_time.rds")
# related terms
purrr::map_dfr(
.x = geos,
.f = gtrends2,
subset = "related_queries",
.id = "browser_geo"
) %>%
readr::write_rds(path = "related_queries.rds")
```
```{r topics, fig.cap="Google Trends von Mindset Begriffen (LOESSS)"}
interest_over_time <- readr::read_rds("interest_over_time.rds")
ggplot(
data = interest_over_time,
mapping = aes(x = date, y = hits, color = keyword)
) +
geom_smooth(
formula = y ~ x,
method = "loess",
se = TRUE,
na.rm = TRUE,
span = 0.2
) +
facet_wrap(~browser_geo, ncol = 1) +
scale_y_sqrt(limits = c(0, 100)) +
ylab("Relative Häufigkeit, Indiziert auf 100") +
labs(colour = "Suchanfrage") +
ggtitle(
label = "Suchanfragen auf Google (Quadratisch)"
, subtitle = "Ort nach Browser Geolocation"
) +
theme(legend.position = "bottom")
```
Die Abbildung gibt die weltweiten Google-Anfragen zu den aufgelisteten Konzepten wieder, indiziert auf einen (rohen) Höchstwert von 100.
In den ebenfalls LOESS-geglätteten Daten sind die Höchstwerte u.U. nicht mehr enthalten.
Wie man in der o.s. Abbildung sieht, wird Mindset im Kontext von Personalmanagement sowohl in den USA, als auch Deutschland und im Rest der Welt etwa seit 2012 verstärkt als Suchbegriff verwendet.
Die Unterkonzepte wie "agile Mindset" und "digital Mindset" scheinen vor allem in Deutschland gesucht zu werden, was aber möglicherweise ein Artefakt der Indizierung ist:
Da "Mindset" insgesamt in Deutschland sehr viel weniger verwendet wird, erscheint das Wachstum der Unterkonzepte relativ stärker.
## Verwandte Suchanfragen
Google Trends veröffentlicht zu einem Suchthema auch verwandte Suchanfragen.
Google Nutzer, die (beispielsweise) nach "Mindset" gesucht haben, suchten auch nach dieseren anderen Begriffen.
Die genaue Definition von verwandten Suchanfragen ist nicht öffentlich.
Hier dargestellt sind die verwandten Suchanfragen von `r glue::glue_collapse(x = keywords, sep = ", ", last = " und ")`.
Bei diesen Daten handelt es sich um einen ungerichteten, partiellen Graphen:
Die ursprünglichen Suchthemen können jeweils mit allen anderen Suchthemen, sowie deren verwandten Suchanfragen assoziert sein.
Zu jeden der (ursprünglichen und verwandten) Suchanfragen ist die Zentralität [des Grades nach etwa @Freeman1977] errechnet.
Da Assoziationen *zwischen* den verwandten Suchanfragen zwar denkbar, nicht aber abgefragt sind, ist die resultierende Zentralität der ursprünglichen Suchbegriffe in gewisser Hinsicht ein Artefakt der Datenerhebung.
Die Zentralität der Suchbegriffe im unten stehenden Graph in der Größe der Knoten (= Nodes) wiedergegeben, sowie im Layout des Netzwerks.
Die Dicke der Kanten (= Edges) reflektiert die auf 100 indizierte relative Häufigkeit der verwandten Anfragen.
```{r plot_related_terms}
df2graph <- function(df, geo) {
df <- dplyr::filter(.data = df, browser_geo == !!geo) %>%
dplyr::select(value, keyword, subject)
graph <- igraph::graph.data.frame(d = df, directed = FALSE)
graph <- tidygraph::as_tbl_graph(graph) %>%
tidygraph::mutate(
Centrality = tidygraph::centrality_degree(
mode = 'in',
weights = subject,
normalized = TRUE
)
)
graph
}
graph2plot <- function(graph, geo) {
ggraph::ggraph(graph = graph) +
ggraph::geom_edge_link(
mapping = ggplot2::aes(edge_width = subject, alpha = 0.5)
) +
ggraph::geom_node_label(
mapping = ggplot2::aes(label = name, size = Centrality),
repel = FALSE
) +
ggplot2::theme_void() +
ggplot2::labs(edge_width = "Relative Häufigkeit von Anfragen") +
ggplot2::labs(size = "Zentralität (Grad)") +
ggplot2::guides(edge_alpha = FALSE) +
ggplot2::theme(legend.position = "bottom") +
ggplot2::ggtitle(
label = glue::glue("Verwandte Suchanfragen auf Google ({geo})"),
subtitle = "Ungerichteter, Partieller Graph"
)
}
df2plot <- function(df, geo = "Welt") {
df2graph(df = df, geo = geo) %>%
graph2plot(geo = geo)
}
```
```{r related-germany, fig.cap="Google Trends Related Queries (aus Deutschland)"}
readr::read_rds("related_queries.rds") %>%
df2plot(geo = "Deutschland")
```
Bei den Nutzern aus Deutschland zeigt sich in Abbildung \@ref(fig:related-germany) aufgrund der spärlichen Datenlage nur ein übersichtliches Assoziationsfeld:
Die Suchbegriffe `r glue::glue_collapse(x = keywords, sep = ", ", last = " und ")` sind schwach miteinander assoziert, aber sonst mit wenigen anderen Konzepten.
```{r related-world, fig.cap="Google Trends Related Queries Weltweit"}
readr::read_rds("related_queries.rds") %>%
df2plot()
```
Weltweit, hier vor allem aus englischprachigen Ländern, zeigen sich in Abbildung \@ref(fig:related-world) umfangreichere Beziehungen.
Die ausgewählten Suchbegriffe sind stark untereinander assoziert, sowie mit verwandten Begriffen.
Es dominieren aber Anfragen hinsichtlich der ursprünglichen Literatur von Dweck.
# Bibliografie