Introduction ABM Deutsch

Eine Einführung in Agentenbasierte Modellierung mit Python


Allgemeine Informationen


Dieser Kurs richtet sich an alle, die gerne die Methode des agentenbasierten Modellierens (ABM) erlernen, und dabei nicht auf eine spezialisierte Plattform wie Netlogo zurückgreifen wollen, sondern eine generell anwendbare Programmiersprache erlernen möchten.


In diesem Kurs erlernen wir die Grundlagen in der Programmiersprache Python. Dabei fokussieren wir uns auf die Konzepte, die wir auch für das agentenbasierte Modellieren benötigen. Der Kurs vermittelt aber ausreichend allgemeine Grundkenntnisse damit Python auch schon für andere Aufgaben verwendet werden kann. Zudem sollte es euch nach dem Kurs leicht(er) fallen, euch andere Anwendungsgebiete - wie z.B. Ökonometrie, Netzwerkanalyse, oder Machine Learning - selbtständig zu erschließen.


Python ist hervorragend zur Programmierung von ABM geeignet. Allerdings gibt es noch viele weitere Gründe, sich diese Programmiersprache anzueignen: Python ist eine der am schnellsten wachsenden Sprachen, immer mehr Arbeitgeber sind auf der Suche nach Menschen mit Kenntnissen in Python, es handels sich bei Python um eine breit anwendbare, general purpose Sprache, zudem ist Python vergleichsweise leicht kommunizierbar und gleichzeitig sehr mächtig, und so weiter.


Der Kurs ist in mehrere Blocks unterteilt. Die meisten der Blöcke bauen aufeinander auf, Menschen mit Grundkenntnissen können aber gerade die Blöcke zu speziellen Modulen auch unabhängig durcharbeiten. Für jeden Block gibt es neben den Videos auch ein Skript (auf Englisch), das alle Inhalte noch einmal zusammenfasst und auch unabhängig der Videos verwendet werden kann. Außerdem gibt es Übungsaufgaben, die am besten im Team zu lösen sind. Für die Lösungen könnt ihr mich gerne kontaktieren.


Die Videos sind alle in der ersten Version. Das bedeutet, dass es mit Sicherheit einige Verbesserungsmöglichkeiten gibt und ich bin für Hinweise natürlich extrem dankbar - egal ob es sich um Kleinigkeiten oder grundlegendes Feedback handelt (Kontakt). Falls ihr einen Abschnitt des Kurses absolviert habe, wäre ich euch dankbar, das jeweilige Feedbackformular auszufüllen. Das würde mir helfen, den Kurs für die Zukunft zu verbessern.


Einführende Texte zur Ökonomischen Methodologie


Ich bin überzeugt, dass jede sozialwissenschaftliche Methode ihre Vor- und Nachteile hat. Um angemessen zwischen verschiedenen Methoden zu wählen und deren Ergebnisse aufeinander zu beziehen bedarf es Kenntnisse der Epistemologie und Methodologie. Hier habe ich einige einführende Texte zu diesem Themenbereich zusammengestellt.


Eine Zusammenfassung der Argumente warum auch angewandte Forscherinnen und Forscher sich mit solchen Fragen auseinendersetzen sollten, wie das praktisch umsetzbar ist, und wie ein epistemologisches Framework für Modelle aussehen könnte, findet sich in diesem (open access) Artikel, der 2018 im Journal of Artificial Societies and Social Simulation (JASSS) veröffentlicht wurde:

How to Relate Models to Reality? An Epistemological Framework for the Validation and Verification of Computational Models

Der Artikel gibt auch eine einführende Zusammenfassung relevanter wissenschaftstheoretischer Konzepte.


Einführung in Python

Installationsanleitung

Einführung in die Spyder Benutzeroberfläche (auf Englisch)


Block 1: Grundlagen

In diesem Block machen wir uns mit den Grundlagen von Python vertraut.


Videos

Skript

Aufgaben (für Lösungen bitte mich direkt kontaktieren)

Feedbackformular


Block 2: Klassen und objektorientierte Programmierung

Wir lernen was es mit Klassen auf sich hat und was unter objektorientierten Programmieren zu verstehen ist.


Videos

Skript

Aufgaben (für Lösungen bitte mich direkt kontaktieren)

Feedbackformular


Block 3: Numpy, Datenverarbeitung und Visualisierung

Dies ist ein umfangreicher Block in dem wir uns mit einigen speziellen Modulen von Python vertraut machen: Numpy führt nicht nur einen wichtigen neuen Datentyp ein, sondern erlaubt uns auch fortgeschrittene mathematische Probleme, insbesondere im Bereich der Matrizenrechnung, effizient zu lösen. Das Modul pandas ist hervorragend dazu geeignet Datensätze einzulesen, zu bearbeiten oder zu analysieren und Ergebnisse zu speichern. Zum Schluss lernen wir Daten mit dem Modul matplotlib zu visualisieren.


Videos

Erstes Skript: Numpy

Zweites Skript: Pandas

Drittes Skript: Matplotlib

Aufgaben (für Lösungen bitte mich direkt kontaktieren)

Feedbackformular


Block 4: Ein agentenbasiertes Technologiewahlmodell

Zum Abschluss des Kurses werden wir gemeinsam ein komplettes ABM von Anfang bis zum Ende durchprogrammieren. Als Modell habe ich Brian Arthur's Technologiewahlmodell ausgesucht, das sich unter anderem auf die Frage anwenden lässt, warum so viele Menschen die gleichen (miesen) Messanger verwenden.


Videos

Aufgaben (für Lösungen bitte mich direkt kontaktieren)

Feedbackformular

Copyright © All Rights Reserved