-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path05_data_analysis.Rmd
639 lines (489 loc) · 139 KB
/
05_data_analysis.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
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
# Datenauswertung {#data-analysis}
```{r, echo=FALSE}
library(magrittr)
# allow easy dynamic value integration
sf_prep <- "../neomod_analysis/data_text_elements/sf_prep.txt"
sf_desc <- "../neomod_analysis/data_text_elements/sf_desc.txt"
r <- txtstorage::read
a <- function(x) {r("regions graves amounts", sf_prep) %>% strsplit(", ") %>% unlist %>% magrittr::extract(grepl(x, .))}
```
## Software und Daten
Die vorliegende Arbeit wurde in fünf verschiedenen Teilprojekten entwickelt und hat mindestens vier Hilfsprojekte hervorgebracht oder inspiriert:
**neomod_textdev**^[https://www.github.com/nevrome/neomod_textdev] \newline
Textproduktion. Der Text der Masterarbeit wurde in R Markdown^[https://rmarkdown.rstudio.com/ [31.07.2018]] im bookdown Framework^[@xie_bookdown_2016; @xie_bookdown_2018; https://bookdown.org/ [31.07.2018]] verfasst. Da ausschließlich das Rendern mittels Pandoc^[https://pandoc.org/ [31.07.2018] in LaTeX^[https://www.latex-project.org/ [31.07.2018]] ins PDF Format vorgesehen war, enthält die Textvorlage auch LaTeX Ausdrücke. Jeder Commit löst dank Continous Integration mit Travis^[https://travis-ci.com/ [31.07.2018]] ein automatisches Rendern des Texts aus.
**neomod_prepresentation**^[https://www.github.com/nevrome/neomod_prepresentation] \newline
Präsentationen über die Inhalte der Masterarbeit. Vor, während und nach der Arbeit wurden mehrere Präsentation zu Planung, Arbeitsfortschritt und Ergebnissen zusammengestellt. Die Präsentationen sind jeweils in R Markdown konstruiert, unterscheiden sich aber je nachdem, ob ein Rendern in HTML oder PDF vorgesehen war. Neben fertigen Foliensätzen enthält das Repositorium auch mehrere Abstracts, die in diesem Kontext für verschiedene Tagungen vorbereitet und eingereicht wurden.
**neomod_analysis**^[https://www.github.com/nevrome/neomod_analysis] \newline
Datenanalyse. Sowohl die Realweltdaten als auch die Daten aus der Simulation wurden mit R ausgewertet. Dieses Projekt hat nicht die Form eines R Pakets, sondern setzt sich aus vielen einzelnen R Skripten mit einem bewusst hohen Grad an Redundanz zusammen. Hier werden auch Abbildungen und Daten gespeichert, die als Ergebnis der Analysen erzeugt wurden. Die Ergebnisdaten wurden aufgrund ihres Volumens weitestgehend nicht mit Versionskontrolle dokumentiert und liegen entsprechend nur in den lokalen Systemen vor, in denen sie erzeugt wurden. Sie müssen bei Bedarf generiert oder -- im Fall von Quelldaten -- heruntergeladen werden. Jene Teile der Auswertung, die nicht mit der Simulation zusammen hängen und damit keine zu großen Anforderungen an die Rechenkapazität des ausführenden Systems stellen, werden über Continous Integration auf Funktionalität überwacht.
**popgenerator**^[@schmid_popgenerator_2018; https://www.github.com/nevrome/popgenerator] \newline
Populationsgenerator. R Paket zur Konstruktion von Populationsnetzwerken (siehe Kapitel \@ref(popgenerator)).
**gluesless**^[@clemens_schmid_gluesless_2018; https://www.github.com/nevrome/gluesless] \newline
Expansionsmodell. C++ Programm zur Simulation der Ausbreitung von Ideen in einem Populationsnetzwerk, wie es von *popgenerator* erzeugt wird (siehe Kapitel \@ref(gluesless)).
**c14bazAAR**^[@schmid_c14bazaar_2018; https://www.github.com/nevrome/c14bazAAR] \newline
^14^C-Datenbeschaffung. R Paket zum strukturierten Download von ^14^C-Daten aus verschiedenen Quelldatenbanken -- unter anderem der hier verarbeiteten Radon-B Datenbank.
**neimann1995**^[https://www.github.com/nevrome/neimann1995)] \newline
Reproduktion von Simulation und Distanzberechnungen in @neiman_stylistic_1995. Verständnisübung entlang eines der wesentlichen Artikel für die theoretischen Vorbereitung dieser Arbeit. Enthält auch die Simulationsimplementierung für Abbildung \@ref(fig:neiman-general).
**rdoxygen**^[https://www.github.com/nevrome/rdoxygen] \newline
Doxygen Dokumentation. R Paket um Doxygen^[http://www.doxygen.nl [13.09.2018]] Dokumentation für Source Code in R Paketen zu erstellen. Das war besonders relevant, solange gluesless als R Paket mit Rcpp implementiert war. Diese Konfiguration wurde im Laufe der Entwicklung zugunsten eines reinen C++ Programms aufgegeben.
**txtstorage**^[https://www.github.com/nevrome/txtstorage] \newline
Textdatenspeicher. R Paket zur Verwaltung von Austauschdateien mit einfachen Analyseergebnissen. Dient vor allem dazu, Zähldaten aus *neomod_analysis* zu speichern und dann dynamisch in den Text der Arbeit einzubinden.
Alle diese Projekte wurden und werden unabhängig voneinander mit der Versionskontrollsoftware Git^[https://git-scm.com/ [31.07.2018]] überwacht, die den Arbeitsfortschritt in vielen hundert einzeln kommentierten Paketen von Änderungsoperationen -- "Commits" -- dokumentiert. Der Entstehungsprozess ist damit weitreichend nachvollziehbar, sieht man von Vorüberlegungen und Gesprächen ab, die keine konkreten Ergebnisse gezeitigt haben. Nach Abschluss von Korrektur und Revision der Arbeit werden alle Projekte über die Cloud Plattform Github ^[https://github.com/ [31.07.2018]] zugänglich gemacht. Die im Text verarbeitete und darüber hinaus gesammelte Literatur ist in drei thematisch getrennte Sammlungen gegliedert und über das zotero Webportal einsehbar:
**cultural_evolution**^[https://www.zotero.org/groups/2086516/cultural_evolution] \newline
Literatursammlung zu Cultural Evolution und Subthemen wie Memetik, Cultural Transmission oder Social Learning (siehe Kapitel \@ref(cultural-evolution)). Die Zusammenstellung geht weit über eine rein archäologische Perspektive hinaus, um die forschungsgeschichtliche Entwicklung und aktuelle, fächerübergreifende Diskussion abzubilden.
**bronze_age_burials**^[https://www.zotero.org/groups/2199051/bronze_age_burials] \newline
Archäologische Literatur zur Theorie der Thanatoarchäologie und zur kulturhistorischen Entwicklung in der Bronzezeit.
**software_packages**^[https://www.zotero.org/groups/2211203/software_packages] \newline
Referenzen zu (wissenschaftlicher) Software, die für Datenverarbeitung sowie Text- und Abbildungsvorbereitung zum Einsatz kam. Vor allem R Pakete und C++ Bibliotheken.
Die gesamte Datenanalyse wurde in der Statistikprogrammiersprache R^[@RCoreTeamLanguageEnvironmentStatistical2016] implementiert. Dabei kam neben Funktionen aus Basispaketen auch eine große Anzahl von Community-Paketen zum Einsatz, inklusive mehrerer selbst entwickelter. Aufgrund der sonst unangemessen großen Menge an Referenzen, werden im folgenden nur die Pakete genannt, deren Funktionen tatsächlich unmittelbar aufgerufen wurden und nicht deren oft umfangreiche Sammlung an Abhängigkeiten. Die Zusammenstellung umfasst jedoch auch Pakete, die im Laufe der Entwicklung intensiv zum Einsatz kamen, dann aber aufgrund inhaltlicher oder technischer Veränderungen ersetzt werden mussten und aus dem Produktivcode entfernt wurden.
<!--purrr::map(c("broom", "dplyr"), function(x) {toBibtex(citation(x))})-->
Folgende Pakete kamen zum Einsatz zur Text- und Literaturverarbeitung (bookdown^[@xie_bookdown_2016; @xie_bookdown_2018], citr^[@aust_citr_2017], knitr^[@xie_dynamic_2015; @xie_knitr_2014; @xie_knitr_2018], latex2exp^[@meschiari_latex2exp_2015], markdown^[@allaire_markdown_2017], rmarkdown^[@allaire_rmarkdown_2018]), zur Datenbeschaffung (c14bazAAR^[@schmid_c14bazaar_2018], rnaturalearth^[@south_rnaturalearth_2017]), zur allgemeinen Datenmanipulation (broom^[@robinson_broom_2018], dplyr^[@wickham_dplyr_2018], forcats^[@wickham_forcats_2018], kableExtra^[@zhu_kableextra_2018], pbapply^[@solymos_pbapply_2018], plyr^[@wickham_split-apply-combine_2011], purrr^[@henry_purrr_2018], readr^[@wickham_readr_2017], stringi^[@gagolewski_r_2018], stringr^[@wickham_stringr_2018], tibble^[@muller_tibble_2018], tidyr^[@wickham_tidyr_2018], reshape2^[@wickham_reshaping_2007]), zur Graphikerstellung (cowplot^[@wilke_cowplot_2018], ggplot2^[@wickham_ggplot2_2016], ggthemes^[@arnold_ggthemes_2018], gridExtra^[@auguie_gridextra_2017], png^[@urbanek_png_2013], scales^[@wickham_scales_2017]), für geographische Analysen (raster^[@hijmans_raster_2017], sf^[@pebesma_sf_2018], sp^[@bivand_applied_2013; @pebesma_classes_2005]), für statistische Analysen und Spezialdatenverarbeitung (Bchron^[@haslett_simple_2008], car^[@fox_r_2011], expm^[@goulet_expm_2017], igraph^[@csardi_igraph_2006], vegan^[@oksanen_vegan_2018]), zur Erstellung von WebApps und interaktiven Präsentationen im Shiny Framework (htmlwidgets^[@vaidyanathan_htmlwidgets_2018], revealjs^[@hattab_revealjs_2017], shiny^[@chang_shiny_2018], visNetwork^[@almende_visnetwork_2018], webshot^[@chang_webshot_2018]) und zur allgemeinen Arbeit und Paketentwicklung in R (devtools^[@wickham_devtools_2018], magrittr^[@bache_magrittr_2014], pryr^[@wickham_pryr_2018], Rcpp^[@eddelbuettel_extending_2017; @eddelbuettel_rcpp_2011; @eddelbuettel_seamless_2013], rlang^[@henry_rlang_2018], roxygen2^[@wickham_roxygen2_2017], testthat^[@wickham_testthat_2011]).
Die für die Kartengestaltung benötigten Raumdaten, also Landmasse-Außengrenzen, administrative Ländergrenzen sowie Flüsse und Seen, stammen aus dem Natural Earth Projekt^[https://www.naturalearthdata.com [02.08.2018]]. Verwendet wurden Daten des mittleren Auflösungssniveaus, das eine Maßstabsperspektive von 1:50.000.000 wiedergeben soll. Die Daten wurden mittels des R Pakets rnaturalearth^[@south_rnaturalearth_2017] direkt in R heruntergeladen.
Die Expansionssimultion *gluesless* ist in C++^[@standard-cpp-foundation_international_2017] umgesetzt, um auf dessen höhere Geschwindigkeit und bessere Werkzeuge für objektorientiertes Programmieren zurückgreifen zu können. Zur Abbildung des Populationsgraphen kam zunächst die Boost Graph Library^[https://www.boost.org/doc/libs/1_67_0/libs/graph [01.08.2018]; @siek_boost_2002] (BGL) zum Einsatz, wurde dann aber aufgrund von Performance-Problemen durch die C++ Bibliothek des Stanford Network Analysis Project^[https://snap.stanford.edu/ [01.08.2018]; @leskovec2016snap] (SNAP) abgelöst.
Aufgrund des hohen Speicherbedarfs von *popgenerator* und *gluesless* bei der Verarbeitung sehr großer Graphen mit einer Knotenanzahl im bis zu fünf-, und einer Kantenanzahl im bis zu sechsstelligen Bereich, kam für alle finalen Simulationsberechnungen ein virtueller Computer aus der Google Cloud^[https://cloud.google.com/ [15.09.2018]] zum Einsatz. Das Berechnungssystem war mit sechs virtuellen CPUs und 32 GB Arbeitsspeicher ausgestattet, liegt also durchaus im Bereich von Hardware für Privatanwender. Auf ein Großrechensystem wurde nicht zurückgegriffen.
## Datensatz Radon-B {#radonb-dataset}
Radon-B^[@kneisel_radon-b_2013] ist eine öffentlich verfügbare Datenbank, die Radiokohlenstoffdatierungen -- ^14^C-Daten -- aus der Bronze- und frühen Eisenzeit in Europa sammelt. Sie konzentriert sich auf ein Zeitfenster zwischen 2300 und 500calBC, enthält jedoch auch Daten außerhalb dieses Zeitraums. Neben Radon-B steht mit ihrer Schwesterdatenbank Radon^[@martin_hinz_radon_2012] eine strukturell äquivalente Sammlung mit einem Schwerpunkt auf neolithischen Daten zur Verfügung. Jedes Datum ist mit Kerndaten und Metainformationen verknüpft (siehe Tabelle \@ref(tab:radonbparams)). Die Informationen wurden aus einzelnen Publikationen zusammengetragen und sind teilweise unvollständig, inkonsistent oder fehlerhaft (siehe auch Kapitel \@ref(source-criticism)).
```{r radonbparams, echo=FALSE, tidy=FALSE}
tibble::tibble(
param = c(
"Lab Code + Lab Nr.",
"BP (Before Present)",
"Std (Standard deviation)",
"$\\delta$\\textsuperscript{13}C",
"$\\delta$\\textsuperscript{13}C Std",
"Sample Material",
"Sample Material Comment",
"Feature Type",
"Feature",
"Culture",
"Phase",
"Site",
"Country",
"Country Subdivision",
"Literature",
"Comment"
),
examples = c(
"z.B. Ua-25144, OxA-1602, HAR-4341",
NA,
NA,
NA,
NA,
"z.B. charcoal, bone, seed",
"z.B. hazel, oak, barley, boar",
"z.B. settlement (house), rockshelter, Grave (cremation)",
"z.B. House I, from a mass of burnt debris...",
"z.B. Late Bronze Age, Únětice, Nordic Bronze Age",
"z.B. Nagyrév Group, Mierzanowice, Period III",
"z.B. La Croix-Saint-Ouen, Stedten, Byneset",
"z.B. Germany, France, Poland",
"z.B. Baden-Württemberg, Surrey, Greater Poland",
NA,
NA
),
description = c(
"Die allgemeine, individuelle Kennnummer, die sich aus einem Kürzel des Labors, das die Messung durchgeführt hat, und einer fortlaufenden, laborspezifischen Prozessnummer zusammensetzt.",
"Das \\textsuperscript{14}C-Alter, das mit der Messung ermittelt wurde in Jahren vor 1950 nach Christus [uncalBP].",
"Die messbedingte Standardabweichung des \\textsuperscript{14}C-Alters.",
"Ein Maß für das Isotopenverhältnis des stabilen Isotops \\textsuperscript{13}C / \\textsuperscript{12}C zwischen der Probe und einem Standard in Promille [\\textperthousand].",
"Die Standardabweichung des $\\delta$\\textsuperscript{13}C-Werts.",
"Oberkategorie des Probenmaterials.",
"Nähere Kategorisierung und Artenzuordnung des Probenmaterials.",
"Befund bzw. Fundplatzkategorie, aus dem das Probenmaterial stammt.",
"Bezeichnung des Befunds in der Grabungsdokumentations des Fundplatzes.",
"Allgemeine, archäologische Kultur- oder Phasenzuordnung des Probenkontexts.",
"Präzisere Kultur- oder Kontextansprache.",
"Bezeichnung des Fundplatzes, aus dem die Probe stammt.",
"Land in dem der Fundplatz liegt.",
"Zugehörige administrative Region innerhalb des Landes.",
"Literaturreferenz auf die Publikation aus der die Informationen über das Datum entnommen wurden.",
"Freitextkommentarfeld mit Zusatzinformationen zum einzelnen Datum."
)
) %>%
dplyr::transmute(
number = 1:nrow(.),
Parameter = paste0("\\textbf{", param, "}", "\n", ifelse(!is.na(examples), paste0("\\textit{", examples, "}", "\n"), ""), description)
) %>%
dplyr::mutate_all(
kableExtra::linebreak
) %>%
knitr::kable(
caption = "Datumsparameter in Radon-B",
format = "latex",
booktabs = T,
escape = F,
col.names = c("", "Parameter"),
linesep = "\\addlinespace \\hline \\addlinespace"
) %>%
kableExtra::kable_styling(full_width = T, font_size = 8) %>%
kableExtra::column_spec(1, bold = TRUE, width = "0.5em") %>%
kableExtra::column_spec(2, width = "25em")
```
### Datenvorbereitung und Gliederung {#data-prep-and-segmentation}
Eine hinsichtlich der Variablenauswahl etwas reduzierte^[Für einen Überblick, welche Variablen heruntergeladen und wie umbenannt werden: https://github.com/ISAAKiel/c14bazAAR/blob/master/data-raw/variable_reference.csv], aber hier ausreichende Version von Radon-B wurde mittels des R Pakets c14bazAAR direkt in R bezogen. Dieser Ausgangsdatensatz enthielt alle zu diesem Zeitpunkt [15.07.2018] öffentlichen Einträge: 11.048 Daten von 2.766 Fundplätzen aus 48 Ländern. Der erste Datenverarbeitungsschritt war das Entfernen aller Daten ohne Altersinformation und aller Daten außerhalb der theoretischen Reichweite der Kalibrationskurve (71-46401calBP) (`r r("size bronze", sf_prep)` Daten verblieben). Zur Kalibration wurde das R Paket Bchron^[@haslett_simple_2008] und die darin enthaltenen Version es IntCal13 Datensatzes^[@reimer_intcal13_2013] verwendet. Bchron berechnet das kalibrierte Alter mittels numerischer Integration^[https://github.com/andrewcparnell/Bchron/blob/master/R/BchronCalibrate.R [02.08.2018]] und liefert für jedes Datum eine normierte Wahrscheinlichkeitskurve. Alter mit Wahrscheinlichkeiten unterhalb eines Schwellwerts von $1\mathrm{e}{-6}$ wurden abgeschnitten und Alter innerhalb des $2\sigma$ Wahrscheinlichkeitsbereichs gesondert markiert. Die so erhaltenen, unterschiedlich wahrscheinlichen, kalibrierten Alter für jedes einzelne Datum wurden ab hier von calBP in calBC umgerechnet, um üblichen archäologischen Konventionen und dem allgemeinen Sprachgebrauch zu entsprechen. Um ein Subset des so vorbereiteten Gesamtdatensatzes zu erzeugen, das die Anforderungen der Fragestellung erfüllt, wurde er auf all jene Daten reduziert, die in ihrem $2\sigma$ Bereich mindestens ein Alter im Zeitfenster 800-2200calBC (1401 Jahre) vorweisen können (`r r("size bronze0", sf_prep)` Daten). Radon-B stellt in der Variablen *Feature Type* (*sitetype* in c14bazAAR) teilweise kategorisierte Informationen zum Befundkontext jedes Datums zur Verfügung: Fragestellungsrelevant sind die Kategorien *cemetery*, *Grave*, *Grave (mound)*, *Grave (mound) inhumation*, *Grave (mound) cremation*, *Grave (flat)*, *Grave (flat) inhumation*, *Grave (flat) cremation*, *Grave (cremation)* und *Grave (inhumation)* (`r r("size bronze05", sf_prep)` Daten). Statt der Variablen *Feature Type* wurden mittels Pattern Matching zwei neue Variablen mit jeweils drei Werten geschaffen: *burial type* mit den Kategorien *inhumation*, *cremation* und *unknown* sowie *burial construction* mit den Kategorien *mound*, *flat* und *unknown*. Die Fragestellung erfordert es auch, alle Daten ohne Raumbezug, also ohne Koordinateninformation, zu entfernen (`r r("size bronze1", sf_prep)` Daten). Nach diesen Arbeitsschritten lässt sich der Hauptausgangsdatensatz als Tabelle mit `r r("size bronze1", sf_prep)` Zeilen und `r r("bronze1 variable amount", sf_prep)` Spalten beschreiben, darunter die hier wesentlichen mit Angaben zu Labornummer, Koordinaten, Dichteverteilung des kalibrierten Alters und *burial type* sowie *burial construction*. Eine Karte der so vorbereiteten Gräberdaten zeigt die hohe Heterogenität der Datendichte und -qualität in verschiedenen Regionen Europas (siehe Abbildung \@ref(fig:general-map)).
```{r general-map, echo = FALSE, fig.scap = "Übersichtskarte der \\textsuperscript{14}C Daten an bronzezeitlichen Gräbern in Europa", fig.cap = "Übersichtskarte der \\textsuperscript{14}C Daten an bronzezeitlichen Gräbern in Europa. Die Karte zeigt Daten aus einem Zeitfenster von 2200 bis 800calBC. Einzelne Daten liegen außerhalb des gewählten Kartenausschnitts. Jedes Datum ist nach seinen Kontextinformationen hinsichtlich der Variablen \\textit{burial type} und \\textit{burial construction} in Form und Farbe markiert.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/general_maps/general_map.jpeg")
```
Abbildung \@ref(fig:general-map-research-area) zeigt das Untersuchungsareal dieser Arbeit. Es folgt keinen natürlichen oder kulturellen Grenzen, sondern wurde rein künstlich in Anbetracht der räumlichen Verteilung der zusammengestellten ^14^C-Daten festgelegt. Auf Grundlage visueller Analyse der Punktdichte schien es angemessen, ein rechteckiges Areal aufzuspannen. Die Projektion, die dieser Festlegung, allen Kartierungen und auch der Regionengliederung zugrunde liegt ist bewusst mit EPSG:102013^[https://epsg.io/102013 [02.08.2018]] -- Europe Albers Equal Area Conics gewählt, da diese auch auf kontinentalem Maßstab und bei Landmassen in betonter Ost-West Ausdehnung ein hohes Maß an Flächentreue gewährleistet^[@snyder_map_1987, 98-99.]. Das ist eine wichtige Eigenschaft für die Definition von vergleichbaren, räumlichen Untersuchungseinheiten. `r r("size bronze15", sf_prep)` der `r r("size bronze1", sf_prep)` oben ausgewählten Daten stammen aus dem Rechteckareal.
```{r general-map-research-area, echo = FALSE, fig.scap = "Karte mit den Grenzen des Untersuchungsareals", fig.cap = "Karte mit den Grenzen des Untersuchungsareals. Wie Abbildung \\ref{fig:general-map}, aber zugeschnitten und um Grenzen erweitert.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/general_maps/general_map_research_area.jpeg")
```
Der nach oben beschriebenem Vorgehen zusammengestellte Arbeitsdatensatz umfasst also `r r("size bronze15", sf_prep)` Einträge aus der Radon-B Datenbank. Die effektive Anzahl an ^14^C-Daten, die diese Einträge wiedergeben, ist jedoch geringer: Eine Zählung der Labornummern ergibt `r r("bronze15 labnrs amount", sf_prep)` individuelle Werte. Diese Diskrepanz ergibt sich aus Einträgen mit keiner (*n/a-n/a*) oder unvollständiger (z.B. *MAMS-n/a*, *Gd-n/a*, *Ke-n/a*) Labornummer sowie Daten die mehrfach in die Datenbank eingegeben wurden (z.B. *OxA-29003*, *GrN-10754*, *BRAMS-1217*). Letzteres betrifft `r r("bronze15 labnr doubles", sf_prep)` Einträge in dieser Datenauswahl, die ein und dasselbe ^14^C-Datum zwei- oder mehrfach repräsentieren. Die Anzahl an Gräbern, die durch die Einträge repräsentiert werden ist noch geringer: Für `r r("bronze15 multi dates one grave", sf_prep)` Einträge gilt, dass die ihnen zugehörige Kombination aus Fundplatz und Befund von mindestens einem weiteren Eintrag abgedeckt wird. Der wichtigste Grund dafür ist, dass für ein Grab häufig mehrere ^14^C-Daten in Auftrag gegeben werden. Die Abweichungen zwischen Einträgen und ^14^C-Daten sowie ^14^C-Daten und Gräbern scheinen also auf den ersten Blick schwerwiegend zu sein. Nichtsdestoweniger wurde in einem ersten Durchlauf der Berechnungen von einer Korrektur abgesehen, und tatsächlich waren die Auswirkungen dieses Versäumnisses auf die relative zeitliche und räumliche Entwicklung der Hauptuntersuchungsparameter erstaunlich gering. Die Über- und Unterbetonung der Verhältnisse durch beide Fehler zeigte keine übermäßig starke Tendenz hinsichtlich der Variablen *burial type* (Absolute Werteverteilung innerhalb der Dubletten: `r r("bronze15 burial_type doubles", sf_prep)`) und *burial construction* (`r r("bronze15 burial_construction doubles", sf_prep)`) und auch zeitlich und räumlich waren die Abweichungen scheinbar weitestgehend zufällig verteilt. In dieser Datenkombination wirken beide Effekte also eher wie ein statistisches Rauschen. Da allerdings keine Garantie besteht, dass das auch für andere Datenkombinationen in Zukunft gelten wird, schien es sinnvoll einen Algorithmus zu entwickeln, um die Fehler zumindest teilweise auszugleichen.
Die Abweichung zwischen der Menge an Einträgen und den tatsächlich vorhanden ^14^C-Daten ist durch unvollständige Datenpublikation und Fehleingabe bedingt. Sie wird sich mit der stückweisen Verbesserung des Radon-B Datensatzes in Zukunft hoffentlich selbst lösen. Da sich die Einträge jenseits der Labornummer häufig unterscheiden, bleibt im Augenblick nur die Diskussion von Einzelfällen oder die Inkaufnahme von geringfügigem Datenverlust bei einer automatisierten Lösung. Um die reproduzierbare Natur dieser Arbeit nicht in Frage zu stellen, kamen Werkzeuge aus dem c14bazAAR Paket zum Einsatz, die Einträge mit äquivalenter Labornummer automatisch zusammenführen. Abweichende Einträge in den Ausgangsdaten werden dabei als unbekannte Werte behandelt. Von den `r r("size bronze16", sf_prep)` oben zusammengestellten Einträgen blieben 1848 erhalten.
Die zweite Mengenabweichung zwischen ^14^C-Daten und Gräbern ist schwerwiegender, da sie immerhin nahezu ein Drittel der Einträge betrifft und keine Aussicht besteht, dass sich dieses Problem mit einer Verbesserung der Datenlage lösen wird: Sie ist Teil der Semantik des Datensatzes. Da für einzelne Gräber mehrere (bis zu `r r("bronze16 max dates per grave", sf_prep)`) ^14^C-Daten vorliegen, muss für diese jeweils ein individuelles chronologisches Modell definiert werden, das alle Daten vereint. Für einen großen Teil der Gräber könnte zwar angenommen werden, dass die Datierungen sich tatsächlich nur auf ein einzelnes, zu einem bestimmten Zeitpunkt in einen geschlossenen Befund eingebrachtes Individuum beziehen, das geht allerdings nicht aus den in Radon-B enthaltenen Metainformationen hervor. Stattdessen muss in Betracht gezogen werden, dass auch Kollektivgräber mit langer Belegungszeit und vielen einzelnen Bestattungen mit nur einer Befundbezeichnung charakterisiert wurden. Die Befundangabe für manche Einträge ist sehr unpräzise (z.B. *Kollektivgrab*, *Einzelgrab*, *from ring ditch*) und es ist nicht ersichtlich, ob die Daten tatsächlich von einer einzelnen Bestattung stammen. Die Herausforderung besteht also darin, auf Grundlage der vorhandenen Daten einerseits das übermäßige Gewicht zeitlich scharf umgrenzter Gräber mit einzelnen, mehrfach datierten Bestattungen zu mindern, und andererseits der diachronen Entwicklung in über lange Zeit genutzten Grabanlagen gerecht zu werden. Um das zu erreichen wurden die `r r("bronze16 multi dates one grave", sf_prep)` nach der oben durchgeführten Entfernung der Labornummer-Dubletten verbliebenen Mehrfacheinträge in einem ersten Schritt weiter auf jene Befundtermini reduziert, die tatsächlich einen einzelnen Grabbefund meinen könnten. Das sind vor allem jene `r r("bronze16 multi dates one grave with numbers", sf_prep)` mit numerischen Zeichen (z.B. *Bef. 530 Doppelbestattung*, *Grab, Bef. 35635*, *Objekt 461*), weswegen die Auswahl auf sie beschränkt wurde. Innerhalb dieser Auswahl wurden nach Fundplatz und Befund gegliederte Gruppen angelegt und deren kalibrierte Dichteverteilungen zusammengeführt. Notwendig wäre dafür eigentlich ein individuelles chronologisches Modell für jede dieser Datengruppen. Stattdessen wurden die einzelnen Dichteverteilungen addiert und bezogen auf das Gesamtmaximum normiert. Die Information, ob ein Alter zum $2\sigma$ Bereich eines Grabes gehört, wurde unter diesen Umständen immer dann als wahr angenommen, wenn es im $2\sigma$ Bereich mindestens eines der zusammengeführten Daten liegt. Aus der Perspektive der ^14^C-Datenverarbeitung ist dieses Vorgehen nicht korrekt, angesichts der zugrundeliegenden Fragestellung und der Herausforderungen des Datensatzes jedoch sinnvoll: Jeder Eintrag im Datensatz soll einen Ort und einen Zeitraum definieren, in dem die mit ihm assoziierten Angaben für die Primärvariablen *burial type* und *burial construction* auftraten. Durch die Reduktion der Daten auf einen einzelnen Eintrag wird die Überbetonung dieser Information vermieden. Gleichzeitig wird aber auch der mitunter langen Belegungsdauer eines durch den einzelnen Eintrag repräsentierten Grabmonuments Rechnung getragen. Eine Verbesserung der Metainformationen zu jedem Datum (z.B. relativchronologische Position zu anderen Daten des selben Grabes) würde eine wesentliche Verbesserung dieses Algorithmus ermöglichen. Nach der vorgenommenen Reduktion verblieben `r r("size bronze17", sf_prep)` jeweils befundspezifische Einträge.
Innerhalb des Untersuchungsareals wurden künstliche Regionen abgegrenzt, um die zeitliche und räumliche Entwicklung der Variablen *burial type* und *burial construction* in sinnvollen und der verfügbaren Datenmenge angemessenen Einheiten beobachten zu können (siehe Abbildung \@ref(fig:general-map-research-area-regions)). Der Prozess der Erstellung dieser Regionen war semiautomatisch und darauf angelegt kulturelle Makroregionen der Bronzezeit zumindest näherungsweise abzubilden. Dafür stand mir auch eine unpublizierte, händisch entworfene Regionengliederung von Jutta Kneisel und Oliver Nakoinz als Vorlage zur Verfügung. In den Grenzen des Untersuchungsareals wurde ein Raster von Punkten angelegt, die jeweils als Zentrum einer der geplant runden Regionen dienen sollten. Dieses Raster wurde manuell so angepasst, bis es sich den Zentrumspunkten wesentlicher geographischer, kultureller und/oder forschungsgeschichtlicher Einheiten annährte. Die Distanz zwischen den Zentren beträgt in dieser Konfiguration 400km (im Bezugssystem der EPSG:102013 Projektion). In einem weiteren Schritt wurden kreisförmige Regionen um die Zentrumspunkte aufgebaut. Der Kreisradius wurde nach Augenmaß mit 240km so gewählt, dass möglichst alle bekannten ^14^C-Daten (also damit auch Gräber) in mindestens einer Region verortet sind. Das Überlappen von Regionen wurde dabei in Kauf genommen. Andere Regionendefinitionen anhand alternativer geometrischer Formen (Rechtecke, Hexagone, Polygone), nach der Dichteverteilung von Fundpunkten, anhand sich zeitlich wandelnder, archäologisch erfasster, kultureller Einheiten sind denkbar und sollten bei zunehmender Datenverfügbarkeit in Zukunft evaluiert werden. Das gilt auch hinsichtlich der Größe der Einheiten, die aufgrund der diachron geringen Datenmenge sehr groß gewählt werden mussten. Nur aus den acht Regionen, die in Abbildung \@ref(fig:general-map-research-area-regions) definiert werden, sind ausreichend ^14^C-Daten an Gräbern bekannt, um eine nähere Betrachtung zu rechtfertigen. Der Schwellwert dafür wurde mit 60 Gräbern jedoch sehr niedrig angelegt, um das effektive Untersuchungsareal nicht noch weiter verkleinern zu müssen. Die Benennung der Regionen war an den modernen, administrativen Einheiten orientiert, die die Kreise im wesentlichen einschließen (siehe Kapitel \@ref(representativity) für eine nähere Beschreibung der geographischen Ausdehnung der Regionen). Ihre im folgenden stets eingehaltene, geographische Reihenfolge von Südost nach Nordwest soll die Lesbarkeit- und Interpretierbarkeit von Abbildungen erhöhen. Mit angegeben ist die Menge an Gräbern pro Region: `r r("regions graves amounts", sf_prep)`. Durch die Regionengliederung verringerte sich das effektive Untersuchungsareal weiter. Von den `r r("size bronze17", sf_prep)` Gräbern im Rechteckareal verblieben `r r("gpr size", sf_desc)`. Das ist der Ausgangsdatensatz auf dem alle folgenden Beobachtungen beruhen.
```{r general-map-research-area-regions, echo = FALSE, fig.scap = "Karte mit künstlichen Untersuchungsregionen", fig.cap = "Karte mit künstlichen Untersuchungsregionen. Wie Abbildung \\ref{fig:general-map-research-area}, aber um farblich markierte Regionen erweitert.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/general_maps/general_map_research_area_regions.jpeg")
```
### Deskriptive Analyse {#descriptive-data-analysis}
Aus dem Areal der kreisförmigen, artifiziellen Großregionen, die für diese Arbeit festgelegt wurden (siehe Abbildung \@ref(fig:general-map-research-area-regions)) liegen in Radon-B Informationen zu mindestens `r r("gpr size", sf_desc)` Gräbern auf Grundlage von `r r("dpr size", sf_desc)` ^14^C-Daten vor (zur Datenauswahl und -vorbereitung siehe Kapitel \@ref(data-prep-and-segmentation)). Geht man davon aus, dass die Eingaben in Radon-B korrekt sind, dann stammen die ^14^C-Daten von `r r("dpr sites amount", sf_desc)` Fundplätzen. Zu den Daten sind `r r("dpr period amount", sf_desc)` verschiedene Periodenbegriffe und `r r("dpr culture amount", sf_desc)` archäologische Kulturen dokumentiert, diese Information ist jedoch aufgrund der Datensituation nicht sinnvoll auswertbar (siehe Kapitel \@ref(source-criticism)). `r r("dpr material bone amount", sf_desc)` Daten wurden an Probenmaterial von Knochen und Zähnen (mindestens `r r("dpr material cremated bones amount", sf_desc)` davon verbrannt), `r r("dpr material charcoal wood amount", sf_desc)` von Holz und Holzkohle, ein kleiner Teil (`r r("dpr material other amount", sf_desc)`) von sonstigen Materialien wie Nüssen, Harz oder Pech gemessen. Für die restlichen `r r("dpr material unknown amount", sf_desc)` Daten ist keine Materialangabe hinterlegt. Hinsichtlich der Variablen *burial type* und *burial construction* gelten die in Tabelle \@ref(tab:dprcrosstab) dargestellte Verhältnisse.
```{r dprcrosstab, echo=FALSE, tidy=FALSE}
load("../neomod_analysis/data_text_elements/dprcrosstab.RData")
dprcrosstab %>%
unclass() %>% data.frame() %>%
knitr::kable(
caption = "Kreuztabelle",
format = "latex",
booktabs = T,
escape = F,
linesep = "\\addlinespace"
) %>%
kableExtra::kable_styling(
full_width = T,
font_size = 8,
latex_options = "hold_position"
)
```
Von besonderem Interesse für die vorliegende Arbeit ist eine diachrone Perspektive in der Bestattungssittenentwicklung. Schon eine Kartierung der Gräber in Zeitschritten von 200 Jahren (siehe Abbildung \@ref(fig:general-map-research-area-timeslices)) offenbart generelle Trends hinsichtlich *burial type* und *burial construction* in Früh-, Mittel- und Spätbronzezeit. Diese Beobachtungen können mittels des erstellten Datensatzes erheblich präzisiert sowie räumlich- und zeitlich explizit gemacht werden.
\begin{landscape}
```{r general-map-research-area-timeslices, echo = FALSE, fig.scap = "Einzelkarten nach Zeitschritten", fig.cap = "Einzelkarten nach Zeitschritten. Chronologische und räumliche Entwicklung der \\textsuperscript{14}C Datenverteilung. Einzelabbildungen wie Abbildung \\ref{fig:general-map-research-area}, jeweils aber nur mit den Daten, deren $2\\sigma$ Wahrscheinlichkeitsbereich das entsprechende calBC Datum (2200calBC, 2000calBC, 1800calBC, ...) überspannt. Die Transparenz bzw. Opazität spiegelt die normierte Wahrscheinlichkeit des Auftretens eines Datums für genau diesen Zeitpunkt wider.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/general_maps/general_map_research_area_timeslices.jpeg")
```
\end{landscape}
Entscheidend ist hierfür nicht unbedingt, wann und wo welche Art Grab angelegt wurde. Stattdessen soll aus dieser Information eine quantitative Beschreibung zur Verbreitung und Dominanz von Ideen extrahiert werden. Zur Erstellung dieses Proxies wurde die Annahme getroffen, dass eine Idee zu einem bestimmten Zeitpunkt in einer Region dann als anwesend gewertet werden muss, wenn ein Grab in dieser Region existiert, dessen $2\sigma$ Wahrscheinlichkeitsbereich ermittelt aus einem oder mehreren ^14^C-Daten diesen Zeitpunkt umfasst. Ein Beispiel: Die Idee "Körperbestattung" muss 1447calBC anwesend gewesen sein, da dieses Jahr im $2\sigma$ Bereich des ^14^C-Datums NZA-32497 liegt, das für die Körperbestattung I2639/25217 vom Fundplatz Amesbury Down angefertigt wurde. Liegen mehrere Daten aus einer Region für ein Jahr vor, dann kann das Auftreten der verschiedenen Ausprägungen von *burial type* und *burial construction* gezählt werden. Tut man das für alle Jahre mit allen Ausprägungen, dann ergeben sich sechs aufschlussreiche Zeitreihen, die sich jahrweise sinnvoll zur Gesamtzahl der Beobachtungen addieren (für *burial type* siehe Abbildung \@ref(fig:development-amount-regions-burial-type), für *burial construction* Abbildung \@ref(fig:development-amount-regions-burial-construction)). Aus den Ausprägungsmengen lässt sich auch das jeweilige Verhältnis der Ideen in jedem Jahr in jeder Region berechnen (für *burial type* siehe Abbildung \@ref(fig:development-proportions-regions-burial-type), für *burial construction* siehe Abbildung \@ref(fig:development-proportions-regions-burial-construction)). Dabei wurden die Gräber, für die keine Information zu den Primärvariablen vorliegt (*unknown*) ignoriert. Die Entwicklung der Verhältnisse ist die für die Fragestellung dieser Arbeit interessantere Perspektive. Eine Betrachtung der Stichprobengröße aus der die Proportionen abgeleitet wurden, ist aber unumgänglich um die Aussagekraft in einer Region und in einem Zeitfenster beurteilen zu können. Für manche Regionen und Zeiträume liegen sehr wenige Gräber vor. Die Ergebnisse aller folgenden Analysen müssen entsprechend mit Vorsicht gelesen werden. Sie könnten sich bei zunehmender Datenmenge verändern. Nichtsdestoweniger erlauben die Abbildungen \@ref(fig:development-proportions-regions-burial-type) und \@ref(fig:development-proportions-regions-burial-construction) schon jetzt bemerkenswerte, wenn auch teilweise objektiv falsche Interpretationen (für eine Bewertung siehe \@ref(representativity)):
```{r development-amount-regions-burial-type, echo = FALSE, fig.scap = "Entwicklung der Datenmenge für \\textit{burial type} in den Regionen", fig.cap = "Entwicklung der Datenmenge für \\textit{burial type} in den Regionen. Für jedes Jahr wird die Menge an Daten bestimmt, zu deren $2\\sigma$ Wahrscheinlichkeitsbereich es gehört. Die absolute Datenmenge wird getrennt nach den Ausprägungen der Variablen \\textit{burial type} aufaddiert und nach deren Verteilung abgebildet. Die Y-Achse ist auf maximal 80 sich überschneidende Daten limitiert um zu vermeiden, dass die übergoße Datenmenge aus \\textit{Northern Germany} die Angaben für die anderen Regionen unlesbar macht.", out.extra = "", out.width = ".9\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/development/development_amount_regions_burial_type.jpeg")
```
```{r development-amount-regions-burial-construction, echo = FALSE, fig.scap = "Entwicklung der Datenmenge für \\textit{burial construction} in den Regionen", fig.cap = "Entwicklung der Datenmenge für \\textit{burial construction} in den Regionen. Wie Abbildung \\ref{fig:development-amount-regions-burial-type}, allerdings für die Variable \\textit{burial construction}: Die Gesamtdatenmenge ist die selbe, die innere Verteilung aufschlussreich unterschiedlich im Vergleich zu \\textit{burial type}.", out.extra = "", out.width = ".9\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/development/development_amount_regions_burial_construction.jpeg")
```
```{r development-proportions-regions-burial-type, echo = FALSE, fig.scap = "Entwicklung der Ideenproportionen für \\textit{burial type} in den Regionen", fig.cap = "Entwicklung der Ideenproportionen für \\textit{burial type} in den Regionen. Im Gegensatz zu den Abbildungen \\ref{fig:development-amount-regions-burial-type} und \\ref{fig:development-amount-regions-burial-construction}, die die absolute Datenmengen wiedergeben, zeigen die Abbildungen \\ref{fig:development-proportions-regions-burial-type} und \\ref{fig:development-proportions-regions-burial-construction} die relative, proportionale Entwicklung der Varianten in den Primärvariablen. Leerstellen markieren Zeitfenster und Regionen aus denen keine Informationen vorliegen.", out.extra = "", out.width = ".9\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/development/development_proportions_regions_burial_type.jpeg")
```
```{r development-proportions-regions-burial-construction, echo = FALSE, fig.scap = "Entwicklung der Ideenproportionen für \\textit{burial construction} in den Regionen", fig.cap = "Entwicklung der Ideenproportionen für \\textit{burial construction} in den Regionen. Wie Abbildung \\ref{fig:development-proportions-regions-burial-type}, hier jedoch die Proportionen der Varianten \\textit{mound} und \\textit{flat} der Variablen \\textit{burial construction}.", out.extra = "", out.width = ".9\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/development/development_proportions_regions_burial_construction.jpeg")
```
Definitiv gab es im Laufe der Bronzezeit in Europa einen Trend weg von der Körperbestattung hin zur Brandbestattung. Um 2200calBC waren Brandbestattungen in Polen, Süddeutschland, Nordostfrankreich und Norddeutschland nahezu unbekannt. Im Nordwesten, in Großbritannien und im Benelux Raum, und im Südosten, in Österreich und Tschechien, gab es jedoch frühe Brandbestattungstraditionen. Diese Kontexte könnten als Ursprungsgebiete des später omnipräsenten Phänomens diskutiert werden. Während Brandbestattungen sowohl in Österreich und Tschechien als auch im Benelux Gebiet im Laufe der Frühbronzezeit an Bedeutung verloren und erst in der Mittelbronzezeit wieder gewannen, stieg ihr Anteil in England stetig. Körper- und Brandbestattung hielten sich hier lange die Waage. Ähnlich verhielt es sich in Südskandinavien, wo der Anteil an Brandbestattungen bis zur Spätbronzezeit allerdings wesentlich geringer ausfiel. In Polen und Norddeutschland setzte sich Brandbestattung mit dem Beginn der Spätbronzezeit relativ plötzlich und vollständig durch. In Nordostfrankreich und Norddeutschland vollzieht sich dieser Wandel schon in der Mittelbronzezeit. In beiden Kontexten spielten Körperbestattungen auch danach eine wesentliche Rolle.
Hinsichtlich der Frage nach Grabüberhügelung ist das Bild erheblich heterogener. In Österreich und Tschechien waren Flachgräber bis in die Spätbronzezeit die dominante Bestattungsform, Überhügelung gewann aber ab der Mittelbronzezeit an Relevanz. In Polen hielten sich Flach- und Hügelgrab bis in die Mittelbronzezeit die Waage, dann setzten sich Flachgräber durch. Die Datenmenge aus Süddeutschland und Nordostfrankreich ist außerordentlich gering: Glaubt man der Stichprobe, dann vollzog sich in Süddeutschland am Beginn der Mittelbronzezeit ein plötzlicher, radikaler Wechsel von der Bestattung in Flach- zu Hügelgräbern. In Nordostfrankreich hätte es in der Bronzezeit keine Flachgräber gegeben. Norddeutschland durchlief eine Entwicklung von der Dominanz von Flachgräbern in der Frühbronzezeit, einer kurzen Phase zunehmender Überhügelung in der Mittelbronzezeit gefolgt von erneuter Dominanz der Flachgrabsitte in der Spätbronzezeit. Eine ähnliche Entwicklung deutet sich in Südskandinavien an: Flachgräber überwogen deutlich, wurden über Jahrhunderte aber zunehmend -- fast vollständig -- von Hügeln ersetzt, bis die Beisetzung in Flachgräbern am Ende der Bronzezeit wieder häufiger wurde. Im Benelux Raum waren Hügelgräber durchgehend dominant, in der Früh- und Spätbronzezeit traten Flachgräber jedoch ebenfalls in signifikantem Umfang auf. In England waren Flachgräber ein kurzes Phänomen in der Frühbronzezeit, das später nicht wieder auftrat.
### Quellenkritik {#source-criticism}
Die Verwendung des Radon-B Datensatzes im Kontext der Methoden und Fragestellungen dieser Arbeit ist aus mehreren Gründen problematisch. Eine Quellenkritik muss dabei auf verschiedenen Ebenen ansetzen: Bei der technischen und inhaltlichen Umsetzung der Datenbank, bei der Repräsentativität der im Datensatz vertretenen Stichprobe und schließlich bei der Frage, ob diese Art Daten für eine Betrachtung von Kulturvorgängen im Allgemeinen und im Rahmen der Cultural Evolution Theorie und Terminologie geeignet ist.
#### Dateneingabe
Die Radon-B Datenbank hat inhaltliche Unzulänglichkeiten, die sich vor allem aus inkonsistenter Dateneingabe infolge mangelnder Vorgaben in Freitextfeldern ergeben. Eine systematische Lösung dieser Probleme wäre sehr aufwändig, da sie die individuelle, nicht automatisierbare Reevaluation eines großen Teils der Einträge erfordern würde. Folgende Problematiken ergeben sich aus den mangelnden Vorgaben:
- Viele Einträge sind unvollständig. Die Unvollständigkeiten rühren sicher teilweise aus Mängeln in den ausgewerteten Publikationen: Material und Spezies des beprobten Überrests, der $\delta$^13^C Wert oder der kulturhistorische Kontext sind mitunter nicht bekannt oder nicht publiziert. Für dieses Problem gibt es keine Lösung -- sieht man von der akribischen Rekonstruktion des Datierungsvorgangs in Zusammenarbeit mit den beteiligten Laboren ab.
- Mehrere nominal oder ordinal skalierte, also eigentlich kategorisierbare Kontextvariablen sind mit keiner oder einer inkosistenten Kategorienauswahl versehen oder nicht sinnvoll hierarchisiert. Während für manche Variablen (*Feature Type*, *Sample Material*) eine Kategorisierung bewusst festgelegt worden zu sein scheint, die dann nur in wenigen Fällen durch freie Einträge erweitert wurde, scheint bei anderen (*Culture*, *Phase*) keine klare Vorgabe zu bestehen, welche semantischen Inhalte in welcher Struktur dort eingefügt werden sollen. Die Materialdefinition könnte durch strengere Vereinheitlichung der Eingabewerte leicht besser gelöst werden. Die sinnvolle Auswahl und Hierarchisierung kulturhistorischer Begriffe ist dagegen mit großen Schwierigkeiten verknüpft.
- Viele Einträge sind mehrsprachig -- vor allem Englisch und Deutsch -- wobei in ein und dem selben Datensatz oft mehrere Sprachen für einzelne Variablen auftreten. Zur Lösung dieses Problems wäre eine systematische Reevaluation jedes Datums erforderlich.
- Die Koordinateninformationen sind übermäßig genau, wenn man in Betracht zieht, dass sie in der Regel nur den Fundplatz und keine Befunde auf demselben verorten. Die scheinbare Genauigkeit reicht häufig in den Zentimeterbereich. Die Daten sollten automatisiert gerundet werden.
#### Repräsentativität {#representativity}
Die Abbildungen \@ref(fig:general-map), \@ref(fig:development-amount-regions-burial-type) und \@ref(fig:development-amount-regions-burial-construction) zeigen, dass der Datensatz für einzelne Regionen und Zeiträume verhältnismäßig viele, für die Mehrzahl jedoch sehr wenige Daten enthält. Diese Ungleichverteilung der Daten hat viele verschiedene Gründe.
- Die Datenaufnahme in Radon-B ist von Schwerpunkten, Forschungsinteressen und Projektfinanzierung der beteiligten Wissenschaftler abhängig. Daten wurden zeitlich und räumlich bedarfsweise aus der Literatur gesammelt.
- Die Verfügbarkeit von ^14^C-Daten in der Literatur ist wiederum stark daran gebunden, ob ein modernes Forschungsprojekt mit Konzentration auf eine Region und ein Zeitfenster durchgeführt wurde. Neben der zufälligen Verteilung der Interessensgebiete der Forschenden spielt hier auch die politische Rahmensituation -- etwa die lang andauernde Trennung Europas in West und Ost -- eine entscheidende Rolle. Diese Gegebenheiten können die Arbeit in manchen Räumen deutlich erleichtern oder verkomplizieren.
- Im Untersuchungsgebiet dieser Arbeit begegnen sich unterschiedliche Forschungstraditionen, die ^14^C-Daten in der Vergangenheit mehr oder weniger essentiell für die Konstruktion einer absolutchronologischen Einschätzung gehalten haben. ^14^C-Daten sind in verschiedenen metallzeitlichen Kontexten der Genauigkeit relativchronologischer Einordnungen -- etwa auf Grundlage von Fibeltypologie -- unterlegen und werden deswegen nur sporadisch zur Schaffung von absolutchronologischen Einhängepunkten genutzt. In Feuchtbodenkontexten und bei Verfügbarkeit der erforderlichen Hölzer wird die dendrochronologische Datierung bevorzugt angewandt. Die verfügbaren ^14^C Kalibrationskurven bilden in manchen Zeiträumen Plateaus aus, was die erreichbare Datierungsgenauigkeit der Daten signifikant einschränkt. Ist ein solcher Effekt bekannt, dann werden erst gar keine Daten in Auftrag gegeben.
- ^14^C Datierung erfordert eine zwar kleine, aber hinreichend genau kontextualisierbare Menge organischen Fundmaterials. Aufgrund von Altholz- und Altwassereffekt werden kurzlebige Probenmaterialien wie beispielsweise Knochen von terrestrischen Lebewesen oder verkohlte Getreidekörner bevorzugt. Die Mehrzahl 14^C^-Daten für diese Arbeit stammt von Knochen und Zähnen (siehe Kapitel \@ref(descriptive-data-analysis)). Das Skelett des Leichnames ist meist die größte, mitunter sogar die einzige erhaltene, datierbare Kohlenstoffakkumulation in einem Grab. Deren Erhaltung unterliegt aber großen bodenabhängigen Unterschieden^[@brock_pre-screening_2010; @gordon_soil_1981; @nielsen-marsh_bone_2007]. In vielen Mineralbodenkontexten ist kein ausreichend gutes, datierbares Material vorhanden. Das kann ganze Großregionen betreffen, wenn etwa infolge kalkarmer Böden generell schlechte Knochenerhaltung vorherrscht.
- Aus sehr wenigen Regionen und Zeiten der europäischen Bronzezeit sind so viele Gräber dokumentiert, dass davon ausgegangen werden kann, eine signifikante Stichprobe der Bestattungskultur der Gesamtpopulation erforscht zu haben. Stattdessen ist in mehreren Kontexten offensichtlich, dass nur die Bestattungen einzelner sozialen Gruppen, eines Geschlechts oder einer ethnischen Gruppe erfasst wurden: Die Menge und Natur der bekannten Gräber kann schlicht nicht für alle Verstorbenen repräsentativ sein. In diesem Fall ist anzunehmen, dass weitere, abweichende Bestattungsrituale praktiziert wurden, die keine oder archäologisch nur schwer fassbare Überreste hinterlassen haben. Diese Rituale sind in den ^14^C-Daten aus Radon-B nicht abgebildet.
Hinsichtlich der Primärvariablen dieser Arbeit *burial type* und *burial construction* ergeben sich weitere, besondere Effekte: Die Störung und Beraubung von Gräbern war ein in Geschichte und Vorgeschichte weit verbreitetes Phänomen. Hügelgräber wurden dabei aufgrund ihrer guten Sichtbarkeit üblicherweise stärker angegriffen als Flachgräber und könnten infolge dessen in Radon-B unterrepräsentiert sein. Sie waren vielerorts auch Gegenstand archäologischer Expeditionen in der Frühzeit des Faches Ende des 19. und Anfang des 20. Jahrhunderts. Aus diesen Grabungen sind natürlich keine ^14^C-Daten hervorgegangen. Unabhängig davon kann angenommen werden, dass ein großer Teil der in der Bronzezeit errichteten Hügelgräber durch landwirtschaftliche Aktivität -- langjähriges Überpflügen -- zerstört wurde. Auch das könnte Unterrepräsentation im archäologischen Befund zur Folge haben^[@harding_european_2000, 84-85.]. Andererseits: Wenn ein Hügelgrab noch vorhanden ist, dann ist es -- im Gegensatz zu einem Flachgrab -- leichter sichtbar und gerät eher in den Fokus archäologischer Aufmerksamkeit. Hügelgräber zeichnen sich oft eindeutig identifizierbar in Luftbildern oder digitalen Geländemodellen ab, während Flachgräber für heutige Methoden der Fernerkundung deutlich schwieriger zu erkennen sind. Gewissheit bringt oft erst eine Sondagegrabung. Es ist schwer, die Wirkung dieser Effekte im einzelnen abzuschätzen, eine Überrepräsentation von Hügelgräbern scheint jedoch allgemein wahrscheinlicher als eine Überrepräsentation von Flachgräbern. Die Datierung von Brandgräbern an Knochenüberresten weicht methodisch von der Datierung von Körpergräbern ab, da sie auf der Extraktion der mineralischen, nicht der organischen Fraktion im Knochen basiert^[@lanting_dating_2001]. Das zugrundeliegende chemische Verfahren ist jünger, kam erst in den vergangenen 15 Jahren häufiger zum Einsatz und ist mit einer Reihe besonderer Schwierigkeiten verknüpft^[@olsen_characterisation_2008; @strydonck_14c_2009]. Verbrannter Knochen ist grundsätzlich verwitterungsanfälliger als unverbrannter^[@kalsbeek_preservation_2006; @stiner_differential_1995]. Eine Unterrespräsentation von Brandgräbern in aktuellen Datensammlungen ist darum plausibler -- obgleich sich dieser Effekt in Radon-B nur sehr eingeschränkt zu beobachten ist (siehe Abbildung \@ref(fig:development-amount-regions-burial-type)).
Die Repräsentativität der relativen Entwicklung der Primärvariablen (siehe Abbildung \@ref(fig:development-proportions-regions-burial-type) und \@ref(fig:development-proportions-regions-burial-construction)) kann zumindest oberflächlich geprüft werden, indem man die oben vorgestellten Ergebnisse auf Grundlage des Radon-B Datensatzes mit einer Auswertung der relativen Aussagen aus der Literatur vergleicht, wie sie in Kapitel \@ref(regions-archaeological-overview) zusammengefasst werden. Für Abbildung \@ref(fig:general-map-regions-countries) wurden die Gräber und die künstlichen Regionen zur besseren Orientierung auf die modernen Ländergrenzen projiziert, auf die sich Kapitel \@ref(regions-archaeological-overview) bezieht. Zudem wurden die Literaturangaben in eine stark simplifizierende Modellabbildung \@ref(fig:development-proportions-regions-pseudoquant) verarbeitet, die den Anteil der Bestattungsformen in den künstlichen Regionen wiedergibt. Angaben wie "In der Mittelbronzezeit dominiert in Süddeutschland die Bestattung in Hügelgräbern" wurden klassifiziert um pseudoquantitativ visualierbar zu werden. Von den 5 Klassen wurde die Zuordnung zu 0 -- Merkmal ist nicht vorhanden -- und 4 -- Merkmal ist absolut dominant -- nicht vorgenommen, da selbst bei extrem regelhaften Bestattungstraditionen in einem archäologischen Kontext stets Ausreißer auftreten. Außerdem sollte damit auch den berechtigten Unsicherheiten hinsichtlich der Repräsentativität des archäologischen Befunds Rechnung getragen werden. Die Angaben in dieser Abbildung sind extrem approximativ -- es bleibt zu hoffen, dass eine echte, quantitative Auswertung irgendwann möglich sein wird, wenn mehr Daten in standardisierter Form vorliegen.
Der Vergleich zwischen dem in dieser Arbeit errechneten Proxy der Bestattungssittenentwicklung und den jeweils vorherrschenden, archäologischen Narrativen zeigt insgesamt viele Defizite des Datensatzes auf. Für Regionen mit relativ großer Datenverfügbarkeit sind die Nachhersagen besser -- häufig durchaus korrekt -- während die Angaben für die besonders informationsarmen Regionen in mehreren Fällen schlicht eine falsche Tendenz anzeigen:
```{r general-map-regions-countries, echo = FALSE, fig.scap = "Karte mit Regionen und modernen Ländergrenzen", fig.cap = "Karte mit Regionen und modernen Ländergrenzen. Wie Abbildung \\ref{fig:general-map-research-area-regions}, hier allerdings nicht auf dem Hintergrund der größten europäischen Flüsse sondern vor modernen, administrativen Grenzen.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/general_maps/general_map_regions_countries.jpeg")
```
```{r development-proportions-regions-pseudoquant, echo = FALSE, fig.scap = "Pseudoquantitative Auswertung der archäologischen Beobachtungen", fig.cap = "Pseudoquantitative Auswertung der archäologischen Beobachtungen. Visualierung der in Kapitel \\ref{regions-archaeological-overview} zusammengestellten, archäologischen Informationen für die Dominanz der wesentlichen Bestattungstraditionen hinsichtlich der Variablen \\textit{burial type} und \\textit{burial construction}. Effektiv wurden drei Klassen zur subjektiven Klassifizierung der Ergebnisse verwendet: 1. Idee nicht oder schwach vorhanden, 2. Idee wird in ähnlichem Umfang wie ihre Gegenvariante praktiziert, 3. Idee dominiert.", out.extra = "", out.width = ".9\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/development/development_pseudoquant.jpeg")
```
**Österreich, Tschechien, Slowakei und Ungarn** `r a("Southeastern Central Europe")`^[Anzahl der in Radon-B durch ^14^C-Daten repräsentierten Gräber in dieser Region.] \newline
Die künstliche Untersuchungsregion *Southeastern Central Europe* umfasst den Osten Österreichs (Oberösterreich, Niederösterreich, Steiermark, Burgenland), den Nordwesten Ungarns, die Westslowakei, Mähren und große Teile Böhmens. Die Dichte der ^14^C-Daten an Gräbern aus Radon-B ist gering -- aus den verschiedenen Regionen liegen zwar jeweils einzelne Daten vor, große Areale müssen jedoch ohne Evidenz auskommen. Diachron ist das Datenaufkommen durchgehend niedrig und erreicht in der Mittelbronzezeit einen Tiefpunkt. Während für die *burial type* Variable ein konstanter Informationsfluss gegeben ist, nimmt die Anzahl an Gräbern ohne Angaben zu *burial construction* in der Spätbronzezeit derart zu, dass überhaupt keine Aussage mehr für sie abgeleitet werden kann. Um die relative Entwicklung innerhalb der Variaben *burial type* und *burial construction*, wie sie mithilfe des Radon-B Datensatzes auf Grundlage von ^14^C-Daten nachhergesagt wurde, beurteilen zu können, muss zunächst ein Resümee aus den Angaben in Kapitel \@ref(regions-archaeological-overview) gezogen werden. Das ist dadurch erschwert, dass die Region vielfältige geographische und kulturelle Räume schneidet. Brand- und Körperbestattung bestanden im Südosten Mitteleuropas schon in der Frühbronzezeit nebeneinander und auch über die Expansion der Grabhügelsitte in der Mittelbronzezeit blieben die lokalen Tradition in dieser Hinsicht stabil -- mit insgesamt einer leichten Zunahme der Brandgräber. Die Urnenfelderzeit brachte den Übergang zur absoluten Dominanz der Brandbestattung. Die Entwicklung der *burial type* Variable im Radon-B Proxy bildet diese Entwicklung grundsätzlich korrekt ab. Die Informationen aus ^14^C-Daten zu *burial construction* zeichnen die Relevanz von Flachgräbern in der Frühbronzezeit korrekt nach, letztere werden dann aber in der Mittelbronzezeit gegenüber der Anlage von Grabhügeln überbetont. In der Spätbronzezeit waren Bestattungen auf Flachgräberfeldern häufig, obgleich auch Hügel der Grabhügelkultur weiter belegt wurden. Dieser Umstand kann -- sicher aufgrund der geringen Datenmenge -- nicht korrekt aus Radon-B abgeleitet werden.
**Polen** `r a("Poland")` \newline
Die Region *Poland* deckt Landesmitte und Westen des heutigen Polens vollständig ab. Die ^14^C-Daten aus dieser Region stammen allerdings fast ausschließlich aus den Woiwodschaften Kajuwien-Pommern, Lodsch und Niederschlesien. Die Datenmenge ist insgesamt gering, mit deutlich mehr Daten aus der Frühbronzezeit bis etwa 1700calBC. Aus Mittel- und Spätbronzezeit sind nahezu keine Informationen vorhanden. Das gilt sowohl für die *burial type* als auch die *burial construction* Variable, wobei erstere immerhin geringfügig besser dokumentiert ist. Die relative Entwicklung von *burial type* gibt die *realen* -- also dem klassischen, archäologischen Narrativ entsprechend -- Verhältnisse näherungsweise wieder: Körperbestattungen waren bis in die Spätbronzezeit in Westpolen tatsächlich deutlich häufiger, während Brandbestattungen erst mit der Urnenfelderzeit dominant auftraten. Auch zuvor waren immer wieder Brandgräber angelegt worden, doch grundsätzlich ist die über Radon-B erfasste Tendenz korrekt. *burial construction* wird dagegen insofern falsch wiedergegeben, als das Hügelgräber auch in der Mittelbronzezeit eine wichtige Rolle spielten, die der Datensatz nicht würdigt.
**Süddeutschland** `r a("Southern Germany")` \newline
Die künstliche Kreisregion *Southern Germany* umfasst Bayern vollständig, schließt aber auch größte Teile Baden-Württembergs und Thüringens sowie ausgedehnte Flächen in Mähren und Westösterreich ein. Aus letzteren Regionen liegen keine ^14^C-Daten vor. Die Mehrzahl der vorhandenen Daten stammt aus der Oberpfalz, Niederbayern und Schwaben sowie (in Württemberg) dem Regierungsbezirken Tübingen. Für die Frühbronzezeit sind bemerkenswert viele Daten aus Süddeutschland in Radon-B erhalten, diese Menge nimmt aber im Laufe der Mittelbronzezeit ab und lässt die Spätbronzezeit beinahe ohne datierte Gräber zurück. Die *burial type* Variable ist recht gut erschlossen -- obgleich unverhältnismäßig viel mehr der frühen Körpergräber als urnenfelderzeitliche Brandbestattungen erfasst wurden. Diese Informationsfülle steht in krassem Kontrast zur Situation hinsichtlich der *burial construction* Variable, für die über die gesamte Bronzezeit nahezu keine Informationen aus diesem Areal bereit stehen. Betrachtet man die aus Radon-B errechnete, relative Entwicklung und vergleicht sie mit der archäologischen Literatur, dann zeigt sich für *burial type* eine gute Übereinstimmung. Körperbestattung dominierte lange, wurde dann aber ab der Mittelbronzezeit und massiv in der Spätbronzezeit von der Brandbestattung verdrängt. Die errechneten Proportionen für *burial construction* könnten leicht als aufgrund der verschwindend geringen Datenmenge völlig wertlos abgetan werden, tatsächlich gibt der Proxy jedoch für Früh- und Mittelbronzezeit immerhin die richtige Tendenz an: Die Dominanz von Flachgräbern wurde von Hügelbestattungen abgelöst. Zur Spätbronzezeit lässt der Datensatz keine Aussagen zu.
**Nordostfrankreich** `r a("Northeastern France")` \newline
*Northeastern France* bezeichnet eine Kreisregion, die die französischen Verwaltungsregionen Grand-Est und Bourgogne-Franche-Comté, den Osten Baden-Württembergs, Rheinland-Pfalz und das Saarland, sowie Luxemburg und Wallonien in Belgien umfasst. Nur aus Württemberg und in Richtung des Pariser Beckens stehen hier Akkumulationen von ^14^C-Daten zur Verfügung. Die Datenmenge ist insgesamt gering, in der Früh- und beginnenden Mittelbronzezeit jedoch gravierend niedrig. Für *burial type* sind immerhin nach diesem Zeitfenster eingeschränkt Aussagen möglich, *burial construction* dagegen muss obskur bleiben. Die Nachhersage der relativen Entwicklung dieser Variablen ist entsprechend fehlerbehaftet. Immerhin die Parallelexistenz von Brand- und Körperbestattung in Früh- und Mittelbronzezeit wird korrekt wiedergegeben. Die existierte allerdings schon in der Frühbronzezeit und entwickelte sich sicher nuancierter als der Proxy vermuten lässt. Entgegen der Ableitung aus den ^14^C Verhältnissen waren Flachgräber in *Northeastern France* durchaus verbreitet.
**Norddeutschland** `r a("Northern Germany")` \newline
Zur künstlichen Region *Northern Germany* gehören alle Neuen Bundesländer in Ostdeutschland, aber auch große Teile Niedersachsens und Schleswig-Holsteins. Die ^14^C-Daten dieser Region stammen überwiegend aus Sachsen-Anhalt und angrenzenden Regionen in Thüringen, Sachsen und Niedersachsen. Auch aus dem Raum nördlich von Bremen sind einige Daten in Radon-B dokumentiert. In der Datenbank sind aus keiner anderen Region so viele datierte Gräber enthalten wie aus Norddeutschland. Der überwiegende Teil davon fällt in die Frühbronzezeit, während die Menge in der Mittelbronzezeit ab etwa 1800calBC für einige Jahrhunderte bis 1400calBC auffällig einbricht. Erst für die Spätbronzezeit ist wieder eine signifikante Anzahl an Daten belegt. Die Metainformationen zu *burial type* und *burial construction* zeichnen diese Entwicklung beide in etwa gleichem Umfang nach. Da in Norddeutschland Einflüsse aus allen vier Himmelsrichtungen zusammenkommen und maßgeblich zur Ausformung der lokalen Kulturphänomene beitragen, ist es auch hier schwierig die Gesamtentwicklung hinsichtlich der Primärvariablen abzuschätzen. *burial site* wird durch den ^14^C Proxy insofern richtig wiedergegeben, als dass Körperbestattungen in der Frühbronzezeit dominierten und besonders im Norden ab der Mittelbronzezeit von Brandbestattungen abgelöst werden. In der Spätbronzezeit war Brandbestattung deutlich dominanter, als der Datensatz glauben lässt. Hinsichlich *burial construction* erfasst der aktuelle Radon-B Bestand die grundsätzliche Dominanz von Flachgräbern gut, spricht ihnen jedoch in für Früh- und Mittelbronzezeit mehr Relevanz zu als in der archäologischen Beurteilung des Zusammenhangs üblich.
**Südskandinavien** `r a("Southern Scandinavia")` \newline
Die Region *Southern Scandinavia* schließt ganz Dänemark mit Jütland, Fünen, Seeland und allen kleineren Inseln sowie große Teile des Osten Südschwedens, und Küstenregionen in Schleswig-Holstein und Mecklenburg-Vorpommern ein. Die ^14^C-Daten sind sehr gut auf Jütland, Fünen und die schwedische Skåne Region verteilt. Da die Bronzezeit in Skandinavien erheblich später als in Mitteleuropa beginnt und an einem anderen chronologischen System gemessen wird, lassen sich die diachronenen Entwicklungen nicht einfach mittels des dreigliedrigen Gerüsts aus Früh-, Mittel- und Spätbronzezeit vergleichen. Die Mehrzahl der Daten aus Skandinavien stammt aus dem Zeitraum ab Periode IB. Insofern ist die Datendichte für fast die gesamte Bronzezeit gut -- auch hinsichtlich der beiden Variablen *burial type* und *burial construction*. Das Spätneolithikum ab 2200calBC ist dagegen ein Desiderat -- obgleich auf höherem Niveau als beispielsweise die Frühbronzezeit in *Northeastern France*. Die Einpassung in Abbildung \@ref(fig:development-proportions-regions-pseudoquant) ist schwierig, da jener Zeitraum, der aufgrund der Situtation in Mitteleuropa mit Frühbronzezeit beschriftet ist, eigentlich dem lokalen Spätneolithikum entspricht. Nimmt man die daraus folgende, gedankliche Verschiebung vor -- die Zentraleuropäische Mittelbronzezeit enspricht etwa der Nordischen Frühbronzezeit -- und vergleicht dann den Proxy der relativen Grabformentwicklung mit den archäologischen Beobachtungen, dann findet man eine solide Übereinstimmung: Körpergräber waren in Periode I und II (etwa 1800-1300calBC) die Regel, aber auch Brandbestattungen traten vereinzelt auf. Ab Periode III gewannen Brandbestattungen die Oberhand. In der Skandinavischen Frühbronzezeit (also Mittelbronzezeit in Abbildung \@ref(fig:development-proportions-regions-pseudoquant)) waren Bestattungen in Grabhügeln die absolute Regel. In der Spätbronzezeit traten Flachgräberfelder hinzu.
**Benelux** `r a("Benelux")` \newline
Zur *Benelux* Region gehören hier die Niederlande, der Norden Belgiens und große Teile von Niedersachen und Nordrheinwestfalen. Aus all diesen Regionen liegen ^14^C-Daten an Gräbern in Radon-B vor, die Datendichte in Belgien und den Niederlanden ist jedoch deutlich höher. Wie in *Southern Scandinavia* ist auch in der *Benelux* Region die Frühbronzezeit im Gegensatz zu Mittel- und Spätbronzeit unterrepräsentiert -- wenn auch in etwas schwächerer Form. Während die Informationsdichte der *burial type* Variable diesem Verlauf folgt, ist *burial construction* in der Spätbronzezeit nahezu undokumentiert. Wie in der *Southern Germany* Region zeichnet sich auch hier eine gravierende Differenz zwischen der Informationsdichte beider Variablen ab. Betrachtet man die relative Entwicklung der Variablen wie sie sich aus den Gräberdaten ableiten lässt im Vergleich zur archäologischen Lehrmeinung, so ergeben sich hier im Einzelnen sowohl Übereinstimmung als auch Abweichungen. Die Untersuchungsregion schließt auch hier unterschiedliche Kulturphänomene mit teilweise diametral unterschiedlichen Bestattungssitten ein, dennoch ist eine allgemeine Abschätzung der Verhältnisse möglich. Im Norden und Osten des Benelux Raums waren bis zur Spätbronzezeit Körperbestattungen die Regel, während südlich der Maas Brandbestattungen schon früher dominieren. Der Radon-B Proxy überbetont die Dominanz der Brandbestattung im Gesamtareal scheinbar. Die Relevanz von Hügelbestattungen in Früh- und Mittelbronzezeit gibt er dagegen korrekt wieder, und auch die Mischung zwischen Hügel- und Flachgräbern im Urnenfelderkontext, die sich häufig aus der Weiternutzung bestehender Monumentalanlagen ergibt, ist sichtbar.
**England** `r a("England")` \newline
Die *England* Region erstreckt sich über England bis auf die Höhe von York und Liverpool, inkorporiert Teile von Wales und lässt dagegen Cornwall and Devon im Südwesten außen vor. Tatsächlich berührt sie auch einen schmalen Küstenstreifen am Festland, aus dem aber keine ^14^C-Daten vorliegen. Die vorhandenen Daten konzentrieren sich im Südosten Britanniens, sind dort jedoch gut verteilt. Die diachrone Datenverfügbarkeit ist in Früh- und Mittelbronzezeit relativ gut, lässt dann allerdings in der Spätbronzezeit nach. *burial type* und *burial construction* verhalten sich entsprechend. Die aus den ^14^C-Daten abgeleitete relative Entwicklung gibt für *burial type* die richtige Tendenz an: Brandgräber gewannen im Laufe der Bronzezeit immer weiter an Bedeutung, während Körperbestattung noch lange parallel lange praktiziert wurden. Der Datensatz betont die Dominanz der Brandgräber jedoch zu sehr. Hinsichtlich der Variablen *burial construction* entspricht die grundsätzliche Dominanz von Hügelgräbern durchaus dem archäologischen Narrativ, nichtsdestoweniger traten daneben -- besonders in der Spätbronzezeit -- auch Flachgräberfelder auf, die der Datensatz zu Unrecht ausschließt.
#### Datenbedeutung
Für diese Arbeit wurden aus dem Radon-B Datensatz ^14^C-Daten extrahiert und verarbeitet, die in den vergangenen Jahrzehnten zur Datierung von Grabbefunden angefertigt wurden. ^14^C-Daten an Gräbern dienen dazu, einen Befundkomplex chronologisch in den allgemeinen, absolutchronologischen Kontext einzuhängen, oder dazu, die relative Entwicklung innerhalb eines Befundkomplexes besser beschreiben zu können. Die der Erstellung einer ^14^C-Datierung zugrundeliegenden Fragestellungen sind also in der Regel nicht äquivalent zu jener, die den gesammelten Daten in dieser Arbeit auferlegt wird. Während hier abstrakt die Anwesenheit einer Idee zu einem gewissen Zeitpunkt an einem gewissen Ort gemessen werden soll, werden Gräber meist genau umgekehrt dafür datiert, sie selbst als konkreten Gegenstand zu kontextualisieren und besser zu verstehen. Feldforschung orientiert sich per Definition an kleinräumigen Fragestellungen, die in ihrem jeweiligen Umfang beantwortet werden können. Sie muss viel Energie drauf verwenden, allen Befunden, die durch Grabung unweigerlich zerstört werden, möglichst gerecht zu werden. Hier verläuft ein grundsätzlicher Bruch zwischen jener großen, theoretischen Archäologie, die umfassende Narrative entwickeln und dafür dem Einzelfall nur quantitativ Beachtung schenken möchte, und der einzelnen Grabung oder Notbergung, die jedem Grabbefund ein Maß an Respekt und mitunter viel Arbeitszeit widmen muss. In dieser Arbeit werden ^14^C-Daten zu einem in künstlichen Arbeitsregionen räumlichen und über kalibrierte Dichteverteilungen zeitlichen Proxy umgerechnet (siehe Kapitel \@ref(data-prep-and-segmentation)), der völlig vom Einzelzusammenhang losgelöst ist.
Die übergeordnete, große Perspektive versucht außerdem, das mit einer einzelnen Bestattung assoziierte Parameterset zu vereinfachen und zu kategorisieren. Radon-B nahm diesen Arbeitsschritt für diese Arbeit vorweg, indem es für die Variablen *burial type* und *burial construction* eine auf jeweils drei Kategorien reduzierbare Wertemenge bereitstellt. Das ist einerseits äußerst nützlich, andererseits aber auch bedenklich. Kapitel \@ref(death-and-archaeology) (besonders \@ref(culture-death)) zeigt, wie unterschiedlich die jeweiligen Kontexte sein können, in denen ähnliche Rituale mit durchaus exakt übereinstimmenden Bestandteilen in verschiedenen Kulturzusammenhängen mit abweichenden Bedeutungen assoziiert sein können. Für diese Arbeit wird -- in Berufung auf *Cultural Evolution Theory* -- angenommen, dass trotz dieser Einschränkung Handlungen wie Totenverbrennung oder Grabhügelaufschüttung über Kultur- und Gruppengrenzen hinweg durch Immitation und Lehre tradiert werden können. Provokant ausgedrückt: Brandbestattung in der ungarischen Frühbronzezeit ist eine Manifestation der selben Idee, wie Brandbestattung in der Nordischen Spätbronzezeit. Das ist eine Arbeitshypothese, die die Erstellung der Simulation im folgenden Kapitel \@ref(simulation) ermöglicht, in Konfrontation mit der räumlichen und zeitlichen Realität von Abhängigkeitsbeziehungen in der europäischen Bronzezeit allerdings in Frage gestellt werden darf (siehe Kapitel \@ref(cultural-and-spatial-distance)).
Die Bedeutung der Daten in Radon-B wird für den Zweck dieser Arbeit also in mindestens dreierlei Hinsicht manipuliert: Durch die Konzentration auf das datierte Grab im Gegensatz zum datierenden ^14^C-Datum, löst sich diese Arbeit vom eigentlichen Inhalt der Datenbank. Durch die Erstellung künstlicher Zeitschritte und Untersuchungsregionen wird der kulturhistorische Zusammenhang des Grabes aufgelöst. Durch die Erstellung des relativen Entwicklungsproxies (siehe Abbildungen \@ref(fig:development-proportions-regions-burial-type) und \@ref(fig:development-proportions-regions-burial-construction)) verliert das einzelne Grab seine Bewandtnis.
Die vorliegende Arbeit ist also eine klare Sekundärverwendung von Radon-B. Ein besserer Datensatz sollte grabbezogen, nicht datumsbezogen, sein und viel mehr Metainformation zu jedem Grab mitbringen. Insbesondere Kapitel \@ref(cultural-and-spatial-distance) hätte enorm davon profitiert, wenn nicht nur Werte zu den Variablen *burial type* und *burial construction* in Radon-B enthalten wären. Das kann den Datenbankautoren allerdings nicht zum Vorwurf gemacht werden.
## Simulation {#simulation}
Eines der wesentlichen Ziele dieser Arbeit war es, jenseits der induktiven Datenanalyse anzukommen und selbst eine computerbasierte Simulation zu entwickeln. Das folgende Kapitel beschreibt die Ergebnisse dieses Unterfangens. Gemessen an der Menge möglicher Permutationen von Implementierung und Parametern, die auf Grundlage des Modellansatzes erprobt und ausgewertet werden könnten, ist dieses Kapitel radikal gekürzt. Hier besteht viel Raum für zukünftige Forschung.
### Grundlagen und Funktionalität {#simulation-theorie}
Das für diese Arbeit konzipierte Modell konzentriert sich auch *Cultural Transmission*, also die Übertragung von Ideen. Ein tatsächlich evolutionärer Algorithmus mit Mutation und Selektion wurde nicht umgesetzt. Das ist vor allem dem Fallbeispiel geschuldet: Die untersuchten Aspekte von Bestattungssitten bleiben über lange Zeit sehr stabil (siehe Kapitel \@ref(case-study)). Der Modellimplementierung liegen drei strukturgebende Gedanken und Anhaltspunkte zugrunde:
**Akteur Idee** \newline
Das Modell soll nicht Menschen abbilden, die Ideen aufnehmen, verarbeiten und weitergeben, sondern Ideen, die Menschen besetzen und sie als Wirtsorganismen zum Zweck ihrer eigenen Ausbreitung instrumentalisieren. Dieser Perspektivwechsel ist der *Memetik* entlehnt, zu deren wichtigsten Paradigmen es gehört, die Idee ins Zentrum der Aufmerksamkeit zu stellen -- *the meme's eye view* (siehe Kapitel \@ref(memetics-dawkins)). Durch die Loslösung vom Menschen als zentraler Entität wird eine alternative Form agentenbasierter Modellierung möglich: Menschliches Verhalten ist enorm vielfältig und selten zufriedenstellend in wenigen Subroutinen repräsentierbar. Es wäre naiv anzunehmen, dass Ideen ohne komplexe Wechselwirkungen mit der Realität auskommen würden, allerdings fällt es konzeptionell leichter, ihr Verhalten statistisch auf eindeutige Muster zu reduzieren. Folgt man der *Dual Inheritance Theory*, so stehen sie durch die Bedrohung des Vergessens unter unmittelbarem Selektionsdruck. Es ist eine valide Arbeitshypothese, Ideen wie allen biologischen Organismen den unbedingten, opportunistischen Willen zum Überleben und zur Reproduktion zuzusprechen, da sie sich statistisch genau so verhalten, als ob sie diese Ziele verfolgen würden. Ideen haben also Agency, aber andererseits auch keine Planungsfähigkeit: Sie besitzen keine (menschliche) Intelligenz, um Vorbereitungen für die Zukunft zu treffen. Diese Eigenschaft ignoranter Reproduktion und Expansion prädestiniert Ideen für computerbasierte Simulation. Ein solches Verhalten lässt sich sehr einfach implementieren -- das ist der Zweck des *gluesless* Moduls (siehe Kapitel \@ref(gluesless)).
**Netzwerklandschaft** \newline
Die Modelllandschaft, in der die Ideen leben, soll als statisches Netzwerk angelegt sein, das die diachrone soziale Verknüpfung einer menschlichen Population abbildet. Menschen werden als Knoten, ihre sozialen Beziehungen als Kanten repräsentiert. Die Nutzung von Netzwerken im Gegensatz zu auf Rechteck- oder Hexrastern basierenden 2D-Räumen -- oder einfach räumlich inexpliziten Modellen -- ist ein zukunftsweisender Ansatz in der agentenbasierten Modellierung: Er erlaubt wesentlich mehr Flexibilität in der Erforschung struktureller Emergenz, ist mit zunehmend besserer Verfügbarkeit von Rechenkapazität nach oben skalierbar und -- allem voran -- entspricht der Realität sozialer Interaktion wesentlich besser^[@lehmann_complex_2018]. Außerdem kann für Konstruktion und Beschreibung ausdrücklich auf die wertvolle Vorarbeit und Terminologie von @cavalli-sforza_cultural_1981 zu Trajektorien von Austausch und Wissensvermittlung zurück gegriffen werden (siehe Kapitel \@ref(social-learning)). Die Konstruktion eines diachronen, sozialen Netzwerks mittels des *popgenerator* Moduls (siehe Kapitel \@ref(popgenerator)) hat sich nichtsdestoweniger als technisch und inhaltlich herausfordernd erwiesen. Ein Beispiel: Obgleich es die Situation in manchen kulturhistorischen Zusammenhängen nur unzureichend abbildet, wird hier der Einfachheit davon ausgegangen, dass vertikale Beziehungen immer in einer 2:1 Relation von Eltern zu Kind bestehen. Die Eltern müssen älter sein als das Kind, also einen früheren Geburtszeitpunkt haben, dürfen aber zu diesem Zeitpunkt auch nicht zu alt, also jenseits der Menopause oder tot, sein. Tatsächlich müsste für die Zuordnung von Eltern zu Kindern eine Vielzahl von Parametern beachtet werden: Ein Zeitfenster der gemeinsamen Fruchtbarkeit der Eltern, Partnertreue, Altersäquivalenz der Partner oder eine theoretische Maximalproduktion von Kindern pro weiblichem Individuum, um nur einige zu nennen. Diesen Anforderungen kann man niemals vollständig gerecht werden, die Realwelt lässt sich jedoch mit einer Untersimulation, die die Populationserzeugung generativ voranschreiten lässt, sicher besser abbilden als mit dem hier gewählten, vektorbasierten Ansatz. Nach anfänglichen Versuchen mit einer solchen Implementierung musste sie aus Performenzgründen aufgegeben werden. Sogar die Unterscheidung der Individuen nach dem Geschlecht entfiel vor diesem Hintergrund. Es ist ein wichtiges Ziel für die Zukunft, einen Populationsgenerator zu entwickeln, der die Umstände der realen Welt besser abbildet. Die hohe Abstraktion der vorliegenden Software erlaubt es immerhin, die Wirkung der einzelnen Eingabeparameter noch relativ unmittelbar nachzuvollziehen.
**Vorlage @neiman_stylistic_1995** \newline
Fraser Neimans Beitrag *Stylistic Variation in Evolutionary Perspective: Inferences from Decorative Diversity and Interassemblage Distance in Illinois Woodland Ceramic Assemblages*^[@neiman_stylistic_1995] war für diese Arbeit in dreierlei Hinsicht prägend: **1.** Das im Artikel vorgestellte Modell und der zugehörige Simulationsalgorithmus sind technisch und inhaltlich sehr gut zugänglich und waren entscheidend für das Verständnis der Mechanik jener einfachen Transmissionsmodelle, denen auch die vorliegende Simulation verpflichtet ist. Die Erstellung des Webdokuments *neiman1995*^[https://github.com/nevrome/neiman1995] war eine wichtige (auto)didaktische Übung. **2.** Neimans Modell diente implizit und explizit als Vergleichsobjekt zur Parametrisierung, Kalibrierung und Plausibilitätsprüfung der hier umgesetzten Simulation. In Orientierung an die von @dunnell1978style prognostizierten, stochastischen Prozesse der Entwicklung *Neutraler Varianten* identifizierte Neiman die Prozesse *Innovation*, *Drift* und *Flow* (siehe Kapitel \@ref(stylistic-variability)). Die vorliegende Simulation sollte mindestens letztere beiden Phänomene zeigen. Der Vergleich von Abbildung \@ref(fig:neiman-general) und Abbildung \@ref(fig:sim-popsize-crossregions) belegt, dass das hier erarbeitete, graphenbasierte Expansionsmodell sich in mehrerlei Hinsicht ähnlich verhält wie das generationale von Neiman (siehe Kapitel \@ref(simulation-parameters)). **3.** Neimans Beitrag demonstriert, wie ein solches Modell als archäologisches Werkzeug sinnvoll für die Beurteilung kultureller Distanz eingesetzt werden kann. Kapitel \@ref(cultural-and-spatial-distance) greift diesen Ansatz für das Fallbeispiel bronzezeitlicher Bestattungssitten auf.
### Implementierung und Algorithmen
Die Simulationssoftware besteht aus zwei speziell für diese Anwendung entwickelten Modulen: Dem Populationsgenerator *popgenerator* und der Expansionssimulation *gluesless*. Die Module sind aufeinander abgestimmt und in den verwendeten Versionen funktional auf die Fragestellungen dieser Arbeit zugeschnitten. Beide lassen sich jedoch relativ leicht für einen breiteren Anwendungsbereich öffnen, wenn dafür in Zukunft Notwendigkeit bestehen sollte. Die im folgenden ausgearbeitete Beschreibungen beziehen sich entsprechend jeweils speziell auf Version 1.0 der Module, die für die Berechnung in dieser Arbeit zum Einsatz kamen. Im Gegensatz zu den Ausführungen im Kontext von Datenvorbereitung und -analyse in Kapitel \@ref(radonb-dataset), wo darauf zugunsten des Leseflusses bewusst verzichtet wurde, werden hier nun die wesentlichen Funktionen und Klassen namentlich genannt. Das soll es ermöglichen, die Architektur der Software zu verstehen.
#### Populationsgenerator *popgenerator* {#popgenerator}
Der Populationsgenerator ist als R Paket implementiert. Er ist in drei Submodule gegliedert: `population_generator`, `relations_generator` und `ideas_generator`, die nacheinander aufgerufen werden können. Jedes dieser Module erweitert einen Eingabedatensatz sukzessive um nondeterministisch generierte Daten hinsichtlich der zeitübergreifenden Gesamtpopulation, der Beziehungen innerhalb dieser Population und der Verteilung zweier Ideen darin zu einem hypothetischen Nullzeitpunkt. Der Eingabedatensatz -- das `models_grid` -- muss in Form eines `data.frames`, also der in R üblichen Datenstruktur für tabellierte Daten, vorliegen. Jede Zeile in diesem Datensatz enthält zunächst die Konfigurationsparameter für eine Population, ihre Relationen und schließlich die in ihr expandierenden Ideen. Komplexe Parameter sind dabei in `list columns` gespeichert. Diese erlauben es, fast beliebige Datenstrukturen in den Zellen eines `data.frames` zu schachteln. Tabelle \@ref(tab:param-popgenerator) beschreibt alle Parameter kurz und umreißt ihren theoretischen Wertebereich. Die tatsächlich für die Simulation relevanten Werte werden in Kapitel \@ref(simulation-parameters) diskutiert. Die Erzeugung von Populationen und Relationen ist soweit wie möglich vektorisiert, also ohne Schleifen oder schleifenersetzende Strukturen (`apply`, `purrr::map`) programmiert, um die Berechnungsdauer zu minimieren. Dieser Schritt ist eine Konzession an die Technik und führte zu einem höheren Abstraktionsgrad der Populationsnetzwerke als ursprünglich geplant.
*popgenerator* stellt einige dedizierte Exportfunktionen bereit (`write_population_table`, `write_pajek_for_snap` und `write_ideas`), die vor allem die Übergabe des generierten Populationsnetzwerks an die Expansionssimulation *gluesless* ermöglichen sollen. Der Austausch erfolgt über verschiedene, speziell formatierte Textdateien, die von *popgenerator* ins Dateisystem abgelegt und von *gluesless* gelesen werden. Die Interfacefunktion `run_simulation` automatisiert den gesamten Simulationsablauf.
```{r param-popgenerator, echo=FALSE, tidy=FALSE, results = "asis"}
tibble::tibble(
category = c(
"Allgemeine Parameter",
"Populationsparamter",
"Populationsparamter",
"Populationsparamter",
"Populationsparamter",
"Populationsparamter",
"Beziehungsparameter",
"Beziehungsparameter",
"Beziehungsparameter",
"Beziehungsparameter",
"Beziehungsparameter",
"Beziehungsparameter",
"Ideenparameter",
"Ideenparameter",
"Ideenparameter"
),
parameter = c(
"timeframe",
"unit\\_amount",
"unit\\_names",
"unit\\_size\\_functions",
"age\\_distribution\\_function",
"age\\_range",
"amount\\_friends",
"unit\\_interaction\\_matrix",
"cross\\_unit\\_proportion\\_child\\_of",
"cross\\_unit\\_proportion\\_friend",
"weight\\_child\\_of",
"weight\\_friend",
"names",
"start\\_distribution",
"strength"
),
datatype = c(
"integer vector",
"integer",
"list of factors",
"list of functions",
"function",
"integer vector",
"integer",
"integer matrix",
"double",
"double",
"integer",
"integer",
"character vector",
"data.frame",
"integer vector"
),
description = c(
"Eine Liste der Kalenderjahre über die sich die Simulation erstrecken soll.",
"Anzahl der Gruppen, in die die Population untergliedert sein soll.",
"Eine Liste der Gruppennamen, wahlweise mit einer Definition ihrer inneren Reihenfolge.",
"Funktionen, die die Populationsgröße für jede Gruppe in Abhängigkeit von der Simulationszeit definieren.",
"Funktion, die die altersabhängige Sterbewahrscheinlichkeit einer Population beschreibt.",
"Altersfenster, auf das die Altersverteilungsfunktion angewandt wird.",
"Menge an horizontalen Beziehungen, die ein Individuum aufbaut.",
"Distanzmatrix die definiert, welche Gruppe in welchem Umfang mit welcher anderen Gruppe interagiert.",
"Anteil der vertikalen Beziehungen, die nicht innerhalb, sondern über Gruppengrenzen hinweg bestehen.",
"Anteil der horizontalen Beziehungen, die über Gruppengrenzen hinweg reichen.",
"Stärke einer vertikalen Beziehung. Die Beziehungsstärke hat Einfluss darauf, ob eine Idee ein Individuum besetzen kann.",
"Stärke einer horizontalen Beziehung.",
"Namen der Ideen.",
"Proportionaler Anteil der Ideen in jeder Region zum Startzeitpunkt der Simulation. Eine Tabelle mit einer Zeile für jede Gruppe und einer Spalte für jede Idee.",
"Stärke der Ideen. Diese Option ist zwar definiert, aber nicht weiter implementiert."
),
values = c(
"Beliebige, unterbrechungsfreie Sequenz von sukzessive aufeinander folgenden Integerwerten: \\texttt{-2200:-800}, \\texttt{0:500}",
"Beliebiger positiver Integerwert:
\\texttt{1}, \\texttt{8}, \\texttt{100}",
"Liste mit Namen. Die Anzahl muss \\textit{unit\\_amount} entsprechen:
\\texttt{list(factor(\"regionA\", levels = regionen), factor(\"regionB\", levels = regionen))}",
"Liste mit Funktionen. Die Anzahl muss \\textit{unit\\_amount} entsprechen:
\\texttt{list('regionA' = function(t) \\{100\\}, 'regionB' = function(t) \\{100 + 10 * cos(t * 0.1)\\})}",
"Eine Funktion, die einen Wert für jeden Eingabewert aus \\textit{age\\_range} zurückgibt:
\\texttt{function(x) \\{1 - x / 100\\}}",
"Beliebige, unterbrechungsfreie Sequenz von sukzessive aufeinander folgenden Integerwerten im Bereich der menschlichen Lebenserwartung: \\texttt{1:100}",
"Beliebiger positiver Integerwert oder 0:
\\texttt{0}, \\texttt{5}, \\texttt{100}",
"Kreuztabelle in Form einer Integermatrix. Die Werte können beliebige positive Integerwert oder 0 sein:
\\texttt{matrix(c(0, 1, 1, 0), nrow = 2, ncol = 2)}",
"Double Wert zwischen 0 und 1:
\\texttt{0}, \\texttt{0.02}, \\texttt{0.7}",
"Doublewert zwischen 0 und 1:
\\texttt{0}, \\texttt{0.02}, \\texttt{0.7}",
"Beliebiger positiver Integerwert oder 0:
\\texttt{0}, \\texttt{5}, \\texttt{100}",
"Beliebiger positiver Integerwert oder 0:
\\texttt{0}, \\texttt{5}, \\texttt{100}",
"Vektor mit Namen:
\\texttt{c('ideaA', 'ideaB')}",
"\\textit{data.frame} mit Proportionen pro Gruppe und Idee. In den Zellen ist der Anteil der Idee in dieser Gruppe als Doublewert zwischen 0 und 1 angegeben. Die Zeilensumme muss 1 sein:
\\texttt{data.frame(ideaA = c(0.2, 0.5), ideaB = c(0.8, 0.5))}",
"Integervektor:
\\texttt{c(1,1)}"
)
) %>%
dplyr::transmute(
parameter = paste0(
"\\textit{", category, "}", "\n",
"\\textbf{", parameter, "}", "\n",
"\\textit{", datatype, "}"
),
description = description,
values = values
) %>%
dplyr::mutate_all(
kableExtra::linebreak
) %>%
knitr::kable(
caption = "Simulationsparameter (v.a. für das popgenerator Modul)",
format = "latex",
booktabs = T,
escape = F,
col.names = c("Paramter", "Beschreibung", "Theoretischer Wertebereich"),
linesep = "\\addlinespace \\hline \\addlinespace"
) %>%
kableExtra::kable_styling(full_width = T, font_size = 8) %>%
kableExtra::column_spec(1, width = "18em") %>%
kableExtra::column_spec(2, width = "18em") %>%
kableExtra::column_spec(3, width = "18em") %>%
gsub("table", "table*", .)
```
**popualtion_generator** \newline
`population_generator` dient dazu eine große Menge von Individuen zu generieren, die gemeinsam eine generationenüberschreitende Population bilden. Menschen sind nur durch ihre Lebenszeit und ihre Gruppenzugehörigkeit definiert und damit -- wie in Kapitel \@ref(simulation-theorie) beschrieben -- sehr einfach modelliert. Die zeitliche Auflösung des *popgenerator* Moduls ist jahrweise und damit an die Erfordernisse der Fragestellung dieser Arbeit angepasst. Für die Erzeugung von Populationen, also der Verarbeitung der Daten im `models_grid`, werden zunächst die Populationsparameter aus jeder Zeile in Instanzen der `S4`-Konfigurationsklasse `population_settings` überführt. Diese und die folgenden Transformation in solche Konfigurationsobjekte erleichtern die Datenweitergabe innerhalb des Pakets. Aus jedem einzelnen `population_settings` Objekt wird eine Population geschaffen. Da jede Population aus einer oder vielen Gruppen besteht, die biologische Vererbungsgruppen wie Familien oder Clans repräsentieren und jeweils eine individuelle Größenentwicklung durchlaufen können, wird für jede Gruppe in der Population ein Konfigurationsobjekt der Klasse `unit_settings` zusammengestellt.
Zur Erzeugung einer Gruppe wird dieses Objekt an die Funktion `generate_unit` übergeben, die die Hauptlast der Menschengenerierung trägt. In ihr wird zunächst das Integral unter der `unit_size_function` im um einen Bufferbereich erweiterten Untersuchungszeitfenster berechnet, um zu ermitteln, wie viele Menschen-Jahr Kombinationen erforderlich sind, um die vorgegebene Populationsgrößenentwicklung abzubilden. Aus `age_distribution_function` und `age_range` lässt sich die durchschnittliche Lebenserwartung der Menschen errechnen. Beide Informationen zusammen ermöglichen es, die Anzahl an Menschen zu bestimmen, die insgesamt erforderlich ist, um die Größenentwicklung näherungsweise aufzubauen. Um diese Anzahl an Menschen den Erfordernissen der Populationsentwicklung entsprechend auf dem Zeitstrahl in mehr oder wenige dichte Gruppen anzuordnen, wird eine regelmäßige Sequenz von Geburtsfenstern abgegrenzt. Die Länge eines Geburstsfensters entspricht der mittleren Lebenserwartung. Um die oben errechnete Gesamtzahl der Menschen auf die Fenster aufzuteilen, wird wiederum das Integral der `age_distribution_function` in jedem einzelnen Fenster ermittelt und in Verhältnis zur Gesamtsumme dieser Integrale gesetzt. Damit steht für jedes Geburtsfenster ein Faktor bereit, um den Anteil der Gesamtpopulation zu berechnen, der in diesem Zeitfenster existiert.
Mit dieser Information können die entsprechenden Menschen mit der `generate_humans` Funktion zufällig generiert werden. Die Größenentwicklung der Ergebnispopulation realisiert jede beliebige Vorgabefunktion, schankt allerdings duchgehend statistisch um den Sollwert. Zum Abschluss der Berechnungen in `population_generator` werden die Gruppenpopulationen zur Gesamtpopulation zusammengeführt. Diese liegt in der Form eines `data.frames` vor, wobei jede Zeile ein Indiviuum repräsentiert. Jedes Individuum erhält eine eindeutige ID und bringt Informationen zu seiner Lebensdauer, seinem Geburts- und Sterbezeitpunkt sowie seiner Gruppenzugehörigkeit mit. Das Sortierkriterium im Gesamtdatensatz ist das Geburtsjahr. Ein solcher Ergebnisdatensatz wird für jedes Modell, also jede Zeile, im Eingabedatensatz `models_grid` erzeugt und kann entsprechend als `list` zurückgegeben werden.
**relations_generator** \newline
Das Modul `relations_generator` erweitert diesen von `population_generator` modifizierten Eingabedatensatz. Es dient dazu, die vorhandene Gesamtpopulation sinnvoll inneinander zu verknüpfen um ein diachrones, soziales Netzwerk zu schaffen. Dafür wird zunächst für jedes Modell ein Objekt der Konfigurationsklasse `relations_settings` instanziiert, das neben der in `relations_generator` generierten Population auch die Beziehungsparameter enthält, die vorgeben, welche Eigenschaften das Netzwerk besitzen soll. Dessen eigentliche Erzeugung ist ein vierteiliger Prozess: Vertikale und horizontale Beziehungen, die sich als Kanten im Netzwerk zwischen den Knoten der Individuen ausdrücken, werden getrennt voneinander aber jeweils innerhalb der oben erzeugten Gruppen hergestellt. Anschließend wird ein Teil der vorhandenen Beziehungen so umgelenkt, dass er die Gruppengrenzen überschreitet und somit die Gesamtpopulation verschränkt. Abschließend werden die Beziehungen je nach Typ mit einem Kantengewicht versehen.
Die Erzeugung der vertikalen Beziehungen mit `generate_vertical_relations` funktioniert gruppenweise, verbindet ein jüngeres Individuum mit -- wenn im entsprechenden Zeitfenster vorhanden -- zwei älteren und orientiert sich dabei nicht an deren realem Alter sondern an Indexdistanzen (für eine Erklärung der Hintergründe dieser Lösung siehe Kapitel \@ref(simulation-theorie)). Eltern werden zufällig aus der Perspektive der Kinder gewählt, indem zunächst ein Indexbereich -- ein Bereich zwischen zwei individuellen IDs -- festgelegt wird, aus dem die potentiellen Eltern stammen können. Zwar kann sicher angenommen werden, dass ein Kind eine niederere ID besitzen muss als seine Eltern, doch darüber hinaus ist der Umgang mit den Indizes rein approximativ: Die durchschnittliche Geburtsjahrdistanz eines Indexschrittes hängt von der Populationsgröße und -entwicklung ab. Um eine Distanz in Jahren in eine Distanz in Indexschritten umzuwandeln, muss die zeitlich lokale, mittlere Indexdistanz ermittelt werden. Das angezielte Altersdistanzfenster dafür wurde zwischen 40 und 15 Jahren vor dem Geburtsjahr des Kindes festgelegt. Die für jedes Kind individuelle und effektiv zufällige Auswahl der Eltern erfolgt also aus einem Pool von Individuuen, deren Index zwischen jenen liegt, die durchschnittlich die lokale 40 Jahresgrenze über- oder die durchschnittlich 15 Jahresgrenze unterschreiten.
`generate_horizontal_relations` zur Erzeugung der horizontalen Beziehungen funktioniert nach dem selben technischen Prinzip wie `generate_vertical_relations`. Hier werden allerdings abhängig vom Wert von `amounts_friends` mitunter wesentlich mehr Beziehungen hergestellt und das Bezugsfenster ist mit einer Altersdistanz von 50 Jahren in beide Richtungen ausgehend vom Geburtszeitpunkt des jeweiligen Individuums deutlich breiter.
Sind die vertikalen und horizontalen Beziehungen gruppenintern etabliert, dann werden mit `modify_relations_cross_unit` einige dieser Verbindungen zugunsten von gruppenübergreifenden Beziehungen aufgelöst. Die Eingabeparamter `cross_unit_proportion_child_of` und `cross_unit_proportion_friend` sind entscheidend dafür, in welchem Umfang das für die beiden Beziehungstypen passiert. Davon abhängig werden mehr oder weniger Beziehungen für eine Modifikation zufällig ausgewählt. Diese besteht darin, dass eines der beiden Individuen durch ein anderes aus einer anderen Gruppe, aber dem selben Geburtsfenster ersetzt wird. Welche andere Gruppe gewählt wird, wird über eine Zufallsentscheidung auf Grundlage der `unit_interaction_matrix` festgelegt. In einem letzten Schritt innerhalb des `relations_generator` Submoduls werden die Beziehungen nach den Eingabevariablen `weight_child_of` und `weight_friend` mit einem Gewichtswert versehen. Die vier Teilschritte dienen gemeinsam dazu einen `data.frame` zu schaffen, der sinnvolle Beziehungen zwischen Individuen der Gesamtpopulation dokumentiert. Die `data.frames` für jedes Modell in Form einer Liste zurückgegeben.
\begin{landscape}
```{r group-graph, echo = FALSE, fig.scap = "Überblicksdarstellung eines von popgenerator erzeugten Netzwerks", fig.cap = "Überblicksdarstellung eines von popgenerator erzeugten Netzwerks. Die Parametrisierung der Simulation entspricht \\ref{fig:sim-popsize-crossregions} H. Statt einzelner Individuen werden nach Regionen zusammengefasste Gruppen zu Zeitpunkten im 100-Jahre-Abstand dargestellt. Die Netzwerkverbindungen umfassen für diese Darstellung nur Kanten zwischen und nicht innerhalb von Regionen. Die Punktgröße skaliert mit der Gruppengröße zum jeweiligen Zeitpunkt.", out.extra = "", out.width = "1.2\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/simulation_population_graph/population_group_graph.jpeg")
```
\end{landscape}
```{r graph-tulip, echo = FALSE, fig.scap = "Vollständige Darstellung eines von popgenerator erzeugten Netzwerks", fig.cap = "Vollständige Darstellung eines von popgenerator erzeugten Netzwerks. Rot markiert sind individuelle Knoten, die durch graue Kanten verknüpft werden. In dem mittels des Fruchterman-Reingold-Algorithmus angeordneten Visualisierung bilden die Regionalgruppen aufgrund des intern höheren Grads an Verknüpfung dicht gepackte, (diachron) langgestreckte, lineare Strukturen. In wesentlich geringerem Umfang bestehen Querverbindungen zwischen den Gruppen.", out.extra = "", out.width = ".9\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/simulation_population_graph/population_graph_tulip.jpeg")
```
**idea_generator** \newline
Das letzte und einfachste Submodul des *popgenerator* Pakets, `idea_generator`, verfügt über einen stark reduzierten Funktionsumfang. Für jedes Modell wird ein Konfigurationsobjekt der Klasse `ideas_settings` erzeugt. Es enthält eine Referenz auf die Populationsliste, die zuvor für dieses Modell angelegt wurde, eine Liste mit Namen für die zu generierenden Ideen und deren Stärke, also deren funktionaler Potenz -- ein Parameter der im Rahmen dieser Arbeit nicht beachtet wurde. Außerdem wird an das `idea_generator` Objekt auch der `data.frame` `start_distribution` übergeben, der für jede Region die relative Verteilung der Ideen zum Startzeitpunkt der Simulation vorgibt. Dieser wird in der Funktion `idea_distribution_to_starting_nodes` in eine Liste von Knoten im Netzwerk -- also Individuen -- übersetzt, die schon zum Nullzeitpunkt von den Ideen okkupiert werden. Wenn also für eine Region zum Startzeitpunkt eine Verteilung von 1:1 für zwei Ideen vorgegeben ist, dann wird die Hälfte aller Menschen, die zu diesem Zeitpunkt am Leben sind, der einen, die andere Hälfte der anderen Idee zugesprochen.
#### Expansionssimulation *gluesless* {#gluesless}
Das C++ Programm *gluesless* simuliert die Expansion von Ideen in einem Populationsgraphen wie er mittels des *popgenerators* erzeugt werden kann. *gluesless* macht sich die objektorientierte Natur von C++ zu Abbildung der Simulationswelt in vier Klassen zunutze: `Networkland`, `Aether`, `Timeline`, `Idea`. Die Klassenmethoden greifen außerdem auf mehrere globale Hilfsfunktionen zurück. *gluesless* kann drei Eingabeparameter verarbeiten: Den Pfade zu einer pajek-Datei (.paj), die das Populationsnetzwerk beschreibt, der Pfad zu einer speziell formatierten Textdatei mit der Ideenverteilung zum Nullzeitpunkt und der Pfad der Ausgabetextdatei. Mit diesen Parametern kann es einfach auf der Kommandozeile aufgerufen werden.
Wird das Programm mit den korrekten Eingaben gestartet, dann wird die `main` Methode ausgeführt und zunächst jeweils eine Instanz der Klassen `Networkland`, `Aether` und `Timeline` angelegt. `Networkland` repräsentiert die Netzwerkwelt in der die Ideen leben und interagieren. Ihr Hauptbestandteil ist ein Zeiger auf ein Objekt der Klasse `TUndirNet`^[https://snap.stanford.edu/snap/doc/snapuser-ref/d8/da8/classTUndirNet.html [13.08.2018]] aus der SNAP Bibliothek, das dazu dient, den Populationsgraphen als sehr einfaches, ungerichtetes Netzwerk zu speichern und sehr schnell zugänglich zu machen. Die Hauptaufgabe der Klassenmethoden von `Networkland` ist es, ein bedarfsgerechtes Interface zu diesem Netzwerkdatentyp bereit zu stellen. Es kann verschiedene Fragen beantworten: z.B. "Existiert ein bestimmter Knoten im Netzwerk?", "Welche Nachbarn hat ein Knoten?", "Welchen Gewichtswert hat eine bestimmte Beziehung?". Außerdem erlaubt es die Manipulation des Netzwerks, indem Knoten gelöscht werden können. Der `Aether` ist die gedankliche Einheit, die die Netzwerkwelt und alle Ideen umschließt. Er ist die Kapsel, die den aktuellen Zustand von Welt und Agenten abbildet. Dafür besitzt er einen Zeiger auf die im Programmablauf angelegte Instanz der `Networkland` Klasse und einen Vektor mit Zeigern auf Instanzen der `Idea` Klasse. Neben Funktionen, die Informationen zum aktuellen Zustand von Netzwerk und Ideen zurückgeben, besitzt der `Aether` auch die `develop` Methode. Sie steuert unter welchen Bedingungen und in welcher Reihenfolge Ideen am Übergang von einem Zeitschritt zum nächsten agieren dürfen. Die Basiskonfiguration sieht eine zufällige Abfolge vor. Die `Timeline` Klasse umschließt wiederum gedanklich den `Aether` und besitzt dafür einen Zeiger auf die Instanz dieser Klasse. Sie dient dazu, in jedem Zeitschritt diagnostische Werte zum Zustand des Aethers abzugreifen und in Vektoren aufgelistet vorzuhalten. Dazu gehört zum Beispiel die verbleibende Größe des Netzwerks. Auch `Timeline` verfügt über eine `develop` Methode, die einerseits die `develop` Methode im Aether anstößt und andererseits die Messung der diagnostischen Werte auslöst. Es ist diese `develop` Methode, die im Hauptprogrammablauf in einer while-Schleife so lange immer wieder aufgerufen wird, bis die Ideenexpansion endet.
Die Hauptlast der Expansionssimulation tragen Methoden in der `Idea` Klasse. Das ist in Programmstruktur- und semantik sinnvoll, da Ideen als aktiv handelnde Agenten modelliert werden sollen: Jede Form von Aktivität soll von ihnen ausgehen, während etwa die Netzwerkwelt, die Menschen und ihre Beziehungen abbildet, nur als passive Landschaft verstanden wird (siehe Kapitel \@ref(simulation-theorie)). Ideen besitzen einen Namen, einen Zeiger auf die Instanz der `Networkland` Klasse in der sie leben und zwei Vektoren, die die IDs der Netzwerkknoten speichern, auf denen sie aktuell sitzen und auf denen sie zum Zeitpunkt deren Todes saßen. Um letzteres zu verstehen, muss man den Algorithmus in der `expand` Methode betrachten, die die Ausbreitung der Ideen steuert. Zu Programmbeginn besetzen alle Ideen die ihnen mittels einer Eingabedatei zugewiesenen Startknoten im Netzwerk. In jedem Zeitschritt der Simulation darf nun jede Idee einmal handeln -- `Aether::develop` legt die Reihenfolge dabei fest. Der erste Schritt der Idee ist es, eine Liste aller Nachbarknoten zu den von ihr okkupierten zu erstellen. Die Idee versucht all diese Nachbarknoten einzunehmen, muss dafür allerdings verschiedene Hindernisse überwinden, die sich auf die Zufallsentscheidung ob sie Erfolg hat auswirken. Da in diesem Kontext viele Abfragen von Beziehungs- und Knoteninformationen im Netzwerk durchgeführt werden müssen, findet die Berechnung dieser Entscheidungen in einem Subnetzwerk statt, dass sich auf den aktuellen Dominanzbereich einer Idee und den unmittelbaren Nachbarn dazu beschränkt. Für jeden Nachbarn werden drei Informationen abgefragt: Die Anzahl an Verbindungen zu Knoten, die die Idee schon hält, das maximale Kantengewicht unter all diesen Beziehungen und ob der Knoten selbst bereits von einer anderen Idee besetzt wird. Grundsätzlich wird für die Entscheidung ob ein Nachbarknoten der Idee zugesprochen wird gegen das Kantengewicht gewürfelt. Die Wahrscheinlichkeit wird erhöht, wenn mehrere Verbindungen zu Knoten der Idee bestehen und deutlich verringert, wenn der Nachbarknoten bereits Teil des Einflussgebiets einer anderen Idee ist. Nachdem auf dieser Grundlage für jeden Nachbarknoten entschieden wurde, ob er zu der aktuell handelnden Idee gehören wird, verlagert die Idee ihre Existenz auf diese Nachbarknoten. Ihre bisherigen Knoten sterben, das heißt sie werden aus dem Netzwerk gelöscht. Nur ihre Bezeichnung wird als Eroberung der Idee gespeichert. Das Löschen der alten Knoten führt automatisch dazu, dass die Ideen entlang der impliziten Zeitachse des Populationsnetzwerks voran schreiten und bildet gleichermaßen semantisch den Forschungskontext ab: Ideen zu Bestattungsformen drücken sich im Tod ihrer Träger aus. Dieser Algorithmus wird für jede Ideen in jedem Zeitschritt ausgeführt.
Die Expansionssimulation endet, wenn sich die Größe des Netzwerks von einem Zeitschritt zum nächsten nicht mehr ändert, also wenn die Ideen alle Knoten in ihrer Reichweite erobert haben. Naturgemäß führt das dazu, dass nicht alle Knoten im Netzwerk überhaupt von einer Idee erobert werden. Je nachdem, wie hoch die Hürden für eine erfolgreiche Knoteneroberung angesetzt sind, verbleiben mehr oder weniger Knoten (siehe Kapitel \@ref(simulation-theorie). Die `Timeline` Klasse stellt schließlich die Exportfunktion `export_to_text_file` bereit, die am Ende der `main` Methode ausgeführt wird. Diese transformiert und speichert die diagnostischen Daten und den Endzustand der Ideen hinsichtlich der von ihnen eingenommenen Netzwerkknoten in eine menschenlesbare Datei, die später zur Auswertung wieder in R eingelesen werden kann.
### Parameter und Simulationsverhalten {#simulation-parameters}
Tabelle \@ref(tab:param-popgenerator) enthält jene dynamischen Parameter, die zur Steuerung der Simulation für jeden einzelnen Durchlauf festgelegt werden können. In der Implementierung stecken weitere Parameter, die als statisch festgelegt wurden. Dazu gehört zum Beispiel der Umfang künstlicher Modellzeiterhöhung (sichtbar in Abbildung \@ref(fig:group-graph)), der erforderlich ist, um die Populationsgrößenentwicklung korrekt abbilden zu können, der statistische Up- und Downshift bei der Auswahl von Partnern für horizontale und vertikale Beziehungen oder die Wertebereiche aus denen Zahlen gleichverteilt zufallsgeneriert werden, um im Laufe der Ideenexpansion zu entscheiden, ob eine Idee bei einer einzelnen Eroberung erfolgreich ist. Die Parametrisierung des Modells hatte nicht den Anspruch, die Gegebenheit der europäischen Bronzezeit realistisch abzubilden. Das ist weder technisch noch inhaltlich umsetzbar: Der Rechen- und Speicheranspruch eines solchen Unterfangens liegt weit jenseits der zur Verfügung stehenden Mittel und das Wissen über die zeitliche und räumliche Entwicklung der bronzezeitlichen Bevölkerung ist dafür noch immer zu fragmentarisch. Stattdessen wurde eine abstrakte Parameterwahl angestrebt.
Unter den dynamischen Parametern wurden einige aus der induktiven Datenanalyse am Fallbeispiel dieser Arbeit abgeleitet und für alle Betrachtungen vereinheitlicht. Dazu gehört die Simulationsdauer in Jahren (`timeframe`), die auf 1401 Zeitschritte, von 2200 bis 800calBC, festgelegt wurde. Ebenso die Anzahl der Gruppen (`unit_amount`), die nach der Anzahl künstlicher Makroregionen auf acht fixiert wurde. Die Gruppennamen (`unit_names`) ergaben sich entsprechend. Die Altersverteilung der Populationsgruppen (`age_distribution_functions` und `age_ranges`) wurde durch eine plausible, logarithmische Wachstumsfunktion abgebildet. Die Anzahl horizontaler Beziehungen einer Person (`amount_friends`) wurde in Kenntnis von *Dunbar's number*^[@dunbar_neocortex_1992] auf 10 eingeschränkt, in der Annahme, dass Menschen nur eine kleine Zahl von Beziehungen unterhalten, die so tief greifen, dass sie geeignet wären, die Ansichten des Gegenübers zu Bestattungssitten zu manipulieren. `cross_unit_proportion_child_of` und `cross_unit_proportion_friend`, also der Anteil Gruppengrenzen überspannender, vertikaler und horizontaler Beziehungen, wurde experiementell variiert (s.u.), ist aber in allen Anwendungen auf eine 1:5 Beziehung eingeschränkt: Horizontale Verbindungen sind fünf mal häufiger als vertikale. Genau umgekehrt wurde das Kantengewicht dieser Beziehungstypen (`weight_child_of` und `weight_friend`) mit 50:10 definiert. Die Namen der Ideen (`names`) sind willkürlich -- im Falle eines stärker evolutionären Modells, das auch neue Ideen hervorbringen kann, müsste die Ideenamen iteriert werden. Die Ideenstärke (`strength`) wurde als gleichwertig gesetzt, um den per Definition selektiv neutralen Charakter der Varianten umzusetzen. Alle weiteren Parameter wurden zumindest experimentell variiert -- obgleich die Anzahl ihrer möglichen Permutationen eine vollständige Betrachtung enorm erschwert: Nur ausgewählte Optionskombinationen konnten in Betracht gezogen werden.
Die Abbildungen \@ref(fig:neiman-general), \@ref(fig:sim-popsize-crossregions), \@ref(fig:sim-startprop-distancemat), \@ref(fig:sim-vertitrans) zeigen Plotmatrizen mit 12 bis 15 Modellvarianten, die jeweils in acht^[Die Simulationen wurden auch mit größeren Durchlaufzahlen wiederholt, es hat sich aber gezeigt, dass für die im folgenden angewandte, visuelle Auswertung Abbildungen mit weniger Iterationen und klar differenzierter Farbmarkierung inhaltlich ausreichend korrekt und didaktisch verständnisfördernd sind.] Durchläufen berechnet und auf einen Ausgabeproxy reduziert wurden, der die diachrone Entwicklung der Ideenverteilung für jeden Durchlauf wiedergibt (vergleiche Abbildungen \@ref(fig:development-proportions-regions-burial-type) und \@ref(fig:development-proportions-regions-burial-construction)). Abbildungen \@ref(fig:neiman-general) bezieht sich dabei auf Ergebnisse nicht der für diese Arbeit entwickelten Simulation, sondern einer Implementierung des Neiman-Modells. Das ermöglicht die Gegenüberstellung mit Abbildung \@ref(fig:sim-popsize-crossregions), die demgegenüber mit der hierfür entwickelten, graphenbasierten Simulation aber auf Grundlage der -- zumindest semantisch -- äquivalenten Parameter erstellt wurde. Für beide wurde die Populationsgröße in drei und der Grad der Zwischengruppeninteraktion in fünf Schritten erhöht. Beide Simulationen zeigen die Effekte von *Drift* und *Flow* deutlich: Es besteht eine allgemeine Tendenz dazu, dass eine Idee sich dauerhaft durchsetzt und -- sofern eine Verbindung zwischen den Gruppen besteht -- neigen diese dazu, sich ähnlich zu entwickeln. Bei Neiman nimmt *Drift* mit zunehmender Bevölkerungsgröße ab: Gleichwertige Ideen können in einer größeren Population länger parallel existieren, da sie länger zufällig vererbt werden. Die graphenbasierte Simulation verhält sich umgekehrt: Je mehr Personen im Netzwerk, desto schneller dominiert die eine über die andere. Wie dieser fundamentale Unterschied zustande kommt, ist aufgrund der Emergenz der Netzwerksimulation nicht unmittelbar zu beantworten. Möglich ist, dass die starke, horizontale Verschränkung des sozialen Netzwerks, die Neimans generationales Modell nicht beachtet, zu mehr lateralem Druck auf die zufällig unterlegene Idee führt. Andererseits führt das Deaktivieren der horizontalen Transmission in der Netzwerksimulation, wie für Abbildung \@ref(fig:sim-vertitrans) vorgenommen, nicht zu einer sichtbaren Veränderung dieses Ergebnisses. Hinsichlich *Flow* verhalten sich beide Modelle zumindest tendenziell gleich: Je größer die Verbindung zwischen den Gruppen, desto größer die Ähnlichkeit. Bei Neiman ist dieser Zusammenhang stärker, da es keine Störeffekte durch die Struktur des sozialen Netzwerks beachtet. Da allerdings Austausch zwischen Menschen nicht derart zufällig wie von ihm angenommen funktionieren kann, ist davon auszugehen, dass das parameterabhängige Verhalten des Netzwerkmodells näher an der Realität liegt. Wie von der Populationsgenetik zu *Genetic Flow* vorhergesagt^[@frankham_introduction_2002, 328.], ist unabhängig davon in beiden Modellen ein geringer Grad an Verbindung ausreichend, um eine allgemein ähnliche Entwicklung der Gruppen bzw. Subpopulationen herbeizuführen.
Für die Simulationsläufe in Abbildung \@ref(fig:sim-popsize-crossregions) wurde davon ausgegangen, dass sowohl die Ausgangsverteilung der Ideen zum Startzeitpunkt als auch die Interaktionsmatrix zwischen den Gruppen gleichwertig bzw. äquidistant ist. Für Abbildung \@ref(fig:sim-startprop-distancemat) wurden diese Angaben nun manipuliert. Grundlage ist ein Modell mit einer Gruppenpopulationsgröße von 50 und einem Grad des Zwischengruppenaustauschs von 0.1 (wie Abbildung \@ref(fig:sim-popsize-crossregions) H). Die Plotmatrix variiert zwischen Gleichverteilung zum Startzeitpunkt und den Gegenheiten, wie sie für die Variablen *burial type* und *burial construction* ermittelt wurden. Außerdem wurde Zwischengruppendistanzmatrizen mit Äquidistanz, räumlicher Distanz und durchschnittlicher, kultureller Distanz eingesetzt. Es zeigt sich, dass die unausgeglichenen Startverhältnisse im Kontext von *burial type* *Drift* begünstigen. Dieser Modelltyp gewährt prominenten Ideen grundsätzlich einen Vorteil. Andererseits kommt es in einzelnen Durchläufen durchaus dazu, dass sich auch die schwache Idee langfristig durchsetzt. Die komplexen, nicht gleichwertigen Distanzmatrizen wirken *Drift* tendenziell entgegen. Möglicherweise führt die Variation der Distanzen zwischen Gruppen zur Ausbildung von Gruppenverbänden, die jeweils auch langfristig alternative Ideen aufrechterhalten können, selbst wenn der Konsens der anderen Gruppen in eine andere Richtung ausschlägt.
```{r neiman-general, echo = FALSE, fig.scap = "Explorative Simulationsläufe: Populationsgröße \\& Zwischengruppenaustausch (Neiman)", fig.cap = "Explorative Simulationsläufe: Populationsgröße \\& Zwischengruppenaustausch (Neiman). Parameterexploration für eine Neiman-artige Simulation. Jeder Einzelplot (A, B, C, ...) präsentiert das Ergebnis von acht Simulationsläufen mit einer Parameterkonstellation. Vorlage der Einzelplots sind die Abbildungen \\ref{fig:development-proportions-regions-burial-type} und \\ref{fig:development-proportions-regions-burial-construction}, dass heißt, jedes kleine Fenster repräsentiert die Entwicklung einer Regionalgruppe, während die Läufe durch Farbmarkierungen unterschieden werden. In der Plotmatrix wird auf der X-Achse der Grad des Zwischengruppenaustauschs (0, 0.01, 0.1, 0.5, 1) und auf der Y-Achse die Populationsgröße (10, 50, 200) variiert.", out.extra = "", out.width = ".85\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neiman1995/static_plots/neiman_general.jpeg")
```
```{r sim-popsize-crossregions, echo = FALSE, fig.scap = "Explorative Simulationsläufe: Populationsgröße \\& Zwischengruppenaustausch", fig.cap = "Explorative Simulationsläufe: Populationsgröße \\& Zwischengruppenaustausch. Wie Abbildung \\ref{fig:neiman-general}, nun allerdings für die in dieser Arbeit entwickelte, graphenbasierte Simulation. Der Grad des Zwischengruppenaustauschs wird hier im Gegensatz zur Neiman Simulation in eine vertikale (v) und eine horizontale (h) Komponente aufgeteilt, die nach Festlegung durch Faktor 5 unterschieden werden. Siehe Kapitel \\ref{simulation-parameters} für die allgemeine Parametrisierung. Startverteilung und Gruppendistanzmatrix sind jeweils so formatiert, dass alle Ideen und Regionen im selben Umfang Beachtung finden: \\textit{gleichwertig}.", out.extra = "", out.width = ".85\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/simulation_parameter_exploration/popsize_crossregions.jpeg")
```
```{r sim-vertitrans, echo = FALSE, fig.scap = "Explorative Simulationsläufe: Nur vertikale Transmission", fig.cap = "Simulationsparameter: Nur vertikale Transmission. Wie Abbildung \\ref{fig:sim-popsize-crossregions}, allerdings Simulation unter Ausschluss der horizontalen Transmission.", out.extra = "", out.width = ".85\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/simulation_parameter_exploration/vertitrans.jpeg")
```
```{r sim-startprop-distancemat, echo = FALSE, fig.scap = "Explorative Simulationsläufe: Startkonfigurationen \\& Zwischengruppendistanzen", fig.cap = "Explorative Simulationsläufe: Startkonfigurationen \\& Zwischengruppendistanzen. Wie Abbildung \\ref{fig:sim-popsize-crossregions}, allerdings mit anderen Simulationsparametern. Grundsätzlich orientiert sich die Parametrisierung an \\ref{fig:sim-popsize-crossregions} H. Auf der X-Achse der Plotmatrix werden Startkonfigurationen, auf der Y-Achse Zwischengruppendistanzmatrizen variiert. eq: equal, sp: spatial, bt: burial type, bc: burial construction.", out.extra = "", out.width = "0.85\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/simulation_parameter_exploration/startprop_distancemat.jpeg")
```
## Kulturelle und Räumliche Distanz {#cultural-and-spatial-distance}
Die Abweichung der diachronen Entwicklung der Variablen *burial type* und *burial construction* ist Konsequenz der jeweils eigenständigen, kulturellen Prozesse und Dynamiken, die die definierten Untersuchungsregionen im Laufe der Bronzezeit durchlaufen. Die Entwicklungsproxies der Regionen können quantitativ auf Ähnlichkeit verglichen werden, um ein Distanzmaß für die Unterschiede jeder Region zu jeder anderen zu ermitteln. Dieses Maß bezieht sich freilich nur auf die einzelnen Variablen, lässt sich jedoch durchaus in einem größeren kulturhistorischen Kontext interpretieren.
### Fragestellung und Methodik
Eine Kernfragestellung der vorliegenden Arbeit ist, in welchem Umfang sich verschiedene Regionen hinsichtlich der untersuchten Bestattungssitten unterscheiden, und ob sich gegenseitige Beeinflussung feststellen oder sogar messen lässt. Der erarbeitete Entwicklungsproxy (siehe Abbildungen \@ref(fig:development-proportions-regions-burial-type) und \@ref(fig:development-proportions-regions-burial-construction)) bietet dafür eine gute Ausgangsposition und kann durchaus in sich diskutiert werden (siehe Kapitel \@ref(descriptive-data-analysis)). Noch bessere Vergleichbarkeit kann allerdings durch die Einführung eines quantitativen Distanzmaßes erreicht werden. Nach Vorbild von @neiman_stylistic_1995 wurde dafür die quadrierte euklidische Distanz (*Squared Euclidian Distance -- SED*) berechnet. Sie steht neben verschiedenen anderen Distanzmaßen, die für diesen Zweck hätten eingesetzt werden können, und wurde ausgewählt, da sie einerseits für das Skalenniveau der Proxydaten geeignet ist und andererseits durch die Quadrierung Unterschiede besonders hervorhebt. Das ist wünschenswert, um regional unterschiedliche Übergangsprozesse als deutliche Abweichungen zwischen den Regionen sichtbar zu machen.
Die Berechnung der SED basiert auf einer einfachen Gleichung und kann unmittelbar implementiert werden:
$$d_{ij}^2 = \sum_{k = 1}^{n} (p_{ik} - p_{jk})^2$$
- $d_{ij}^2$: SED zwischen zwei Gruppen $i$ und $j$
- $k$: Variantenzähler
- $n$: menge der Varianten in der Gesamtpopulation
- $p_{ik}$: Relative Häufigkeit der $k$ten Variante in Gruppe $i$
- $p_{jk}$: Relative Häufigkeit der $k$ten Variante in Gruppe $j$
Ein Beispiel: Das Verhältnis von Brand- ($Br$) zu Körpergrab ($Kö$) in der künstlichen Region *England* ($En$) beträgt der Proxyberechnung zufolge im Jahr 2200calBC 0.25:0.75, also 1:3. Im *Benelux*-Raum ($Be$) sind es 0.5:0.5, also 1:1. Diese Angaben kann man folgendermaßen in die SED Gleichung einsetzen:
$$d_{En Be}^2 = (p_{En Br} - p_{Be Br})^2 + (p_{En Kö} - p_{Be Kö})^2$$
$$d_{En Be}^2 = (0.25 - 0.5)^2 + (0.75 - 0.5)^2$$
$$d_{En Be}^2 = 0.125$$
Die Distanz ist in diesem Fall also gering: Beide Varianten sind in beiden Regionen zu diesem Zeitpunkt in jeweils signifikantem Umfang vorhanden.
Die Berechnung von Distanzmatrizen für die beiden Variablen *burial type* und *burial construction* ermöglicht die Prüfung ihrer Korrelation. Dafür kam nach Vorlage von @porcic_simulating_2014 Mantels Matrix Korrelationstest^[@mantel_detection_1967] zum Einsatz. Neben der der rein kulturellen Korrelation ist aus Perspektive der klassischen *Diffusion of Innovation* Forschung eine vergleichende Betrachtung unter Einbezug der räumlichen Distanz sinnvoll: *Tobler's first law of geography* besagt, dass Phänomene in größerer, geographischer Nähe einander tendenziell stärker ähneln^[@tobler_computer_1970]. Entsprechend ist eine Korrelation von räumlicher und kultureller Distanz in einzelnen Zeitscheiben zu prüfen. Im Fall der großen, künstlichen und sich gegenseitig sogar überlappenden Regionen, die in dieser Arbeit als Untersuchungseinheiten festgelegt wurden, kann das hinsichtliche der räumlichen Distanz nur mithilfe von Distanzklassen umgesetzt werden. Realitätsnahe oder auch nur kontinuierlich skalierte Distanzen würden eine Festlegung von Beobachtungspunkten erfordern, was hier nicht sinnvoll möglich ist.
### Analyse und Ergebnisse
Die Analyse ist zweigeteilt in einen Abschnitt zu kultureller Distanz innerhalb des von den Variablen *burial type* und *burial construction* geschaffenen Bezugssystems, und einen Abschnitt, der dieser internen Betrachtung räumliche Distanz gegenüberstellt.
#### Kulturelle Distanz
Um die kulturelle Distanz zwischen den Regionen basierend auf den Variablen *burial type* und *burial construction* zu berechnen, wurden die in Kapitel \@ref(descriptive-data-analysis) vorgestellten Datensätze zur relativen Entwicklung der Varianten weiterverwendet. Diese enthalten zu jedem Jahr im Untersuchungszeitfenster 2200-800calBC Proxyinformationen zum relativen Anteil der verschiedenen Bestattungsformen in den in Kapitel \@ref(data-prep-and-segmentation) etablierten, künstlichen Untersuchungsregionen. Auf dieser Grundlage lässt sich jahrweise die SED zwischen jeder Region berechnen. Die Abbildungen \@ref(fig:sed-dev-matrix-bt) und \@ref(fig:sed-dev-matrix-bc) zeigen den Verlauf der SED-Entwicklung für jede Regionenbeziehung in einer Plotmatrix.
Die Mehrzahl der Kurven in Abbildung \@ref(fig:sed-dev-matrix-bt) für *burial type* entspricht den Erwartungen: Zu Beginn der Bronzezeit ist Körperbestattung im gesamten Untersuchungsareal weit verbreitet, also ist die euklidische Distanz 2200calBC in fast jeder Regionenbeziehung gering. Nur der Benelux-Raum, in dem der Brandbestattungsanteil schon in der Frühbronzezeit groß ist, schert aus. Ab der Mittel-, besonders aber am Übergang zur Spätbronzezeit, vollzog sich in ganz Europa der Übergang zur Dominanz der Brandbestattung. Die SED-Werte steigen über diesen Zeitraum durchweg an und zeichnen deutliche Peaks oder Entwicklungen mit mehreren, aufeinanderfolgenden Maxima. Das ist Konsequenz dessen, dass der Übergangsprozess in jeder Region tatsächlich und so wie er in Radon-B abgebildet ist unterschiedlich und gegenüber anderen Räumen zeitversetzt ablief. Am Ende der Spätbronzezeit nähert sich die durchschnittliche SED wieder Null an, da dann in fast ganz Europa die Brandbestattung vorherrschte. Abbildung \@ref(fig:sed-dev-bt) stellt den selben Sachverhalt in einer an Abbildung \@ref(fig:development-amount-regions-burial-type) orientierten Form dar. Das erleichtert es, die Rolle einzelner Regionen im Gesamtkontext zu beurteilen. Die in Radon-B dargestellte, frühe und vollständige Übernahme des Brandbestattungsritus im Benelux-Raum hebt ihn deutlich von den anderen Regionen ab. England dagegen, mit seinem langsamen, graduellen Übergang von Körper- zu Brandbestattung fällt durch durchgehend mäßige Distanzen zu allen anderen Regionen auf. Es kommt ohne akzentuierte Minima und Maxima aus. Die Situation für *burial construction* ist, wie aus den Abbildungen \@ref(fig:sed-dev-matrix-bc) und \@ref(fig:sed-dev-bc) ersichtlich, komplizierter. Hier ist kein allgemeiner Trend zu erkennen, sondern eine Vielzahl an lokalen und zeitlich begrenzten Phänomenen. Das liegt auch daran, wie korrekt oder inkorrekt der aus Radon-B entwickelte Proxy die Entwicklungen der realen Welt abbildet (siehe Kapitel \@ref(representativity)). Zur Mittelbronzezeit sollte die Hügelgräberkultur eine grundsätzliche Reduktion der SED für fast alle Regionenbeziehungen bewirken -- dieser Effekt ist tatsächlich leicht, aber bei weitem nicht so gut wie wünschenwert sichtbar.
```{r sed-dev-matrix-bt, echo = FALSE, fig.scap = "Plotmatrix der SEDs für \\textit{burial type}", fig.cap = "Plotmatrix der SEDs für \\textit{burial type}. Matrix mit $8*8=64$ Einzelplots. Jeder Plot zeigt die Entwicklung der Squared Euclidian Distance (SED) für die Variable \\textit{burial type} über den Zeitraum von 2200 bis 800calBC für jeweils eine Regionenbeziehung. Über der grauen Linie der echten Datenentwicklung liegt jeweils eine stärkere in der Farbe der Spaltenregion, die den Verlauf eines dynamisch eingepassten Splines (loess, span = 0.3) zeigt.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed/regions_regions_squared_euclidian_distance_burial_type.jpeg")
```
```{r sed-dev-bt, echo = FALSE, fig.scap = "Entwicklung der \\textit{burial type} SEDs für jede Region", fig.cap = "Entwicklung der \\textit{burial type} SEDs für jede Region. Alternative Darstellung der Plotmatrix in Abbildung \\ref{fig:sed-dev-matrix-bt}.", out.extra = "", out.width = ".9\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/sed/regions_squared_euclidian_distance_burial_type.jpeg")
```
```{r sed-dev-matrix-bc, echo = FALSE, fig.scap = "Plotmatrix der SEDs für \\textit{burial construction}", fig.cap = "Plotmatrix der SEDs für \\textit{burial construction}. Wie Abbildung \\ref{fig:sed-dev-matrix-bt}.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed/regions_regions_squared_euclidian_distance_burial_construction.jpeg")
```
```{r sed-dev-bc, echo = FALSE, fig.scap = "Entwicklung der \\textit{burial construction} SEDs für jede Region", fig.cap = "Entwicklung der \\textit{burial construction} SEDs für jede Region. Alternative Darstellung der Plotmatrix in Abbildung \\ref{fig:sed-dev-matrix-bc}.", out.extra = "", out.width = ".9\\textwidth", fig.align = "center", fig.pos = "!t"}
knitr::include_graphics("../neomod_analysis/figures_plots/sed/regions_squared_euclidian_distance_burial_construction.jpeg")
```
Das arithmetische Mittel der SEDs zweier Regionen ist ein Maß für deren diachrone Gesamtähnlichkeit. Die Abbildungen \@ref(fig:sed-mean-matrix-bt) und \@ref(fig:sed-mean-matrix-bc) visualiseren diesen Wert in Form einer Matrix. Für *burial type* ist eine grundsätzliche Ähnlichkeit der zentral- und nordeuropäischen Regionen (*Southeastern Central Europe*, *Poland*, *Southern Germany*, *Northeastern France*, *Northern Germany*, *Southern Scandinavia*) zu erkennen, während der Benelux-Raum und Großbritannien davon distanziert scheinen, untereinander aber große Ähnlichkeit aufweisen. Die größten Übereinstimmungen bestehen in Zentraleuropa zwischen *Southern Scandinavia* und *Southern Germany*, zwischen *Poland* und *Southern Germany* sowie zwischen *Northeastern France* und *Northern Germany*. Das spricht für ein hinsichtlich dieser Variable ausgeprägtes Austauschnetzwerk nördlich der Alpen. Für *burial construction* gelten dagegen andere Bedingungen. Im durch diese Variable definierten Interaktionsnetzwerk sind die mittleren Distanzen in Zentraleuropa viel größer. Stattdessen bilden Nord- und Nordwesteuropa (*Southern Scandinavia*, *Benelux*, *England*) ein relativ kohärente Einheit. Besonders *Benelux* und *England* verhalten sich hinsichtlich der Entwicklung von Flach- und Hügelgrabsitte bemerkenswert ähnlich.
```{r sed-mean-matrix-bt, echo = FALSE, fig.scap = "Matrix der durchschnittlichen SEDs für \\textit{burial type}", fig.cap = "Matrix der durchschnittlichen SEDs für \\textit{burial type}. Diese und die in Abbildung \\ref{fig:sed-mean-matrix-bc} dargestellte Matrix sind Eingabedaten von Simulationen in Abbildung \\ref{fig:sim-startprop-distancemat}.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed/regions_regions_mean_squared_euclidian_distance_burial_type.jpeg")
```
```{r sed-mean-matrix-bc, echo = FALSE, fig.scap = "Matrix der durchschnittlichen SEDs für \\textit{burial construction}", fig.cap = "Matrix der durchschnittlichen SEDs für \\textit{burial construction}.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed/regions_regions_mean_squared_euclidian_distance_burial_construction.jpeg")
```
Vor dem Hintergrund dieser Beobachtungen können die kulturellen Netzwerke, die sich aus den Distanzen von *burial type* und *burial construction* aufspannen, verglichen werden. Abbildung \@ref(fig:mantel-bt-bc) zeigt den Raum, der sich aus den beiden SED-Wertereihen ergibt und die Anordung der $\frac{8*8}{2}-\frac{8}{2}=28$ Regionenbeziehungen darin. Sie erlaubt es für jedes 200-Jahre-Zeitfenster abzuschätzen, ob die beiden Variablen korrelieren. Der Manteltest zeigt an, ob eine solche Korrelation statistisch signifikant ist. Die Abbildung belegt, dass die Distanznetzwerke von *burial type* und *burial construction* nicht äquivalent sind. Auch eine signifikante Negativkorrelation besteht nicht. Der Grad der Übereinstimmung zweier Regionen in der Frage nach Körper- und Brandbestattung ist also nicht geeignet, die Ähnlichkeit der Entwicklungen dieser Regionen hinsichtlich der Dominanz von Flach- oder Hügelgräbern nachherzusagen. Einzig für das Zeitfenster am Übergang zur Mittelbronzezeit von 1800 bis 1600calBC wird das 5%-Signifikanzniveau des Manteltests beinahe unterschritten und damit eine statistisch belastbare Beziehung angedeutet.
\begin{landscape}
```{r mantel-bt-bc, echo = FALSE, fig.scap = "\\textit{burial type} SEDs aufgetragen gegen \\textit{burial construction} SEDs", fig.cap = "\\textit{burial type} SEDs aufgetragen gegen \\textit{burial construction} SEDs für verschiedene Zeitfenster. Jeder Doppelpunkt repräsentiert eine Regionenbeziehung im entsprechenden Zeitabschnitt mit dem arithmetischen Mittel der jeweiligen SEDs. Eine lineare Regressionsgerade zeigt die Tendenz der Distanzwertbeziehung. Oben rechts ist das Ergebnis des Manteltests angegeben. Rotfärbung dieses Textes zeigt signifikante oder immerhin näherungsweise signifikante Beziehungen an (p < 0.1).", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed/squared_euclidian_distance_burial_type_vs_burial_construction.jpeg")
```
\end{landscape}
#### Kulturelle und Räumliche Distanz
Um die kulturelle mit der räumlichen Distanz zu vergleichen und auf Korrelation zu untersuchen, musste zunächst ein Maß für die räumliche Distanz festgelegt werden. Dafür wurden Distanzklassen definiert (siehe Abbildung \@ref(fig:map-regions-distance-classes)) indem die geographischen Distanzen zwischen den Zentrumspunkten der Region normalisiert und bewusst so aufgeteilt wurden, dass eine sinnvolle, vierstufige Einteilung entstand.
```{r map-regions-distance-classes, echo = FALSE, fig.scap = "Karte des klassifizierten, räumlichen Distanznetzwerks", fig.cap = "Karte des klassifizierten, räumlichen Distanznetzwerks. Die Kantenstärke skaliert mit dem Kantengewicht: Breite Linien bedeuten enge Beziehungen mit niedrigem Distanz-Wert. Die Kanten des Netzwerks sind bogenförmig um Überschneidungungen zu vermeiden, die es erschweren würden das Gewicht der einzelnen Verbindungen abzulesen.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/general_maps/general_map_distance_network.jpeg")
```
Um die Korrelation der Kulturnetzwerke mit dem räumlichen Distanznetzwerk zu prüfen, eignet sich -- ähnlich wie in Abbildung \@ref(fig:mantel-bt-bc) -- die Projektion der 28 Regionenbeziehungen in den SED-Geodistanz Raum (siehe Abbildung \@ref(fig:mantel-bt-spatial) und \@ref(fig:mantel-bc-spatial)). Die ordinale Skalierung der Raumdistanzklassen erschwert das einerseits, erlaubt andererseits aber auch das Anlegen diagnostischer Boxplots zur Veranschaulichung der Werteverteilung. Sie hat auch zufolge, dass für den Manteltest auf Korrelation nicht wie oben Pearsons Korrelationskoeffizient, sondern der Spearmansche Rangkorrelationskoeffizient berechnet werden muss. Für die Beziehung zwischen dem SED Netzwerk basierend auf *burial type* und der räumlichen Distanz ergeben sich aus Abbildung \@ref(fig:mantel-bt-spatial) mehrere Beobachtungen: Erstaunlicherweise scheint die kulturelle Distanz grundsätzlich nicht mit der räumlichen zu korrelieren. Ein signifikanter Zusammenhang zwischen den Distanzmaßen offenbart sich nur für das frühbronzezeitliche Zeitfenster 2000 bis 1800calBC. Das bedeutet, dass direkt aneinander angrenzende Großregionen nur in der Frühbronzezeit, also lange vor dem universellen Umstieg zur urnenfelderzeitlichen Brandbestattung, tendenziell eher gleiche Entwicklungen durchlaufen als weiter voneinander entfernte. In der Mittelbronzezeit durchlaufen die SED-Entwicklungen der *burial type* Variable die schon in Abbildung \@ref(fig:sed-dev-matrix-bt) beobachteten Spitzen. Die Korrelation zwischen kultureller und räumlicher Distanz ist über diese Peaks hinweg gering und kippt zwischen 1400 und 1200calBC, also am Übergang zur Spätbronzezeit, sogar ins Negative -- wenn auch nicht signifikant. Die kulturelle Distanz zwischen mehreren geographisch weit voneinander entfernten Regionen ist dann geringer als zwischen mehreren direkt aneinander angrenzenden. Betrachtet man das SED Netzwerk auf Grundlage von *burial construction* und untersucht es mittels Abbildung \@ref(fig:mantel-bc-spatial) auf räumliche Korrelation, kommt man zu grundsätzlich ähnlichen Schlüssen wie im *burial type* Kontext. Die Distanzwerte sind hier insgesamt größer und die SED Unterschiede innerhalb der einzelnen Raumdistanzklassen deutlich akzentuierter, dennoch ist auch hier die Frühbronzezeit die Phase der mit Abstand größten, räumlichen Korrelation. Signifikant ist diese nur für das Zeitfenster zwischen 1800 und 1400calBC. Negativkorrelation deutet sich für *burial construction* nicht an, doch auch hier nähert sich der Korrelationskoeffizient in der Spätbronzezeit Null an. Eine mögliche Interpretation dieser Beobachtung ist, dass in der Früh- und Mittelbronzezeit mehr unmittelbarer gedanklicher Austausch zwischen Nachbarregionen stattgefunden hat als in den anschließenden Perioden. in denen die hier untersuchten Großräume stärker voneinander isoliert waren.
\begin{landscape}
```{r mantel-bt-spatial, echo = FALSE, fig.scap = "\\textit{burial type} SED aufgetragen gegen die räumlichen Distanzklassen", fig.cap = "\\textit{burial type} SED aufgetragen gegen die räumlichen Distanzklassen für verschiedene Zeitfenster. Wie Abbildung \\ref{fig:mantel-bt-bc}, aber angepasst an die ordinal skalierten Distanzklassen. Eine Regressionsgerade lässt sich hier nicht sinnvoll einpassen, stattdessen können Boxplots die Werteverteilung in einer Distanzkategorie zusammenfassen. Statt Pearsons Korrelationskoeffizient basiert der Manteltest hier auf Spearmans Rangkorrelation.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed/squared_euclidian_distance_vs_spatial_distance_burial_type.jpeg")
```
\end{landscape}
\begin{landscape}
```{r mantel-bc-spatial, echo = FALSE, fig.scap = "\\textit{burial construction} SED aufgetragen gegen die räumlichen Distanzklassen", fig.cap = "\\textit{burial construction} SED aufgetragen gegen die räumlichen Distanzklassen für verschiedene Zeitfenster. Wie Abbildung \\ref{fig:mantel-bt-spatial}.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed/squared_euclidian_distance_vs_spatial_distance_burial_construction.jpeg")
```
\end{landscape}
### Simulation
Das in Kapitel \@ref(simulation) beschriebene Simulationsframework kann dazu genutzt werden, Vergleichs- und Erwartungswerte für die Korrelation kultureller und räumlicher Distanz bereitzustellen. Die Abbildungen \@ref(fig:sim-sed), \@ref(fig:sim-spearman-low-equal), \@ref(fig:sim-spearman-high-equal), \@ref(fig:sim-spearman-low-spatial) und \@ref(fig:sim-spearman-high-spatial) stellen die Ergebnisse von $4 * 100$ Simulationsdurchläufen neben die aus Radon-B extrahierte Entwicklungszeitreihe und deren Korrelation zwischen Squared Euclidian Distance und räumlichen Distanzklassen. Konfiguriert man die Simulation entsprechend, gibt ihr also die räumliche Distanzmatrix als statistischen Anhaltspunkt für die Konstruktion des Populationsgraphen und dessen Gruppengrenzen überschreitenden Kanten vor, so folgt die Ideenausbreitung einem Muster räumlicher Ähnlichkeit. Umso größer der Grad an Austausch zwischen den Gruppen, desto größer die Rangkorrelation kultureller und räumlicher Distanz (siehe Abbildung \@ref(fig:sim-spearman-low-spatial) im Vergleich zu Abbildung \@ref(fig:sim-spearman-high-spatial)). Umgekehrt streut die Ergebniskorrelation ohne diese Vorgabe näherungsweise normalverteilt um den Nullpunkt (siehe Abbildungen \@ref(fig:sim-spearman-low-equal) und\@ref(fig:sim-spearman-high-equal)). Die Korrelation der Variablen *burial construction* liegt im Laufe ihrer gesamten Entwicklung durchaus im Rahmen dessen, was auch als Erwartungsbereich einer Simulation mit räumlicher Vorgabe ermittelt werden kann. Obgleich die auf ihrer Grundlage errechnete Kulturdistanz also nach Teststatistik nicht durchgängig signifikant mit räumlicher Distanz korreliert (siehe Abbildung \@ref(fig:mantel-bc-spatial)), so ist ihre Entwicklung doch plausibel vollständig als Effekt räumlicher Interaktion interpretierbar. Für *burial type* kann diese Aussage so nicht getroffen werden. Die Zunahme der Brandbestattung in Europa ab der Mittelbronzezeit ist wahrscheinlich ein Prozess, dem ein nicht-räumliches Interaktionsnetzwerk zugrunde liegt. Es ist aufgrund der Überschneidung anderer, kultureller Charakteristika und Symbolik im Urnenfelderkontext ausgeschlossen, dass die Entwicklungen als unverknüpfte Analogien zufällig gleichzeitig ablaufen. Stattdessen ist die Annahme einer alternativen Einflussstruktur plausibel -- vielleicht Elitennetzwerke? Die Gegenüberstellung mit anderen Variablen könnte in Zukunft geeignet sein, diese These zu prüfen, das postulierte Netzwerk zu veri- oder falsifizieren und gegebenenfalls zeitlich und räumlich explizit zu erfassen.
\begin{landscape}
```{r sim-sed, echo = FALSE, fig.scap = "Simulation SED aufgetragen gegen die räumlichen Distanzklassen", fig.cap = "Simulation SED aufgetragen gegen die räumlichen Distanzklassen für verschiedene Zeitfenster. Wie die Abbildungen \\ref{fig:mantel-bt-spatial} und \\ref{fig:mantel-bc-spatial}, allerdings nun mit Vergleichswerten aus den Simulationsläufen hinter den Abbildungen \\ref{fig:sim-spearman-low-equal}, \\ref{fig:sim-spearman-high-equal}, \\ref{fig:sim-spearman-low-spatial} und \\ref{fig:sim-spearman-high-spatial}. Für die Zusammenfassung der Boxplots wurden alle Regionenbeziehungen entfernt, für die die Simulationen aufgrund von Drift und Flow einen SED-Wert von Null im jeweiligen Zeitfenster hergestellt haben.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed_simulation/squared_euclidian_distance_vs_spatial_distance_sim_multiple.jpeg")
```
\end{landscape}
```{r sim-spearman-low-equal, echo = FALSE, fig.scap = "Simulationsergebnisse: Rangkorrelation kultureller und räumlicher Distanz für niedere Interaktion und äquidistantes Gruppendistanznetzwerk", fig.cap = "Simulationsergebnisse: Rangkorrelation kultureller und räumlicher Distanz für niedere Interaktion und äquidistantes Gruppendistanznetzwerk. Die Spearmansche Rangkorrelation zwischen durchschnittlicher kultureller und räumlicher Distanz wird für Zeitschritte von 200 Jahren abgebildet. Die 100 Simulationsdurchläufe werden durch kleine Markierungspunkte und schwache Verbindungslinien repräsentiert. Alle Durchläufe werden nach Zeitschritten durch Box- und Dotplots zusammengefasst und die Füllfarbe der Dotplot-Marker gibt das Signifikanznivau des Manteltests für einen Simulationsdurchlauf in einem Zeitschritt wieder. Die Werte der Realweltvariablen \\textit{burial type} und \\textit{burial construction} sind in blau und grün auf die Simulationsdaten projiziert, eine horizontale, rote Linie hebt den Null-Wert des Korrelationskoeffizienten hervor. Die Simulation basiert auf der üblichen Parameterauswahl, einer konstanten Gruppenpopulationsgröße von 50 und einem Zwischengruppeninteraktionswert von vertikal 0.002 und horizontal 0.01. Die Startverteilung ist gleichwertig und das Distanznetzwerk ist äquidistant.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed_simulation/low_equal_interaction.jpeg")
```
```{r sim-spearman-high-equal, echo = FALSE, fig.scap = "Simulationsergebnisse: Rangkorrelation kultureller und räumlicher Distanz für hohe Interaktion und äquidistantes Gruppendistanznetzwerk", fig.cap = "Simulationsergebnisse: Rangkorrelation kultureller und räumlicher Distanz für hohe Interaktion und äquidistantes Gruppendistanznetzwerk. Wie Abbildung \\ref{fig:sim-spearman-low-equal}, die Simulation aber mit höherer Interaktion: vertikal 0.02 und horizontal 0.1. (vgl. Abbildung \\ref{fig:sim-popsize-crossregions} H)).", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed_simulation/high_equal_interaction.jpeg")
```
```{r sim-spearman-low-spatial, echo = FALSE, fig.scap = "Simulationsergebnisse: Rangkorrelation kultureller und räumlicher Distanz für niedere Interaktion und räumliches Gruppendistanznetzwerk", fig.cap = "Simulationsergebnisse: Rangkorrelation kultureller und räumlicher Distanz für niedere Interaktion und räumliches Gruppendistanznetzwerk. Wie Abbildung \\ref{fig:sim-spearman-low-equal}, die Simulation aber mit räumlichem Distanznetzwerk.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed_simulation/low_spatial_interaction.jpeg")
```
```{r sim-spearman-high-spatial, echo = FALSE, fig.scap = "Simulationsergebnisse: Rangkorrelation kultureller und räumlicher Distanz für hohe Interaktion und räumliches Gruppendistanznetzwerk", fig.cap = "Simulationsergebnisse: Rangkorrelation kultureller und räumlicher Distanz für hohe Interaktion und räumliches Gruppendistanznetzwerk. Wie Abbildung \\ref{fig:sim-spearman-low-spatial}, die Simulation aber mit höherer Interaktion: vertikal 0.02 und horizontal 0.1.", out.extra = ""}
knitr::include_graphics("../neomod_analysis/figures_plots/sed_simulation/high_spatial_interaction.jpeg")
```
\newpage
\newpage
\pby[title={Literatur},segment=\therefsegment,heading=subbibintoc]