Last modified: 16.9.2024

SIKURS erledigte Punkte

Inhaltsverzeichnis, aktuelle Punkte, zurückgestellte Punkte, erledigte Punkte

  1. s Erweiterung Demografische Sondergruppen (40h,7A,v10.0,Z:,B:)
    Das aktuelle Konzept mit Baustein R (2 identisch strukturierte Dateien GEM und DSGA/DSGR) für Demografische Sondergruppen eignet sich gut für grobkörnige Prognosen, z.B. für eine Gesamtstadtprognose: Bei einer feinkörnigen Prognose (z.B. auf Block- oder Adressebene) ergeben sich folgende Nachteile Baustein "R - Behandlung demografischer Sondergruppen" und die Dateien DSGA/DSGR bleiben erhalten.

    Alternativ können demografische Sondergruppen als einzelne Gebiete der gem-Datei modelliert werden.
    Die Eigenschaften der Gebiete werden in der Datei reftyp festgelegt.
    Enthält ein Gebiet einen Typ 0, z.B. Typ Geburtenraten TYG = 0, dann sind alle Geburtenraten für dieses Gebiet gleich 0.
    Mit einer neuen Spalte TYAGF (Typ Altersgruppenfortschreibung) in REFTYP legt man fest, ob für das Gebiet normale Altersgruppenfortschreibung gilt.
    TYAGF ist nicht wie z.B. "Typ Geburtenraten" ein Index in eine Ratendatei "fruc", sondern hat 2 vordefinierte Werte:

    0   Gebiet ohne Altersgruppenfortschreibung
    Geburten, Sterbefälle, Wanderungen können (müssen aber nicht) durch einen Typ Geburten, Sterbefälle, ... bei dem alle Raten 0 sind, ausgeschlossen werden.
    Eine Zeile in reftyp.csv für eine demografische Sondergruppe sieht typischerweise wie folgt aus:
    103;DSG xy;0;0;0;0;0;0;0;0;0;0;12
    1 Gebiet mit Altersgruppenfortschreibung

    Damit kann man Demografische Sondergruppen in unterschiedlicher Granularität modellieren:

    1. ein Gebiet enthält die Bevölkerung aller Sondergruppen
    2. man fasst jeden Typ Demografische Sondergruppe (Altenheim, Justizvollzugsanstalt, ...) in jeweils einem Gebiet zusammen
    3. Jede Einrichtung (Altenheim Kieferngarten, Altenheim Sendling, JVA Stadelheim, ...) wird für die Prognose ein eigenes Gebiet (und bei Bedarf nach der Prognose zu höheren Aussageneinheiten aggregiert)

    Beispiel DSGG

    Weitere Beiträge:

    Links auf img von 06Release.htm:
    . . . . . .
  2. s Entwicklerhandbuch (21h,2A,v10.0,Z:,B:)
    Um die Einarbeitung eines Systemexperten in das Programm zu erleichtern wurde ein Entwicklerhandbuch, grobes eva.htm, feines Datenflussdiagramm sikurs.htm erstellt.
  3. s Angleichung Baustein Neubau/Rückbau (36h,2A,v10.0,Z:,B:)
    Die Ausgabedatei rea.csv enthält Wanderung in die Außentypen gegliedert nach Typ Rückbau, Außentyp und demographisch Gliederung.
    Alternativ könnte man wegzug.csv um den Anteil Außenwanderung aus Rückbau erweitern (Problem Differenzierung NTYQWA, NTYREA oder NGZ).
    Die Reihenfolge der Spalten in neubauzu.csv und rueckbauweg.csv wurde geändert in
    neubauzu.csv   : Jahr, Erstbezugstyp,        Außentyp, Anteil
    rueckbauweg.csv: Jahr, Rückbauendauszugstyp, Außentyp, Anteil
    Die Ausgabedateien BEW, BEWAGG, BEWGEM, BEWGEMAGG werden um die neuen Ströme erweitert vorhanden Ströme umbenenannt

    Der Baustein X (X1/X2) wurde gestrichen, weil man dessen Wirkung durch die Datei

    neubauzu.csv (später umbenannt in nebqqa.csv)
    #Jahr;Erstbezugstyp;Außentyp;Anteil
    *;*;*;0
    erzielen kann.
    Überarbeitung Rückbaualgorithmus nach Vorgaben Methodenexperte (mit Integration Ausgabedatei rea.csv in wegzug.csv)
    Verbesserung freie Wohnkapazität bei Neubau und Rückbau für Innenwanderung

    Für folgende kleinräumige Prognose (beispiel/rueckbau_total) ist der Baustein noch nicht gut geeignet:
    Jedes Gebiet entspreche einem Block (oder Wohnadresse).
    Ein Gebiet = Block soll vollständig rückgebaut werden (Endbevölkerung = 0).
    Die dazu nötige Anzahl Rückbauendauszieher (ruckbaub) und die Aufteilung der Rückbauendauszugsbevölkerung (reaq) kann man nur durch aufwändiges systematisches variieren der Werte (Extra/Eigen Scripts/Start/rueckbau_total.pl) ermitteln.

  4. s Verbesserung erweiterte Typenzugehörigkeiten (30h,3A,v10.0,Z:,B:)
  5. s extrem kleinräumige Prognosen (75h,13A,v10.0,Z:,B:)
    mit sehr vielen Gebieten bei denen viele Balken der Bevölkerungspyramide nicht besetzt sind, werden möglich durch (siehe Benutzerhandbuch und Hilfedatei Startmaske Prognose)

    Durchgeführte Beispielrechnungen

  6. s Verbesserungen Ausgabedateien und Protokoll (10h,1A,v10.0,Z:,B:)
    1. gem-Ausgangsdatei und alle gem-Ergebnisse nach gem.csv ausgeben
      Die Ausgabedateien agg, bew(gem(agg)), strom, wegzug, zuzug enthalten die Zeitreihe aller Prognosejahre.
      Diese Konvention sollte man auf gemYYYY und gebamYYYY ausdehnen.
      Mit dem Zeitreihentool kann man bei der Prognose oder anschließend alle gem-Dateien in die Datei zr_gem.csv zusammenfassen.
      Es wäre praktischer gleich bei der Prognose auf die Ausgabedateien gem2013.csv, gem2015.csv, ... zu verzichten und stattdessen die gem-Ausgabgsdatei gem2012.csv und alle Ergebnisse nach gem.csv zu schreiben.
      Option kann getestet werden durch:
      Einwohner/Prognose/Notiz
      !GEMALL 0 - (Voreinstellung) Ausgabe gem2013.csv, gem2014.csv, ...
      !GEMALL 1 - Ausgabe aller Prognosejahre in gem.csv
      !GEMALL 2 - Ausgabe gem-Ausgangsdatei und alle Prognosejahre in gem.csv (wie bei zr_gem.csv)
    2. Ab Protokollumfang 2 Ausgabe nach Außentypen differenzierten Außenzuzug und Außenwegzug ins Protokoll, jedoch ohne die demographische Differenzierung der Ausgabedateien zuzug.csv, wegzug.csv.
      Damit kann man die Plausibilität der Außenwanderung ohne aufwändige Aufbereitung der Dateien zuzug.csv und wegzug.csv prüfen.
    3. Die Formatierung der Zahlen im Protokoll und csv-Dateien könnte man ändern:
      • Einstellung
        • Format (fixed, scientific, defaultfloat)
        • precision (15)
        • Tausender Trennzeichen [v]
      • Dies ergibt je nach Ländereinstellung
        • "" oder "german" 123.456,78
        • "english" 123,456.78
        • "swiss" 123'456.78
  7. t Bei Indikatoren Eckwerte Geburten/Sterbefälle beachten (7h,1A,v10.0,Z:,B:)
    Bei Baustein G1 Eckwert für Geburten stimmen die Fruchtbarkeitsindikatoren nicht, bei Baustein S1 Eckwert für Sterbefälle stimmem Lebenserwartung und rohe Sterberate nicht.

    Lösung:
    Ausgabe der bei der Prognose ermittelten Anpassungsfaktoren in die Datei frucfak.csv bzw. strbfak.csv:

    # Jahr: Anpassungsfaktor Geburten bzw Sterberate
    1992;0,8175
    Bei G0 bzw. S0, d.h. bei fehlender Datei ist dieser Anpassungsfaktor 1 Multiplikation der Raten mit diesen Anpassungsfaktoren
    Das Indikatortool prüft, ob Baustein G1 oder S1 vorliegt und liest dann die Dateien frucfak bzw. strbfak und berechet die tatsächlichen Geburten- bzw. Sterberaten.
  8. t gnuplot Fehler #1279 (8h,1A,v10.0,Z:,B:)
    Da nachfolgender gnuplot Fehler #1279 (09.09.2013) behoben ist, Voreinstellung für Ausgabeformat bei Visualisierung/Zeitreihen/XY-Plot/Flächenplot (TkVEck) von wxt zu windows zurückändern
    29.12.3013 "Bastian Märkisch" markisch@users.sf.net bug fixed+closed
    # problem gnuplot 4.6.3 - plots 2003 .. 2005 - should plot until 2007
    # work around
    # a) set term wxt
    # b) no 'fillstyle transparent solid 0.75'
    set term windows
    set yrange [0:*]
    plot '-' with filledcurves lt 1 fillstyle transparent solid 0.75
    2003 3000 0
    2004 4000 0
    2005 4775 0
    2006 4775 0
    2007 4775 0
    e
    Ab gnuplot 5.0 wird range [0:1] reverse statt range [1:0] verwendet. Dies betrifft die diversen Pyramiden-Anzeigen.

    Bei Thematischer Karte

    Text
    [1,-3,-2,-4] Merkmalsnummer
    wird Merkmal 1 (positiv) als Text, und die negativen Merkmale 3, 2, 4 als tooltip ausgegeben
    #[bugs:#1587] 30.03.2015 gnuplot 5 has problems with 'grid' + 'gif animate'
    # fixed in 5.1
    set term gif animate delay 200 loop 0
    set grid
    set output 'bug.gif'
    do for [i = 0:5] {
    plot sin(x+i)
    }
    Visualisierung/Pyramiden/Einzelpyramiden Option
    1. kein grid
    2. grid
    3. Perzentilegrid
    In Prognoseprotokoll bei animierte Pyramide grid abgeklemmt.
  9. t Bilanzkurve, Kachel-, Blasen-, Liniendiagramm (17h,1A,v10.0,Z:,B:)
  10. t Ratentool mit Hadwiger, Weibull, Gompertz (27h,3A,v10.0,Z:,B:)
    Im Rahmen einer Anwenderunterstützung wurde bei der Berechnung Raten aus Bestand und Bewegung Prüfungen auf fehlerhafte Eingabedaten erweitert und bei Anpassung Fruchtbarkeitsraten an Ziel-TFR die Möglichkeit durch einen Faktor $c->() Altergruppen von der Anpassung auszuschließen, und durch die Formel $f->($y/12) die Geburtenraten der Mütter jährlich um 1/12 Jahr zu verschieben, ergänzt, sowie die Online-Hilfe (incl. Sterberaten nach Vorgabe Lebenserwartung) überarbeitet.

    Hadwiger-Funktion
    img/hadwiger.png

    Auf Vorschlag von Herrn Hanika wird die Hadwiger-Funktion genutzt Die Berechnung der Geburtenrate einer Altersgruppe wird in ein neues Hadwiger-Tool unter Eingabedaten/Berechnen ausgelagert
    1. visualisieren:
      eine fruc-Datei lesen, und pro Typ, Bevölkerungsgruppe eine Pyramide der Eingangsdaten, eine Hadwiger-Kurve mit den Kennwerten F, MO, ME, VAR zeichnen (ähnlich Bild oben)
    2. Hadwiger-Parameter berechnen
      fruc2001.csv, fruc2002.csv, ..., fruc2010.csv lesen und Hadwiger-Parameter ausgeben:
      hadwiger_analyse.csv:
      #Jhr;T:B;F     ;MODE;MEAN;VAR     (T=Typ Geburtenrate B=Bevölkerungsgruppe)
      2001;1;1;1,1535;29,5;29,8;25,9264
      2001;1;2;1,5731;27,5;28,1;30,8067
      ...
      2010;1;1;1,1351;31,4;31,6;26,3242
      2010;1;2;1,1535;28,1;28,5;25,9264
    3. mit dem vorhandenen Tool Eingabdaten/Dynamisieren/Extrapolieren Überlegungen zur Fortschreibung der Hadwiger-Parameter anstellen
    4. Hadwiger-Parameter in fruc-Dateien umsetzten:
      • mit Tool Hadwiger-Synthese:
        Erstellung einer Datei für zukünftige Hadwiger-Parameter durch den Benutzer:
        hadwiger_syynthese.csv:
        #Jhr;T:B;F     ;MODE;MEAN;VAR     (T=Typ Geburtenrate B=Bevölkerungsgruppe)
        2011;1;1;1,1366;31,5;31,8;26,9264
        2011;1;2;1,5731;27,5;28,1;25,8067
        ...
        2029;1;1;1,1451;32,4;32,9;29,3242
        2029;1;2;1,1515;29,7;29,9;25,9264
        Berechnung Ausgabedateien fruc2011.csv, ..., fruc2029.csv durch das Tool.
      • durch direkte Eingabe in eine fruc-Datei (siehe sikurs/beispiel/beisp_1/Hadwiger_Weibull.ini):
        fruc2019.csv:
        #tyg;bg; ag  ;Hadwiger ag F    MO   ME   VAR
           1; 1;0..98;hadwiger($3 1,28 32,9 31,7 30,7)
           1; 2;0..98;hadwiger($3 1,42 30,4 29,1 28,6)
        ...
        Die Funktion hadwiger berechnet die Fruchtbarkeit in der Mitte der vorgegebenen Altergruppe.
        Wenn man will, kann man in einer einzigen fruc-Datei die Entwicklung der Hadwiger-Parameter über die Zeit vorgeben, z.B.
        • der Modalwert MODE von 29 im Jahr 2019 steige jedes Pronosejahr um einen Monat
        • der Mittelwert MEAN sei immer ein Jahr wengier als der Modalwert
        • die Gesamtfruchtbarkeit F von 1,2 falle pro Jahr um 0,01
        • die Varianz 36 bleibe konstant
        fruc2019.csv:
        #! list(1)
        #! let($MO (29 + ($JAHR - 2019)/12))
        #! let($ME ($MO - 1))
        #! let($F (1,2 - ($JAHR - 2019)/100))
        1..$NTYG;1..$NBG;12..54;hadwiger($3 $F $MO $ME 36)
        
        Nach der Prognose findet man im Versions-Unterverzeichnis die expandierte fruc-Datei.

    Vorteile der Hadwiger-Funktion Nachteile

    Weibull-Verteilung

    Analog zur Hadwiger-Funktion für Geburtenraten wurde für die Modellierung von Sterberaten je ein Demonstrator für die Weibull-Funktion bereitgestellt.
    (Hauptmaske/Extras/Eigene Scripts/Start/weibull.pl)
    Dabei gliedert man das Leben in 3 Phasen

    1. frühe Lebensjahre mit fallenden Werten Sterberaten
    2. mittlere Lebensjahre mit konstanten zufallsbedingten (Unfall, Krankheit, ...) Todesfällen
    3. späte Lebenjahre mit steigenden Sterberaten
    Wie bei Hadwiger kann man zunächst über eine Weibull-Analyse historischer strb-Dateien Weibull-Parameter berechnen und visualisieren.
    img/weibull.png
    Anschließened kann man Parameter für die Zukunft ableiten und

    Modellierung der Sterberaten nach Gompertz
    SIKURS-Hauptmaske/Extras/Eigene Scripts/Start/gompertz.pl
    und Ausgabe G (Gomperts Koefizient), S30 (Sterberate AG 30), MRDT(mean rate doubling time) nach Gompertz im Prognoseprotokoll bei
    Prognose/Berechnen/Notiz
    !option($MRDT 1)

    Das Gomperts-Modell mit MRDT (mortality rate doubling time) für Altesgruppen ab 30 ist anschaulicher als die Weibull-Kurve dieser Altersgruppen.

    Gomperz und Weibull Beide eignen sich für Modellrechnungen mit exptrapolierten Parametern aus der Vergangeheit und evtl. Annahmen für die Entwicklung der Sterberaten in den Lebensphasen

    1. früh: bessere Geburtsbegleitung, ...
    2. mittel: autonome Autos reduziert Anzahl Verkehrstote, ...
    3. spät: medizinischer Durchbruch bei Krebs, Alzheimer, etc. verlängert Lebenserwartung (oder Fettleibigkeit und Bewegungsmangel reduziert diese)
    Mögliche Erweiterungen:
  11. t Verbesserung Bedienung, Beschreibung, Logik für Option HHProg/Prognose (6h,5A,v10.0,Z:,B:)
    [ 1 ] Anzahl Bevölkerungsgruppen in GEM und DSGR (bei DSGR ohne FWBB)
    ... in hhprog.htm steht:
    Bei Option HHProg/Prognose
    [v] Umrechnung HW zu Wohnberechtigte (FWBB)
    müssen gem, dsga, dsgr nach Bevölkerungsgruppe (BG) differenziert sein.
    Wenn sie in der HHPROG-Startmaske obiges Häkchen setzen, dann wird das Eingabefeld
    [ 1 ] Anzahl Bevölkerungsgruppem in GEM und DSGR (bei DSGR ohne FWBB)
    ignoriert und immer von 2 BG ausgegangen.

    Insgesamt macht das Programm bei der Prognose folgende Fallunterscheidungen

    wenn Option FWBB
        GEM mit BG einlesen
        Warnung wenn Summe von BG2 = 0
        GEM * FWBB
        wenn Option DSGA
            DSGA mit BG einlesen und von GEM abziehen
        wenn Option DSGR
            DSGR mit BG einlesen und Quote von GEM abziehen
        GEM über BG auf B1 hochaggregieren
    sonst (ohne FWBB)
        wenn Option DSGA
            GEM über BG aggregiernd als B1 einlesen
            DSGA über BG aggregierend einlesen und von B1 abziehen
        wenn Option DSGR
            GEM mit Differenziereung (Option NBG aus Maske)  einlesen
            Prüfen, ob option->NBG plausibel (hier ist ein Fehler im Programm, den ich behoben habe)
            DSGR mit Differenzierung Option NBG einlesen und Quote von GEM abziehen
    

    Lindemann: Wenn Sie zwei Dateien ausgeben, dann könnten Sie auch eine Datei wie bisher (GKZ;BG;GG;AG) ausgeben und eine weitere, in der BG nicht differenziert wird. Das Programm sollte an gemxx erkennen, welche fwbb es bei der Haushalteprognose verarbeiten muss.

    wib: Ich würde aber aus 2 Gründen meine Lösung vorziehen:

    1. Ich muss vor dem Lesen der gem-Datei wissen, ob sie 1 oder 2 BG hat, sonst müsste ich die Datei zweimal lesen (erst probelesen mit zählen der BG, dann richtig lesen)
    2. Ich gebe die gleiche Information nur ungern zweimal aus (einmal nach BG differenziert, dann über BG aggregiert) weil redundante Information in der Weiterverarbeitung leicht zu Fehlern führen kann. Im April treffe ich die Damen und Herren aus cc mit der Gelegenheit darüber zu sprechen.

    Lenkungsgruppe:

    Die Oberflächen des Quoten- und Prognoselaufes sollen optimiert werden. Beim Prognoselauf kann gewählt werden, ob "demografische Sondergruppen" berücksichtigt werden sollen. Dieser Begriff und der Dateiname (DSGA/DSGR) kommt aus SIKURS und beinhaltet die Anstaltsbevölkerung, bzw. die Bevölkerung in Heimen. In HHPROG ist dieser Begriff nicht verwendbar, denn hier sind mit diesen "Sondergruppen" die "Personen ohne eigene Haushaltsführung" gemeint. Die Bezeichnung DSGA/DSGR soll ersetzt werden durch HDSGA/HDSGR. Die Personengruppe dieser Datei kann schon im Quotenlauf abgeleitet werden (wib: wie?), die Option kann dann unter "Laufzeitparameter-Prognose" entfallen (wib: stattdessen Laufzeitparameter-Quoten [v] HDSGA ableiten ?).

    Im Menü "Laufzeitparameter - Quote" gibt es aktuell die Option "Filter W01 ungleich1"; diese Option muss eigentlich immer gelten und sollte deshalb als Voreinstellung übernommen werden (fertig).
    Bei Haushalteprognosen gab es in der Vergangenheit fehlerhafte Ergebnisse bei Berechnungen mit dem "Faktor Wohnberechtigte" (FWBB), der mit dem Quotenlauf ermittelt wird. Der Datensatz aus HHGen ist nach 2 Bevölkerungsgruppen aufgebaut. HHProg geht davon aus, dass immer mit 2 Bevölkerungsgruppen gerechnet wird. Sollte im Prognoselauf ein Bevölkerungsbestand mit einer Bevölkerungsgruppe eingelesen werden, soll das Programm die Unstimmigkeit ignorieren und die ermittelten Quoten anpassen.

    Herr Hahn hat für Köln eine Ex-Post Prognose durchgeführt und die Ergebnisse aus der Haushalteprognose mit den Ergebnissen aus HHGen verglichen und dabei er-hebliche Differenzen festgestellt. Her Lindemann und Frau Lux-Henseler haben Probeläufe mit Nürnberger, bzw. Stuttgarter Zahlen gerechnet, hier gab es auch Differenzen, aber in einem verträglichem Ausmaß. Herr Hahn wird mit der neuesten Version noch Testläufe durchführen; sollten wieder große Differenzen auftreten, müssen weitere Prüfungen stattfinden und die Ergebnisse an die pth weitergegeben werden.

  12. t Altersgruppe 100 und mehr (15h,2A,v10.0,Z:,B:)
    1. Quotenberechnung
      dstbest Sätze mit A01 ? 102 wurden bei den Klassifikationen SPEAZ etc. nicht in die oberste Altersgruppe einsortiert, weil die Grenze füe "Alte" 65-99 statt 65-999 (A01 haqt 3 Stellen, also theoretisch 0-999) war.
    2. Prognose
      Verarbeitung von gem-Dateien mit mehr als 99 Altersgruppen.
      Die Altersgruppe 102 wird auf 99 aufaddiert.
      Eine Vorgabe der gewünschten Anzahl Altersgruppen (z.B. 105) wäre machbar, es müßte aber geklärt werden, wie man folgenden Fall behandelt:
      gem hat Altersgruppen 0 .. 99, und man gibt 105 Altersgruppen vor:
      Bedeutet AG 99
      - 99 Jahre und älter ?
      - die 99-jährigen; es gibt aber keine älteren Personen ?

      Schlüsselfeld Datensatz bei Warnungen im Protokoll:
      Wenn Sie bei der Anlistung im Protokoll die ersten 23 Stellen am Stück, einschließlich eventueller Leerzeichen ausgeben würden, könnte man diesen String direkt in das Suchfenster von EwoPEaK kopieren und suchen. Ich musste hier erst zwischen 160 und 0012 erst ein weiteres blank ergänzen, damit die Suche funktioniert hat.

      0811100020980 160  0012
      (html frißt Mehrfachblanks, kann sie aber mit   schützen)
  13. t Dateien mit abgeleiteten Mikromerkmalen dstbestu, dstbbesta (12h,2A,v10.0,Z:,B:)
    verbesserte Behandlung Satzlänge 271 verbesserte Haushalte/Anzeige/Start (insbesondere Histogramm):
    [1-*   ] Auswahl Satznummern
    [ ] Ausgabe in Tabelle
    [ ] Ausgabe csv
    [v] Histogramm
  14. t HTML 5 (9h,1A,v10.0,Z:,B:)
    Umstellung von XHTML 1.0 auf HTML5 bei SIKURS, HHPROG und Tools
  15. i Probleme mit Perl 5 lösen (56h,14A,v10.5,Z:,B:)
    Sikurs ist in 2 Programmiersprachen programmiert:
    Probleme mit Perl 5
    Die Benutzeroberfläche und einige Tools sind in Perl 5 geschrieben.
    Die Perl-Quellen werden mit "ActiveState PerlApp" in die Datei "sikurs32.exe" bzw. "sikurs64.exe" umgewandelt.
    Die Lizenz für ActiveState Perl Dev Kit (PDK) Is Now End Of Life.
    Es gibt folgende Alternativen:
    1. ActivePerl 5.22 weiter verwenden und kein upgrade auf 5.24, ...
      Lizenz PDK endet
    2. ActiveState Platform erwerben
      Verfahren für Anwender vermutlich nicht zumutbar
    3. Perl2Exe zum Packen verwenden (scheint nicht zu funktionieren)
      Perl2Exe mit 30 Tage evaluation time
    4. wechseln zu Strawberry-Perl 5.30 64-Bit
      Alternatives perl, da PerlApp ab perl.5.24 nicht mehr unterstützt wird.
      Probleme:
      Tkx läuft nur unter ActiveState perl
      cpanm Tk (mit Tk::Balloon statt tooltip) geht, aber Umstellung von Tkx auf Tk aufwändig
      (siehe .../sikurs/extra/source/scripts/tkmain.pl)
      Umstellung in Stufen
      1. Berechnen/Makrodateien
        Einwohner alles
        Haushalte/Quoten+Prognose
      2. Berechnen/SIKURS Eingabedaten aus Makrodateien
      3. Weiter Tools nach Priorität
      4. für einige Tools (Cluster, Glätten, Dynamisieren, Visualisieren) auf R verweisen
      cpanm Bundle::libwin32 ( oder Win32::(Mutex, )Shortcut, Sound )
            Statisitcs::Descriptive
            Number::Format
            Algorithm::Cluster
            ...
      Umwandeln in exe:
      cpanm PAR::Packer
      pp -M MSWin32 --gui -C -f Bleach -o ../../sikurs64.exe sikurs.pl
    5. Ausliefern der SIKURS-Quellen (evtl. mit Perl Obfuscator)
      hoher Aufwand Systemadministration beim Nutzer, da Perl und einige Pakete zu installieren sind
    Bei der Wahl einer Alternative ist zu klären, ob neben der 64-Bit-Version weiterhin eine 32-Bit Version benötigt wird. Gedanken zu möglichen Lösungen
    Die Rolle von Perl 5 in SIKURS
    Alternativen für Perl 5
    Liste 1 2 von GUI Bibliotheken Die GUI-Technologien entwickeln sich weiter, man muss versuchen auf dem Laufenden zu bleiben

    Um mit endlichem Aufwand eine SIKURS-Version erstellen zu können, wurde für eine 64-Bit-Version folgendes portiert:

    Themavonnach
    Perl 5Activestate 5.22Strawberry 5.30
    PackerPerlApppp
    GUITkxTk
    Algorithm-Cluster1.541.59
    datadict_xxxmlcsv
    Diese Rohversion SIKURS ab 10.4.0.1076 muss noch ausgetestet werden, um anschließend den Aufwand für den Feinschliff zu kalkulieren.
  16. t Änderung Konventionen für Verknüpfung (5h,1A,v10.0,Z:,B:)
    Bei der Bevölkerungsprognose, hhprog und vielen Tools können Verknüpfungen "fruc2013.lnk" statt "fruc2013.csv" eingesetzt werden.
    Neue Namenskonvention "fruc2013.csv.lnk", da intuitiver und besser mit der Anzeige der Dateien im file explorer geeignet.
    Wenn das Programm einen Link mit alter Namenskonvention findet, gibt es eine Warnung aus und fragt den Benutzer, ob die Datei umbenannt werden soll.
  17. t roadmap mit Excel-Index (6h,1A,v10.0,Z:,B:)
    ahk: Die Nummerierung ist durch das Herausnehmen von bearbeiteten Punkten, die vielen Ebenen der Gliederung und die inhaltlichen Anmerkungen/Anregungen aus der Lenkungsgruppe für uns sehr unübersichtlich geworden. Zudem haben wir Bedenken, dass andere Personen (z.B. Mitglieder der Lenkungsgruppe und auch die Kassenprüfer ) mit dem Dokument überfordert sind und möchten Sie deshalb darum bitten, die Gliederung zu überarbeiten oder ggf. zu ergänzen.

    Die Anregungen und Vorschläge, die in der Roadmap festgehalten werden, sind sicher sehr hilfreich, vielleicht wäre eine Zweiteilung die Lösung. Wir könnten uns z.B. gut eine Excel-Datei vorstellen, in der die bearbeiteten und offenen Punkte kategorisiert werden, ähnlich den Tabellenblättern wie wir sie früher erstellt hatten (siehe Anhang). Damit ließen sich einzelnen Punkte je nach Bearbeitungsstatus in der Übersichtsliste filtern.

    Da Herr Dr. Tüllmann unabhängig von mir in Berlin arbeitet, ist es vorteilhaft, wenn jeder seine eigene Liste pflegt, d.h. je eine Liste Methodenexperte und Systemexperte

    Erledigte Punkte werden nach done.htm ausgelagert

  18. t SIKURS-Cloud (12h,0A,v10.0,Z:,B:)
    Überlegungen zu einer Cloud-Lösung ohne lokale PC-Installation, z.B. für Testzwecke oder kleine Gemeinden.

    Voraussetzung ist ein Web-Server, der CGI-Perl-scripts (oder besser PSGI/Plack (brauschober/cgi-bin/psgi)) unterstützt. Die ist z.B. bei www.strato.de ab PowerWeb Starter für ca. 3 Euro pro Monat der Fall.

    Der Benutzer stellt seine Eingabdateien in einem Verzeichnis zusammen, packt diese z.B. als "miesbach.zip", lädt diese Zip-Datei hoch, und bekommt eine Zip-Datei "sikurs.zip" mit den Ergebnissen zurück auf seinen PC.

    Weiter Server-Lösungen sind zu untersuchen (z.B. Windows Server, Citrix-Server, Azure, AWS)
  19. t Upgrade Entwicklungsumgebung (9h,1A,v10.0,Z:,B:)
  20. h Problem PDO=3 HDO=2 (27h,3A,v10.0,Z:,B:)
    mail 21.10.2013 Frank Hahn:
  21. t Bilanzkurve, Kachel- und Blasendiagramm (15h,1A,v10.0,Z:,B:)
  22. s Baustein G2 und S2 (und P1) (11h,2A,v10.0,Z:,B:)
    G  Zielwert für Geburten
    G0 kein Zielwert
    G1 global
    G2 nach Gebietseinheiten differenziert mit Datei:
    eckgebg.csv:
    #Jahr;GKZ;Geburten
    2010;101;345
    ...
    2020;834;120
    
    S  Zielwert Sterbefälle
    S0 kein
    S1 global
    S2 nach Gebietseinheiten differenziert mit Datei:
    eckstrbg.csv:
    #Jahr;GKZ;Sterbefälle
    2010;101;320
    ...
    2020;834;130
    Wenn bei G2/S2 für ein Gebiet kein Eckwert vorgegeben wird, so bdeutet die nicht Eckwert 0, sondern für dieses Gebiet wird nach der Berechnung der Geburten/Sterbefälle keine Anpassung an einen Eckwert vorgenommen

    Bei P1 (Zielwerte eckgem für Gebiete) bedeutet ein fehlender Zielwert auch nicht mehr Zielwert 0, sondern den Ausschluß dieses Gebietes von der Anpassung.

  23. t Bausteine K6 und C6 (13h,2A,v10.0,Z:,B:)
    Baustein Vorgabe Zuzug K6 und Vorgabe Wegzug C6 ausdifferenziert nach Gebiet, Außentyp, Bevölkerungsgruppe, Geschlechtsgruppe, Altersgruppe (wie gem * NTYA) und der Möglichkeit analog zu K6/ZUVL Abkürzungen mit Quoten (z.B. für Altersgruppen) zu definieren.
    Für ZUVGjjjj kann die Makrodatei aussenzuzug_jjjj, für WEGVjjjj aussenwegzug_jjjj verwendet werden.
    Es muss noch festgelegt werden, für welche Bausteinkombinationen C6 und K6 benötigt werden, um dann das Programm evtl. zu erweitern und/oder Kombinationen im Methodenassitenten auszuschließen.
    siehe .../sikurs/beispiel/baustein/C6K6.ini
  24. s Berechnen SIKURS Eingabedaten aus Makrodateien (16h,3A,v10.0,Z:,B:)
    (Beispiel Herr Schöfer)
    SIKURS wurde für 100 Altersgruppen (0, 1, 2,..., 99 und älter) konzipiert.
    Diese Einschränkung wurde wegen steigender Lebenserwartung nach und nach aufgeweicht, so dass man z.B. mit (90, 95,) 100, 105, 110 oder 120 Altersgruppen rechnen kann.
    Dies scheint isoliert für die einzelnen Werkzeuge zu funktionieren. Nützlich wäre eine Überprüfung, ob dies über die Werkzeugkette hinweg richtig funktioniert. Beipiele:
  25. t Eingabedaten Berechnen: Berechnung der Makrodateien aus dem Statistikdatensatz Bewegung und Bestand (29h,3A,v,Z:,B:)
    Bei der hhprog-Quotenberechnung wird Z02 protokolliert und in q.csv geschrieben. Bei der Haushalteprognose wird Z02 aus q.csv gelesen und protokolliert. Für die Berechnungen spielt Z02 keine Rolle.

    In der Startmaske der Prognose wird
    20160116: Z02 aus q.csv
    angezeigt.
    Startjahr und Endjahr werden mit den Werten der ersten und letzten gem-Datei im Eingabdateiverzeichnis initialisiert.
    Der Benutzer kann prüfen, ob Z02 zum Prognosezeitraum passt und den Prognosezeitraum für Proberechnungen einschränken
    Bei der Prognose wird dann für jede gem-Datei im ausgewälten Jahrebereich ein Prognosejahr gerechnet.

    Bei der Ableitung von Makrodateien aus dstbest und dstbew werden Z02/Z01 für die Ermittlung des Referenzjahres verwendet.
    Wenn aber z.B. 20140117 vorkommt, so ist höchstwahrscheinlich 2013 das Referenzjahr. Um dem Anwender eine Korrekturmöglichleit zu geben und mehrere Statiskdatensätze im Eingabeverzeichnis zu erlauben, wird das Konzept für die Gewinnung der Makrodaten erweitert:
    Bei der Ableitung der Makrodateien aus dstbew wird der Schlüssel W40 (3-Stellen) in reftya um W41 (8 Stellen) erweitert.

    Offene Fragen bei der Ableitung Makrodateien aus dem Statistikdatensatz
    Verfahrensschritte für eine SIKURS-Prognose (ohne Prüfschritte)
    1. erstelle Verzeichnis prog2050
    2. erstelle Unterverzeichnis dst mit Links auf gewünschte Statisikdatensätze Bestand und Bewegung
    3. Eingabedaten/Berechnen/Makrodateien aus Statistikdatensatz...
      mit Unterverzeichnis makro
    4. Eingabedaten/Berechnen/SIKURS Eingabdateien aus Makrodateien
      mit Ausgabe Eingabedateien ins Unterverzeichnis raten
    5. Einwohner/Versionsdatei/Neu prog2050/dst/makro/raten.v.ini
      Auswahl einer Bausteinkombination
    6. Einwohner/Prognose/Berechnen
      mit Ergebnis in prog2050/dst/makro/raten/v
    7. Verknüpfung dstbest.csv.lnk erstellen
    8. Haushalte/Quoten/Berechnen
    9. zq erstellen
    10. Haushalte/Prognose/Berechnen
    Verzeichnisstruktur:
    prog2050
    +---dst
        |   dstbest_2010.txt.lnk -> X:\...\dstbest...
        |   ...
        |   dstbew_2014.txt.lnk -> X:\...\dstbew...
        +---makro
            |   bestand_2010.csv
            |   ...
            |   sterb_2014.csv
            +---raten
                |   gem2014.csv
                |   ...
                |   strb2015.csv
                |   v_optimist.ini
                |   v_pessimist.ini
                +---v_optimist
                |   |   gem2015.csv
                |   |   ...
                |   |   gem2024.csv
                |   |   dstbest.txt.lnk -> X:\...\dstbest...
                |   |   zq2015.csv
                |   +---Quoten
                |   |       q.csv
                |   |       zqa.csv
                |   +---Prognose
                |           person.csv
                |           haushalt.csv
                |           hdo2.csv
                |           kinder.csv
                +---v_pessimist
                        gem2015.csv
                        ...
                        gem2024.csv
    
    Das Benutzerhandbuch (bhb.pdf) sollte nach einem Review an geeigneten Stellen entsprechend ergänzt werden.

    Für eine bessere Übersichtlichkeit wurde die Verschachtelungstiefe reduziert:

    prog2050
    +---dst
    |   |   dstbest_2010.txt.lnk -> X:\...\dstbest...
    |   |   ...
    |   |   dstbew_2014.txt.lnk -> X:\...\dstbew...
    |   |   reftya.csv    <....:
    +---makro                  :
    |   |   bestand_2010.csv   :
    |   |   ...                :
    |   |   sterb_2014.csv     :
    |   |   reftya_roh.csv ....:
    |   |   reftyp_roh.csv .....
    +---bprog                  :
    |   |   reftyp.csv    <....:
    |   |   gem2014.csv
    |   |   ...
    |   |   strb2015.csv
    |   |   optimist.ini
    |   |   pessimist.ini
    |   +---optimist
    |   |   |   gem2015.csv
    |   |   |   ...
    |   |   |   gem2024.csv
    |   |   |   dstbest.txt.lnk -> X:\...\dstbest...
    |   |   |   zq2015.csv
    |   |   +---HHQuoten
    |   |   |   |   q.csv
    |   |   |   |   zqa.csv
    |   |   +---HHPrognose
    |   |   |   |   person.csv
    |   |   |   |   haushalt.csv
    |   |   |   |   hdo2.csv
    |   |   |   |   kinder.csv
    |   +---pessimist
    |   |   |   gem2015.csv
    |   |   |   ...
    |   |   |   gem2024.csv
    
    Die Idee ist, dass das Prognoseverzeichnis prog2050 Unterverzeichnisse für das SIKURS-Programm und den Anwender einhält, z.B.
    prog2050
    +---dst
    +---makro
    +---bprog
    +---Auftrag
    +---Korrespondenz
    +---Veröffentlichung
    
  26. t Verarbeitung W40/W41, R02/R02U2 erweitern (17h,3A,v10.0,Z:,B:)
  27. s Standardprognose (33h,4A,v10.1,Z:,B:)
    Der Anwender kann damit eine einfache Prognose rechnen.
    Durch Start obiger Einzelschritte kann der Anwender
  28. s Unter-/Obergrenzen Fruchtbarkeit (14h,4A,v10.1,Z:,B:)
    Die wählbaren Grenzen NAGFU (z.B. 15) und NAGFO (z.B. 44) wirken an folgenden Stellen im Prognoseprozess: Herr Braunschober hatte die Option zur Vorgabe eines Fertilitätsintervalls entfernt, weil die Verarbeitung von Werten außerhalb der Unter- und Obergrenzen problematisch war (bislang wurden die Ausreißer dem letzten Wert des Intervalls zugeschlagen).
    Die Vorgabe des Intervalls (z.B. 15 .. 44) bei der Berechnung der Geburtenraten aus Makrodateien ist wieder möglich: Beispielrechnung calc_fruc.xls für Lösung
  29. t Export (26h,3A,v10.0,Z:,B:)
    Die Endbestände und/oder Bewegungen über alle Jahre und Aggregate (Untersuchungsraum, Gebiet, Typ Geburten, ..., Räumliches Aggregat) sollen in einer Datei export.csv oder in nach Aggregat aufgeteilten Dateien export_nnn.csv erstellt werden.
    Entwicklungsschritte
    1. Erweitern Maske Prognose/Berechnen (erledigt)
      Ausgabe
      Differenzierung Ausgabedateien
      [02 ] Gebiet (00 keine Ausgabe, ..., 13 räumliches Aggregat 2)
      [v]   Anzahl Bevölkerungsgruppen (NBG)
      [v]   Anzahl Geschlechtsgruppen (NGG)
      [v]   Anzahl Altersgruppen (NAG)       <- neuer Menüpunkt
    2. Ändern Ausgabe
      • agg.csv kann entfallen, weil Bestand als letzte Spalte in bewagg.csv (offen)
        Die folgenden Dateien können entfallen (offen)
        • bew.csv sntspricht bewagg.csv in voller Differenzierung
        • bewgem.csv entspricht bewagg.csv auf Gebietsebene ohne demografische Differenzierung
        • bewgemagg.csv entspricht bewagg.csv aggregiert auf eine Typ oder Aggregat und ohne demografische Differenzierung
      • bew.csv bewagg.csv bewgem.csv bewgemagg.csv enthalten nur die in der Bausteinkombination relevanten Bewegungen (erledigt)

    Nach diesen Änderungen erfüllt bewagg.csv fast alle Anforderungen an export.

    Folgende kleine Tools erfüllen die restlichen Anforderungen
    1. Aufteilen:
      liest eine auszuwählende Datei z.B. bewagg.csv und zerteilt sie nach wählbaren Spalten, z.B. Spalte 2 (Gebiet/Typ/Aggreagt) ein Unterverzeichnis, z.B.
      bewagg
          103.csv
          104.csv
          ...
          217.csv
      Mit
      Einwohner/Prognose/Berechnen/Notiz
      !GEMALL 2
      werden die Prognoseergebnisse werden in gem.csv statt gem2015.csv, ... ausgegeben.
      Mit Wahl von Spalte 1 läßt sich gem.csv in gem/2015.csv ... aufteilen.
    2. Ausschneiden:
      Nach Auswahl der Spalten 1..5, 7 von bewagg.csv werden die Sterbefälle in eine Ausgabedatei geschrieben.
      (alternativ mit Excel Spalten in eine neue Datei kopieren.)
    3. Anfügen Spalten
      An eine Datei bew/bewgem/bewagg/bewgemagg kann man die Wertespalte einer geeignet aggregierten zr_gem anhängen.
    In der Haupmaske wurde das Menü Ergebnis/Bearbeiten erweitert (erledigt):
    Bearbeiten
        Datei (mit dem Standardwerkzeug seiner Dateiendung)
        Aufteilen Datei (z.B. bewagg in Datei pro Gebiet)
        Ausschneiden (z.B. Spalten 1..5, 7 - Sterbefälle)
        Anfügen Spalten (z.B. zr_gem an bew)
  30. t Plausibilitätstest (16h,3A,v10.0,Z:,B:)
    Mit
    Einwohner/Prognose/Berechnen/Befehle
    my $eck = filesum('eckreg',  2010);
    my $gem = filesum('gem2010', 2010);
    is($eck, $gem, 1, "eckreg $eck = $gem2010 $gem");
    kann man prüfen, ob in der Prognose 2010 der Bevölkerungseckwert erreicht wird. Mit diesem Mittel sind viele Plausibilitätsprüfungen machbar, aber dem Anwender so nicht zuzumuten.
    Um dies zu verbessern, kann man die Prüfungen klassifizieren
    1. ist SIKURS richtig programmiert ?
      Neuer Menüpunkt
      Ergebnis/Bearbeiten/Blackbox Test
      [  2,5] Toleranz Abweichung ($tol)
      [    2] Geschwätzigkeit ($verbose)
      Dies startet ein Prüfprogramm mit folgender prinzipieller Logik:
      Wenn "Ausgabe differenzierte Bewegungen" ([DEFAULTS]ABEWGEM=1) dann
          chkbew 'bew', jahre(), $tol, $verbose;
      Wenn Baustein M1 dann
      Über alle Prognosejahre $jahr:
          my $eck = filesum('eckreg',    $jahr);
          my $gem = filesum('gem'.$jahr, $jahr);
          is($eck, $gem, $tol, "eckreg $eck = $gem$jahr $gem");
      ... usw. für diverse Bausteine und Eckwerte

      Wenn ein Anwender eine Prognose als Regressionstest nutzt, d.h. damit jede neu SIKURS-Version überprüft, dann kann er in
      Einwohner/Prognose/Berechnen/Befehle

      blackbox_test 1, 0;
      eintragen.
    2. sind meine Auswahl an Prognosebausteinen und meine Eingabedaten richtig ?
      Hier könnten Prognose-Theoretiker/-Praktiker Tests vorschlagen wie z.B. "Geburtenüberschuß darf es in max. 3 Gebieten und 2 Folgejahren geben", d.h. der Anwender müsste aus eine Menge von Prüfungen auswählen und Parameter für diese Prüfungen vorgeben können.
  31. h Quotenberechnung ohne Referenzdatei (8h,4A,v10.1,Z:,B:)
    In der Startmaske Quotenberechnung
    Referenzdatei
    [referenz ] Name
    [2    ]     Spaltennummer Typ
    [0    ]     Abbildung R02/R02U2
    wurde das Eingabefeld Name entfernt, die Datei muss immer reftyp.csv heißen.
    Bei "0 Stellen R02", d.h. mit. nur einem Typ wird keine reftyp.csv benötigt.
    Ziel ist es, für hhprog die gleiche reftyp.csv mit Spalte 11 für Typen Haushalteprognose zu verwenden wie bei der SIKURS-Prognose.
    Die Erstellung einer reftyp_roh.csv wurde in die Berechnung Makrodaten aus Statiskdatensatz Bestand vorverlegt, weil die den "work flow" vereinfacht.
  32. t Nettobestand (12h,4A,v10.1,Z:,B:)
    Wenn es Demografische Sondergruppen gibt, sollen
    strb = sterb / (Brutto- oder Nettobestand)
    dsgr = dsg / Brottobestand
    gerechnet werden.
    Dazu müssten 2 Tools angepasst werden:
  33. s Ausgabe Ströme verbessern (27h,4A,v10.1,Z:,B:)
    Einwohner/Prognose/Berechnen/Notiz
    !AUSGABE_GSTROM  n
    !AUSGABE_GWEGZUG n
    !AUSGABE_GZUZUG  n
    
    n: differenzierung der Ausgabe nach reftyp
    00 keine Ausgabe
    01 Untersuchungsgebiet 02 Gebiet 03 Typ Geburten 04 Typ Sterbefälle 05 Typ Binnenwanderung 06 Zieltyp Außenzuwanderung 07 Quellentyp Außenwegwanderung ...
    Bisher wurde die Binnenwanderung auf Binnentypenebene als Datei strom.csv (*) ausgegeben.
    Die Relevanz der absoluten Bewegungen zwischen den Binnenwanderungstypen hängt von der Typisierung der Binnenwanderungstypen ab Ich nehme an, die Anwender brauchen eine Differenzierung der Binnenwanderung nach Gebieten.
    Bei sehr kleinräumigen Prognosen mit sehr vielen Gebieten kann dies bedeuten.
    Bei Ausgabe gstrom/gwegzug/gzuzug mit Gebietskennzeichen kann man mit Blackbox-Test die Konsistenz mit bew prüfen.
    Bei gstrom und Baustein P Abweichungen zu bew (Binnenwegzug, Binnenzuzug, Innenauszug, Inneneinzug)
    Weiterentwicklung siehe roadmap 059, 086
  34. t Bedienung manuelles Glätten verbessern (5h,4A,v10.1,Z:,B:)
    Wenn die zu glättende Pyramide unbesetzte Altersbalken hat, muss man folgendes beachten, um den nicht vorhandenen Balken größer ziehen zu können Lösung wurde durch Anwender verifiziert und wurd fest eingebaut
  35. s Rückbau erweitern (13h,5A,v10.1,Z:m,B:)
    hst: Der Vorschlag für eine methodische Erweiterung von SIKURS bezieht sich auf die Festlegung der demografischen Struktur der Rückbauendauszieher. Im Augenblick gibt es die Datei RUECKBAUB (analog NEUBAUB) für die Anzahl Bewohner und die Datei REAQ (analog NEBQ), in der die demografischen Quoten abgelegt sind. Das sollte auch so bleiben.

    Eine Erweiterung der Möglichkeiten, die demografische Struktur zu bestimmen, ist eine Anlehnung an das Vorgehen wie bei den demografischen Sondergruppen mit der Datei DSGR, d.h. die demografische Struktur der Rückbauendauszieher orientiert sich an der der Bevölkerungsstruktur des Gebietes, in dem der Rückbau ausgeführt wird. Die entsprechende Datei sollte dann REAR heißen. Im Anschluss an die Ermittlung der demografischen Struktur müsste dann die Anzahl angepasst werden an den Wert der Datei REAR. (Im Prinzip handelt es sich um das Vorgehen wie bei dem Außenwegzug mit Zielvorgabe)

    wib: Baustein E2:

    reaq2016.csv entfällt
    rear.csv:
    #jhr;gkz;Rate
    2020;101;0,3
    Definiert die Rate der Rückbauendauszieher rueckbauweg definiert wie be E1 die Aufteilung in die Außentypen
  36. s Überprüfen Bausteine W1,Y1 (h,A,v,Z:,B:)
    wib: Unterschiedliche Differenzierung der Eingabedateien Fragen

    m,h: Zu Der Wechsel Bevölkerungsgruppen für die Gruppe mit dem Altersindex 0 erfolgt vor der Festlegung der Ausgangsbevölkerung.
    Wir schlagen vor, den Wechsel der Bevölkerungsgruppe für alle demografischen Gruppen (BG,GG,AG) vor der Bestimmung der Ausgangsbevölkerung für die anschließenden Berechnungen auszuführen.
    Anhang:
    048bewW1.csv
    048bewY1.csv
    048indexW1.html
    048indexY1.html

    wib: durch die Verlegung der Berechnung von W von "nach Sterbefälle" nach "nach Geburten, vor Festlegung
    Ausgangsbevölkerung = ((Anfangsbevölkerung - Sondergruppen) gealtert + Geburten) nach Wechsel Bevölkerungsgruppen
    erreicht man:
    Die Datei bgwr0000.csv kann z.B. bei einer Altersgruppe 0 den Wert 1 haben, ohne dass bei mindernden Raten (Sterberaten, Wegzugsraten) negative Bevölkerung entsteht.
    Notwendige Änderungen:

    Lenkungsausschuss 2018: keine Änderung an den Bausteinen W1 Y1, da diese von den Anwenderen für verschiedene Zwecke eingesetzt werden.

  37. s Review Handbuch (7h,5A,v10.1,Z:m,B:)
    Review Handbuch Bevölkerungsprognose (bhb.pdf) durch Systemexperten und bereuende Stelle, Einarbeitung Review-Ergebnisse.
  38. s Binnenwanderung absichern (9h,5A,v10.1,Z:m,B:)
    hst: Im SIKURS-Prognosebaukasten werden die Ausprägungen verschiedener Bewegungen unter Verwendung der zum Start der Prognoseberechnungen festgelegten Ausgangsbevölkerung und bewegungsspezifischen Raten ermittelt. Dabei werden die verschiedenen Bewegungen als von einander unabhängige Prozesse betrachtet, obgleich dem nicht so ist, denn die Bewegungen laufen teilweise parallel. Z. B. kann ein bereits Gestorbener nicht mehr an der Wanderung teilnehmen. (Alternative 043 Differntialgleichung). So werden die Außenwanderungsraten, die Sterberaten oder die Binnenwegzugsraten auf dieselbe Ausgangsbevölkerung bezogen. Aber diese Vereinfachung ist akzeptabel, weil sie auf verschiedene Bewegungen angewandt wird.

    Das Schema sollte jedoch nicht auf zwei Prozesse innerhalb einer Bewegungsart übertragen werden. Zur Ermittlung der Neubaubezugquellen und der Rückbauendauszugsziele soweit sie im Untersuchungsgebiet liegen wird als erstes die damit verbundene Binnenwanderung mit der Ausgangsbevölkerung und den Binnenwanderungsraten bestimmt. Anschließend wird die "normale Binnenwanderung" wiederum mit denselben Daten ermittelt. Der Rückbauendauszug und der Neubauerstzuzug werden als zusätzliche Bewegung zu der Binnenwanderung addiert und die gesamte Binnenwanderung wird hier als Summe beider Binnenwanderungsarten bestimmt. Im Gegensatz zur Adition von Außen- und der Binnenwanderung ist dies Vorgehen jedoch innerhalb eines Wanderungstyps methodisch nicht zulässig. Neubau und Rückbau als zusätzliche Binnenwanderung passen nicht in dieses Schema, weil hier einmal die induzierte Binnenwanderung und anschließend die "normale" Binnenwanderung bestimmt werden.

    Weil in diesem Fall davon ausgegangen wird, dass einzelne Personen sowohl an der Neubau, an der Rückbau und an der üblichen Binnenwanderung beteiligt sind, ist dieser Ansatz nicht konsistent. Als Ergebnis wird damit die Binnenwanderung überzeichnet und es kann schnell geschehen, dass die Zahl der Binnenwanderungen die Anzahl Bewohner im Ausgangsbestand übersteigt.

    Daher schlage ich vor, zunächst die Binnenwandernden für Neubau und Rückbau zu ermitteln, weil dies die "sicheren" Angaben sind. Zur Berechnung der "normalen" Binnenwanderung sollen die üblichen Raten verwendet werden, jedoch soll die Ausgangsbevölkerung für die Berechungen der normalen Binnenwanderung um die Wanderungen für Neubau und für Rückbau zu reduziert werden. Damit wird das Volumen der normalen Binnenwanderung verringert, in der Summe wird das Volumen der Binnenwanderung bei Neubau und Rückbau erhöht, jedoch eingeschränkt und kontrolliert durch den Umfang der bereits im Zusammenhang mit Neubau und Rückbau ermittelten Binnenwanderung

    Dazu ein vereinfachtes Beispiel:

    Bewegung ohne Neubau/Rückbau = 1000*0,6 = 600
    
    b Beispiel für derzeitige Berechnung bei Rückbau und Neubau:
      Binnenwanderungsrate=0,6; Neubaurate=01; Rückbaurate=0,4)
      Bewegung = Ausgangsbevölkerung*
      (Rate Neubau = 0,1 + Rate Rückbau = 0,4 + Rate Binnenwanderung = 0,6)
      Binnenwanderung insgesamt = 1000 * (0,1+0,4+0,6) = 1100
    
      oder etwas anders dargestellt:
      Binnenwanderungsrate=0,6; Binnen-Neubauauszug =100 Personen; 
      Binnen-Rückbauendauszug = 400 Personen)
      Binnenwanderung insgesamt = 1000 * 0,6 + 100 + 400 = 1100
    
    
    c Beispiel für vorgeschlagene Berechnung bei Rückbau und Neubau:
      Bewegung 1 = Ausgangsbevölkerung*(Neubaurate + Rückbaurate)
      (Neubau und Rückbau) = 1000*(0,1 + 0,4) = 500
      Bewegung 2 = (Ausgangsbevölkerung - Bewegung1)*Rate-Binnenwanderung 
      = (1000 - 500) *0,6 = 300
      Binnenwanderung insgesamt = Bewegung1 + Bewegung2 = 500+300 = 800 < 1000
    
      oder etwas anders dargestellt:
      Binnenwanderungsrate=0,6; Binnen-Neubauauszug =100 Personen; 
      Binnen-Rückbauendauszug = 400 Personen)
      Binnenwanderung insgesamt = (1000 -400-100) * 0,6 +400 + 100 = 800 < 1000
    Bei der Außenwegwanderung ist diese Modifikation nicht erforderlich, da die Außenwanderung als Arbeitsplatz/Ruhestandswanderung verstanden wird und die vom Rückbau induzierte Wanderung zu der Arbeitsplatzwanderung addiert werden kann. Es sind also zwei unterschiedliche Motive die die Außenwanderung steuern.

    wib: (siehe 075 Absicherung Außenwanderung)

  39. s Aufteilung des Einzuges auf die Gebietseinheiten eines Types (6h,5A,v10.1,Z:m,B:)
    hst: Bei dem Einsatz von RUECKBAU muss verhindert werden, dass die durch den Rueckbau freigewordene Wohnkapazität bei der Aufteilung des Zuzuges auf die Gebietseinheiten eines Types mitberücksichtigt wird. Daher muss bei der Ermittlung der freien Wohnkapazität je Gebietseinheit das Volumen des Rückbauendauszuges von der Ausgangsbevölkerung abgezogen werden. Damit wird verhindert, dass ein Gebiet, das vollständig durch den Rückbauendauszug entleert wird, wieder durch Binnen- und Außenzuzug bevölkert wird. Eine Hilfskonstruktion wäre, die Attraktivität für die Gebietseinheit auf Null zu setzen.

    wib: Berechnung Freie Wohnkapazität FWKG geändert (ohne DG4OBR, DG4OAR)

  40. s Dokumentation SIKURS-Programm in Excel, Einarbeitung eines weiteren Methodenspezialisten (190h,10A,v10.4,Z:m,B:)
    053.pdf 053.txt
    Erledigt sind Wenn die Dokumentation zusätzlich zur
    1. Überprüfung der Prognosen und der Beschreibung im Benutzerhandbuch der aktuellen SIKURS Version
    2. Vorgabe für die Korrektur bei evtl. gefunden Fehlern
    3. Zukünftiger Vorgabe neuer oder zu ändernder Bausteine
    4. "non regression test" zukünftiger SIKURS releases
    dienen soll, wären folgende Punkte hilfreich
    1. Verteilung eines konsistenten Satzes Excel-Dateien, ini-Dateien und SIKURS-Eingabedateien nach Änderungen
      • wer wiederholt wann Vergleich Excel zu Programm-Ergebnisse ?
      • wer pflegt Excel-Beispiele ?
      • wie bringt man Änderungswünsche ein ?
      • wie werden Versionen gekennzeichnet ?
        • SIKURS-Excel_10.4.rar wie SIKURS-Hauptversion z.B. ?
        • SIKURS-Excel_10.4.0.918.rar wie SIKURS-Referenzversion 918, die für das erste Release verwendet wurde ?
        • eigenes Versionskonzept ?
    2. Namenskonvention der ini-Dateien (z.B. A1M1.ini im Verzeichnis baustein
      • Reihenfolge Bausteine Alphabetisch
      • Weglassen x0 (x=A, B, ..., Y)
      • T0 (statt A0bisY0) falls alle Bausteine x0
      • Ergänzug mit "_" möglich: "B1I1K1_Ausgabe_Binnenmatrix"
      in Bildschirmprotokoll: Bausteine A1M1 v
      check_name.bat prüft die Namenskonventionen
    3. Der Vergleich der Zwischenergebnisse mit dem Prognoseprotokoll muss einfach sein
      • Die Variablennamen (z.B. DG4OB für Binnenauszug) müssen im Excel-Blatt sichtbar sein und sollten incl. Langtexte in Excel und Protokoll identisch sein
        (siehe roadmap 102)
    4. Zusätzlich zur Formel (z.B. =-(M6+M9+M12)*(P6+P7+P8)/SUMME(P6:P14)) für ein Spalte (z.B. Inneneinzug) wäre ein zusätzlicher Kommentar (z.B. Verteilung Innenauszug nach Anteil freier Wohnplätze) für das Verständnis und für den Abgleich mit dem Benutzerhandbuch nützlich
    5. Automatischer Vergleich SIKURS-Prognose mit Excel-Beispielen
      Ein manueller Vergleich der 10 (+10 roadmap 093) Excel-Beispiele mit den zughörigen SIKURS-Prognoseläufen
      1. Stimmen die Eingabedaten überein ?
      2. Stimmen alle Zwischenergebnisse im Protokoll (bei Protokollumfang 4) mit den Zwischenergebnissen in Excel überein, d.h. ist der Berechnungsgang identisch ?
      3. Stimmen SIKURS Ausgabedatei bew und gem mit den zugehörigen Werten in Excel überein ?
      dauert vermutlich ca. 1h pro Beispiel, wird also nur selten erfolgen.
      Für eine Wiederholungsprüfung (nach einer Programmänderung) könnte man durch folgende Automation den Prüfaufwand auf wenige Minuten reduzieren.
      • Der Methodenexperte kopiert nach einem erfolgreichen manuellen Vergleich der Excel-Ergebnisse mit den SIKURS-Prognoseergebnissen die Verzeichnisse der SIKURS-Prognoseergebnisse in eine Verzeichnis "geprüft" und verteilt diese neuen Excel-Beispiele.
      • blackbox_test wird erweitert um eine Prüfung, ob die Ausgabedateien (gem, bew, bewgem, ...) bis auf ein einstellbares Delta mit der Kopie der geprüften Ausgabedateien übereinstimmen.
      • Führt eine Programmänderung zu einer Verletzung obiger Prüfung, muss ein neuer konsistenter Satz Excel-Beispiel und manuell geprüfte SIKURS-Prognoseergebnisse erstellt werden
    6. bausteinkombinationsspezifischer Datenflußgraph
      Der Graph kann als Ergänzung zum Verständnis eines Excel-Beispiels herangezogen werden. Da dieser umfangreich ist, ist es nützlich, den Graph auf eine vorzugebende Bausteinkombination zu reduzieren. Dafür sind folgende Arbeiten notwendig:
      • Einige Kanten (z.B. (dsg2000) --R2--> [DSGA]) enthalten bereits den notwendigen Baustein (R2), Diese Information muss für weitere Kanten in den C++-Quellcode eingepflegt werden.
      • Ein Perl script extrahiert auf Anforderung die Informationen für den Graph in eine Datei sikurs.dot
      • Ein Filter reduziert sikurs.dot auf eine vorzugebende Bausteinkombination, durch
        • entfernen
        • ausgrauen
        der nicht benötigten Bausteine
      • das Programm dot erzeugt aus sikurs.dot den Graph in den Formaten svg und pdf
      • Damit kann man für jedes oder für Gruppen von Excel-Rechenbeispielen einen zugehörigen Graph erzeugen. (siehe Beispiele und 084)
    Beseitigung von Fehlern oder Verbesserungsmöglichkeiten im Programm, die durch obige Dokumentation erkannt wurden:
    1. A1M1T1, A1M2T1: bei Zielwert, der durch Anpassung Wegzug nicht erreicht werden kann, Vorgabe Höchstwert Eckwert in Warnmeldung
    2. B1E1I1K2M2R2T1
      • verhindern negativen Zuzug bei zu geringem Zielwert in eckreg und Vorgabe Mindesthöhe Eckwert in Warnmeldung
      • Einbeziehung Rückbaueendauszug nach Außen in Berechnung Anpassung Zuzug
    3. A1E2I1K6M2R2S2T1 mit kritischer Kombination A1K6M2 korrigiert
    4. B1K1M1/2 zuvol global (K1) braucht nicht eingelesen zu werden, weil die Anpassung Außenzuzug (B1) an Zielwerte für die Gebiete (M1/M2) mit einer beliebigen Vorgabe funktioniert.
    5. A1I1M1P1 wenn in eckgem (P1) Zielwerte für alle Gebiete definierts sind, braucht eckreg (M1) nicht eingelesen zu werden, weil sich der Zielwert Bevölkerungsbestand (M1) als Summe der Zielwerte für die Gebiete (P1) ergibt.
    6. A1D1E1G1I1K1M1S1T2 Berücksichtigung Neubauerstbezug von Außen und Rückbauendasuzug nach Außen bei Anpassung Außenwegzug (A1) an Zielwert Bevölkerungsbestand (M1)
    7. A1D1E1I1K1M2T2 Berücksichtigung Neubauerstbezug von Außen und Rückbauendasuzug nach Außen bei Anpassung Außenwegzug (A1) an Zielwert Bevölkerungsbestand (M2)
    8. A1D1E1I1K1N1T2 zuvol wurde nicht eingelesen, dies ist bei B1K1N1 richtig, aber nicht bei A1K1N1
    9. D1I1K1T2 die Neubauerstbezugsquoten wurden bei der Aufteilung des Neubauerstbezugs nicht korrekt auf die Altersgruppen umgelegt, analog wurde die Aufteilung des Rückbauendauszuges auf die Altersgruppen korrigiert
    10. Die Aufteilung des Außenzuzug pro Altersgruppe proportional zur Größe AG-Gebiet/AG-TYZZA verstärkt übergroße Altersgruppen.
      Jetzt erfolgt die Aufteilung des Zuzugs proportional zur Gesamtbevölkerung Gebiet/Gesamtbevölkerung TYZZA.
      Protokollumfang 3 zeigt Details der Berechnung.
      Protokoll (DG4ZA) und Datei bew.csv enthalten den Außenzuzug gegliedert nach Gebiet, BG, GG, AG
      Die alte Variante von SIKURS 10.1 erreicht man durch
      Einwohner/Prognose/Berechnen/Notiz
      !ZAG 0
      !AUSGABE_GZUZUG 2
      (Ausgabedatei gzuzug.csv: Außenzuzug gegliedert nach Außentyp, Gebiet, BG, GG, AG)
      Im Rahmen 072 wurde die Aufteilung des Außenzuzugs auf die Gebiete proportional zur freien Wohnkapazität entwickelt.
    11. Feintuning Binnenwanderung bei Neubau/Rückbau und P1 mit Umstrukturierung Berechnungsreihenfolge, um die Umlegung von Rückbauendauszug in Binnenzieltypen auf die Gebietseinheiten proportional zur Freien Wohnkapazität (statt Bevölkerung Gebiet / Bevölkerung Binnentyp (!IBR_FWKG 0)) zu bewerkstelligen
      Zusätzlich Einführung modifizierter Ausgangsbevölkerung (OBE, OBR) bei Neubau/Rückbau und Änderung Berechnung Binnen- und Innenwanderung
    12. tool Extras/Eigene Scripts/Start/IPF (Iterative Proportional Fitting) zur Anpassung von Matrizen der Excel-Dokumentaion an Zielwerte (Ober-, Unter-Grenzen)
    13. Bei P1/P2 Berechnung der freien Wohnkapazität ohne Differenz zum Zielwert (DZW)
    14. Überarbeitung Benutzerhandbuch und Methodische Hinweise (m-?)
      auffällige Stellen sind durch Fußnoten mit Hinweis (wib) gekennzeichnet
    15. Baustein B1D1I1K1M1P4R1W1Y1 (Mäding) Verbesserung Prüfung und Protokollierung Zielwerte aus ecktyp und eckreg.
    16. Überprüfung Excel-Beispiel BG3GG2/A1I1K4M2T1W1 (14)
      !option($M2NEU n)
      1. (default) wählt eine neue, zum Excel-Beispiel kompatible Berechnungsmethode für die Anpassung Außenwegzug (A1) auf Gebietsebene DG4WA an demografisch gegliederten Eckwert eckreg BR21 (M2).
      2. wählt alte Methode Anpassung DR3WA auf Typenebene und dient zum Austesten der neuen Methode
  41. s Variantenprognose (17h,4A,v10.1,Z:,B:)
    Unter Variantenprognose sollen mehrere Prognosen (z.B. tief, mittel, hoch) verstanden werden, bei denen einige Dateien gleich (z.B. reftyp, gem2015, ...), andere Dateien pro Variante unterschiedlich (z.B. fruc2016, fruc2017, ...) sind.
    Die vernünftigste Verzeichnisstruktur ist ein Unterverzeichnis pro Variante:
    meine_prognose
    |   reftyp.csv <---------+
    |   gem2015.csv <--------|--+
    |                        |  |
    +-- tief                 |  |
    |       v.ini            |  |
    |       reftyp.csv.lnk --+  |
    |       gem2015.csv.lnk ----+
    |       fruc2016.csv     |  |
    |       fruc2017.csv     |  |
    |       strb2016.csv     |  |
    |       strb2017.csv     |  |
    |                        |  |
    \--hoch                  |  |
            v.ini            |  |
            reftyp.csv.lnk --+  |
            gem2015.csv.lnk ----+
            fruc2016.csv
            fruc2017.csv
            strb2016.csv
            strb2017.csv
    Dabei verweist reftyp.csv.lnk auf reftyp.csv im übergeordneten Verzeichnis (gem2015.csv.lnk analog).
    Die Verknüpfungen können entweder mit dem File-Explorer von Hand gesetzt werden, oder in der Startmaske der Prognose im Reiter Befehle
    shortcut '../reftyp', 'reftyp';
    shortcut '../gem2015', 'gem2015';
    Mit Einwohner/Prognose/Sammelprognose lassen sich alle Varianten in einem Lauf rechnen.
    Mit folgender Erweiterung kann man aus das mühsame setzen der Links verzichten:
    Enthält das übergeordnete Verzeichnis eine (leere versteckte) Datei _variant, so sucht das Programm fehlende Dateien im übergeordneten Verzeichnis.
    Ein neuer Menüeintrag
    [v] Variantenprognose
    in der Startmaske/Parameter der Prognose automatisiert die Erstellung/Löschung der Datei _variant
    meine_prognose
    |   _variant
    |   reftyp.csv
    |   gem2015.csv
    |
    +-- tief
    |       v.ini
    |       fruc2016.csv
    |       fruc2017.csv
    |       strb2016.csv
    |       strb2017.csv
    |
    \-- hoch
            v.ini
            fruc2016.csv
            fruc2017.csv
            strb2016.csv
            strb2017.csv
    Die Variantenlogik wird genutzt in Siehe auch Verzeichnis variant bei den mitgelieferten Beispielen beispiel.zip (Siehe ?/Beispiel-Eingabedaten)
  42. t Verarbeitung csv-Dateien in UTF-8 Codierung (4h,4A,v10.1,Z:,B:)
    UTF-8 BOM (FF BB BF) am Dateianfang von csv-Dateien wird erkannt.
    Es muss noch getestet werden, ob dies für alle Programme funktioniert, und was passiert, wenn die Dateien in den Kommentarzeilen
    #©⊗ℜ
    merkwürdige Unicode Zeichen enthalten sind
  43. s Eingabedatei zuaq Problem Summe = 1 (15h,5A,v10.2,Z:,B:)
    zuaq hat die Spalten TYA, TYZZA, BG, GG, AG, Quote.
    Dabei muss die Summe TYA, BG, GG, AG über TYZZA 1 ergeben.
    Mit Hilfe einer Pivot-Tabelle mit Zeilenfelder TYA, BG, GG, AG und Datenfeld Quote läßt sich leicht überprüfen, ob die Summe immer 1 ist.
    Ohne Pivot-Tabelle ist dies in dieser Anordnung der Spalten nur mühsam überprüfbar.
    Bei einer Anordnung TYA, BG, GG, AG, TYZZA, Quote wäre dies viel einfacher:
    #TYA;BG;GG;AG,TYZZA;Quote
       1; 1; 1; 0; 1; 0,3
       1; 1; 1; 0; 2; 0,5
       1; 1; 1; 0; 3; 0,2     # Summe = 1
    ...
    Zwischenlösung:
    Wenn man das Programm mit Protokollumfang 3 startet, dann wird nach dem Einlesen von zuaq (in alter Reihenfolge) zunächst QR4ZA protokolliert und anschlißend QR4ZA_ in neuer Reihenfolge aufgebaut und protokoliert.
    Bei der Berechnung zuaq aus Makrodateien ist die Sortierung in der Ausgabe TYA, BG, GG, AG, TYZZA
    #TYA;TYZZA;BG;GG;AG;Quote
       1;    1; 1; 1; 0;0,2
       1;    2; 1; 1; 0;0,3
       1;    3; 1; 1; 0;0,5    # Σ = 1
    ...
       5;    1; 2; 2;99;0,4
       5;    2; 2; 2;99;0,1
       5;    3; 2; 2;99;0,5    # Σ = 1
    um die Summe = 1 über die Typen Zuzug von Außen einfacher berechnen zu können

    Beim Glätten bleibt Summe TYZZA = 1 in folgenden Varianten erhalten:

    Glätten über das Alter
    Ersatz fehlende Werte
    (*) ohne
    (*) Wert [0 ]
    Glättungsmethode
    (*) Gleitendes Mittel
    Beispielrechnung Gleitendes Mittel mit 4 Altersgruppen (AG) und 2 Typen Zuzug von Außen (TYZZA)
    Rohdatengeglättet
    TYZZATYZZA
    AG12Σ12Σ
    01/1009/1016/3024/301
    14/1006/1015/3025/301
    20/1010/1017/3023/301
    33/1007/1016/3024/301

    Bei den sonstigen Glättungsvarianten kann sich die Summe TYZZA = 1 ändern, insbesondere bei

    Dies kann zu sehr vielen Warnungen:
    Warnung 1193: Summenwert (3,1..3,2,2,99)=1,14271752623892 außerhalb 1+/-SUMTOL(=0,001), Werte werden auf Summe=1 kalibriert
    führen.
    Lösungsansätze:

    Beim Glätten wird gefragt, ob Ausgabedatei zuaq-Sortierung haben soll

    Wenn die Ausgangs-Makrodatei aussenzuzug für zuaq (binnenwegzug für strm mit vielen Binnentypen (tyb), aussenwegzug für wegz mit vielen Außentypen (tya) und Quelltypen Außenwegwanderung (tyqwa)) zu wenig Fälle enthält, dann ist die Struktur von zuaq so zufällig, dass auch kein Glätten hilft.
    In diesem Fall wäre es vernünftiger die Anzahl Außentypen (tya), die Anzahl Typen Außenzuzug (tyzza) (, evtl. die Anzahl Bevölkerungsgruppen und die Anzahl Geschlechtsgruppen) und Differenzierung der Altersgruppen (ag) zu reduzieren:

    zuaq2010.csv:
    #tya;tyzza;bg;gg;    ag;Quote
       1;    1; 1; 1;00..17;0,518
       1;    2; 1; 1;00..17;0,482
       1;    1; 1; 1;18..64;0,614
       1;    2; 1; 1;18..64;0,386
       1;    1; 1; 1;65..99;0,736
       1;    2; 1; 1;65..99;0,464
      ...
    Der Demonstrator: Haupmaske/Extras/Eigene Scripts/Start/zuaq_aus_aussenzuzug
    wurde umgearbeitet in die Lösung:
    Hauptmaske/Eingabdaten/Berechnen/SIKURS Eingabedateien aus Makrodateien
    [ ] Bevölkerungsgruppen zusammenfassen
    [ ] Geschlechtsgruppen zusammenfassen (denkbare Erweiterung)
    [v] Altersgruppen zu Altersklassen zusammenfassen
    und Eingabedatei
    altersklassen.csv:
    bgwr;6;18;40;65
    strm;12;40;65
    zuaq;18;65
  44. t Indikatoren für Geburten und Sterbefälle in wählbarer Differenzierung (z.B. Untersuchungsgebiet) (36h,5A,v10.2,Z:,B:)
    Die Indikatoren ZGZ (Zusammengefasste Geburtenziffer), BRR, NRR, DGAM, SDAM, AMGR werden nicht auf eine gewählte Aggregationsstufe (z.B. Untersuchungsgebiet ohne BG und GG) aggregiert, weil dies durch einfache Aggregation der Raten nicht korrekt wäre.
    Herr Götz merkt richtig an:
    warum sollte es denn nicht zulässig sein die ZGZ für das Gesamte Untersuchungsgebiet zu berechnen. Das wird doch ständig gemacht (z.B. von der amtlichen Statistik oder anderen Forschungseinrichtungen wie dem BBSR)?
    Dazu muss man doch einfach nur die Frauen im gebärfähigen Alter des Jahres x-1 nehmen, diese dann ein Jahr altern lassen (also Geburtsindex verschieben) und dann den gealterten Frauenbestand ins Verhältnis zur Zahl der Geburten nach Alter der Müttern des Jahres x setzten. Die Summe aus diesen Raten ist doch dann die ZGZ. Welche Gebietseinteilung/räumliche Aufteilung man dazu verwendet, spielt doch keine Rolle, oder?

    wib: für wählbar diffferenzierte ZGZ, BRR, Hadwiger-Parameter umgesetzt (Ausgabe in Datei ZGZagg.csv, BRRagg.csv, hadwiger(MO/ME/VAR).csv),

    Lebenserwartung wird aus strb nur in Differenzierung strb berechnet.
    Eine wählbar differenzierte Lebenserwartung wird berechnet, wenn Datei bew (Spalte Geburten, Sterbefälle) existiert.
    Sollte die Laufzeit der neuen Indikatoren bei vielen Gebieten und Prognosejahren zu lange sein, kann eine Optimierung beim Lesen von gebam bzw bew geprüft werden.
    Zur Vollständigkeit wird zusätzlich die Bevölkerung in gewünschter Aggregation ausgegeben.
  45. t Glättung von Raten (13h,7A,v10.1,Z:m,B:)
    Eine gute Alternative zum gleitenden Mittel könnte bei der Glättung der Sterberaten abschnittsweise Regressionsfunktionen sein. Dadurch ließen sich manuelle Eingriffe dann vollends vermeiden.
    (s) Testen kann man die Glättung durch eine Weibull-Funktion, Parabel, Gerade, Konstante mit dem Tool
    Eingabedaten/Dynamisieren/Intra-/Extra-polation durch Regression
    strb1992.csv      Eingabedatei
    [-2         ]     Zeitachse vorletzte Spalte Altergruppen
    [-1         ]     y-Achse letzte Spalte Sterberate
    [1:1 2:1 3:1]     Filter: Typ 1, BG 1, GG 1
    strb1992_roh.csv  Ausgabedatei
    Extrapolation
    [0:10       ]     Jahresbereich Plotausgabe und Ausgabedatei
    [0:*        ]     Skalierung y-Achse
    [v] Weibull
    img/058a.png
    [10:29     ]      zu analysierender Jahresbereich Eingabedatei
    [10:29     ]      Jahresbereich Plotausgabe und Ausgabedatei
    [v] Konstante
    img/058b.png
    [30:99     ]      Jahresbereich Plotausgabe und Ausgabedatei
    [v] Weibull
    img/058c.png
    zusammengefaßt
    img/058d.png
    das sich neben der Extra/Inter-polation der Zeit auch für die Glättung über Altersgruppen eignet:
    Die Extrapolation wird erweitert
    1. Beschreibung der Eignung für Interpolation
    2. Erweiterung für nicht ganzzahlige t-Achse
    3. Ergänzug der Weibullfunktion, die sich für die Altersbereiche 0 .. 10 und 30 .. 99 bei den Sterberaten anbietet (siehe auch Weibull)
    4. Optionale Angabe der Schrittweite für die Ausgabedatei (z.B. 0.1, 5)
    5. Optionaler Plot der Ausgabedatei
    6. Durch Angabe Wertespalte Möglichkeit Zeitreihen aus bew, bewgem, bewagg, bewgemagg zu bilden
    7. Ausgabe Label ausgewählte t-Spalte und y-Spalte in Plot
    8. Verbesserung Exponentialfunktion
    9. Ersatz Logarithmus durch Sättigungsprozess (Logistsische Funktion)
    10. Filter 4:* erzeugt Zeitreihen für alle Werte von Spalte 4 (z.B. alle Bevölkerungsgruppen)
    11. experimentelle Funktionen Sinus, Polynom n-ten Grades, Rationale Funktion n-ten Grades

    (m-uls) Wenn Überlagerungen von Balkengrafiken in der Darstellung der Raten optisch stören, wäre vielleicht eine Liniengrafik eine Lösung. Herr Walla meinte einmal: Raten und Quoten stellt man als Linien dar, Absolutwerte als Balken. Ist natürlich sehr dogmatisch, aber vielleicht einfach der Erfahrung geschuldet, dass sich Raten und Quoten in Grafiken eher als Absolutwerte überlagern können und Balken dann zu einem Problem werden.

    (s) Welches ist der bevorzugte "gnuplot terminal type" mit seinen Exportformaten?

    qtclipboard png bmp pdf svg
    wxtclipboard png pdf svg
    windowsclipboard emf
  46. s Ausgabe differenzierter Ströme zuzug, neba, wegzug, reba (37h,6A,v10.1,Z:,B:)
    In Ausgabedatei bew.csv sind die Ströme ohne die Differenzierung nach Außentyp.
    Die (alten) Augabedateien zuzug.csv und wegzug.csv sind nur nach Typen und nicht nach Gebietseinheiten differenziert.
    Deswegen gibt es neue bzw. geänderte Ausgabedateien mit Differenzierung nach Außentyp, Gebietseinheit, BG, GG, AG. die jederzeit mit Aggregation Zeitreihe höher aggregiert werden können.
    strom.csv siehe roadmap 44, 87
  47. t Erweiterung Anpassung Sterberaten an Zielwert Lebenserwartung (9h,6A,v10.1,Z:,B:)
    Man kann einzelne Altersgruppen von der Anpassung ausnehmen und konstant lassen oder gezielt verändern
     1..$NTYS;1;1; 0.. 4;$f*$s             # Anpassung an Lebenserwartung ohne Gewichtung
     1..$NTYS;1;1; 5.. 9;$f*$s*1.2         # stärkere Anpassung
     1..$NTYS;1;1;10..14;$f*$s*1.0+$y/100  # zunehmend stärkere Anpassung
     1..$NTYS;1;1;15..19;$f*$s*1.03**$y    # um 3% jährlich zunehmend stärkere Anpassung
     1..$NTYS;1;1;20..24;$f*$s*0.8         # schwächere Anpassung
     1..$NTYS;1;1;25..29;$f*$s*1.0-$y/100  # zunehmend schwächere Anpassung
     1..$NTYS;1;1;30..34;$f*$s*0.97**$y    # um 3% jährlich zunehmend schwächere Anpassung
     1..$NTYS;1;1;35..39;$s                # keine Anpaasung Sterberate
     1..$NTYS;1;1;40..44;$s-0.001          # Reduktion Sterberate um 0,001
     1..$NTYS;1;1;45..49;$s-$y/1000        # Reduktion Sterberate um 0,001 pro Jahr
     1..$NTYS;1;1;50..54;$s*0.97**$y       # Reduktion Sterberate um 3% pro Jahr
     1..$NTYS;1;1;55..59;$s*1.03**$y       # Erhöhung Sterberate um 3% pro Jahr
     1..$NTYS;1;1;60..99;                  # ohne Gewichtung (entspricht $f*$s)
    Details siehe Hilfe im Tool
  48. t Optimierung Toolkette (43h,5A,v10.2,Z:,B:)
  49. s Änderung Baustein T, A, B (38h,6A,v10.2,Z:,B:)
  50. t Aufsammeln Kommentare (8h,5A,v10.2,Z:,B:)
    Anliegen/Frage bezüglich der Kommentarzeilen in den Dateien: Aktueller Stand bei der Erzeugung der Eingabedateien ist der, dass bei den Makrodateien die Spaltenüberschriften ausgegeben werden  und bei der Ratenberechnung dann die verrechneten Jahre, Datum, Uhrzeit SIKURS-Version usw. Glättet man dann, verschwinden diese Kommentare zum Ursprung und es wird Breite Gleitfenster, Erstelldatum etc. kommentiert. D. h. in den  schließlich verwendeten Dateien findet sich nichts zur "Biographie" der Datei. Gibt es eine Möglichkeit die Historie  der Eingabedaten zu bewahren, um in der endgültigen Eingabedatei den kompletten Werdegang nachvollziehen zu können? Vielleicht können Sie bis zur Lenkungsgruppensitzung darüber nachdenken ob das machbar ist? (Macht es überhaupt Sinn? Oder sind die Texte dann eventuell viel zu lang und unübersichtlich? )

    Konzept:
    Wenn bei
    Optionen/Systemeinstellungen/CSV/Kommentarzeilen in Ausgabedateien
    (*) Datum / Spaltenname oder
    (*) Datum
    ausgewählt wird, dann enthält die Ausgabedatei die Kommentare der Eingabedatei, sowie einen neuen Kommantar mit Datum.

    strb2016.csv:
    #SIKURS-Eingabedaten aus Makrodateien, Ausgabe strb
    #D:/trunk/sikurs/extra/Beispiel/DST/anonym/makro/sterb_2015.csv
    #[2015]
    #D:/trunk/sikurs/extra/Beispiel/DST/anonym/makro/baby_2015.csv
    #[2015]
    #D:/trunk/sikurs/extra/Beispiel/DST/anonym/makro/bestand_2014.csv
    #[2014]
    #SIKURS 10.2.0.636: Dienstag, 25. Oktober 2016 16:37:10
    #manuell glätten D:/trunk/sikurs/extra/Beispiel/DST/anonym/bprog/strb2015_roh.csv
    #SIKURS 10.2.0.636: Dienstag, 25. Oktober 2016 17:01:05
    #Typ Sterberaten;Bevölkerungsgruppe;Geschlechtsgruppe;Altersgruppe;Rate
    1;1;1;00;0,0021
    ...
    Von der Erweiterung betroffen sind
  51. t Makrodateien aus DST - Feld 250 NEUB (10h,7A,v10.3,Z:,B:)
    bei der Erzeugung der Makrodateien aus DST- Bevölkerungsbewegung sind Probleme aufgetreten. Mit Feldposition 250 - NEUB kann mit Informationen aus anderen Quellen eine Adresse als Neubau markiert werden. Zum Teil wurde dieses Feld aber auch von Anwendern  genutzt, um irgendwelche Informationen zu hinterlegen, sind aber in diesem Feld Nennungen > 0 vorhanden, wird der Datensatz als Neubaubezug aus dem Innenraum ausgewiesen und der Satz fällt für die weitere Verarbeitung, z.B. die Erstellung der Datei aussenzug weg. In einem Fall war es extrem: es wurden überhaupt keine Aussenzuzüge (gilt wahrscheinlich für alle Wanderungen?) ausgegeben. In der Lenkungsgruppe sollten wir deshalb prüfen  wie solche Fälle aufgefangen werden können!

    In der Beschreibung Statiskdatensatz Bevölkerungsbewegungen steht:

    NEUB 250 01 I Adresse ist Neubau(39)
                  (_) kein Neubau oder Feld nicht versorgt
    (39) Hier kann mit Informationen aus anderen Quellen eine Adresse markiert werden, die im Berichtsjahr bezugsfertig geworden ist.
    Demnach kann NEUB 3 Werte annehmen:
    _ nicht versorgt
    0 kein Neubau
    1 Neubau

    den aktuellen Werte des Merkmals NEUB kann man prüfen

    Haushalte/Anzeige/Start
    [1-*                 ] Satznummern
    [{ $bb->{NEUB}++; 1 }] Satzinhalt
    
    mit beispielhafter Ausgabe ('4' kommt 13 mal vor, 'Q' 7 mal)
    { 4 => 13, Q => 7 }

    Lösung:
    Neue Checkbox in Eingabmaske

    [ ] Ableitung Neubauerstbezug aus dstbew
  52. t Methode Altersberechnung Makrodatei aus dstbew (2h,7A,v10.3,Z:,B:)
    Attina Mäding:
    Nun habe ich noch einmal zwei Fragen zur Altersberechnung bei der Erstellung der Makrodateien in SIKURS und zwar zu folgender Anmerkung auf der Hilfeseite: file:///C:/Sikurs_10_1/html/d/00Hilfe/10Tools/00Eingabedaten/00TkRate.htm

    (*) Das Alter wird nicht wie beim Bestand aus A01, sondern aus der Differenz der Jahresanteile von Z02 und P01 (AG = substr(Z02,0,4)-substr(P01,0,4)) berechnet, weil A01 in der Bewegungsdatei das Alter zum Zeitpunkt des Abzugs ist, SIKURS aber das Alter zum 31.12. benötigt.
    Für Tests kann zwischen Z01, Z02 gewählt werden.

    1. Soweit ich ermitteln konnte ist in unseren Bewegungsdateien A01 das Alter zum Zeitpunkt des Ereignisses (Z02). "Abzug" ist hier missverständlich, wenn nicht gar falsch, oder?
    2. Wenn Sikurs das Alter zum 31.12. benötigt, dann kann es doch weder mit Z01 (Verarbeitungsdatum) noch Z01 (Ereignisdatum) das Alter errechnen, sondern muss das Geburtsdatum (P01) in Bezug zum 31.12. des jeweiligen Jahres setzen.
      • Geschieht das und ist in der Hilfe nur falsch dargestellt oder
      • muss ich die Bewegungsdateien vorab bearbeiten und Z01 auf den 31.12. des jeweiligen Jahres setzen oder
      • benötigt Sikurs doch das Alter zum tatsächlichen Verarbeitungsdatums (Z01)?

    wib:
    Die Altersberechnungsmethode ABM=1 oder 2 ergibt sich aus der Startmaske

    [1  ] Altersberechnungsmethode (1: Z01, 2: Z02)
    Auszug aus dem Programm zur Verarbeitung von dstbew:
    /* svn diff -r85 dstbew.cpp
    * 85 A01      zu ungenau
    * 86 Z01-P01
    * 87 Z02-P01
    */
    // Z01 Verarbeitungsdatum (JJJJMMTT) (default)
    // Z02 Ereignisdatum      (JJJJMMTT)
    // Z01/2_JJJJ-P01_JJJJ nur Jahr wegen Stichtag 31.12 für gem-Datei
    // Prüfung, ob Felder Z01/Z02, P01 versorgt
    Feld& _Z = (ABM == 2) ? _Z02  :_Z01;
    if (_Z.all(line) || _P01.all(line))
        Log("P01 oder Z01/Z02 nicht versorgt\n");
    int ag = _Z.integer(line, 0, 4) - _P01.integer(line, 0, 4);
    if (ag < 0)
        Log("Alter %d negativ\n", ag);
    
  53. s Neukonzeption Anwenderhandbuch / Methodenbericht SIKURS (h,A,v,Z:m,B:)
    Fortentwicklung Benutzerhandbuch

    sinnvoll wäre Review Dokument durch

  54. s Terminologie-Wanderungen v3 (h,A,v,Z:m,B:)
    m,h: Terminologie-Wanderungen v3

    wib: für Handbuch (bhb.pdf) und Prognoseprotokolle (C++ Quellcode + datadict.xml) und Excel-Bausteinkombinationsbeispiele
    Beispiel:
    Im Benutzerhandbuch (bhb.pdf) ist z.B. Seite 30, Beschreibung BEW zu ändern:
    Feld 8: Außenwegzug ohne Rückbauendauszug (WA) -> Außenauszug ohne Rückbauendauzug (AA)
    ... analog einige weitere Felder
    Im C++ Quellcode und datadict.xml Umbenennen DG4WA -> DG4AA und Protokolltest wie bei Benutzerhandbuch

    Weitere Beispiele:

    altneudimText
    DG4WADG4AAGZ BG GG AGAußenauszug
    DG5WADG5AAGZ TYA BG GG AG (besser TYA GZ ...)Außenauszug
    DR4WADR5AATYA QWA BG GG AGAußenauszug
    PR4WADR5AATYA QWA BG GG AGAußenauszugsrate
    Wenn die Variablennamen stimmig sind, könnte man die Bezeichnungen aus den Bestansteilen des Variablennames zusammensezten, d.h. das datadictionary wesentlich verkürzen.

    Begriffsänderung:
    (s) Hauptmaske/Einwohner/Prognose Standardprognose -> Pauschalprognose ?

  55. t Sterberate Altersgruppe 99 (12h,10A,v10.4,Z:,B:)
    Bei der Prognose kann häufig beobachtet werden, dass die Altersgruppe 99 über die Jahre sehr stark zunimmt.
    Um zu beurteilen, ob dies realistisch oder ein Fehler ist, sollte man folgendes versuchen:
    Die aus dem Statistikdatensatz abgeleiteten Makrodateien enthalten Altersgruppen 0-999.
    Bei Berechnen SIKURS-Eingabedaten aus Makrodateien wählen Sie Option:
    [1] undefinierte Werte
    [100 (oder 110)] Altergruppen
    In der Ausgabedatei strb suchen Sie dann nach Zeilen mit Werten:
    1001;1;1;97;"undef"
    1001;1;1;98;999
    "undef" oder eine fehlende Atersgruppe kommt zustande, wenn in einer Altersgruppe weder Sterbefälle noch Bestand vorhanden sind.
    Inf (∞) wird ausgegeben, wenn in einer Altersgruppe Sterbefälle aber kein Bestand vorhanden ist (damit handelt es sich um einen Datenfehler, da Sterbefälle ohne Bestand nicht möglich sind).
    Visualisieren Sie die berechnete Sterberate (und amtliche Sterberaten) mit SIKURS-Hauptmaske/Extras/Eigene Scripts/Start/gomperts.pl als Gompertz-Diagramm, um zu entscheiden, ob sie die fehlenden Altersgruppen durch Glätten oder Interpolation mit Nachbarwerten schließen wollen.
    Damit kann man eine Variantenprognose für die Anzahl Altersgruppen machen:
    1. Untervarianten für das Glätten der Sterberaten:
      • nicht glätten
      • glätten AG 0-99
      • AG 0 beim Glätten ausschließen, da diese viel größer als von AG 1 ist.
      • AG 99 beim Glätten ausschließen, da diese aus den AG 99-999 berechnet werden, stattdessen evtl. festen empirischen Wert m: 0,4, w: 0,3 verwenden
    2. Untervarianten für das Glätten der Sterberaten:
      • nicht glätten
      • glätten
      Zum Vergleich die gem-Dateien NAG 110 auf 100 aggregieren (min($4,99)) oder Visualisierung/Einzelpyramide bei beiden 100 Altersgruppen vorgeben
    Im Prognoseprotokoll gibt es folgende Prüfungen mit Hinweisen
    1. Sterberaten ab 90 < S90+
      (Ursache: z.B. zu geringe Fallzahl bei der Berechnung)
    2. Sterberate 99: männlich S99m < 0,4, S99w weiblich < 0,3
      (Ursache: z.B. Reduktion durch Glättung)
    3. Notiz:
      !option($MRDT 1)
      MRDT nach Gompertz außerhalb [MRDTmin (7) .. MRDTmax (9)]
    Die Konstanten S90+, S99m, S99w, MRDTmin, MRDTmax sind in Datei constant.csv und können in strb____.csv durch
    #! constant($S90 0,07) constant($S99m 0,5) ...
    überschrieben werden.

    Für eine Prüfung könnte man einen Norm-Indikator und eine Toleranz z.B. +/- 10% oder einen Indikator mit Untergrenze und Obergrenze vorgeben.
    Der Indikator sollte nach Geschlecht aber nicht nach Bevölkerungsgruppe gegliedert sein.

    Der Anwender soll die Vorgaben seinen Anforderungen anpassen können.
  56. t Plot Zeitreihen Variantenprognose (23h,10A,v10.4,Z:m,B:)
    img/069.png
    (plot commands)
    Für eine Variantenprognose sind vergleichende Zeitreihen von Indikatoren wie Gesamtbevölkerung (BS), Jugendquotient (JQ), Altenquotient (AQ), Zusammengefasste Geburtenrate (ZGZ/TFR), Lebenserwartung (LE), ..., hilfreich.
    Extras/Eigene Scripts/Start/varianten_indikator.pl
    nutzt für das gewählte Variantenverzeichnis entenhausen die csv-Dateien des Tools Indikatoren:
    .../entenhausen/high/v/ind/BS.csv
    .../entenhausen/medium/v/ind/BS.csv
    .../entenhausen/low/v/ind/BS.csv
    und führt diese zusammen:
    .../entenhausen/varianten_ind/BS.csv:
    #Jahr:Gebiet;Bevölkerungsgruppe;Geschlechtgruppe;high_v;low_v;medium_v
    2017;10;1;1;102610;102610;102610
    ...
    2026;10;1;1; 99100;102690;113221
    und plottet die Indikatoren (z.B. Bevölkerungssumme BS.csv)

    Diese Plots kann man modifizieren:

    Visualisierung/Zeitreihen/X-Y-Plot
    .../entenhausen/varianten_ind/BS.csv
    [1    ] X-Achse
    [     ] Schlüssel
    [     ] Geschlechtsgruppe
    [5 7 6] Wert
    [     ] Auswahlfilter
    Legende
    [Variantenprognose Entenhausen ] Titel
    [Jahr                          ] x-Achse
    [Einwohner                     ] y-Achse
    [                              ] Referenzdatei Schlüsselwerttexte
    um z.B. Auswertungen in einer anderen Differnzierung wie z.B. Gebiet, Typ, Bevölkerungsgruppe, Geschlechtsgruppe vorzunehmen.
    Will man z.B. nach Gebiet differenzieren, so wird man entweder

    Hinweise:
    Die Prognose aller Varianten (einzeln oder als Sammelprognose) muss berechnet sein mit:

    Wenn Zeitreihendateien zr_gem.csv vorhanden sind, werden diese zu varianten_zr_gem.csv zusammegeführt.

    Wenn man die Indikatoren mit
    Befehle/nach der Prognose

    indikator(refGKZ => 1, refTYG => 1, refTYS => 1, dir => 'ind_grob');
    mit dem Verzeichnisnamen ind_grob berechnet, muss man diesen Namen in
    varianten_indikator.pl:
    [ind_grob   ] Name Variantgenverzeichnis
    eintragen.
    Siehe auch Verzeichnis variant bei den mitgelieferten Beispielen beispiel.zip (Siehe ?/Beispiel-Eingabedaten)
  57. t Protokolldateiein für SIKURS-Tools (11h,7A,v10.2,Z:m,B:)
    Utz Lindemann: Bei SIKURS-Eingabedateien aus Makrodateien die Ausgaben ins Textfenster der Hauptmaske zusätzlich in eine Protokoll- oder Log-Datei schreiben (und über einen neuen Menüpunkt "Protokoll SIKURS-Eingabedaten aus Makrodaten" zugänglich machen)
    Das Sichern der Textfenster-Ausgaben könnte man auf weitere Tools (Eingabedaten Berechnen/Glätten/Dynamisieren und evtl. Ergebnis Zeitreihen) ausdehnen.
    Mit Optionen/Systemeinstellungen/Allgemein
    [ ] Lösche Textfester
    kann man die Ausgaben im Textfenster behalten, bei Bedarf Teile mit Copy/Paste retten oder
    <F2> Textfenster als Datei prot.htm abspeichern
    <Entf> Textfenster löschen.

    Bei Makrodateien aus Statiskdatensatz wird geprüft, ob es ein altes Protokoll gibt und gefragt, ob man es sehen will.
    Ein neues Protokoll im html-Format ersetzt die Datei log.txt und die Ausgabe im Protkollfenster.

    ahk: Beim Zeitreihentool bildet man öfters verschiedene Aggregate zu den Altersgruppen oder Gebieten. Die unterschiedlichen Aggregierungsvarianten stehen dann in einer Referenzdatei mit mehreren Spalten und in der zr_Ausgabe stehen immer nur die Nennungen 1, 2, 3, usw. Hier wäre es hilfreich eine Protokollierung zu haben, vielleicht sogar in den Kommentarzeilen der Ergebnisdatei mit den entsprechenden Informationen zum Aggregat, Pfad zur Referenzdatei, welche Spalte der Referenzdatei angesprochen wurde...

    wib: Bei Einwohner/Prognose/Berechnen
    [v] Aggregation Zeitreihe
    erscheint im Textfenster der Hauptmaske das Protokoll

    Aggregat Zeitreihe
    Aggregation über
      Jahr: keine
      Gebietskennzeichen: reftyp 1 3
      Bevölkerungsgruppe: keine
      Geschlechtsgruppe: keine
      Altersgruppe: alle Ausprägungen
    < reftyp
    > zr_gem.csv
    < gem2009.csv
    < gem2010.csv
    < [2009..2010][11..31][3..3][2..2][0..2]
    > [2009..2010][1..3][3..3][2..2][1..1]
    30 Eingabedatensätze + 3 Kommentarzeilen
    6 Ausgabedatensätze + 1 Kommentarzeilen, 0,137s
    
    Die Ausgabe Aggregation über wurde in Ergebnis/Zeitreihe ergänzt

    zum Test empfehle ich:
    Hauptmaske/Optionen/Systemeinstellungen
    [3] Protokollumfang Tools
    Hauptmaske/Ergebnis/Zeitreihe/Start
    Aggreagtion über
    ... diverse Aggregate, z.B. refag 1 3
    Anzeige
    [v] Editor
    [OK]
    jetzt kopieren sie das Protokoll aus dem Textfenster der Hauptmaske in die Ausgabedatei zr_gem.csv
    Jetzt kann man beurteilen, ob es Sinn macht, sehr viele Informationen als Kommentar in die Ausgabedatei zr_gem.csv zu übernehemen.

    Alternativ könnte man den Namen der Ausgabedatei vom Benutzer wählen lassen (mit Voreinstellung wie jetzt), z.B. zr_gem_jugend.csv und die Informationen über die Aggreagtion in eine Datei zr_gem_jugend.txt schreiben.

  58. s Bausteinabhängige Texte (7h,6A,v10.2,Z:,B:)
    Im Protokoll und in Spaltenüberschriften gibt es bei Neubau, Rückbau, Sondergruppen ca. 10 Texte wie:
    DG4OI - Innenauszug ohne Rückbauendauszug
    Für Anwender könnte es verständlicher sein, je nach Baustein
    E0Innenauszug
    E1Innenauszug ohne Rückbauendauszug
    E2Innenauszug ohne Rückbauendauszug
    zu schreiben.
  59. s Konsistente Aufteilung Außenzuzug und Rückbauendauszug auf die GKZ eines Binnentyps (126h,7A,v10.2,Z:m,B:)
    m,h: Konsistente Aufteilung Außenzuzug und Rückbauendauszug auf die GKZ eines Binnentyps

    wib: TYZZA ist nicht mehr unabhängig, sondern muss gleich TYB oder eine Verfeinerung von TYB sein.
    Die Berechnungen mussten stark umstrukturiert werden.
    Erweiterung von blackbox- und regression-test

  60. s Aktualisierung Dokumentation (h,A,v,Z:m,B:)
  61. t Absicherung der Außenwanderung (56h,9A,v10.4,Z:m:38,B:)
    Bei der Außenwanderung werden - wie bei der Binnenwanderung - durch Planungsmaßnahmen Wanderungsbewegungen ausgelöst, die im "üblichen" Wanderungsgeschehen nicht enthalten sind. Beim Außenauszug handelt es sich um die vom Rückbauendauszug ausgelösten Wanderungen, bei denen die Beteiligten nicht im Untersuchungsgebiet verbleiben sondern ihren neuen Wohnsitz außerhalb des Untersuchungsgebietes suchen.

    Wie der Binnenauszug so wird auch der Außenauszug aus den Gebietseinheiten im SIKURS-Programm auf der Basis gebietstypischer Raten ermittelt. Wenn Raten einer Bewegungsart zweimal auf denselben Ausgangsbestand bezogen werden, wird eine bestimmte Anzahl Personen zweimal am Wanderungsgeschehen beteiligt und dadurch das Wanderungsvolumen überhöht. Diese Ungenauigkeit/Verfälschung wird bei der Binnenwanderung vermieden, indem vor der Anwendung der Binnenwanderungsraten zur Ermittlung der "üblichen" Binnenwanderung die Ausgangsbevölkerung reduziert wird um die auf die Planungsmaßnahmen zurückzuführende, zusätzliche Wanderungen. Bei der Binnenwanderung sind dies die Neubauerstbezieher, die aus dem Untersuchungsgebiet stammen und die Rückbauendauszieher, die ihren neuen Wohnsitz im Untersuchungsgebiet finden. Analog zur Binnenwanderung soll daher vor der Berechung des "üblichen" Außenwegzugs die Ausgangsbevölkerung reduziert werden um die vom Rückbauauszug ausgelösten Außenwegzüge.

    wib: siehe 050 Absicherung Binnenwanderung

  62. t Erweiterung Indikatoren (51h,13A,v10.3,Z:m,B:)
    Als Vorstufe zu 076 wurde das Tool Indikatoren erweitert:
    1. Ausgabe
      • PA.csv Perzentilalter 10%, 20%, ..., 90%
      • QA.csv Quantilalter 1/n, 2/n, ..., (n-1)/n; n wählbar
      Vorschlag PA.csv streichen, da QA.csv Verallgemeinerung
    2. neues Kapitel Bewegungsindikatoren
      zu den in bew.csv vorhandenen Spalten ab Sterbefälle z.B. "Außenwegzug ohne Rückbauenauszug", "Bevölkerungsgruppen nach" werden die Indikatoren Summe, (Durschnitts, Median, Modal)-alter Jugend/Altenquotient, Sexualproportion, Ausländeranteil, ... berechnet.
      Die Ausgabe erfolgt im Protokoll mit Zwischenüberschrift pro Bewegungsspalte und in csv-Dateien, so dass die Zeitreihen mit Visualisierung/Zeitreihen/x-y-Plot geplottet werden können.
    3. Indikatoren aus Statistikdatensatz Bestand und Bewegung
      (bei Optionen/Systemeinstellungen
      [1] Einschalten experimenteller Programmfunktionen)
      Hauptmaske/Visualisierung/Indikatoren/Statistikdatensatz/berechnen
      berechnet Indikatoren wählbarer Differenzierung, Ausgabedatei indikator.csv.
      Die vorhandenen Indikatoren müssen überprüft, und evtl. weitere benötigte Indikatoren festgelegt werden.
    4. Hauptmaske/Visualisierung/Indikatoren/Makrodatei
      Indikatoren einer auszuwählenden Makro-Datei oder gem-Datei
      Diese Indikatoren sollten mit obigen Indikatoren übereinstimmen.
  63. s kleine Anpassungen an Benutzerwünsche (h,A,v,Z:m,B:)
    1. Vergleich 2 csv-Dateien gleichen Namens mit Excel
      Wenn man 2 Prognosen mit 2 ini-Dateien v1.ini und v2.ini rechnet, dann entstehen 2 Ausgabedateien
      ...\v1\bew.csv
      ...\v2\bew.csv
      wib: Eine Excel-Instanz kann aber keine 2 Dateien gleichen Namens öffnen.
      Lösungen
      • 2 Excel Instanzen starten (über Windows Start-Button Suchfeld: excel)
      • mindestens eine Datei von Hand umbenennen bew.csv -> bew_v1.csv
      siehe Ergänzung Dokumentation:
      Hauptmaske/Einwohner/Prognose/Berechnen/?
      suche Link: Variantenprognose
      Vergleich von csv-Dateien gleichen Namens mit Excel
    2. Abrundung Tools
      1. Option "Logarithmischer y-Wertebereich"
        • Hauptmaske/Visualisierung/Zeitreihen/X-Y-Plot
          wurde für Sterberaten um die Option "Logarithmischer y-Wertebereich" erweitert:
          [2  ] x-Achse
          [1  ] Schlüssel
          [3  ] Wert
          (*) Linienplot Absolutwerte [steps ]
          [0:0.5 ] y-Wertebereich
          img/asz_1871_2014.png
          [1e-5:1 log ] y-Wertebereich
          img/asz_1871_2014_logscale.png
        • Extrapolation
        • SIKURS-Geburtenraten mit Hadwiger-Funktion visualisieren
        • Extras/Eigene Scripts/Start/Weibull
        • Manuelles Glätten
        • Dendrogramm Clusteranalyse
      2. Dokumentation Eingabeparameter in Kommentar Ausgabedatei
        • Ergebnis/Zeitreihe
          • Unterstützung reftyp Dateien mit Verkürzung Gebietskennzeichen #!cut(4)
        • Einwohner/Prognose/Berechnen/Parameter/Aggregation Zeitreihe sowie
          • Wahlmöglichkeit Ausgabedatei (default zr_gem.csv)
          • Aggregationsfunktionen (Entsprechung Ergebnis/Zeitreihe]
            • entferne Merkmal
            • /5 (int($i/5))
            • ^99 (min($i,99))
            • reftyp 1 0 - Abbildung Gebietskennzeichen in Gebietsnummer
          • Fehlermeldung bei fehlendem Schlüssel in reftyp
          • Unterstützung reftyp Dateien mit Verkürzung Gebietskennzeichen #!cut(4)
        • Eingabedaten/Dynamisieren/Regression
      3. entferne unnötige Parameter
        [100 ] Anzahl Altersgruppen in
        SIKURS Geburtenraten nach Vorgabe Zusammengefasste Geburtenrate und
        SIKURS Sterberaten nach Vorgabe Lebenserwartung
    3. Clusteranalyse
      Verarbeitung von UTF-8 Eingabedateien.
      Verbesserung Plot-Ausgabe Dendrogramm
  64. t Berechnung Außentypen und Neubautypen (11h,7A,v10.3,Z:,B:)
    ahk: Außentypen werden außerhalb der eigentlichen Ratenberechnung ermittelt und schon bei der Berechnung der Makrodateien verwendet. Die Frage in der Wartungsgemeinschaft war die, ob sich nicht auch die Außentypen über eine Referenzdatei zusammen mit der Berechnung der Raten und Quoten realisieren lassen.
    Bei dieser Erweiterung sollte aber die jetzige Vorgehensweise mit der Ermittlung der Außentypen über reftya bei Berechnung der Makrodateien bestehen bleiben.

    wib: Lösung:

    wib 12.11.2023: offenes Problem:
    Wenn der Anwender sowohl

    eine Datei reftya.csv benutzt, dann ist in den Makrodateien W40 bereits in den Außentyp abgebildet und das Programm meldet Warnung
    missing keys in reftya: (1, 2, 3, 4, 5)
    Eine mögliche sinnvolle Hilfe wäre eine Warnung auszugeben:
    bitte .../makro/reftya.csv entfernen, da W40 in den Marodateien bereits auf Außentypen abgebildet
    wenn in der Datei:
    sikurs.ini:
    [RATEN]
    W40DST=3
    W40DST einen positiven Wert hat und die Datei .../dst/reftya.csv existiert
    (bei W40DST=-3 oder bei fehleder .../dst/reftyp.csv ist die die Datei .../makro/reftya.csv o.k.

    Auch ganz andere Lösungen wären denkbar, z.B.:

    Bei den Neubautypen gibt es noch folgendes Problem:
    Ursprünglich wurde in die Datei neubaubezug in Spalte 2 der Teilschlüssel aus R02, also das Gebietskennzeichen übernommen, das dann bei der Erstellung der Raten über reftyp in den Neubauerstbeziehertyp gewandelt werden konnte.
    Ich habe aber eine Notiz gefunden:

    // Lindemann Lenkungsgruppe 28.11.2016 NEUB als Typ übernehmen
    d.h. in neubaubezug wird der Inhalt des Feldes NEUB aus dstbew geschrieben:

    NEUB 250 01 Adresse ist Neubau41 (_) kein Neubau oder Feld nicht versorgt
    Hier kann mit Informationen aus anderen Quellen eine Adresse markiert werden, die im Berichtsjahr bezugsfertig geworden ist

    d.h. wenn in NEUB=" " oder "0", dann ist es kein Neubau, bei Neubau hat sie anscheinend oft den Wert "1". könnte aber auch Werte "2" bis "9" haben?
    Ich nehme an, Herr Lindemann empfahl 2016 einen "vernünftigen" Neubautyp in NEUB von dstbew manuell einzupflegen (, was ich nur für "Statisitkdatensatzprofis" empfeheln würde).
    Wenn die der Fall ist,
    dann muss ich bei der Erstellung der Neubau-Raten-Dateien auf die Abbildung über reftyp verzichten (vorläufig eingebaut)
    ansonsten
    die Änderung "Lindemann 28.11.2016" zurücknehmen
    oder
    Der Anwender kann wählen

    1. Makrodateien aus Statistikdatensatz
      [2  ] Ableitung Erstbezug Neubauten (0: nein, 1: mit R02, 2: mit NEUB)
    2. SIKURS Eingabedaten aus Makrodateien
      [2] Neubaubezieherquoten (0: nein, 1: über reftyp, 2: mit NEUB)
  65. s Nettobewegungen (9h,A,v10.4,Z:,B:)
    ahk: In der dst-Bewegungsdatei gibt es das Feld Anst /Spalte 267: 0=Adresse ist Wohnheim, 1=Adresse ist weder Heim noch Anstalt, 2= Adresse ist Anstalt/Pflegeheim. Aktuell haben wir nur die Möglichkeit Raten mit dem Nettobestand berechnen zu lassen, korrekt wäre aber ein Erstellen der Raten auch mit den reduzierten Bewegungen. Wir müssen über eine Umsetzung in der nächsten Lenkungsgruppe diskutieren, um Anwendern aber die Möglichkeit zu geben, stimmig mit den Nettobewegungen zu rechnen, sollten wir in einem 1. Schritt in den Laufzeitparametern eine Option "Ausgabe der Bewegungsdateien ohne Anstaltsbevölkerung" aufnehmen. Für den Anwender sollte in der Kommentarzeile der erzeugten Datei dies vermerkt werden; prinzipiell sollten im Kommentar alle verwendeten Filter protokolliert werden.
    siehe auch Nettobestand
  66. t Ratenberechnen: Abbildung Gebiete auf Typen (h,0A,v10.4,Z:,B:)
    ahk: Bei der Berechnung der Raten, gibt es die Optionen Ich glaube diese 2 Optionen sind historisch begründet und dem Ablauf bei der Berechnung der Raten in älteren Versionen geschuldet. Macht das aber aktuell noch Sinn (z.B. für Nutzer ohne Statistikdatensatz)?
    Wenn nicht müsste man in der Lenkungsgruppe nochmal darüber diskutieren, ob beide Optionen bleiben sollen oder wie man an der Stelle die Anforderungen modifizieren könnte. Wir hätten schon Ideen.

    s,w: auf eine Option

    reduziert
  67. s Ausgabe differenzierte Binnenwanderung (45h,8A,v10.3,Z:,B:)
    (siehe roadmap 044, 059)
    !AUSGABE_GSTROM n
    (siehe Einwohner/Prognose/Berechnen/?
    Überschrift "Notiz", Link "trace items")
    Beispiel:
    !AUSGABE_GSTROM 5
    Ausgabe gstrom_roh.csv mit (unsortierten) Binnenströmen zwischen den Gebieten und gstrom.csv mit den auf Binnentypen aggregierten Binnenströmen indentisch mit Datei strom.csv.
    Die Information Binnenwanderung zwischen den Gebieten hat folgende Nachteile (siehe roadmap 044): Test der Konsistenz von gstrom_roh.csv mit strom.csv, sowie bew.csv mit dem Spalten Binnenwegzug, Binnenzugug, Innenauszug, Inneneinzug (ebenfalls differnziert nach Gebieten) durch Befehle nach der Prognose
    blackbox_test 1, 1;
    erfolgreich getestet.

    Integration in die Benutzeroberfläche:
    Einwohner/Prognose/Berechnen/Ausgabe

    [2  ] Binnenwegzugsmatrix
        0: keine
        1: differenziert nach Binnentyp (wie jetzt strom.csv)
        2: differenziert nach Quell-Gebiet und Zieltyp (gstrom_weg.csv)
        3: differenziert nach Quell-Typ und Ziel-Gebiet (gstrom_zu.csv)
        4: 2+3
        5: differenziert nach Quell- und Ziel-Gebiet (gstrom.csv)
    gstrom.csv wird am Programmende sortiert.

    Analog wurde für die Außenwanderungsmatizen zuzug.csv wegzug.csv neba.csv reaa.csv die Option Differenzierung nach Typ oder Gebiet ergänzt.

    Für

    wandelt die Gebietskennzeichen in Gebietsnummern um.

    siehe methodische Diskussion zu 086

  68. s Umlaute in csv-Dateien (12h,8A,v10.3,Z:,B:)
    Kommentare in csv-Dateien sollen die Arbeit des Anwenders erleichtern, können aber beim Einsatz von Folgeprogrammen Probleme verursachen.
    Deshalb gibt es folgende
    Optionen/Systemeinstellungen/CSV
    [v] Byte Order Mark
    Ausgabe UTF-8 Kennung (BOM) in csv-Ausgabedateien
    [v] Verwende Umlaute
    oder wandle "ä" in "ae" etc.
    Was sind die gewünschten Voreinstellungen für beide Optionen ?
    Solle Ausgabe BOM default sein ?
    Sind beide Optionen an, fragt z.B. Excel beim Öffnen einer csv-Datei nach der Codierung (utf8) und Spaltentrennzeichen (;).
    Sind beide Optionen aus, ist die Codierung "plain ASCII" und somit sowohl UTF-8 als auch ISO-8859 Latin1.
    Alternativ kann man in Systemeinstellungen/CSV
    [ 1] Kommentar mit Datum
    Kommentarzeile mit Datum und Zweck der Datei
    [ 0] Kommentar mit Datum
    die Kommentarzeilen mit Datum komplett ausschalten.
  69. s Vereinfachung Baustein P (32h,9A,v10.4,Z:m,B:)
    s,w: Die Bausteine P1 und P3 können gestrichen werden, stattdessen kann man P2 und P4 verwenden mit Untergrenze = Zielwert = Obergrenze in den Dateien eckgem und ecktyp.
    Beispiel:
    eckgem.csv für P1:
    2020;1;101;123
    
    eckgem.csv mit gleicher Wirkung für P2:
    2020;1;101;123
    2020;2;101;123
    
    eckgem.csv wie oben in verkürzter Schreibweise:
    2020;1..2;101;123
    
    eckgem.csv wie oben in weiter verkürzter Schreibweise:
    2020;*;101;123
    Arbeiten:

    Lenkungsauschuss 2018, keine Priorität

  70. s Reihenfolge Spalten Ein-/Ausgabedateien (h,A,v,Z:,B:)
    Bei den Dateien mit Außentyp (A) und Gebiet (G) / Typ (NEE, REA, QWA, ZZA) ist die Reihenfolge nicht konsistent
    Eingabe
    NEUBAUZUNEEA
    RUECKBAUWEGREAA
    WEGVGA
    WEGZQWAA
    ZUAQAZZA
    ZUVLAZZA
    ZUVGAG
    Ausgabe
    NEBAAG/ZZA
    REAAAG/QWA
    WEGZUGAG/QWA
    ZUZUGAG/ZZA
    Für die Ausgabe von gwegzug.csv wird der Index A an erster Stelle benötigt, delhalb braucht das Programm zu Einlesen von wegz000.csv die unnötige Hilfsmatrix PR4WA_. Vorschlag ist die Anpassung der Eingabedateien an die Systematik der Ausgabedateien, so dass A immer zuerst kommt

    wird nicht gemacht, da für Anwender störend

  71. t Schnittstelle zu DUVA/GIZEH (h,A,v,Z:,B:)
    Das Programm ist fertig, sobald eine Anleitung vorliegt, soll es den Anwendern zur Verfügung gestellt werden. Standardmäßig wird von SIKURS eine xml-Datei zur Beschreibung der gem-Dateien (2 Bevölkerungsgruppen, 2 Geschlechtsgruppen, 100 Altersjahre) mitgeliefert. Der Support wird von HHSTAT übernommen.
  72. t Suchfunktion für Online-Hilfe (19h,8A,v10.3,Z:,B:)
    SIKURS-Hauptmaske/?/Hilfe/Suchen oder <Strg>f
    testweise auf roadmap ausgeweitet
  73. t Verbesserung Steuerung Layout Pyramiden (21h,8A,v10.3,Z:,B:)
    Die Layoutparameter von
    Visualisierung/Pyramiden/Einzelpyramiden
    [ ] Legende für Bevölkerngsgruppen anzeigen
    [BG     ] Titel für Legende Bevölkerungsgruppen
    Legende und Farbe der Bevölkerungsgruppen
    [Deutsch  ;rgb 'blue' ;0.4  ] 1
    [Ausländer;rgb 'green';0.4  ] 2
    Legende für Geschlechtsgruppen
    [m     ] 1
    [w     ] 2
    wurden in die ini-Datei aufgenommen und werden auf für genutzt.
    [5 ] Anzahl Altersgruppen pro Balken
    Darstellung von sehr dünn besetzten Pyramiden nach Aggregation von 100 auf 100/5=20 Altersgruppen (Beispiel mit 1, 2, 5, 10, 20, 25, 50 Altersgruppen pro Balken)
  74. s Kontrolle der Bausteinkombination E1, D1/2, M1/2 (h,A,v,Z:m:8,B:)
    m,h: Zu prüfen ist, ob bei den unterschiedlichen Kombinationen die vorgegebenen Werte in eckreg.csv eingehalten werden. Gegebenenfalls ist der Text im Handbuch anzupassen.

    wib: bei Bedarf Hinweise/Warnungen/Fehlermeldungen im Protokoll verbessern oder Algorithmen anpassen, falls man Anpassungsverhalten verbessern kann

  75. s Einschränkung der Suche auf vorgegebene Binnentypen als Quellen für den Neubauerstbezug (Baustein D) (24h,11A,v10.4,Z:m:32,B:)
    m,h: Beim Baustein D1 Neubau, kann der Anwender vorgeben, in welchem Umfang die einzelnen Außen­typen am Einzug in Neubaugebiete beteiligt sind. Eine vergleichbare Vorgabe wie für den Außenzuzug in Neubaugebiete sollte auch für den Binnenzuzug in Neubaugebiete möglich sein. Bei der Suche nach den Quelltypen für den Binnenzuzug in Neubaugebiete werden derzeit alle Binnentypen einbezogen. Es ist sinnvoll, alternativ die Suche auf eine vom Anwender vorgegebene Auswahl an Binnentypen mit Angaben in einer neuen Datei NeubauzuTYB beschränken zu können.

    Derzeit werden die Anteile der Typen an den genannten Wanderungen der demografischen Gruppe aus der Binnenwanderung aller Binnentypen und dem Anteil aller Binnentypen am Zuzug- bzw. Wegzug der demografischen Gruppen ermittelt. Das halte ich für ungünstig, weil bei Rückbauten und bei Neubauten (je nach Neubautyp) sicherlich nicht die Typen mit den gehobenen Standorts in die Quantifizierung einbezogen werden sollten. Verkürzt: Ich schlage vor, die Basis für die Berechnungen problembezogen vorgeben zu können. Ich schlage nicht vor das Schema der Berechnung zu ändern, sondern als Basis der Quantifizierung nicht die gesamte Binnenwanderung zwischen allen Typen zu verwenden, sondern die Anteile der Typen für den Rückbaubinnenzuzug und Neubaubinnenauszug aus den Wanderungsdaten zwischen ausgewählten Binnentypen zu berechnen.

    Arbeiten

    1. Datei Gewichte Quellen Neubauerstbezug Binnetypen
      NEBGQT.CSV:
      #Jahr;tynee;tyb;Gewicht
      2020;1;1;1
      2020;1;2;0,8
      2020;1;3;0
      2020;1;4;1,4
      2020;2;1;2
      2020;2;2;1,8
      2020;2;3;0,1
      2020;2;4;1,0
      oder ohne Gewichtung (=lauter gleiche Gewichte):
      #Jahr;tynee;tyb;Gewicht
      *;*;*;1
    2. Anpassung Dateinamen für "Neubauerstbezug":
      altneu
      NEBQ0000NEBQ0000demografische Quoten je Neubauerstbezugstyp (D1)
      NEUBAUBNEBBAnzahl Neubauerstbezugsbevölkerung je Gebietseinheit (D1)
      NEUBAUZUNEBQQAAnteil des Außenzuzugs am Neubauerstbezug je Neubauerstbezugstyp (D1)
      NEBGQTGewichte Binnenauszug je Binnentyp und Neubauerstbezugstyp (D1)
    3. Handbuch erweitern (hst)
    Wenn sich die Erstellung der Datei NEBGQT mit der Differenzierung nach tynee und tyb als schwierig erweisen sollte, dann könnte die mögliche Erweiterung (siehe option($BSD)) mit einer Datei NEBGQR mit der Differenzierung nach ngz helfen.
  76. s Einschränkung der Suche auf vorgegebene Binnentypen als Ziele für den Rückbauendauszug (Baustein E) (22h,13A,v10.5,Z:m:32,B:)
    m,h: Beim Baustein E1 Rückbau, kann der Anwender vorgeben, in welchem Umfang die Außentypen als Ziele des Wegzugs aus den Rückbaugebieten beteiligt sind.
    Eine ähnliche Vorgabe sollte auch auf die Binnentypen als Ziele des Binnenauszugs aus den Rückbau­gebieten möglich sein, indem die Suche nach den Binnenzieltypen des Binnenauszugs aus Rückbaugebeiten Binnentypen/Gebiete gewichtet werden.
    Erläuterung siehe Punkt 95.

    Arbeiten

    Im Prognoseprotokoll wirken sich die Gewichte von reagzt.csv bei P0/P2 auf GR2IBT DR5IB DR3IBR DG4IBR BGEM aus.

    Wenn sich die Erstellung der Datei REAGZT mit der Differenzierung nach tyrea und tyb als schwierig erweisen sollte, dann könnte die mögliche Erweiterung (siehe option($BSE)) mit einer Datei REAGZR mit der Differenzierung nach ngz helfen.

    Rückbauendauszug könnte bei A1 M2 K0 verbessert werden (siehe roadmap 110)

  77. s Überarbeitung Ablaufdiagramm im Handbuch (h,A,v10.5,Z:m:16,B:)

    wib: Das Diagramm Prognoseablauf 10.3 ist nützlich für Handbuch, Schulungs-, Werbefolien und Vorträgen von Anwendern über durchgeführte Prognosen.
    hst hat Version 10.5 erstellt

  78. s Verzicht auf Kontrolle zudq und zuaq bei Auswahl Baustein K0 (5h,9A,v10.3,Z:m:3,B:)
    m,h: Die Hinweise, Fehlermeldungen zu zuaq und zudq sollen bei Bausteinkombination mit K0 entfallen.
    wib: Bei K0 und
    B1M2T1 wird der Außenzuzug (statt aus zuvol) aus eckreg abgeleitet, für die Verteilung auf die demografischen Gruppen wird zuaq benötigt, das Handbuch wurde ergänzt
    A1M2T1 wurde zuaq unnötig gelesen, dies wurde korrigiert
  79. s reftyp.csv: Typ 0 = keine Bewegung (13h,10A,v10.4,Z:,B:)
    Aufnahme von Typ 0 in Referenzdatei für alle Typen: 0= es finden keine Bewegungen bei diesem Typ/Gebiet in der entsprechenden Bewegungsart statt!
    wib: erster Umsetzungsversuch mitte 2018 ist gescheitert
    neue Lösung:
    Beispiel siehe DSGG und roadmap 001 Erweiterung Demografische Sondergruppen
  80. h Einlesen von zr_gem.csv in Haushalteprognose (23h,10A,v10.4,Z:,B:)
    blh: HHPROG liest bei der Prognoseberechnung GEM-Dateien aus einer SIKURS-Prognose ein und erstellt dann für jede gefundene GEM-Datei zwischen Startjahr und Endjahr eine Haushalteprognose.
    Wunsch: den Einlese-Prozess dahingehend zu erweitern, dass HHPROG auch eine zr_gem-Datei verarbeiten kann, d.h., eine mit dem Zeitreihentool aggregierte GEM-Datei für mehrere Jahre? Das wäre sehr nützlich, da Haushalteprognosen häufiger auf einer höheren Aggregationsebene erstellt werden als Bevölkerungsprognosen, sowohl demographisch als auch räumlich.

    wib: In der Startmaske der Haushalteprognose werden die Felder

    [2019  ] Startjahr
    [2030  ] Endjahr
    entfernt.
    Im Eingabeverzeichnis befinden sich zr_gem.csv, sowie zq.csv und hdsg(a/r).csv mit Jahr in Spalte 1.
    Das Programm liest die Dateien und ermittelt die darin gefundenen Jahre.
    Für alle Jahre aus zr_gem.csv wird eine Prognose gestartet mit gleichem oder früherem Jahr für hdsga.csv hdsgr.csv zq.csv.
    Ein Update des Benutzerhadbuchs Haushalteprognose sollte möglichst durch die Autorin ahk erfolgen.
    Als Folge musste die Standardprognose nachjustiert werden: Eine Prognose erstelle aus der Ausgangsdatei gem2019.csv die Ergebnisdateien gem2020.csv .. gem2029.csv.
    Wie kann man für die Haushalteprognose ein Aggregat zr_gem.csv aus den Ergebnisdateien ohne die Ausgangsdatei erstellen ?
    1. Einwohner/Prognose/Berechnen
      [1] Aggregation Zeitreihe [gem    ]
      [reftyp 1 12   ] Gebietskennzeichen
      [keine         ] Bevölkerungsgruppe
      [keine         ] Geschlechtsgruppe
      [keine         ] Altersgruppe
      erstellt das gewünschte Aggregat ohne Ausgangsdatei
      (Programm wurde erweitert
      1 gem-Ergebnisdateien
      2 gem-(Ausgangs + Ergebnis)-Dateien)
    2. Einwohner/Prognose/Berechnen/Notiz
      !option($GEMALL 1)
      erzeugt als Ausgabdatei zr_gem.csv ohne die Ausgangsdatei
      Mit
      • Ergebnis/Zeitreihe/Start
        +-Aggregation über----------------------+
        |               Jahr [keine            ]|
        | Gebietskennzeichen [reftyp 1 12      ]|
        | Bevölkerungsgruppe [alle Ausprägungen]|
        |  Geschlechtsgruppe [alle Ausprägungen]|
        |       Altersgruppe [keine            ]|
        +---------------------------------------+
        [3 ] Dateiauswahl (manuell)
      • wähle Eingabedatei zr_gem.csv
      kann man das gewünschte Aggregat erstellen.
      Nachteil: für Indikatoren und Reporting fehlen die Ausgabedateien gem2019.csv ...
    3. Einwohner/Prognose/Berechnen
      erzeugt Ergebnisdateien
      • Zeitreihe/Start
      • [2] Dateiauswahl
      • wähle Aggregation
      erstellt das gewünschte Aggregat.
    Welche Methode soll man dem Anwender empfehlen ?
  81. s Variablennamensystematik (9h,11A,v,Z:m:14,B:)
    hst: Korrektur von Abweichungen der Variablennamen im SIKURS-Quellcode und folglich Prognoseprotokoll von der Namenssystematik für die Dokumentation des SIKURS-Programms in Excel (roadmap 053)

    wib: auf eine entsprechende Anpassung im Programm-Quellcode wird aus Aufwands- und Risikogründen vorläufig verzichtet.
    Für die Anpassung der Namen im Prognose-Lauf-Protokoll wird stattdessen folgendes umgesetzt:
    Enthält das Eingabeverzeichnis der Prognose eine Datei "Excel-Beispiel Variablennamen-Anpassung:

    EVA.csv:
    #Programmquelle;Protokoll
    BR30;BR40
    ...
    dann werden im Prognoseprotokoll die Namen der ersten Spalte (z.B. BR30) durch den Namen der zweiten Spalte (BR40) ersetzt.
    Die Datei EVA.csv kann vom Bearbeiter von roadmap 053 mit Hilfe von SIKURS Datenflußgraph und
    SIKURS Hauptmaske/?/Hilfe/Handbuch/Variabelnnamen
    erstellt und gepflegt werden.
    Wenn roadmap 053 abgeschlossen ist, kann die Datei EVA.csv für ein Angebot diese Variablennamen im Qullcode zu ändern, genutzt werden.

    Zusätzlich wurden SIKURS-Eingabedateien von SIKURS-EXCEL.rar so überarbeitet, dass sie als "Orakel-Regressionstest" geeignet sind und als SIKURS-EXCEL_10_4_0_947.rar zur obigen Anpassung der Namen an hst übergeben.

  82. s Indikatoren Prognose verbessern (21h,11A,v10.4,Z:,B:)
    RSR Rohe Sterberate
    Herr Krenkel hat einen Fehler gefunden und sehr viele Indikatoren nachgerechenet.
    Der Fehler wurde behoben.
    Kontrollrechnung mit bewgem.csv:
    RSR = 1000 * Tod / (Ausgangsbevölkerung ohne Geburt + Geburt)
    AGR Allgemeine Geburtenrate
    Bei AGR rechnet man die GFF (Anzahl gebährfähige Frauen) und Anzahl Kinder mit dem Intervall [GFFU .. GFFO] Untergrenze .. Obergrenze gebärfähiger Altersbereich.
    Die Berücksichtigung der Alterung der gem-Datei wurde ergänzt.
    Kontrollrechnung mit bew.csv und gem2009.csv
    AGR = 1000 * bew(2010,Geburt) / gem(2009,weiblich,[GFFU-1 .. GFFO-1])
    Differenzierung der Indikatoren
    die Parameter der Benutzeroberfläche bleiben bis zum nächsten Start erhalten
    RGR Rohe Geburtenrate, BRRagg Bruttoreproduktionsrate, ZGZagg Zusammengefasste Geburtenrate
    Fehler beseitigt
    PA Perzentilalter
    wurde entfernt, das QA Quantilalter Obermenge von PA ist
    QA Quantilalter
    Bei Quantil 10 heißt Ausgabedatei QA10.csv, damit kann man durch mehrere Läufe verschiedene Quantil-Abstände ansammeln
    ZGZagg BRRagg hwMO hwME hwVAR
    wurde bei gewählter Differenzierung ohne Geschlechtsgruppe unter HTML-Tabellen nicht ausgegeben
    LEagg Lebenserwartung in gewählter Differenzierung
    LEagg wird aus gem und bew berechnet. Wenn gem in der gewählten Differenzierung Altersgruppen mit Nullwerten enthält, dann kann LEagg nicht exakt berechnet werden, eine entsprechende Warnung wird ausgegeben
    (siehe auch 098 Indikatoren destatis)
    Frage von Herrn Krenkel:
    stimmt die Berechnungsmethode (Problem mittlere Bevölkerung)?
    Definitionen: Bei der SIKURS-Prognose wird keine mittlere Bevölkerung eines Jahres verwendet.
    siehe Benutzerhandbuch Seite 8:
    Die Anfangsbevölkerung (gem2009) vom 31.12.2009 wird gealtert.
    Mit fruc2010 werden die Geburten berechnet und zu Altersgruppe 0 addiert.
    Damit hat man die Ausgangsbevölkerung des Prognosjahres 2010 auf die dann alle weiteren Raten (strb, wegz, ...) angewendet werden.
    SIKURS nutzt also diese Ausgangsbevölkerung statt einer mittleren Bevölkerung
    Entsprechen werden bei der Berechnung der Indikatoren die Formeln verwendet: Alternativ kann man hoch aggregierte RGR und RSR aus bewgem ableiten.
  83. s Fehler bei dünn besetzten gem-Eingabedateien (4h,11A,v10.4,Z:,B:)
    Bei SIKURS 10.2 bis einschließlich 10.4.0.938 gibt es einen Fehler bei dünn besetzten gem-Eingabedateien, bei denen weniger als 50% der Altersgruppen besetzt sind.
    Das erste Prognosejahr wird richtig berechnet, aber die Endbevölkerung wird falsch als Ausgangsbevölkerung der Folgejahres übergeben, was zu falschen Prognoseergebnissen ab den 2 Prognosejahr führt.

    workaround:

    SIKURS Hauptmaske/Optionen/Systemenstellungen/Allgemein
    ...
    [ ] Log-Datei
    !SPARSEGEM 0
    Damit wird für alle Prognosen der Fehler verhindert.

    Wenn Sie nur wenige Prognosen mit dünn besetzten gem-Eingabedateien haben, könnten sie stattdessen bei diesen Prognosen mit

    SIKURS Hauptmaske/Einwohner/Prognose/Berechnen/Notiz
    !SPARSEGEM 0
    den Fehler verhindern.

    Ab SIKURS 10.4.0.939 ist dieser Fehler beseitigt und Sie können auf den Eintrag !option($SPARSEGEM 0) (in neuer Syntax) verzichten.

  84. s Tools vor und nach Prognose starten und Schnittstelle externe Programme (43h,13A,v10.4,Z:,B:)
    1. Tools automatisch vor und nach einer Prognose starten
      Um z.B. die Indikatoren automatisch nach jedem Prognoselauf berechnen zu können, könnte man das Menü:
      [v] Berechne Indikatoren
      Differenzierung der Indikatoren
      [2  ] Gebiet
      ....
      Ausgabeformat
      [v] Browser
      [v] CSV
      als neuen Reiter "Indikatoren" in
      Einwohner/Prognose/Berechnen
      aufnehmen.
      Das Protokoll Prognose würde dann am Ende vor "Ende Prognose" um einen Link
      Inidkatoren
      erweitert, der auf das Protokoll "indikator/index.html" verweist.
      Die Speicherung der Parameter für die Indikatoren erfolgt für alle Prognosen zentral in der Datei sikurs.ini.
      Sollte die Speicherung in die ini-Datei der aktuellen Prognose verlegt werden?

      Bei Reporting könnte man ähnlich wie bei Indikatoren vorgehen.

      Eine Zeitreihe für gem-Dateien kann man bereits bei der Prognose anstoßen, weitere Zeitreihen muss man manuell nach der Prognose starten.
      Damit könnte man nur jeweils einen Indikator, Report, Zeitreihe anfodern und nicht z.B. Zeitreihen von gem und gebam jeweils in voller Differenzierung und verschiedenen Aggregationen.

      Viele neue Reiter in der Startmaske Prognose würden diese überladen.
      Deshalb wurde stattdessen
      Einwohner/Prognose/Berechnen/Befehle
      nach der Prognose
      um Befehle indikator, report, zeitreihe, xyplot, matrix, hhprog, ... erweitert
      siehe Änderungshistorie
      (siehe auch Einwohner/Prognose/Berechnen/?/Befehle)

    2. SIKURS-Funktionen aus einem anderen Programm (bat-Datei, powershell, Julia, Python, R, jupyter, ...) aufrufen
      Eine Prognose lässt sich z.B. aus R (Anforderung Mirko Jatsch, Statistisches Landesamt Bremen) wie folgt starten:
      system("C:\...\sikurs\App\sikern64.exe sikern -c -w C:\...\sikurs -d D:\...\prognose_1\ -v v_1")
      Der switch -c sorgt dafür, dass die festgelegten Tools vor und nach der Prognose mitgestartet werden, man kann jedoch ebenso explizit z.B. "srnvle" (Sterberaten nach Vorgabe Lebenswerwartung) aus R starten:
      system("C:\...\sikurs\sikurs64.exe -w C:\...\sikurs -e 'run(q(-e),q(srnvle(q(strb2020),57,1)))'";
      mit den Sterberaten strb2020, 57 Iteration und Ausgabe Nullwerten).
      Im Verzeichnis von strb2020 muss dann die Datei eckle.csv und optional ecklew.csv sein.

      Noch ein ausführlicheres Beispiel zu Start eines Tools und einer Prognose von einem cmd-script:

      :: batch.bat [p [d]]
      :: start sikurs tool und Prognose im batch modus
      set ROOT=C:\trunk\sikurs
      set BSP=beispiel\tools\raten
      if "%~1" == "" (
        :: SIKURS GUI Programm
        set PROG=%ROOT%\sikurs64.exe
      ) else (
        :: SIKURS Perl GUI [ im Debugger ]
        set PROG=call sikurs.bat %2
      )
      :: setzte ini-Datei
      %PROG% -w %ROOT% -e "ini(q(%ROOT%\%BSP%.ini))"
      :: Sterberaten nach Vorgabe Lebenserwartung
      %PROG% -w %ROOT% -e "srnvle(q(strb2000),57,1)"
      :: Prognose
      %ROOT%\App\sikern64.exe sikern -c -w %ROOT%
      :: Zeitreihe
      %PROG% -w %ROOT% -e "zeitreihe"
      :: Ausgabe Protokoll am Bildschirm
      set PROT=%ROOT%\%BSP%\prot.tmp
      if exist %PROT% (
        type %PROT%
        del  %PROT%
      ) else (
        echo %PROT% not found
      )
      

      Aus
      Einwohner/Prognose/Berechnen/Parameter
      könnte man den Abschnitt "Zeitreihe" streichen, da es
      2 Alternativen gibt:
      Befehle
      nach der Prognose

      zeitreihe 'zr_gem', [qw($i $i $i $i $i)];          # Alternative 1
      subsystem 'zrgem' -o 'zr_gem' -a '$i,$i,$i,$i,$i'; # Alternative 2

      weitere Befehle vor der Prognose (Aufbereitung der Eingabedaten) und nach der Prognose (Weiterverarbeitung Ergebnisdaten) könnten auf Anforderungen von Anwendern ergänzt werden.

    3. Integration der SIKURS-Funktionen in eine Scriptsprache z.B. R
      Mit Rcpp lassen sich C++-Funktionen so in R integrieren, als wären sie eine in R geschriebene Funktion aber mit der höheren Performanz von C++:
      Programme mit den für SIKURS typischen Operationen auf 5-dimensionalen Matrizen dauern in R (bench.R) 120 mal länger als in C++ (bench.cpp)
      R mit SIKURS ließe sich dann in Jupiter integrieren. Ähnliches gilt für Scriptsprachen Python, Julia, ...
    4. Verarbeite SIKURS-Ausgabedateien mit externen Programmen (z.B. R, Python, Julia)
      Plotte Jahressummen der Datei zr_gem.csv mit
      • R mit weiteren Beispielen R for Data Science:
        gem <- read.csv("zr_gem.csv", header=FALSE, sep=";", dec=",", comment.char="#")
        agg <- aggregate(gem$V6, by=list(jahr=gem$V1), FUN=sum)
        png(filename="zr_gem.png")
        plot(agg$jahr, agg$x, type="B", xlab="Jahr", ylab="Bevölkerung")
        dev.off()
      • Julia mit weiteren Beispielen Statistics with Julia:
        using DataFrames, CSV, Plots
        zr_gem = DataFrame(CSV.File("zr_gem.csv"; decimal=',', delim=';', comment="#", header=0))
        zr = combine(groupby(zr_gem, [:1]), :6 => sum)
        gr() # GR plot backend
        p = plot(zr[!,:1], zr[!,:2], title="Entwicklung", label="Tübingen", legend=:botomright, lw=3, xlabel="Jahr", ylabel="Bevölkerung")
        savefig(p, "zr_gem.png")
        
      • Python:
        import pandas as pd
        import matplotlib.pyplot as plt
        zr_gem = pd.read_csv('zr_gem.csv', header=None, sep=';', decimal=',', comment='#', prefix='C')
        zr = zr_gem.groupby(['C0'])['C5'].agg('sum')
        plt.plot(zr);
        plt.savefig('zr_gem.png')
        
        # for Jupyter notebooks use bokeh visualisation library:
        from bokeh.plotting import figure, output_file, show
        ...
        output_file('zr_bokeh.htm')
        plot = figure(title = 'Prognose', x_axis_label = 'Jahr', y_axis_label = 'Bevölkerung')
        plot.line  (zr.index, zr.values)
        plot.circle(zr.index, zr.values, size = 8)
        show(plot)
        zr_bokeh.htm
        Prognose und Visualisierung mit jupyter/Python
  85. s Neuer Algorithmus Anpassung Außenwegzug (17h,12A,v10.5,Z:m:15,B:)
    !option($M2NEU 1) Beschreibung neues default-Verfahren aus BG3GG2/A1I1K4M2T1W1.xslx im Benutzerhandbuch:
    Anpassung Außenwegzug DG4WA(GZ,BG,GG,AG) an Eckwert eckreg.csv (BR21(BG,GG,AG) auf Gebietsebene
    !option($M2NEU 0) startet zum Vergleich das alte Verfahren:
    Anpassung DR3WA(TYQWA,BG,GG,AG) an eckreg.csv (BR21(BG,GG,AG) auf Typenebene
    Siehe auch roadmap 053.16.
    Das neue Verfahren erreicht bei ../beispiel/baustein/A1E2I1K5M2R2S2T1 den Zielwert aus eckreg erst nach Anpassung
    2010..2011;3;2;2;1500 -> 1400
    Das Problem wurde durch Prüfung der angepassten Außenwegzüge (DU3WA) auf umgekehrtes Vorzeichen behoben.
    Das alte Verfahren wurde nach Erkenntnissen des neuen Verfahrens verbessert und ist einziges Standardverfahren
  86. s Ausschluss Altersbereiche im Glättungstool (12h,11A,v10.4,Z:,B:)
    Aktuell können bei der Glättung nur die Randbereiche ausgeschlossen werden, es wäre hilfreich, verschiedene Altersbereiche (Beipiel ?) in einem Menü auswählen zu können.

    Änderung in der Maske "Pyramide - Glätten über das Alter

    Eingabedaten
    [00 ][99 ] Altersbereich
    ...
    Glättungsparameter
    [01 ][98 ] Zu glättender Altersbereich
    ersetzen durch
    Eingabedaten
    [0:99  ] Altersbereich
    ...
    Glättungsparameter
    [1:30,21:60,91:98    ] Zu glättende Altersbereiche
    Das Programm prüft dann, ob die zu glättenden Arbeitsbereiche eine Teilmenge von
    Eingabedaten
    [00 ][99 ] Altersbereich
    sind und glättet dann über die vorgegebenen Bereiche.
    Die Lücken der Atersbereiche (0,61:90,99) werden nicht, überlappende Alterbereiche (21:30) doppelt geglättet.
    (siehe test/smooth_range,pl)
  87. s Dokumentation Anpassung Wanderungsströme (5h,12A,v,Z:m:7,B:)
    Auf Anforderung von Herrn Stein beim Lenkungsauschuss 2019 wurde das Dokument SIKURS_Anpassung_Wanderungsstroeme.pdf erstellt
  88. s Verbesserung Rückbauendauszug bei A1 M2 K0 (6h,12A,v10.5,Z:m:6,B:)
    Bei Bausteinkombination A1 M2 Angleichung der Berechnung des Außenwegzugs bei K0 an die Berechnung bei K1-K6 mit besserer Verteilung jeder demografischen Gruppe auf die Typen Quellen Außenwegzug (TYQWA)
    (von hst dokumentiert mit Beispiel A1I1M2T1-V1043/V1055)
    Siehe roadmap 096
  89. s Anmerkungen und Verbesserungen Programm nach Review Stein-Handbuch (9h,14A,v10.5,Z:,B:)
    1. Kapitel03/Prognose03_01/AlleDateien/Prognose03_01.ini T0
      Kapitel03/Prognose03_01/AlleDateien/Prognose03_02.ini T0 eckle ecklew hadwiger_synthese
          Vereinfachte Syntax für ecklew.csv eingebaut:
          #TYS;BG;  GG;AG;Formel;# Kommentar
             1; 1;1..2;99;$s    ;# keine Anpassung Sterberaten
      Kapitel06/Prognose06_01/AlleDateien/Prognose06_01.ini T1K3
      Kapitel06/Prognose06_02/AlleDateien/Prognose06_02.ini T1K3B1N3
      Kapitel06/Prognose06_03/AlleDateien/Prognose06_03.ini T1K2B1M1
      Kapitel08/Prognose08_01/AlleDateien/Prognose08_01.ini T1K3A1M2
      • Eintrag RELEASE=10.2 ist für SIKURS 10.2 statt 10.4
      • Dateien z.B. reftyp.csv sollten in utf8 statt latin1 codiert sein
      • evtl. Gründe für Hinweise und Warnungen in den Protokollen beseitigen, z.B.
        Hinweis 1: Datei enthält ab Zeile 4 1400 endende Strichpunkte
    2. Kapitel07/AlleDateien/daten_clusteranalyse_kmedoids_index.htm enthält absolute Links auf z.B. href="file:///E|/Kapitel05/daten_clusteranalyse_vec.htm" Statistik, diese werden nach Programmänderung in relative Links umgewandelt, damit man die Dateien verschieben kann
    3. Kapitel09/AlleDateien/gem2016.csv
      Die 72 Gebiete sind teilweise sehr dünn besetzt, man sollte im Text auf die Problematik zu kleiner Gebiete hinweisen.
    4. Seite 26 Anmerkung:
      So können Sie ein Demografisches Sonder-Gebiet von der Simulation von Altersgruppenfortschreibug, Geburten, Sterbefällen oder Wanderungen ausnehmen, wenn Sie in der der Bewegungsart zugehörigen Spalte einem Gebiet den Typ „0“ in der reftyp.csv zuteilen.
    5. Seite 30: Datei fruc0000.csv , d.h. Fruchtbarkeitsraten zur Zeit von Christi Geburt hält das Programm bei einer Prognose ab 2017 für nicht plausibel, stattdessen z.B. fruc2010.csv
    6. Programmiermeinung:
      1. Beim Glätten würde ich den Schwerpunkt anders setzten:
        Wenn die Datenlage z.B. zu Binnenwanderung zu dünn für Raten ist, dann sollte man nicht versuchen durch extrem aufwändige Savitzki-Golay-Glättungen unterschiedlicher Altersgruppen diese Tatsache zu "verschleiern", sondern z.B.
        • die Anzahl Binnetypen reduzieren und/oder
        • (nach Hanika:) die Altergruppen in für Binnenwanderung relevante Klassen einteilen (z.B. Kleinkinder, Schüler, ..., Alte) und allen Kleinkindern (evtl. beiden Geschlechts) die gleiche Wegzugsrate geben
      2. Typisierung
        Neben der Typisierung nach Sozio-ökonomischen Gesichtspunkten kann man die Typen in reftyp aus den Makrodateien am Beispiel Geburten wie folgt ableiten:
        1. Berechne SIKURS-Eingabedaten aus Makrodateien:
          • [v] Geburtenraten (FRUC) (+ STRB + ...) auswählen
          • [ ] Gebiete auf Typen abbilden
            damit die Geburtenraten Gebiets-, nicht typenspezifisch berechnet werden.
          • [v] Bevölkerungsgruppen zusammenfassen
          • [v] Geschlechtsgruppen zusammenfassen
            (neue Option ab SIKURS 1096)
        2. fruc2018_roh.csv:
          #Gebiet;Bevölkerungsgruppe;Altersgruppe;Geburtenrate
          40;1;19;0,0555555555555556
          40;1;20;0,0416666666666667
          40;1;21;0,04
          ...
          49;1;42;0,0476190476190476
          49;1;43;0,0266666666666667
        3. Berechne Indikatoren der Geburtenraten
          • Umbenennen fruc2018_roh.csv -> fruc2018.csv
          • Berechnen hadwiger_analyse.csv
          hadwiger_analyse.csv:
          #Jahr;Gebiet;Bevölkerungsgruppe;F;MODE;MEAN;VAR
          2015;40;1;1,79443114020087;28,5;30,3835532417762;31,9393377600142
          2015;41;1;3,19166666666667;19,5;26,5130548302872;35,5168008507798
          2015;42;1;0,5;28,5;28,5;0
          2015;43;1;1,98093137729293;21,5;29,6946671393791;55,0228302353985
          2015;44;1;1,50625049985304;31,5;32,8310943156691;19,7130519951109
          2015;45;1;1,67332209161757;26,5;29,3158260929136;36,3913084714918
          2015;46;1;1,5463420931671;26,5;31,1433249438001;32,0838705398792
          2015;47;1;1,0487234987235;27,5;32,1749929878968;24,6921784321768
          2015;48;1;1,50419623233443;30,5;31,5204396327853;26,0464487109803
          2015;49;1;1,60169643008236;34,5;32,6180117854993;26,0174243907413
        4. Clusteranalyse
          • Entferne Spalten Jahr, Bevölkerungsgruppe aus hadwiger_analyse.csv
          • Clusteranalyse hadwiger_analyse.csv
            [v] Distanzmatrix Vektorelemente
            (neue Option, damit kann man überprüfen, ob man einzelne Gebiete auch einem anderen Typ zuordnen könnte)
          • #Gebiet;Cluster
            40;3
            41;1
            42;2
            43;1
            44;3
            45;3
            46;3
            47;3
            48;3
            49;3
        5. Eintragen der Cluster in die Datei reftyp.csv Spalte Geburt (Sterbefälle, ...) im Verzeichnis der Makrodateien
        6. Erneut Berechne SIKURS-Eingabedaten aus Makrodateien:
          • [v] Geburtenraten (FRUC) (+ STRB + ...) auswählen
          • [v] Gebiete auf Typen abbilden
          • [ ] Bevölkerungsgruppen zusammenfassen
          • [ ] Geschlechtsgruppen zusammenfassen
          fruc2018_roh.csv:
          #Typ Geburtenraten;Bevölkerungsgruppe;Altersgruppe;Rate
          1;1;20;0,125
          1;1;25;0,133333333333333
          1;1;32;0,142857142857143
          1;1;33;0,117647058823529
          1;1;38;0,142857142857143
          1;1;40;0,142857142857143
          1;1;44;0,111111111111111
          1;2;19;0,5
          ...
          3;2;40;0,0555555555555556
          3;2;41;0,0384615384615385
          3;2;42;0,0166666666666667
          Bei Bedarf glätten und für die Prognose verwenden
      3. andere Differenzierung der Typen (Geburten-, Sterbe-, Wegzugs-, ...-raten)
        Die Raten sind nach Typ und Bevölkerunggruppe differenziert.
        Wenn man in reftyp die Typen ebenso nach Bevölkerungsgruppe differnzieren würde, dann könnte es für BG 1 einige Cluster (Juppies, ..., Rentner) und für BG andere Cluster (Gastarbeiter, ..., Asylbewerber), anstatt der jetzigen diffusen Mischgruppen "Juppies mit kleinem Anteil Asylbewerber) geben
        reftyp.csv:
        #GKZ;BG;TYG; ...
        1001; 1;  3; ...
        1001; 2;  5; ...
        ...
        9404; 1;  2; ...
        9404; 2;  7; ...
        Für die Visualisierung der Typen als Karte bräuchte man dann (Anzahl Typspalten * Anzahl Bevölkerungsgruppen) thematische Karten.

        Die Namen der Gebietseinheiten würde man in eine neue Tabelle auslagern

        refname.csv:
        #GKZ;"Name"
        1001;"Bogenhausen"
        ...
        9404;"Hasenbergl"
      4. Bei der Verwendung der Prognoseparameter Geburten-, Sterbe-, Wegzugs-, ..., Raten, Außenzuzugs-Zahlen und Quoten sowie weiterer Eckwerte und Gewichte gibt es zwei Möglichkeiten für die Verwendung der Parameter für den Prognosezeitraum
        • konstant
          Berechnung der Parameter möglichst gemittelt über mehrere Jahre, die man dann bei der Prognose über einen (nicht zu langen Zeitraum) konstant läßt.
        • dynamisch
          Man analysiert Kennzahlen z.B. TFR und Modalwert einer Zeitreihe von Geburten aus der Vergangenheit, extrapoliert die Kennzahlen in die Zukunft und passt damit die Geburtenraten für den Prognosezeitraum an. Da jede Extrapolation unsicher ist, empfiehlt sich eine Variantenprognose mit z.B. Varianten niedrige, mittlere und hohen Annahmen.
      5. Quellenangaben und ein Index fehlen
    7. Offene Fragen
      1. Wie soll das Stein-Handbuch incl. Beispiele gepflegt werden, d.h. an
        • die jährliche Weiterentwicklung des Programms angepasst werden?
        • an Anregungen von Benutzern und aus Kursen?
      2. Wie ist die Auswirkung auf vorhandene Dokumente
        • SIKURS-Handbuch:
          Soll dieses gekürzt werden, z.B. die Beispiele entfernt werden ?
        • SIKURS Hauptmaske/?/Beispiel-Eingabedaten entfernen ?
        • SIKURS Kurzbeschreibung?
  90. s Wartungsarbeiten (85h,13A,v10.5,Z:,B:)
    1. (Westholt, Osnabrück) erkenne falsche Dateicodierung (UTF-16 oder UTF-32) in Perl und C++ (5h)
    2. erlaube endende Kommentare in CSV-Eingabedateien (3h)
      2020;1;1;0;0,123;# diesen Wert bitte überpüfen
    3. Katharina Wolf Rostock 12.08.2020
      Leider stimmen die generierten Dateien zu den demografischen Sondergruppen und den Nebenwohnlern auch nach Fehlersuche und Absprache mit Frau Hohenberger-Krieg immer noch nicht. Ich habe mir jetzt beholfen, indem ich beide Dateien (hnws und hdga) selbst mit den korrekten Zahlen erstellt habe. Jetzt scheint die Prognose ohne Probleme durchzulaufen. Wir sind dennoch irritiert, dass die Ergebnisse nicht so gut mit unseren Zahlen aus der Haushaltegenerierung zusammen passen, bzw. eine Abweichung in ganz bestimmten Gruppen zu sehen ist. Die Abweichungen sind in der letzten Spalte der folgenden Tabelle zu sehen, es scheint ein Problem mit den 2-Personen-Haushalten zu geben.
    4. Berechnen Sterberaten nach Vorgabe Lebenserwartung (5h)
      Die SIKURS-Betaversion kennt 3 Berechnungsmethoden für die Lebenserwartung
      1. Summe akkumulierte Überlebenswahrscheinlichkeit (SIKURS 8.3)
      2. Summe akkumulierte Überlebenswahrscheinlichkeit + 0,5 (SIKURS 8.4)
      3. destatis Methode (nach SIKURS 8.4.1035)
      Je nach gewählter Methode muss die Datei eckle angepasst werden.
      Ein Anwender oder Methodenexperte sollte auswählen, welche der 3 Methoden fest eingebaut werden soll.
    5. Korrektur (Katharina Wolf Rostock) person.csv bei hhprog-Prognose mit Testbeispiel BLH (17h)
      Die Summe über HDO und PDO von person.csv wich von der aggregierten Summe von GEM ab.
      In Tabelle "Übersicht zum Zusammenhang zwischen prognostizierten Personen- und Haushaltetypen":
      In Altersgruppe <35 ist ZPN != ZPN2 + ZPN3 + ZPN4
      Fehler korrigiert.
    6. hhprog: unterstütze Verzeichnisnamen mit Umlauten (2h)
    7. hhprog: Prognose, Protokoll B2.5, PHG, UZPH verbessert
    8. hhprog: Wenn die Eingabedatei gem.csv, dsga.csv mehr als 100 Altersgruppen (z.B. 105) haben, dann wurden die Bevölkerungsgruppen 99 .. 105 nicht richtig auf Altersgruppe 99 aggregiert. (3h)
    9. BLH hat einige SPSS- (oder PSPP-) Prüfscripts für die Konsitenz des Statistikdatensatzes erstellt, um die Ergebnisse der Haushalteprognose besser nachvollziehen zu können.
      Wie könnte man diese Hilfsmittel (z.B. PDO_HDO_erzeugen.sps) den Anwenderen zugänglich machen ?
      Soll SIKURS Schnittstellen und/oder Anleitungen zu Statistik-Software bereitstellen ?
      Bisher kann man
      • csv-Dateien austauschen
      • R kann kann SIKURS fernsteuern:
        • csv- und ini-Daten erstellen
        • SIKURS im batch starten
        • SIKURS-Ausgabedateien weiterverarbeiten
      • SIKURS kann R fernsteuern in Befehle:
        • vor der Prognose Eingabedateien erzeugen
        • nach der Prognose Ausgabedateien weiterverarbeiten
    10. Nach Test Haushalteprognose mit kleinräumiger gem dirch BLH:
      Verbesserung Codierung SH2i in q.csv () mit Gebietskennzeichen statt Gebietsnummer. (5h)
    11. Auswertung der Außenwanderung in und von den Außentypen
      neue scripts aw.pl awbilanz.pl und Beschreibung Außentypen (8h)
    12. upgrade auf Perl 5.32 (4h)
    13. upgrade auf gnuplot 5.4 (3h)
      das windows terminal von 5.4.1 ist fehlerhaft, deshalb vorläufige Rückkehr zu 5.2.8
    14. Verbesserung Navigation Prognoseprotokoll und alle Daten incl. Verzeichnis Ein-/Ausgabedateien sind in Datei index.html enthalten (erleichertert Fehlersuche). (5h)
    15. Frau Egloff Kanton Thurgau: Verbesserung Fehlerbehandlung und Warnungen bei Baustein P1 mit eckgem.csv ohne Untergrenzen (d. h. mit Untergrenzen 0 (angezeigt als -0)) (3h)
    16. Ergänzung fehlender Baustein C5 (4h)
    17. Dietmar Halmich Salzgitter: Tabelle "Zeitreihe Alleinerziehende ZRHTa" immer 0 wurde geändert in "Anzahl nicht Alleinerziehende",
      Im Benutzerhandbuch "SIKURS Haushalteprognose" Seite 25 Aufbau hdo2.csv scheint falsch zu sein, richtig in Kommentar hdo2.csv "21 allein erziehend, 22 nicht allein erziehend (3h)
    18. Extras/Eigene Scripts/Start/beventy.pl
      Klassifiziere für jedes Prognosejahr für jede Gebietseinheit/Aggregat die prozentuale Bilanz der natürlichen Bevölkerungsbewegung (Geburt - Sterbefälle) und der Wanderungsbewegungen (Außenwanderung, Binnenwanderung incl. Neubau, Rückbau und Innenwanderung)

      Ableitung aus bewgem.csv oder bewgemagg.csv
      siehe:
      Teubner Studienbücher Geographie
      W. Kuls/F.-J. Kemper
      Bevölkerungsgeographie

                  ^ G
                  |
             \G>WV|G>WG/
              \   |   /
          WV>G \  |  / WG>G
                \a|b/
                h\|/c
        ----------*-------->
        WV      g/|\d     WG
                /f|e\
          WV>S /  |  \ WG>S
              /   |   \
             /S>WV|S>WG\
                  |
                  | S
      
        G  = Geburtenüberschuss
        S  = Sterbefallüberschuss
        WG = Wanderungsgewinn
        WV = Wanderungsverlust
      
        dabei bedeuten die Klassen
        a-d Zunahme
        e-h Abnahme
        der Bevölkerung
    19. Einwohner/Prognose/Berechnen/Protokoll
      [v] Animation [200 ] Wartezeit [v] Summenbalken
      Korrektur Wirkung Wartezeit und neue Option Summenbalken (3h)
    20. Visualisierung/Pyramiden/Einzelpyramiden
      Legende für Geschlechtsgruppen
      [12 ] Fontgröße
      In ? (Hilfe) Texte für Unicode-Zeichen überarbeitet (1h)
    21. IPF Algorithm 2 (factor estimation)
      Die Anpassung der Binnenwanderung und Innenwanderung an Unter-/Obergrenzen (P1/P2) erfolgte durch Iterative proportional Fitting Algorithmus 1 (classical IPF) mit folgenden Unterschieden:
      • Das Zeilenziel ist die Summe der Zeilen der Ausgangsmatrix
      • Das Spaltenziel hat Unter- und Obergrenze
      Den Algorithmus 1 kann man aktivieren durch
      Hauptmaske/Einwohner/Prognose/Berechnen/Notiz
      !option($FIT_BW 2)
      Eine Umstellung auf Algorithm 2 (factor estimation) brachte Vorteile
      1. weniger Laufzeit bei hoher Anzahl Binnentypen bei der Anpassung der Binnenwanderung
      2. Die errechneten Zeilen/Spaltenfaktoren dokumentieren die prozentuale Anpassung des demografisch differenzierten Wegzugs/undifferenzierten Zugzugs der Binnenwanderung an die Unter/Obergrenzen der Binnentypen.
      Gegenüber Algorithmus 1 wurde auf folgendes verzichtet
      • den Superkompensationsexponenten, der aber vermutlich kaum genutzt wurde.
      • bei IPF.pl die Abbruchschranke, statdessen immer Auführung aller Iterationen
      (6h)
      Schwachpunkte
    22. VDSt Indikatoren- und Merkmalskatalog zum demografischen Wandel
      einarbeiten in
      • Indikatoren Makrodatei
        • Faktor 100 bei JQ und AQ ergänzen
        • Abhängigkeitsquotient
        • Greying-Index
      • Reporting
        • Abhängigkeitsquotient
        • Aging-Index Faktor 100 ergänzt
        • Greying-Index
      • Indikator Prognose
        • Abhängigkeitsquotient
        • Billeter J
        • Greying-Index
      • Indikator Statistikdatensatz
        • Greying-Index
        Extras/Eigene Scripts/Start/plot_inikator.pl zeigt wie man mehrere Indikatoren z.B. JQ (Jugendquotient), AQ (Altenquotient), GQ (Gesamtquotient) und GI (Greying-Index) plotten kann:
        plot_indikator.pdf
        (5h)
  91. s Wirkung diverser Typen in reftyp (7h,14A,v10.5,Z:,B:)
    Herr Stein zum Baustein Neubau:
    1. In der reftyp.csv muss ich allen Gebieten einen TYNEE zuordnen, auch wenn gar kein Neubau in einem Gebiet stattfinden soll. Ich hätte vermutet, dass eine „0“ als Typnummer dazu führen würde, dass SIKURS diese Gebiete dann von der Simulation des Neubauerstbezugs ausnimmt. Dies funktioniert aber nicht, d.h. ein Indexwert von 0 wird als vollgültiger Indexwert eingestuft, weshalb z.B. auch Angaben in der nebq-Datei für diesen 0-Typen einzupflegen wären. Gibt es eine Möglichkeit, einem Gebiet, wenn es keine Neubautätigkeit in dem Gebiet gibt (geben soll), keinem der TYNEE zuzuordnen?
      wib: Der Typ 0 wurde in reftyp für die Spalte 11 AGF (Altesgruppenfortschreibung) eingeführt, um einzelne Gebiete (mit Anstaltsbevölkerung) von der Alterung auszuschließen.
      Ich habe die Wirkung des Typs 0 auf die Ausgabedatei bew untersucht für
      Wirkung
      Gkeine Geburten (+G) !
      Skeine Sterbefälle (-S) !
      Bkeine Binnenwanderung und ZZA = 0 (-OBN -WB -OI +ZB +II) !
      ZZAkein Außenzuzug (+ZA) !
      QWAkein Außenwegzug (-WA) !
      NEENeubau (Dateien nebb nebgqr nebgqt nebq nebqqa) ?
      neu: man kann jetzt mit TYNEE = 0 ein Gebiet aus dem Neubaubezug nehmen
      Bei der Eingabedatei nebb wird geprüft, ob die Anzahl Erstbezieher bei TYNEE = 0 Null ist (//!NEE)
      REARückbau (Dateien reab reagzt reaq reaqza rearb) ?
      neu: man kann jetzt mit TYREA = 0 ein Gebiet aus dem Rückbau nehmen Bei der Eingabedatei reab wird geprüft, ob die Anzahl Rückbauendauszieher bei TYREA = 0 Null ist (//!REA)
      WBGkein Wechsel der Bevölkerungsgruppe (-WBGv) !
    2. SIKURS erwartet für jedes Prognosejahr in der neubauzu.csv eine Angabe zur Anzahl der Neubauerstbezieher für mindestens 1 Gebiet. Zumindest eine „0“ für die Anzahl muss dann eingetragen sein. Ansonsten bricht SIKURS die Berechnungen ab. Hier kommt mir SIKURS zu pingelig vor. Wenn es keinerlei Angaben zum Volumen der Neubauerstbezieher in einem Prognosejahr gibt (z.B. weil keine Neubautätigkeit simuliert werden soll), könnte die Simulation des Neubauerstbezugs eigentlich übersprungen werden (oder übersehe ich etwas?).
      wib: jetzt Warnung ohne Abbruch
    3. Einen krassen Anwenderfehler habe ich begangen, indem ich versehentlich als Ausgangsbevölkerung eine gem-Datei für die Gesamtstadt an SIKURS übergeben habe (das bedeutete 1 Gebietseinheit in der gem-Datei, bei 72 Gebietseinheiten in der reftyp). Dies hat zu sehr erstaunlichen Ergebnissen geführt, da SIKURS die Berechnung nicht abgebrochen hat. SIKURS hat die in der gem-Datei nicht vorhandenen Gebiete zum Teil mit Einwohnern gefüllt (nicht alle) und die Gesamteinwohnerzahl durch einen positiven Binnenwanderungssaldo im ersten Prognosejahr mehr als verdoppelt. Eventuell wäre es sinnvoll eine Art Füllungsgrad auch hinsichtlich der Gebiete zu ermitteln (Anteil der Gebietseinheiten in der reftyp zu denen mindestens ein Datensatz entweder in der gem-Ausgangsdatei oder der neubauzu-Datei vorliegt). Taucht ein Gebietskennzeichen aus der reftyp in keinem weiteren Zusammenhang auf, wäre ein Abbruch der Berechnungen eventuell sinnvoll, weil die Berechnung dann wohl auch zu sehr falschen Ergebnissen führen kann.
      wib: habe nach Einlesen gem
      Hinweis 1: in BGEM werden 2 von 5 Gebietskennzeichen aus "reftyp.csv" nicht genutzt
      ergänzt.
  92. s Unterstützung Auswahl und Einarbeitung Nachfolger Systemexperte (17h,15A,v,Z:,B:)
  93. s Client Server Betrieb (4h,15A,v10.5,Z:,B:1)
    Der Betrieb von SIKURS mit remote login auf eine Server (z.B. Parallels Client, Citrix / VDA-Verbindung)) scheitert an der Prüfung des Lizenzschlüssels.
    SIKURS 10.5.1245 verwendet MAC-Adresse statt Nodename um dies zu lösen.
    Notwendig ist neuer Lizenzschlüssel.
    SIKURS 10.4 mit altem und SIKURS 10.5 mit neuem Lizenzschlüssel können parallel betrieben werden.
  94. t Visualisierung Bewegungen einer Prognose (6h,15A,v10.5,Z:,B:1)
    Herr Dr. Tüllmann findet folgende Grafiken



    informativ, sowohl bei einer Kontrolle der Berechnungen als auch bei der Analyse der demografischen Prozesse.
    Die Grafik beschreibt die Bewegungen im Untersuchungsraum des Jahres 2012.
    Möglich und sinnvoll sind Grafiken weiterer Prognosejahre sowie Differenzierungen nach nicht zu dünn besetzten Gebieten, eines Typs oder räumlichen Aggregats sowie hier der Bevölkerungsgruppe (aber nicht Geschlechtsgruppe).

    Die Auswertung erfolgte durch:
    Visualisierung/Zeitreihen/X-Y-Plot
    Auswahl bew.csv
    [5                               ] x-Achse     (Spalte Altersgruppe)
    [6..16                           ] Wert        (alle Wertespalten)
    [3                               ] Blätter     (Bevölkerungsgruppe)
    [v] Vorzeichen aus Spaltenüberschrift          (+G) Geburt, (-S) Sterbefälle, ...
    [#1 == 2012                      ] Auswahlfilter
    [set key right top               ] Legende
    (*) Histogramm

    Visualisierung/Zeitreihen/X-Y-Plot
    wurde hierfür wie folgt erweitert:

  95. t Erweiterung nach Erkenntnissen Tests für 10.5 (33h,15A,v10.5,Z:,B:1)