Zeitreihen: Relativ gesehen

Eine kleine, aber feine Erweiterung in DeltaMaster erlaubt, Darstellungen von Zeitreihen noch genauer an die eigenen Vorstellungen anzupassen. Welche neuen Anwendungsmöglichkeiten sich hiermit ergeben, soll in diesem Blogbeitrag behandelt werden.

Mit dem Release DeltaMaster 6.2.5 wurde ein neues Feature im Bereich der Zeitreihenanalyse eingeführt, das die Gestaltungsmöglichkeiten dieses Analysemoduls erweitert und deshalb eine ausführlichere Würdigung verdient.

Schauen wir uns aber zunächst einmal an, welche Möglichkeiten der individuellen Anpassung auch bereits vorher bestanden.

Nehmen wir für ein Umsatzdaten-Anwendungsbeispiel an, dass in unserer Datenbank der Zeitraum vom 1.5.2019 bis zum 31.7.2019 auf Tagesebene modelliert ist, mit einer Zwischenschicht der Kalenderwochen, aber durch eine Neustrukturierung der Zuständigkeiten die Umsatzdaten erst ab dem 27.5.2019 der betrachteten Einheit zugeordnet werden.

Der aktuelle Tag sei der 1.7.2019, und für diesen und für die kommenden Tage im Juli seien bereits einige sichere Umsätze verbucht, aber nur die Daten bis zum 30.6.2019 können als vollständig angesehen werden.

Legt man eine neue Zeitreihenanalyse an, so wird die Darstellung auf Tagesebene folgendermaßen aussehen:

Umsätze auf dem gesamten Zeitraum vom 1.5. bis zum 31.7.2019

Umsätze auf dem gesamten Zeitraum vom 1.5. bis zum 31.7.2019

Mittels der aktivierten Optionen „Bei Aktualisierung Startperiode auf erste Periode mit Daten setzen“ und „Bei Aktualisierung Endperiode auf letzte Periode mit Daten setzen“ in den Eigenschaften des Editiermenus lassen sich die leeren Zeiträume vor und nach den vorhandenen Daten ausblenden:

Der Zeitraum vom 27.5. bis zum 7.7.2019 mit vorhandenen Umsätzen

Der Zeitraum vom 27.5. bis zum 7.7.2019 mit vorhandenen Umsätzen

Nun sind aber a) die Julidaten am rechten Rand unvollständig und b) könnte man sich vorstellen, dass im Laufe der Zeit die Daten anwachsen und sehr viele Monate abdecken. Der Wunsch könnte entstehen, in der Darstellung bspw. nur 21 Tage inklusive des letzten vollständigen, leicht einstellbaren Tages sehen zu wollen.

Im vorliegenden Fall wäre eine Lösung, dass der Berichtsredakteur die genannten Optionen wieder deaktiviert und über die Pfeiltasten den gewünschten Zeitraum vom 10.6. bis zum 30.6.2019 manuell einstellt:

Der gewünschte Zeitraum wird manuell eingestellt

Der gewünschte Zeitraum wird manuell eingestellt

Hier müsste aber mit jedem Update händisch nachgebessert werden!

Eine alternative Lösung, die hier optisch zum gleichen Ergebnis führt, erhält man, wenn in den Einstellungen die Option „Zeitreihe nur für Elemente des aktuellen Filters berechnen“ aktiviert und in der Sicht die Kalenderwochen 24, 25 und 26 (diese KW 26 endet mit dem 30.6.2019) ausgewählt werden:

Einschränkung auf die Kalenderwochen 25, 25 und 26

Einschränkung auf die Kalenderwochen 25, 25 und 26

Diese Lösung lässt sich schon einfacher nachführen und ist auch für die automatisierte Versendung per Publisher geeignet, wenn im Berichtsupdate die drei letzten vollständigen Wochen per MDX aus dem aktuellen Tagesdatum ermittelt werden.

Eine weitere naheliegende Möglichkeit, eine Zeitreihenanalyse mit dynamischer Anpassung zu erhalten, besteht darin, die notwendige Logik im Analysewert zu verankern. Sei wieder die Aufgabe angegangen, ausgehend von einem eingestellten Tag die letzten 21 Tage (inklusive des gewählten Tages!) anzuzeigen.

Wir wollen hier einen möglichen Weg zur Lösung mittels MDX grob skizzieren. Die folgende Grafische Tabelle deutet die Vorgehensweise an:

Umsatz nur für die letzten 21 Tage

Umsatz nur für die letzten 21 Tage

Jeder Tag erhält über die MDX-Funktion „rank“ eine laufende Nummer, d. h., der 1.5.2019 bekommt die 1 und der 31.7.2019 die 92 zugewiesen. Wir lesen den eingestellten Tag („30.6.2019“) mittels <viewX> aus der Sicht aus und ermitteln die laufende Nummer – hier ist es die 61.

Für jeden Tag wird zu diesem Wert die Differenz der laufenden Nummer berechnet. Liegt diese zwischen -20 und 0, so soll der Tag mit in die Auswahl. Etwas einfacher wird der Rechenausdruck, wenn die absolute Differenz zur laufenden Nummer vor 10 Tagen berechnet wird. Ist diese 10 oder kleiner, kommt der Tag in die Auswahl. Das Ergebnis ist natürlich identisch.

