|
von Ralf Wieland <rwieland-at-zalf.de> Über den Autor: Ich beschäftige mich mit Umweltsimulation, neuronalen Netzen und Fuzzy-Systemen, indem ich sie programmiere. Letzteres vollzieht sich immer unter Linux (seit 0.99pl12). Weiterhin bin ich an Elektronik und Hardware interessiert und versuche, das mit Linux zu verbinden. |
Demographie mal zum AnfassenZusammenfassung:
Der Beitrag beschäftigt sich mit Fragen: "Wie wird die
Bevölkerungsstruktur in 50 oder 100 Jahren aussehen?", wenn sie sich so
weiterentwickelt wie bisher. Dazu wird ein kleines Programm unter QT
vorgestellt, mit dem man selbst experimentieren kann. Es soll zu
eigenen Erweiterungen anregen und vielleicht findet sich der eine oder
andere, der es für sich nutzbringend anwenden und erweitern kann.
|
Immer wieder streiten Politiker um den Zuzug und die Integration
von Ausländern. Firmen richten ihre Produktprofile nach
der demographischen Entwicklung aus. Vor kurzem las ich, dass
in Deutschland die Autokäufer zukünftig in der Mehrzahl
Rentner sein werden. Das Gesundheitssystem, das Rentensystem
etc. all das hängt von der demographischen Entwicklung ab.
Wissenschaftler beschäftigen sich mit diesem Problem.
Es werden tiefgreifende Arbeiten zu diesem
Gebiet veröffentlicht, trotzdem ist in weiten Kreisen der
Bevölkerung wenig über die dahinterliegenden Prozesse
bekannt. Hier soll es weniger um Politik oder
wissenschaftliche Exaktheit, als vielmehr um ein paar eigene
Experimente gehen. Man sollte mal gewissermaßen spielerisch
selbst schauen können, wie denn die Bevölkerungstruktur in
50 oder 100 Jahren aussehen könnte. Was passiert, wenn
Leute abwandern, was passiert, wenn welche dazukommen? Dazu
wurde ein kleines QT-Programm zum Experimentieren entwickelt.
Sicher hat sich jeder mal gefragt, woher eigentlich die in
den Zeitungen abgebildeten Bevölkerungspyramiden, die
z.B. die Bevölkerungsstruktur in 50 Jahren zeigen,
stammen. Woher kann man so etwas wissen?
Denkt man eine Weile über so ein Bild nach, so stellt man
fest, dass das Ganze davon abhängt, wieviele Kinder geboren
werden, wieviele Menschen sterben und ob Menschen in das
betrachtete Gebiet einwandern oder aus dem Gebiet
wegziehen. Letzteres bezeichnet man als Migration, die sich
in Immigration (Leute, die einwandern) und Emigration (Leute,
die auswandern) teilt.
Beginnen wir mit dem ersten, was man wissen muss, um so ein
Modell zu konstruieren, der Geburtenrate. Jedes Jahr wird
eine Anzahl an Kindern neu geboren. Die Geburtenrate ist die
mittlere Zahl der Kinder, die eine Frau in ihrem Leben
bekommt. Sie ist von Land zu Land
unterschiedlich und hängt von vielen Faktoren ab. In
Deutschland beträgt sie ca. 1.3 Kinder/Frau. Manche
Länder sind kinderfreundlicher als andere, in wieder anderen
Ländern bilden die Kinder eine Art Altersversicherung.
Die Geburtenrate hängt von kulturellen, wirtschaftlichen
Faktoren, dem Bildungsstand, Traditionen etc. ab.
Für uns ist die Geburtenrate eine Eingangsgrösse in das
Programm, die zwischen 0..10 Kinder/Frau eingstellt werden
kann. Damit sind wir in der Lage, die Geburtenrate den
jeweiligen Verhältnissen anzupassen. Die Anzahl der
geborenen Kinder hängt aber nicht nur von der Geburtenrate,
sondern auch von der Anzahl der Frauen im gebährfähigen
Alter ab. Im Modell wird die Zahl der Frauen im
gebährfähigen Alter (15..45 Jahre) einfach addiert und mit
der Geburtenrate multipliziert. Um auf die Anzahl der Kinder
pro Jahr zu kommen, ist die obige Zahl noch durch 45-15=30 Jahre zu
dividieren. Das ergibt sich einfach daraus, dass eine Frau
ja durchschnittlich in ihrem Leben die Geburtenrate an
Kindern bekommt. Manch einer wird sich vielleicht fragen, ob
die Geburtenrate wirklich stimmt, da ja eine spezielle Frau vielleicht
7 Kinder hat, eine andere aber keins. Das ist eine Sache der
Statistik und kann in der Literatur nachgelesen werden. Für
uns geht es aber weniger um eine exakte Statistik, als
vielmehr um die Möglichkeit des Experimentierens. So u.a.
auch um die Frage, was würde passieren z.B. wenn es in
Deutschland schick würde, mehr als drei Kinder zu haben?
Wäre doch mal interessant?
Wo Kinder geboren werden, sterben auch Menschen. Das ist ein natürlicher Prozess. Ähnlich wie die Geburtenrate wirkt die Sterberate, diesmal bezieht sie sich aber auf alle Bevölkerungsmitglieder, nicht nur die Frauen. (Bei der Geburtenrate spielen Männer natürlich auch eine Rolle, aber die soll hier vernachlässigt werden ;-) . Wie man sich leicht vorstellen kann, ist die Sterberate abhängig vom Alter eines Menschen. So sterben alte Leute statistisch gesehen häufiger als junge. In Deutschland gibt es eine offizielle Sterbetafel, nach der z.B. die Versicherungen ihre Lebensversicherungsprämien berechnen. Diese wurde dem Programm zu Grunde gelegt. Für andere Länder ist das anzupassen. In modernen Industrieländern sollte die Rate übrigens nur vom Alter und nicht noch zusätzlich vom sozialen Stand abhängen. Wie mir ein Freund aus Mexiko erklärte, gilt das aber nicht generell. Im Programm wird von einer einheitlichen Sterberate ausgegangen, die nur vom Alter abhängt. Möchte man also auch die soziale Struktur mit berücksichtigen, so ist das Programm zu erweitern. Vielleicht hat jemand Lust?
Als letzter Prozess soll die Migration betrachtet
werden. Sicher spielten Migrationsprozesse schon immer eine
wichtige Rolle. So wanderte die Landbevölkerung in den
vergangenen Jahrhunderten in die Städte ab. Das war auch nicht
weiter problematisch, da durch die hohe Kinderzahl dieser
Verlust ausgeglichen werden konnte. Heute spielen sich
Migrationsprozesse auf einer anderen Ebene ab. Trotzdem
spielt die Abwanderung der Landbevölkerung auch heute noch
in Deutschland eine wichtige Rolle, die dazu führen
wird, dass manche Regionen vereinsamen werden. Das Ganze
ist ein autokatalytischer Prozess, der sich durch
zusammenbrechende soziale und kulturelle Leistungen noch
verstärkt. Es lohnen sich halt keine Kindereinrichtungen,
wenn es nur noch wenige Kinder gibt. Wo es aber keine
Kindereinrichtungen gibt, zieht auch niemand gern
hin. Gleiches gilt für kulturelle Einrichtungen. Ohne zu
sehr ins Detail zu gehen, sollte klar sein,
dass Migrationsprozesse vielfältige Ursachen haben. Wichtig
im Zusammenhang mit dem vorgestellten Programm ist, dass in
der Regel die Alterstruktur der Menschen, die eine Region
verlassen eine andere ist, als die Menschen, die in die
Region kommen. Um dieses programmtechnisch abzubilden, stehen
im Quellcode "./demogra/demogra1.cpp" ein Feld "Verteilung"
zur Verfügung, das an die eigenen Gegebenheiten angepasst
werden kann. Für erste Experimente sollte das aber nicht
notwendig sein.
Als Eingabe gibt es die Felder Emigration
und Immigration, die absolute Werte erwarten. Wenn also im
Jahr 10000 Personen in die Region kommen, so sind im Feld
Immigration 10000 einzutragen.
Last but not least werden wir alle jedes Jahr ein Jahr älter. Deshalb wird in der Jahresschleife jemand, der vorher z.B. 40 Jahre alt war, dann eben 41 Jahre alt sein. Das Eingabefeld "Step" ermöglicht gleich mehrere Jahrschritte auf einmal auszuführen. Man kann also z.B. gleich in 10 Jahresschritten simulieren.
Hier kommt erst mal ein Blick auf die Programmoberfläche:
Auf der linken Seite sind die oben beschriebenen
Eingabefelder untergebracht. Nach jedem Schritt erfolgt eine
Summation über alle Frauen und Männer, die im entsprechenden
Feld auf der linken Seiten ausgegeben werden. Diese Felder
dienen somit nur der Ausgabe. Ebenfalls dient der gesamte
Graphikbereich nur der Visualisierung. Die Buttons im
linken unteren Teil dienen der Steuerung der Simulation. Mit
dem Button "Step" wird ein Simulationsschritt
ausgeführt. "Reset" ermöglicht das Rücksetzen auf den
Ausgangszustand. Ein Abspeichern des aktuellen Zustandes in
eine Datei "simulation.dat" ist vorgesehen. In dieser Datei
befinden sich das Alter und dazu entsprechend die Anzahl der
männlichen und weiblichen Personen. Diese Datei kann dann
einer gesonderten Auswertung unterzogen werden. Die Buttons
"Help" und "Quit" erklären sich wohl selbst.
Auf dem graphischen Ausgabefeld befinden sich im unteren
Teil jeweils die maximale Zahl, der in allen Altersstufen
befindlichen weiblichen bzw. männlichen Personen als
Orientierungshilfe. Zu beachten ist, dass die Größe der
Balken sich an dieser maximalen Größe ausrichtet. Das ist
vielleicht nicht die beste Lösung, aber mir fiel nichts
besseres ein. Hat jemand ein gute Idee?
Ansonsten sollte die Simulation weitgehend selbsterklärend
sein. Bei ungünstigen Eingaben, z.B. wenn die Zahl der
Emigranten zu groß gewählt wurde, entstehen Löcher in der
Alterspyramide. Ein solches Ergebnis ist in der Praxis nicht
zu erwarten, es sollte also die Eingabe korrigiert
werden. Vielleicht gibt es solche patologische Zustände,
eventuell durch AIDS, wirklich? Es könnte ja sein, dass eine
Altersgruppe stark dezimiert wird und der Rest durch
Auswanderung eine gesamte Region veröden läßt?
Das Programm unterliegt der GPL. Bezüglich QT ist die
entsprechende Lizenz von Trolltech bindend. Die Installation
ist denkbar einfach. Zuerst muss man das Demographiemodell
herunterladen (siehe Referenzen).
Das File "demographie-0.2.tar.gz" wird wie
üblich mit: tar -zxvf demographie-0.2.tar.gz entpackt. Im neu
entstandenen Verzeichnis kann mit make bzw. einem vorherigen
qmake die Übersetzung gestartet werden. Voraussetzung neben
QT3 ist natürlich der gcc. Das Programm wurde erfolgreich
unter SuSE 8.0 und SuSE 8.1 getestet, sollte aber auch unter
anderen Distributionen laufen.
Gestartet wird es einfach durch den Aufruf auf der
Kommandozeile: "./demographie". Wichtig ist nur, dass sich
die Datei "demo.csv" mit im Verzeichnis befindet. In dieser
Datei sind die Jahreszahlen, die weiblichen, männlichen
Personen und die weiblichen und männlichen Sterberaten
jeweils als kommagetrennte Werte gespeichert. Hier kann auch
eine Anpassung auf ein anderes Gebiet erfolgen. Im Beispiel
wurden die Daten von Deutschland aus einer Zeitung
entnommen. Sie sind damit nicht unbedingt genau, aber dass
soll für unseren Zweck des Experimentierens nicht die
entscheidende Rolle spielen.
Das Programm entstand als Teil eines regionalen
Simulationssystems. Mit diesem System sollten u.a. solche
Fragen geklärt werden, wie wird sich in einer geographisch
klar abgegrenzten Region (der ländliche Raum nördlich
Berlins) die Bevölkerung entwickeln. Dazu wurde vor allem
der Zuzug von jungen Familien in die berlinnahen Gebiete und
der Wegzug junger Menschen in die westlichen Bundesländer
Deutschlands untersucht. Damit ergeben sich regional ganz
unterschiedliche Entwicklungen. Es gibt Gebiete, die an
Bevölkerung zunehmen und andere Gebiete nehmen ab. Manche
Gebiete, vor allem die weit entfernten, werden immer
menschenleerer. Hier wirkt der oben erwähnte autokatalytische
Prozess.
Man muss aber mit solchen Prognosen auch vorsichtig sein, da
hier bei weitem nicht alle Daten, die für so einen Prozess
wichtig sind, Berücksichtigung fanden. So kann
beispielsweise durch Telearbeitsplätze die Entfernung zu
Berlin zunehmend an Bedeutung verlieren. Auch können
Förderungsprogramme zur Ansiedlung von Industrie plötzlich
ein ganz anderes Umfeld schaffen. Die Modelle sind nur ein
Fortschreibung des jetzigen Zustandes und dienen nur der
Orientierung.
Bei der Übertragung in andere Regionen der Welt wirken ganz
andere Prozesse, die es zu untersuchen gilt. Es wäre
interessant, diese Art von Modellen auch einmal für andere
Gebiete, wie z.B. ländliche Regionen in Mexiko
anzuwenden. Hier sind noch viele Ideen gefragt. Vielleicht
hat jemand Lust und möchte sich mit diesen Fragen noch
genauer beschäftigen oder auch das Programm für andere
Regionen adaptieren? Ich würde mich über eine Rückmeldung
freuen.
An dieser Stelle möchte ich mich ganz herzlich bei der Linux Community bedanken, die ein solch phantastisches System entwickelte. Der Firma Troll Tech gilt mein Dank für das wunderbare QT und seine Verfügbarmachung unter Linux. Natürlich gilt mein spezieller Dank der FSF für die vielen Tools, allem voran der gcc, ohne dem diese Arbeit nicht möglich gewesen wären.
Happy hacking!
Der LinuxFocus Redaktion schreiben
© Ralf Wieland "some rights reserved" see linuxfocus.org/license/ http://www.LinuxFocus.org |
Autoren und Übersetzer:
|
2005-01-14, generated by lfparser_pdf version 2.51