Aggregation von Prognoseergebnissen
Zeitreihe - Aggregiere eine Folge von Dateien wählbaren Typs (GEM, STRB, FRUC, ...) nach pro Dimension (Jahr, Gebietskennzeichen (GKZ), Bevölkerungsgruppe (BG), Geschlechtsgruppe (GG), Altersgruppe (AG)) anzugebender Abbildungsfunktion und einer wählbaren Aggregationsfunktion (Summe, Mittelwert, ...).
Das Verständnis der Arbeitsweise des Programms ist nutzlich, wenn man seine Funktionalität ausschöpfen möchte. Das Programm arbeitet in folgenden Schritten:
Die Eingabezeile wird in Spalten zerlegt. Wenn nötig wird die Jahresinformation aus dem Dateinamen als erste Spalte hinzugefugt.
Je nach Option wird der Eingabewert gerundet.
Aggregation bedeutet die Abbildung des n-dimensionalen Eingaberaum in einen n-dimensionalen Ausgaberaum. Dazu wird auf jede Dimension die definierte Abbildungsfunktion angewandt. Auf den resultierenden Zielindex im Ausgaberaum wird die festgelegte Aggregationsfunktion (Summe, Mittelwert, ...) angewandt.
Bei den Aggreagtionsfunktionen Mittelwert, Median und Standardabweichnung muss der Ergebnisraum nochmal durchlaufen werden, um das Ergebnis zu berechnen.
Beispiel: Beim Mittelwert wird bei der Aggregation pro Zelle die Summe und die Anzahl berechnet. Der Mittelwert ergibt sich in der Nachbereitung als Summe/Anzahl.
Der n-dimensionale Ausgaberaum wird in die Ausgabedatei geschrieben.
Der Eingabedateityp legt die Struktur der Eingabedatei (Anzahl Spalten, ist Spalte 1 Kontrollzahl (Jahreszahl), ist letzte Spalte Anzahl, Rate oder Quote) und den Namen (z.B. gem), nach dem im Eingabeverzeichnis gesucht werden soll, fest.
Falls Sie Dateien aggregieren möchten, die keinem der vorgegebenen Eingabedateitypen entspricht, so können Sie selbst einen Typ definieren, in dem Sie eine Datei zeitreihe.pl im Eingabedateiverzeichnis erstellen
# zeitreihe.pl # Beispiel für die Erweiterung der Dateitypen für Ergebnis - Zeitreihe { ggwr => { # Geschlechtsgruppenwechselrate anzahl => 3, # Anzahl Schlüsselspalten yyyy => 1, # Jahreszahl in Dateiname spalten => [qw(Quellgeschlecht Zielgeschlecht Altersgruppe)], wert => 'Rate', # Wertetyp konzahl => 0 # keine Jahresspalten in Datei }, }
Funktion | Wirkung |
---|---|
keine | über das Merkmal wird nicht aggregiert |
2 stellig | über das Merkmal wird nicht aggregiert und 2-stellig mit führender Null ausgegeben. Diese Option dient dazu Altersgruppen und evtl. Gebietskennzeichen, die in den Eingabedateien nicht DUVA-gerecht sind (z.B. Altersgruppe "7") dennoch DUVA-gerecht auszugeben (z.B. Altersgruppe "07") |
alle Ausprägungen | werden auf den Wert 1 abgebildet |
entferne Merkmal | alle Ausprägungen werden auf den Wert 1 abgebildet Das Merkmal wird in der Ausgabedatei entfernt |
reftyp 1 3 | in einer Referenzdatei "reftyp.csv" muss Spalte 1 alle Ausprägungen
des zu aggregierenden Merkmals enthalten, Spalte 3 den Wert auf den die jeweilige Ausprägung abzubilden ist, bzw. -1 wenn Wert aus Spalte 1 ausgefiltert werden soll Damit lassen sich z.B. Gebietskennzeichen auf Typen oder räumliche Einheiten aggregieren, oder die Altersgruppen 0 bis 99 auf z.B. jung (0..19), erwerbstätig (20..64) und alt (65..99) |
Benutzer mit Programmierkenntnissen (siehe Befehle können zusätzlich folgende Abbildungsfunktionen verwenden:
Funktion | Synonym | Wirkung |
---|---|---|
$i | keine | keine Aggregation (identische Abbildung) |
sprintf('%02d',$i) | 2 stellig | keine Aggregation, Ausgabeformat 2 Stellen mit führender 0 |
int($i/5) | Abbildung (z.B. AG) [0,1,2,3,4] -> [0], [5,6,7,8,9] -> [1], ... | |
int(($i+1)/2) | Abbildung (z.B. GG) [1,2] -> [1] | |
($i==2002)?$i:-1 | Auswahl eines einzigen Wertes (2002) | |
min($i,99) | Belasse AG unter 100, ab 100 Abbildung auf 99 | |
($i~~[07,42,99])?1:-1 | Aggregation der Altergruppen 01, 42, 99 auf die Altersklasse 1, ignorieren der restlichen Altersgruppen | |
1 | alle Ausprägungen | Abbildung aller Werte auf 1 |
substr($i,2,3) | Abbildung (z.B. GKZ) auf Teilstring der Länge 2 ab Position 3. Beispiel: 100234 -> 23 | |
substr($i,0,-4) | Schneide die letzten 4 Stellen ab. Beispiel: 123456 -> 12 entspricht int($i/10000) | |
reftyp 1 0 | Abbildung GKZ auf laufende Nummer (ab 1). (Spalte 0 bedeutet Satznummer) | |
$col->[0] | Bezug auf andere Spaltennummer (ab 0) in der Eingabedatei. ( $col->[0] ist immer Jahr,
$col->[1] und $col->[2] je nach Eingabedatei,
$col->[3] ist BG, $col->[4] ist GG,
$col->[5] ist AG).
Damit kann man z.B. Spalten vertauschen. | |
entferne Merkmal | Ein leeres Feld führt dazu, dass die Spalte in der Ausgabedatei entfällt. |
Indices, die auf negative Werte abgebildet werden (z.B. -1), werden nicht in die Ausgabe übernommen, d.h. sie werden ausgefiltert.
SUMME(F1:F100)
)ANZAHL(F1:F100)
)MITTELWERT(F1:F100)
)MEDIAN(F1:F100)
)MAX(F1:F100)
)
MIN(F1:F100)
)
STABWN(F1:F100)
)aggFunc => 2
ausgewählt werden.
runden => 1
ausgewählt werden.
Es folgt eine Zusammenstellung von Analysen zum Thema summentreues
Runden:
Fur summentreues Runden der GEM-Dateien stehen die Methoden
Willman oder 2 Methoden Tullmann/Braunschober zur Auswahl
d=0 for i (0 .. 99) r[i] = int(v[i] + d + 0.5) d = v[i] - r[i] + dVorteil: Erhält die Summe immer!
1;1,49 -> 1
2;1,01 -> 2
3;1,99 -> 1
4;1,01 -> 2
5;1,99 -> 1
Die Willman-Rundung ist fur die Eingabedatei
aber nicht fur Untergruppen summentreu:
Ausgangs Gruppen Willman Gruppen
Daten Summe Rundung Summe
1;1,3 1
1;1,3 2,6 2 3
2;1,3 1
2;1,3 2,6 1 2
----- --
5,2
5 5
1;1,7
1;1,7
1;1,7
Bei Befehle kann die 5. Spalte
nebeneinander columnCross => 5
ausgewählt werden.
[ %.0f ] Gleitkomma-Ausgabeformat