Sensor Daten Aufbereitung mit gleitenden und gewichteten Mittelwerten

By | 31. März 2017

Mittelwert und gewichteter Mittelwert

Der Mittelwert beschreibt den statistischen Durchschnittswert und zählt zu den Lageparametern in der Statistik. Für den Mittelwert addiert man alle Werte eines Datensatzes und teilt die Summe durch die Anzahl aller Werte.

    \[\bar{x} = \sum_{i=1}^{n} x_i = \frac{x_1+x_2+ \dots + x_n}{n}\]

Lässt man die einzelnen Werte einer Stichprobe x_1,…,x_n unterschiedlich stark in die Berechnung des Mittelwertes einfließen, so spricht man von einem gewichteten Mittelwert.

    \[\bar{x}_w = \sum_{i=1}^{n} w_i \cdot x_i = \frac{w_1x_1+w_2 x_2+ \dots + w_nx_n}{n}, \quad mit \quad \sum_{i=1}^{n} w_i =1\]

Programmiertechnische Umsetzung

Um eine Reihe von Messwerten zu glätten, biet sich folgende Vorgehensweise an: Jeder aktuelle Messwert wird zu einer  Mittelwert-Summe hinzuaddiert, nachdem diese um einen bestimmten Faktor (z.B. 1/20) verringert wurde. Jeder Messwert hat damit nur einen gewichteten Einfluß von in diesem Beispiel 5% auf den Mittelwert.

Möchte man eine Hochpassfilter Funktion realisieren, so muss man nur noch die Differenz zwischen dem aktuellen Eingangsdatenwert und dem Mittelwert bilden:

Gleitender Mittelwert

Die Methode des gleitenden Durchschnitts, auch gleitender Mittelwert genannt, ist ein Verfahren mit dem aus einer Anzahl von Vergangenheitswerten x_T[...] sowie dem Gegenwartswert x_t ein Mittelwert M_t gebildet wird. Dieser Mittelwert kann dann  als Prognosewert r_{t+1} für die kommende Periode verwendet werden. Im einfachsten Fall geschieht dies durch Mittelung von drei Datenpunkten der ausgewählte Datenpunkt und seine beiden Nachbarn (siehe Graphik aus der Web-Seite von Hans Lohninger www.statistics4u.com):

Das Fenster, in dem die Mittelung erfolgt, wird über die Daten bewegt und nach jeder Berechnung um einen Wert nach rechts verschoben, daher die Bezeichnung gleitender Mittelwert.

Die Menge der gleitenden Mittelwerte wird iterativ („gleitend“) über einen Ausschnitt, das „Fenster“, eines gegebenen Signals berechnet. Das verwendete Fenster wird überlappend verschoben, d. h. wiederholt wird der erste Wert aus dem betrachteten Ausschnitt gestrichen, der erste Wert nach dem Ausschnitt hinzugenommen und ein neuer Mittelwert berechnet.

Der einfache gleitende Durchschnitt n-ter Ordnung einer diskreten Zeitreihe x(t) ist die Folge der arithmetischen Mittelwerte von n aufeinanderfolgenden Datenpunkten.

    \[m_{\text{MA}}^{(n)}(t)={\frac {1}{n}}\sum _{i=0}^{n-1}x(t-i)}\]

Der zentrierte einfache gleitende Mittelwert der Ordnung 3 wäre somit also durch

    \[m_{\text{MA}}^{(3)}(t)={\frac {1}{3}}{\Big (}x(t)+x(t-1)+x(t-2){\Big )}\]

gegeben.

In Mathematica lässt sich der Gleitende Mittelwert mittels der Funktion MovingAverage in beliebiger Ordnung sehr einfach bestimmen:

Das Prinzip des Berechnungsverfahren soll anhand eines einfachen Beispiels verdeutlicht werden:

Angenommen wir würden die Anzahl der getrunkenen Wasserflaschen pro Tag über 20 Tage lang protokollieren und erhielten folgende Datenmenge:

    \[\{ 3, 2, 5, 8, 4, 1, 4, 3, 8, 5, 6, 7, 9, 6, 8, 5, 4, 8, 7, 6 \}\]

Die Summe aller Wasserflaschen wäre somit 109 mit einem durchschnittlichen Verbrauch von
\frac {109}{20}=5.45 Flaschen pro Tag.

Nehmen wir weiter an, man hätte sich innerhalb dieser 20 Tage dazu entschlossen, täglich mehr Wasser zu trinken. Um dies zu kontrollieren, bringt  der ermittelte Durchschnitt (also Gesamtanzahl Flaschen durch Gesamtanzahl Tage) relativ wenig.

Daher wollen Sie wissen, wie viele Flaschen Wasser Sie jeweils in den letzten z.B. 10 Tagen durchschnittlich getrunken haben, um daraus zu bestimmen ob am heutigen Tag mehr oder weniger Wasser getrunken wurde.

Die Vorgehensweise sieht dazu wie folgt aus: Man berechnet den Mittelwert nach diesem Zeit-Fenster. In unserem Beispiel nehmen wir dazu die ersten 10 Werte

    \[\{3, 2, 5, 8, 4, 1, 4, 3, 8, 5\}\]

und bestimmen den Mittelwert: M_1=\frac {43}{10}=4.3

Dieser Wert wird nun anstelle des 10. Wertes in die Datenliste eingetragen (was in der Graphik leider nicht explizit dargestellt ist).

Am Abend des 11. Tages schauen Sie sich wieder den Durchschnitt der letzten 10 Tage an. Somit entfällt für die Berechnung die Anzahl der Flaschen nun der erste Tag. Dafür kommt der 11. Tag hinzu,   so dass wir wieder 10 zu messende Tage haben. Also berechnen wir die Summe der Reihe:

    \[\{2, 5, 8, 4, 1, 4, 3, 8, 5, 6\}\]

Was zu einem neuen Mittelwert von M_2=\frac {46}{10}=4.6 führt.

Würde man dies nun weiter fortsetzen, so erhält man eine Folge von Mittelwerten, die als Gleitender 10-Tage Mittelwert bezeichnet werden und man könnte erkennen, ob sich die Werte gegenüber dem Anfangszeitpunkt verringert oder vergrößert haben. Die nachfolgende Graphik illustriert den sich verändernden (gleitenden) Durchschnitt (roten Punkte) gegenüber dem in grün eingezeichneten Mittelwert in unserem obigen Beispiel mit einem Fenster das 10 Perioden umfasst.

Die Berechnung kann auf verschiedene Weise erfolgen. Mathematica bietet sich für derartige Berechnung aber geradezu an, da es viele nützliche Funktionen bereits eingebaut hat.

In der Graphik sind die Datenpunkte in Blau eingezeichnet. Der arithmetische Mittelwert ist als grüne Linie eingetragen. Die gleitenden Mittelwerte mit dem Fenster von 2 in Orange und dem Fenster von 3 in Magenta. Man erkennt schon, dass die Fensterbreite sich auf die Nivellierung der Höhen auswirkt und so die Glätten-Funktion erfüllt.

Mit unten stehendem Programm lässt sich in Mathematica der Zusammenhang zwischen Fenstergröße und gleitendem Mittelwert sehr gut untersuchen. Die Variable Wassermenge steht hier für die o.g. Liste der getrunkenen Flaschen Wasser pro Tag. Der Parameter a gibt die Fensterbreite an und iteriert von 2 bis 10.