Möchte man Aussagen über den zukünftigen Klickverlauf treffen, so erschwert der (saisonal) schwankende Zeitreihenverlauf oftmals die genaue Prognose. Wendet man typische Schätzverfahren an, so sind diese in der Regel nicht effizient. Ein Verfahren aus dem Bestandsmanagement schafft einen Lösungsansatz – für additive und multiplikative Saisonalität.
Montag | Dienstag | Mittwoch | Donnerstag | Freitag | Samstag | Sonntag |
256 | 295 | 241 | 245 | 202 | 133 | 144 |
228 | 239 | 223 | 208 | 140 | 116 | 112 |
213 | 224 | 182 | 199 | 162 | 112 | 153 |
226 | 191 | 223 | 239 | 200 | 118 | 139 |
Im ersten Schritt müssen die Saisonfaktoren ermitteln werden. Man bezeichnet diesen Vorgang schlicht auch als Trennung von Saisonkomponente und Trendkomponente. Dafür können zwei Verfahren verwendet werden:
1. Lineare Regression
2. Zentraler gleitender Durchschnitt
Exemplarisch sind hier die Werte nach Anwendung des zentralen gleitenden Durchschnitts (Zyklus = 7 (da jeweils 1 Woche)) berechnet worden. Dabei werden stets sieben Werte (nach dem Zyklus) aufsummiert und diese Summe wird durch die Zyklusgröße geteilt.
[216.57142857142858, 212.57142857142858, 204.57142857142858, 202.0, 196.71428571428572, 187.85714285714286, 185.42857142857142, 180.85714285714286, 178.71428571428572, 176.57142857142858, 170.71428571428572, 169.42857142857142, 172.57142857142858, 172.0, 177.85714285714286, 179.71428571428572, 175.0, 180.85714285714286, 186.57142857142858, 192.0, 192.85714285714286, 190.85714285714286]
Es sind insgesamt 22 Werte (Eigentlich haben wir 28 Werte (Werte über vier Wochen)). Das Verfahren benötigt stets sieben Werte, um einen Wert zu schätzen.
Daher ist es nicht möglich, für die ersten drei und die letzten drei Werte Durchschnitte zu berechnen. Das soll aber nicht weiter stören.
Im zweiten Schritt eliminieren wir die glatte Komponente. Die gemessene Klickzahl wird durch den berechneten Schätzwert geteilt. Das geht natürlich nur in zweiundzwanzig Fällen, da uns die Schätzwerte für die ersten drei und die letzten drei Werte fehlen.
Wir erhalten:
[(3, 1.7013888888888888), (4, 0.8859649122807017), (5, 0.5564853556485355), (6, 0.6457399103139013), (0, 1.0961538461538463), (1, 1.707142857142857), (2, 1.9224137931034482), (3, 1.8571428571428572), (4, 0.6572769953051644), (5, 0.5178571428571429), (6, 0.6153846153846154), (0, 1.07035175879397), (1, 1.382716049382716), (2, 1.625), (3, 1.3006535947712419), (4, 0.7168141592920354), (5, 0.5863874345549738), (6, 0.6860986547085202), (0, 0.9456066945606695)]
Der erste Wert repräsentiert den jeweiligen Wochentag und wurde an den Wert angehängt (Output aus eigenem Python-Skript). Wir benötigen diese Information im nächsten Schritt.
Wir sortieren die vorläufigen Saisonfaktoren nach den Wochentagen und bilden hier wiederum den Durchschnitt aller Saisonfaktoren für den jeweiligen Wochentag. Achtung: Da uns bedingt durch das Verfahren sechs Daten fehlen, bilden wir Durchschnitte auf Basis unterschiedlicher Mächtigkeiten. Wir müssen die Durchschnitte normieren (Zyklusgröße / Summe aller berechneten Durchschnitte).
Die vorherigen Durchschnittswerte für Montag bis Sonntag:
[1.0373707665028287, 1.5449294532627866, 1.7737068965517242, 1.6197284469343292, 0.7533520222926339, 0.5535766443535507, 0.6490743934690123]
Die normierten Durchschnittswerte für Montag bis Sonntag:
[0.915511177351101, 1.3634471187666246, 1.5653501540361834, 1.4294595002334438, 0.6648560178865244, 0.48854818526911803, 0.5728278464570044]
Zur Kontrolle muss die Summe exakt der Zyklusgröße (=7) entsprechen.
Zuletzt isolieren wir die Saisonkomponente aus den Daten. Wir dividieren die Klickzahl am Wochentag X durch den jeweiligen normierten Durchschnittswert für Wochentag X:
[279.6252042937356, 322.22435651035937, 263.2409149796495, 267.6100587967391, 220.64176276302572, 145.2740319182298, 157.28917741522628, 249.04119757410825, 261.0563430711047, 243.57976780274623, 227.19547848866017, 152.92003359813665, 126.70517069559894, 122.33602687850932, 232.6569082600222, 244.67205375701863, 198.79604367757764, 217.36490490020853, 176.95032459212953, 122.33602687850932, 167.1197510036779, 246.85662566556343, 208.62661726602929, 243.57976780274623, 261.0563430711047, 218.45719085448093, 128.88974260414375, 151.82774764386423]
Nun können wir auf Basis dieser bereinigten Daten eine Regression durchführen. Die Schätzparameter können zur Erstellung von Prognosewerten verwendet werden (Verfahren von Holt mit Alpha = 0,1, Beta = 0,2 bspw.).
Quellen
http://statmath.wu-wien.ac.at/courses/multverf1/FolienVK2-teil1-kap11-12.pdf
https://otexts.org/fpp2/holt-winters.html
https://docs.oracle.com/cd/E57185_01/CBPPU/holt-winters_additive.htm
http://s3.amazonaws.com/zanran_storage/www.cec.uchile.cl/ContentPages/107548415.pdf
https://www.uni-siegen.de/smi/aktuelles/bestandsmanagement_wolf.pdf
Bereits mit 14 Jahren absolvierte Jörs sein erstes Schulpraktikum bei der Deutschen Telekom mit Aspekten aus der Suchmaschinenoptimierung. Seitdem erfolgten mehrere berufliche Stationen sowie Aktivitäten als freiberuflicher Webdesigner. Er hat an der Technischen Universität in Darmstadt einen B.Sc. in Wirtschaftsinformatik abgeschlossen. Seit 2019 ist Jörs Lehrbeauftragter für Online-Marketing an der Hochschule Darmstadt sowie Honorardozent für Marketing Automation & Datenintegration an der Hochschule Fresenius. Marvin Jörs ist Gründer und geschäftsführender Gesellschafter der Skyscraper Marketing GmbH.
Wo bin ich?