Seit vorgestern lasse ich mein agentenbasiertes Modell FAMUS (Farm decisions for MUltifunctionality at landscape Scale), frischgebackene Version 1.0.0, erste Simulationen durchlaufen. Auch wenn das nur ein erster wichtiger Schritt ist und viele weitere noch gemacht werden müssen, hat mich das Ereignis – die Finalisierung der Version 1.0.0 – zu einer Reflexion über den Weg hierher bewogen. Denn dieser war weder kurz noch geradlinig.
Vorgeschichte
Ich hätte nie gedacht, dass ich Modellierung mal spannend finden würde. Weder im Studium noch während der Promotion habe ich mit Modellen gearbeitet. Als ich im Januar 2017 die Promotion abschloss, beschränkten sich meine Programmiererfahrungen auf vereinzelte Kurse in Stata (im Studium), R und Python (am UFZ), ohne dass ich die sehr rudimentären Skills praktisch angewandt hätte. Dann verlagerte ich ab Anfang 2017 im Projekt BonaRes aber meinen Forschungsschwerpunkt allmählich auf die Untersuchung von Agrarumweltpolitik und Verhalten von Landwirt:innen. Und irgendwie kam ich dank meinem UFZ-Umfeld auf die Idee, dass Modellierung, konkret agentenbasierte Modelle, diese zwei neuen Schwerpunkte gut verbinden kann – einerseits erlaubt dieser Ansatz sehr flexible Abbildung des Verhaltens von Agenten (z. B. von Landwirt:innen), andererseits macht er möglich, emergente Muster auf Landschaftsebene (z. B. Landnutzungsmuster und die damit einhergehenden Biodiversitätsveränderungen) aus den simulierten Entscheidungen und Interaktionen jener Agenten zu untersuchen.
Also habe ich angefangen, mich zu dieser neuen Methode zu belesen und belegte einen Online-Kurs in agentenbasierter Modellierung mit Anwendungen in NetLogo – einer eigens für derartige Modelle designten Programmiersprache, die ursprünglich zu Bildungszwecken entwickelt wurde. 2020 erschien dann mein erster (und bisher einziger) Fachartikel, der auf einem von mir geschriebenen, sehr einfachen ABM basierte (dieser hier).
Etwa zur gleichen Zeit beschloss ich, dass ich endlich in einem Projekt arbeiten möchte, in dem ich meine eigenen Ideen umsetzen kann – z. B. indem ich agentenbasierte Modellierung mehr in den Fokus rücke. Also begann ich, zusammen mit Andrea Kaim, am Antrag für eine Nachwuchsgruppe zu schreiben. Der in unserem 2020er Paper entwickelte Modellierungsansatz – eine Verknüpfung „meines“ ABM mit „Andreas“ multikriterieller Landnutzungsoptimierung – stand konzeptionell–methodisch im Zentrum des Antrags. 1,5 Jahre später, Mitte 2022, startete dann AgriScape, unsere gemeinsame Nachwuchsgruppe.
In der Antragszeit war ich noch nicht sicher, ob ich wirklich ein eigenes ABM entwickeln werde – im Vollantrag steht der Passus: „Es wird geprüft, ob das generische ABM-Framework von Huber et al. (2021) als Basis für die schrittweise Modellentwicklung geeignet ist.“ Roberts FARMIND-Modell ist mir immer noch eine wichtige Inspiration und es gibt tatsächlich konzeptionelle Ähnlichkeiten zwischen unseren Modellen, aber ich entschied mich relativ schnell, dass kein existierendes, mir bekanntes ABM zwei Aspekte verknüpft, die mir wichtig waren – eine Abbildung des Verhaltens von Landwirt:innen, die über die Annahme von Optimierung/Einkommensmaximierung hinausgeht (angesichts der umfassenden empirischen Literatur, die zeigt, dass das Verhalten von Landwirt:innen komplexer ist), sowie eine explizite und relativ detaillierte Abbildung von Betriebsentscheidungen (anstatt ihrer Vereinfachung zu generischen Opportunitätskosten, die dann mit einzelnen umweltfreundlichen Maßnahmen verglichen werden können). FARMIND hatte Ersteres zu bieten, ihm fehlte damals (und heute eigentlich immer noch) Letzteres. Bei einem anderen einflussreichen Agrar-ABM, AgriPoliS, ist es andersherum. Was mir entgegenkam, weil ich Lust hatte, ein eigenes Modell zu entwickeln.
Im Nachhinein betrachtet war es hanebüchen, mich selbst als den Hauptverantwortlichen für die Entwicklung des Modells einzuplanen. Ich unterschätzte die zeitlichen und kognitiven Ansprüche sowohl der Leitung einer Nachwuchsgruppe als auch der Entwicklung eines ABM from scratch. Dennoch: Mitte 2022 startete AgriScape und ich begann, am Konzept eines ABMs zu arbeiten. Im August 2023 schrieb ich die ersten Zeilen Code. Im September 2026 habe ich eine erste Version, mit der ich erste Simulation laufen lassen kann. Dazwischen ist viel passiert und ich habe extrem viel gelernt.
Was ich gelernt habe: Organisatorisches
Zunächst habe ich das Modell nicht allein entwickelt – sonst hätte es viel länger gedauert und es wäre vermutlich völliger Unfug herausgekommen. Stattdessen profitierte ich vom Austausch mit und Unterstützung durch eine Reihe von Menschen – neben dem AgriScape-Team und meiner Arbeitsgruppe am UFZ, die sich immer wieder verschiedene Probleme und Zwischenstände anhören mussten (insbesondere ist hier Malin Gütschow zu nennen, die sehr viele konzeptionelle Entscheidungen mitbestimmt hat), waren es einige Kolleg:innen mit mehr Erfahrung mit ABMs (insbesondere Franziska Appel, die auch viel agrarwissenschaftliche Expertise beigesteuert hat, aber auch Birgit Müller, Robert Huber oder Meike Will), mit denen ich zahlreiche konzeptionelle Diskussionen geführt habe, sowie Menschen mit Programmierungsskills, die mir zeitweise technische Aufgaben abgenommen haben (Marco Matthies, Giovanna Limon, Onno Nennecke…). Für die Zukunft habe ich zweierlei gelernt: Erstens, dass man für die Entwicklung von Modellen mehr Ressourcen einplanen sollte; zweitens, was ich eigentlich schon gewusst hatte: dass Wissenschaft ein kollaboratives Unterfangen ist und ich deutlich schneller vorankomme, wenn ich Zwischenstände regelmäßig mit jemandem diskutieren kann (und wenn es manchmal das bloße Aussprechen eines Problems war, das zu seiner Lösung geführt hat). Mit den letzten paar Projektanträgen habe ich jedenfalls daran gearbeitet, mein FAMUS-Team systematisch zu erweitern.
Was ich gelernt habe: Technisches
2023 beherrschte ich zwei Programmiersprachen ein bisschen: R, das ich vor allem für statistische Analysen genutzt habe und weiterhin nutze, sowie NetLogo. Da ich keine Kapazitäten hatte, eine neue Programmiersprache zu lernen, uns keine Mittel für eine:n Programmierer:in zur Verfügung standen und leistungsfähige Large Language Models sich höchstens am Horizont des Möglichen andeuteten, fiel die Entscheidung auf NetLogo. Zum Glück war meine Kollegin Meike Will so nett, den Code ihres Modells (das hier) mit mir zu teilen, von dem ich einige Elemente der Grundstruktur „abgekupfert“ habe.
Die Erkenntnis reifte relativ langsam, weil ich nur hin und wieder dazu kam, aktiv am Modell zu arbeiten, aber irgendwann 2025 war sie gereift: NetLogo ist sehr intuitiv und für einfachere, insbesondere konzeptionelle Modelle durchaus geeignet. Für komplexere Modelle, insbesondere solche, die mit Input-Daten arbeiten: eher weniger. Immer mehr Unzulänglichkeiten der Programmiersprache trieben mich in den Wahnsinn (z. B. können CSV-Dateien nur zeilenweise gelesen werden). Doch da ergab sich zweierlei – zum einen erfuhr ich von einer Kollegin aus Österreich, dass sie ihr ABM ebenfalls ursprünglich in NetLogo schrieb, um es dann in Julia übersetzen zu lassen, eine relativ neue Programmiersprache, die neben dem Vorteil größerer Flexibilität auch noch extrem schnell ist (NetLogo ist es nicht). Bei komplexeren ABMs ist Rechenleistung bzw. -effizienz sehr wichtig. Zum anderen landete ich auf Umwegen in dem EU-Projekt LAFERIA, wo die Idee war, mein in Entstehung befindliches ABM mit einem Biodiversitätsmodell – Persefone – zu koppeln, das in Julia geschrieben wurde. Also engagierten wir einen Programmierer, um FAMUS in Julia zu übersetzen. Anfang 2026 war es soweit. Ab da wurde FAMUS in Julia weiterentwickelt.
Dies wäre nicht möglich gewesen ohne den besagten Programmierer, Marco, und später ohne LLMs – ich konnte nicht immer auf Marcos Expertise zurückgreifen und wollte auch selbst weiter am Modell basteln. Da meine Jobsituation es aber nicht erlaubt, dass ich nebenbei in Ruhe eine neue Programmiersprache lerne, habe ich nur einige grundlegendste Grundlagen gelernt (zum Glück ist die Syntax von Julia R relativ ähnlich). Ohne LLMs wäre ich völlig aufgeschmissen. Mit ihrer Hilfe hingegen komme ich mit dem Programmieren ganz gut voran. Das konzeptionelle gebe ich vor, die technische Umsetzung übernehmen großenteils Andere – ich passe vor allem an und korrigiere. Die Programmiersprache selbst zu durchdringen würde sicherlich viel mehr Spaß machen – aber dafür habe ich, wie gesagt, leider keine Zeit. Und man lernt auch sehr viel, indem man ein LLM Code-Schnipsel für konkrete Probleme generieren lässt.
Was habe ich also gelernt?
- Man kann heutzutage sogar in recht fortgeschrittenem Stadium die Entwicklung eines Modells auf eine andere Programmiersprache umstellen.
- Arbeitsteilung ist effizient – ich überlege mir, was das Modell im Detail tun soll, das Coden überlasse ich weitgehend Anderen.
Was ich gelernt habe: Konzeptionelles
Noch viel mehr „Learnings“ brachte der Prozess jedoch auf der konzeptionellen Ebene – bzw. auch viel Ernüchterung.
Teilweise hing das mit technischen Aspekten zusammen. So hatte ich zeitweise die Idee, dass es angesichts meiner überschaubaren agrarwissenschaftlichen Expertise beim gleichzeitigen Wunsch, betriebliche Entscheidungen relativ detailliert abzubilden, sinnvoll wäre, ein vorhandenes Betriebsmodell zu nehmen und in meinem ABM einzubetten. Nach einigen Diskussionen mit Leuten, die sich mit meinem Wunschkandidaten, FarmDyn, auskannten, sah ich ein, dass ich die Komplexität des Unterfangens unterschätzt hatte. Eine der vielen Kröten, die ich im Prozess der Arbeit an FAMUS schlucken musste – die Abbildung von Fruchtfolgenplanung oder Entscheidungen über Bodenbearbeitung, Düngung etc. musste doch deutlich einfacher erfolgen als erhofft (und als FarmDyn es tut).
Eine weitere Quelle von Ernüchterung ist die verhaltenstheoretische und empirische Unterfütterung von FAMUS. Ich wollte ja keine einkommensmaximierenden/optimierenden Agenten. Diese haben in anderen Modellen ihre Daseinsberechtigung, aber ich wollte näher an der Realität sein und zumindest einen Ausschnitt der realen Komplexität des Verhaltens von Landwirt:innen „einfangen“. Idealerweise theoriebasiert.
Problem 1: Umfassende Verhaltenstheorien gibt es nicht wirklich viele, und schon gar nicht im landwirtschaftlichen Kontext. Christian Klöckners Comprehensive Action Determination Model ist der umfassendste systematische Ansatz, den ich kenne, und war lange mein Favorit. Doch zunehmend musste ich anerkennen, dass die Anwendung von CADM auf ein (Agrar-)ABM alles andere als einfach ist. Viele der dort enthaltenen theoretischen Konstrukte lassen sich in einem ABM nicht sinnvoll abbilden (d. h. insbesondere auf eine Art und Weise, die nicht trivial ist). Das betrifft insbesondere Faktoren, die tiefer „in den Agenten drin“ stecken – Beliefs beispielsweise oder injunktive soziale Normen (= was glaube ich, was mein soziales Feld von einem Verhalten halten würde; dies steht im Unterschied zu deskriptiven sozialen Normen = welches Verhalten beobachte ich in meinem sozialen Umfeld). Diese kann man natürlich in einem Modell „eingeben“, aber in Abwesenheit sehr detaillierter und kontextspezifischer empirischer Daten (s. Problem 3 weiter unten) läuft es auf rein annahmengetriebene Zusammenhänge hinaus.
Unter diesen ernüchternden Bedigungen verabschiedete ich mich mehr und mehr von dem Anspruch, eine einheitliche theoretische Basis anzustreben und versuchte, einen Kompromiss zwischen (i) relevanter empirischer Verhaltensforschung, (ii) der (geplanten) empirischen Arbeit meiner Kollegin Malin (die z. T. Inputs für FAMUS liefert) und (iii) dem, was sich in einem ABM gut und nicht-trivial abbilden lässt, zu finden. Dabei stellte ich irgendwann fest, dass ich mich schrittweise und unbewusst dem ursprünglich eigentlich verworfenen Consumat-Ansatz genähert habe – ein speziell für ABMs entwickelter Ansatz, der seinerseits auf der Kombination verschiedener verhaltenstheoretischer Elemente basiert. Consumat ist die Basis von Robert Hubers FARMIND, und nun auch von FAMUS, wenn auch in abgewandelter Form und nur partiell (s. Problem 2).
Problem 2: Je mehr verhaltenswissenschaftliche Literatur im Agrarkontext ich las, je mehr ich mit Kolleg:innen diskutierte, die auch in diesem Bereich forschen, desto mehr kam ich zu der Erkenntnis, dass es nicht realistisch ist, denselben Entscheidungsmechanismus für alle Entscheidungen anzunehmen. Welche Faktoren in welchem Maße eine Rolle spielen – seien es soziale Normen, Identität, wirtschaftliche Erwägungen etc. –, variiert zwischen verschiedenen Entscheidungen. Was die Fruchtfolgengestaltung maßgeblich beeinflusst, ist nicht unbedingt gleichermaßen relevant für die Entscheidung, ob ein Betrieb an einem Blühstreifen-Programm teilnimmt. Und so hat FAMUS bereits jetzt zwei verschiedene (wenn auch miteinander verflochtene) Entscheidungsmechanismen – die Managemententscheidungen (Fruchtfolge, Bodenbearbeitung etc.) basieren auf dem angepassten Consumat, während die Entscheidung über Teilnahme an Agrarumweltprogrammen der zweistufigen Logik von Meike Wills Modell folgt (Stufe 1: generelle Offenheit gegenüber Agrarumweltprogrammen, unterschieden zwischen produktiven [bspw. Zwischenfruchtanbau] und nichtproduktiven [bspw. Blühstreifen] Maßnahmen; Stufe 2: rein einkommensbasierte Auswahl von Flächen für die Teilnahme). Das fühlt sich „zusammengeschustert“, aber gleichzeitig auch realitätsnäher an, als wenn alle Entscheidungen demselben Mechanismus folgen würden.
Problem 3: Die zwei bereits diskutierten konzeptionellen Probleme betreffen primär die Struktur des Modells bzw. seines Entscheidungs-Moduls: Welche verhaltensrelevanten Faktoren (wie bspw. soziale Normen) werden wie abgebildet? Das „wie“, also wie eine gegebene konzeptionelle Struktur/ein Mechanismus konkret in Code dargestellt wird, ist eine Debatte für sich, die ich hier übergehen werde – trivial ist sie aber lange nicht (s. Schwarz et al., 2020 oder Will et al., 2024). Doch selbst wenn das geklärt ist, stößt man auf ein weiteres Problem: Die Struktur wird aus Parametern bzw. Variablen bestehen, die konkrete Werte brauchen. Im FAMUS-Consumat gibt es bspw. zwei zentrale Faktoren – die wirtschaftliche Zuversicht eines Betriebs, die auf seiner Erwartung basiert, ein „Zieleinkommen“ zu erreichen (im Sinne der Satisficing-Theorie), sowie die Erfüllung seines Konformitätsbedürfnisses (Konformität = Ähnlichkeit zu relevanten Peers). An dieser Stelle gibt es mindestens drei essenzielle Parameter: das Zieleinkommen eines Betriebs; einen „Konformitätsschwellenwert“ („Wie viel Abweichung von den Anderen kann ich ertragen?“); und die Definition der relevanten Peers. Wo kriegt man die Werte für diese Parameter her? Zumal sie kontextspezifisch sein dürften, d. h. nicht ohne Weiteres bspw. zwischen verschiedenen Betriebspopulationen übertragen werden können – auch wenn das eine willkommene zweitbeste Option wäre, wenn es sie denn gäbe. Oft gibt es sie nicht. Das führt dazu, dass viele Parameter willkürlich gesetzt werden müssen. Und da sie willkürlich gesetzt werden, bedarf es zahlreicher Sensitivitätsanalysen, um den Einfluss dieser (meiner) willkürlichen Entscheidungen auf das Modellverhalten zu untersuchen. Mittel- bis langfristig schwebt mir ein ganzes Forschungsprogramm zur Erhebung der Werte für diese Parameter vor. Bis dahin muss ich mich aber gedulden – und mit der Interpretation meiner Ergebnisse vorsichtig sein… (P.S. In FAMUS basieren Zieleinkommen auf dem Median der geschätzten Einkommen der vergangenen 10 Jahre; Konformitätsschwellenwerte sind halbwegs plausible Werte im mittigen Bereich der Verteilung des verwendeten – ebenfalls willkürlichen – Ähnlichkeitsmaßes, die zwischen Typen variieren [die Typen wiederum entstammen Malins Studie zu Rollenidentitäten]; die Peers eines Betriebs setzen sich aus geographischen Nachbarn und Betrieben desselben Typs zusammen [den Erkenntnissen von Anna Massfeller und Hugo Storm folgend]). Kurzum: Modellierung erfordert sehr viel Toleranz gegenüber „harten Entscheidungen“ hinsichtlich mehr oder weniger willkürlicher Annahmen. Und Sensitivitätsanalysen (diese stehen noch bevor).
Es waren lehrreiche 3–4 Jahre. Mal sehen, was die Zukunft bringt und wie sich FAMUS (hoffentlich) weiterentwickelt.