Schließlich wird eine neue Umsatzkennzahl definiert, die dem tatsächlichen Umsatz entspricht, wenn der Tag in der Auswahl ist, aber ansonsten den leeren Wert NULL erhält. Nun wählt man wieder die Kombination „Bei Aktualisierung Startperiode auf erste Periode mit Daten setzen“ und „Bei Aktualisierung Endperiode auf letzte Periode mit Daten setzen“ aus und die Einstellung „Zeitreihe für alle Elemente der ausgewählten Ebene berechnen“.

Der dargestellte Bereich wird nun automatisch in Abhängigkeit des eingestellten Datums auf die letzten 21 Tage eingedampft und es ergibt sich das folgende Bild:

Umsatz für die letzten 21 Tage dynamisch angezeigt!

Umsatz für die letzten 21 Tage dynamisch angezeigt!

Bei dieser Herangehensweise kann der Berichtsempfänger – sofern nicht vom Ersteller verhindert! – den aktuellen Tag auch selbst einstellen.

Es lässt sich auch eine benannte Menge [namedset] der „guten“ Tage anlegen, auf die dann von allen in Betracht kommenden Kennzahlen zugegriffen werden kann. Eine gegebene Kennzahl #1 wird dann mit unseren Bezeichnungen mit dem MDX-Befehl „iif(intersect([Datum].[Datum_].currentmember, [namedset]).count>0,#1,NULL) in eine nur auf dem gewünschten Intervall mit Werten versehene verwandelt.

Die Abfrage prüft, ob die Schnittmenge der 21 Tage mit dem gerade zu prüfenden Tag leer ist oder nicht und übergibt nur im letzteren Falle die Kennzahl.

So viel zur doch etwas ausführlicher gewordenen Vorgeschichte, was eigentlich in DeltaMaster bereits vor dem letzten Release möglich war.

Kommen wir nun zur Neuerung:

Bei allen bisherigen Beispielen waren die Zeitreihen immer auf der Datumsebene Tag definiert. Mit einem aktuellen Release ab DeltaMaster 6.2.5 ist es nun möglich, eine beliebige Dimensionsebene als Achse in der Zeitreihenanalyse zu verwenden!

Es ist nun zum Beispiel möglich, die oben gestellte Aufgabe mit einer Hilfsdimension zu lösen. Die genaue Durchführung sei hier nur wieder angedeutet, da sie von der konkret verwendeten Modellierung abhängt; hier haben wir eine Dimensionstabelle mit einer Ebene mit Elementen 20, 19, 18, …, 0 angelegt. Diese sollen dann die Anzahl der Tage vor dem ausgewählten Datum wiedergeben.

Wird diese Ebene nun in die ZTR-Analyse gezogen und wird in der Modellierung so vorgegangen, dass die Ebenenelemente als Lag zum aktuellen Datum interpretiert werden, ähnlich der Umsetzung der Elemente in einer Periodenansichtsdimension, ergibt sich eine Darstellung wie diese:

Tage vorher relativ zum aktuellen Datum

Tage vorher relativ zum aktuellen Datum

Hier lässt sich dann besonders leicht ablesen, wie groß der Umsatz vor beispielsweise 10 Tagen war.

Alle Problemstellungen, in der chronologisch sortierte Werte eine Rolle spielen, können somit sinnvoll mit der Zeitreihenanalyse abgebildet werden.

Beispielsweise wäre es möglich, den Fortschritt verschiedener Projekte darzustellen. Zu jedem Projekt sei ein individuelles finales Datum gegeben. Wir betrachten nun noch die verbleibenden Tage bis zum Abschluss, die für alle offenen Projekte unterschiedlich ausfallen können. Die Faktentabelle enthält dann Prozentangaben mit Datumsstempel, wie weit der Projektfortschritt jeweils gediehen ist. Am aktuell ausgewählten Datum wird der letzte Stand noch einmal übernommen.

Wird zwischen den Einträgen für die grafische Darstellung linear interpoliert, könnte das dann so aussehen:

Tage vorher relativ zum aktuellen Datum

Tage vorher relativ zum aktuellen Datum

Bei Projekt A sind es nur noch 7 Tage bis Abgabe – die letzten 13 Tage ist hier nichts mehr passiert und wir stehen immer noch bei 37 %! Hier kann wohl nur noch ein Wunder helfen! Projekt B hingegen läuft zwar nur noch 2 Tage, ist aber auch bereits zu 98 % erfüllt.

Kehren wir noch einmal zurück zum Umsatzbeispiel. Betrachten wir die Zeitreihe näher, sieht man neben dem eigentlichen Trend noch einen ausgesprochenen Wochenrhythmus.

Auch hier hilft die Neuerung: Man legt Filterwerte „Umsatz {cp}“, „Umsatz {pp}“ und „Umsatz {pp2}“ an, stellt dann die aktuelle Kalenderwoche in der Sicht ein und bezieht sich somit auf die laufende Woche (current period), die vorherige Woche (previous period) und die vorvorherige Woche. Zieht man nun die Ebene der Dimension Wochentage in die Zeitreihenanalyse, sowie die drei angelegten Filterwerte, hat man die letzten 21 Tage in drei Wochensegmente zerlegt:

Umsatz nach Wochentagen der letzten drei Wochen

Umsatz nach Wochentagen der letzten drei Wochen

In dieser Grafik kann man die Umsätze der letzten Wochen an gleichen Wochentagen viel besser vergleichen! Bei einer derartigen Darstellung muss also nur noch die aktuelle Woche im Sichtfilter eingestellt werden; sie eignet sich deshalb auch gut für den Publisher, wenn es um wöchentlich aktualisierte Berichte geht.