Trendanalyse mit Moving Averages

Was sind Moving Averages?

Moving oder Rolling Averages, im Deutschen Sprachraum auch Mittelwertfilter oder gleitender Mittelwert genannt, sind ein einfaches und häufig genutztes Werkzeug für die Analyse von Zeitreihen-Daten. Sie werden in den unterschiedlichsten Disziplinen eingesetzt, um den Trend von Daten abzubilden. Dabei werden lokale Minima und Maxima „herausgefiltert“ – man spricht von einer Glättung der Daten.

Beliebt sind Moving Averages etwa bei der Beurteilung von Aktienkursen, Verkaufs- oder Kundenzahlen. Sie werden aber auch für Wetter- oder Sensordaten und – in abgewandelter Form – sogar in der Bildverarbeitung genutzt.

Exclusive Bonus: Download the step-by-step checklist that will show you how to improve conversions using The Content Upgrade.

Wie werden Moving Averages berechnet?

Die Berechnung von Moving Averages ist sehr einfach: Für jeden Messzeitpunkt der Datenreihe wird der Mittelwert der umliegenden Daten gebildet. Dabei werden gleich viele Werte links und rechts des betrachteten Werts herangezogen. Je größer die Fensterbreite, also je mehr umliegende Werte genutzt werden, desto stärker ist die Glättung.

Ein Beispiel: Analyse von Nutzerzahlen

Moving Averages eignen sich beispielsweise für die Analyse von Nutzerzahlen einer Website. Eine Fragestellung aus dem Business-Intelligence-Umfeld könnte sein, den Verlauf der täglichen Nutzerzahlen einer Website für das letzte Jahr zu beurteilen. Bedingt durch viele externe Faktoren können Nutzerzahlen von Tag zu Tag starken Schwankungen unterworfen sein, sodass eine Analyse auf Basis der Tages-Daten schwer fällt:

Rohdaten ohne Moving Averages

Bildet man nun anstelle der Rohdaten Moving Averages mit einer Fensterbreite von 20 ab, wird in diesem Beispiel nicht nur der Aufwärtstrend der Nutzerzahlen viel deutlicher, sondern es wird auch eine periodisch wiederkehrende Schwankung in den Nutzerzahlen erkennbar.

Moving Averages mit Fensterbreite von 20

Wählt man eine größere Fensterbreite zur Berechnung der Moving Averages, wird die Kurve immer “glatter”: Lokale Minima und Maxima werden breiter und flacher. Der generelle Trend der Daten wird immer deutlicher. Allerdings verschwindet nicht nur zufälliges Rauschen (engl. noise), sondern auch subtilere, eventuell bedeutsame Muster werden nach und nach herausgefiltert. Die eben entdeckten periodischen Schwankungen in den Nutzerzahlen sind bei einer Fensterbreite von 60 kaum noch zu erkennen:

Moving Averages mit Fensterbreite von 60

Die optimale Fensterbreite ist deshalb immer abhängig von der Fragestellung, die hinter einer Analyse steht. Je mehr Details im Verlauf der Daten von Interesse sind, desto kleiner sollte die Fensterbreite gewählt werden.

Es gibt viele Varianten bei der Berechnung von Moving Averages, die jeweils von den zugrunde liegenden Daten und der Fragestellung abhängig sind. Zum Beispiel ist es häufig interessanter den aktuellen Trend von Daten zu beurteilen anstatt rückblickende Aussagen über Daten zu treffen. Für den aktuellen Tag liegen aber natürlich nur Daten aus der Vergangenheit vor, weshalb nur ein einseitiger Mittelwertsfilter verwendet werden kann. Bei einer Fensterbreite von 10 wird in diesem Fall für jeden Zeitpunkt der Mittelwert aus den 10 vorherigen Werten gebildet.

Moving Averages in SQL berechnen

Mithilfe einer window function kann man ganz einfach moving averages in SQL berechnen. Angenommen, es liegt eine Tabelle daily_users vor, in der für jeden Tag (date) genau eine Zeile angelegt ist und die Anzahl an täglichen Nutzern im Feld users gespeichert wird. Dann könnte der SQL-Code zur Berechnung der moving averages mit Fensterbreite 10 so aussehen:

SELECT
  date,
  AVG(users) OVER (ORDER BY date ROWS BETWEEN 5 PRECEDING AND 5 FOLLOWING) AS mov_avg_users
FROM daily_users

Zur Verschiebung des Fensters kann der OVER – Ausdruck angepasst werden. Für one-sided moving averages mit Fensterbreite 10 zum Beispiel so:

SELECT
  date,
  AVG(users) OVER (ORDER BY date ROWS BETWEEN 10 PRECEDING AND CURRENT ROW) AS mov_avg_users
FROM daily_users

Fazit

Moving Averages sind nützlich, wenn Trends in Zeitreihendaten betrachtet werden. Wenn es um aktuelle Trends geht, eignet sich die Berechnung von one-sided moving averages, bei rückblickender Beurteilung von Trends bietet sich die Berechnung von two-sided moving averages an. Da die Berechnung einfach und die Interpretation intuitiv ist, kommen moving averages in vielfältigen Analyseszenarien zur Anwendung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren.Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden