Gleitender Mittelwert von f(x), wenn nur Stützstellen gegeben sind?

Hi

Stellt euch vor, ihr habt eine Funktion y=f(x). Diese wird in Excel an verschiedenen Stützstellen ausgegeben, z.B. als Tabelle mit 2 Spalten

x=0.5, y=2
x=1, y=1
x=2, y=0.5
x=4, y=0.25
x=5, y=0.2

die x-Werte sind also nicht in gleichmäßigem Abstand. Sie erscheinen allerdings in aufsteigender Reihenfolge.

Jetzt möchte ich bestimmte statistische Größen von y ermitteln. z.B. „Was ist der gleitende Mittelwert von y über das Interval x-2 bis x?“
Für x=5 müsste ich dazu die y-Werte an x=4 und x=5 auswerten
Für x=2 müsste ich dazu die y-Werte an x=0.5, x=1 und x=2 auswerten
Und in beiden Fällen möglicherweise mit Nachbarn interpolieren oder verschieden gewichten.

Die Anzahl der zu berücksichtigen y-Werte variiert in jedem Fall mit der „x-Auflösung“, die die Daten haben.

Lässt sich sowas in MS Excel als Formel bauen oder muss ich mit VBA Scripts arbeiten und selbst programmieren?

dank euch!

Hallo 751 x 1796134 – Du nicht-primzahliger!

Ganz schnell, bevor das Jahr zu Ende geht: Ich hoffe, ich habe Dich richtig verstanden mit Deiner Frage nach dem gleitenden Mittelwert.

Mein grösstes Bedenken: Mittelwerte sind aussagekräftig vor allem bei linearen Zahlenreihen. Deine Zahlen entsprechen aber einer exponentiellen Funktion, nämlich: y = x^(-1). Dass bei einer exponentiellen Funktion die Mittelwerte nicht viel bringen, zeigt ein Diagramm mit verschiedenen Graphen. Schau Dir mal meine hochgeladene Datei an. – Ich meine: Die (gleitenden) Mittelwerte in dieser Funktion kann man einzig und allein mit der erwähnten Funktion y = x^(-1) berechnen.

http://www.file-upload.net/download-10073696/Mittelw…

Dazu kommt noch Folgendes: Du möchtest den Mittelwert berechnen „über das Intervall x-2 bis x“. So habe ich es in Tabelle1 gemacht. Weder das arithmetische noch das geometrische Mittel kommen auch nur annähernd an irgendwelche Mittelwerte Deiner Wertetabelle. Auch die Trendlinie „gleitender Durchschnitt“ bringt’s nicht. Die Trendlinie „Potenz“ würde die Durchschnittswerte 100%-ig abbilden. Die habe ich hier nicht eingetragen, weil sie dem Graphen y = x^(-1) entspricht.

Ich meine: Wenn schon, müsstest Du die Mittelwerte über die Intervalle (x-1) bis (x+1) berechnen. Das kommt den vorgegebenen Wertepaaren ein klein wenig näher, bringt aber auch nichts Besonderes, weil es sich, wie gesagt, um eine exponentielle Funktion handelt.

Zur Berechnung der gleitenden Mittelwerte siehe die Formeln in Spalten C und D. Diese Formeln sind so einfach, dass ich das Gefühl habe: Die helfen Dir nicht.

Mit Excel-Funktionen bin ich zu keinem Ergebnis gekommen. Ich habe es versucht mit einer Kombination von INDEX() und BEREICH.VERSCHIEBEN(). Ich glaube, das wird sehr umständlich damit. Deshalb habe ich VBA-Functions gearbeitet. Sie sind eingetragen in den beiden Tabellen in den Zellen C15:smiley:15 und beziehen sich auf Range(„A4:A9“) der beiden Tabellen.

Wenn Du diese Functions für andere Bereiche einsetzen willst, musst Du in den Makros Range(„A4:A9“) entsprechend anpassen. Unter Umständen auch Cells(xr - 2, 2), Cells(xr, 2).

Ich hoffe, das alles hilft Dir. Ich wünsche Dir ein gutes neues Jahr und grüsse freundlich
Niclaus

Danke für deine Mühe.
Ich habe sicherlich auch nicht alles von dem verstanden, was du geschrieben hast, aber ich sehe schon, dass ich mein Problem nochmal genauer beschreiben muss.

Es ist absoluter Zufall, dass ich das Beispiel y=1/x gewählt habe. Das können verrauschte Börsenkurse sein, die Temperaturen hinter meinem Ohrläppchen oder der Füllstand vom Sparschwein von Tante Elfriede :wink:
Bekannt ist nur: Es handelt sich um eine Funktion y=f(x), die beliebig aussehen kann. Die Funktion wird gemessen, an verschiedenen Stützstellen x. Diese Stützstellen x haben verschiedene, ungleichmäßige Abstände, sie tauchen aber in aufsteigender Reihenfolge auf.
Ein Beispiel wäre die Außentemperatur, die ich immer dann vom Thermometer ablese und aufschreibe, wenn ich zufällig in die Garage gehe und ins Auto steige.

Nun möchte ich Trends in diesen unvollständigen Messwerten ermitteln. Dazu habe ich den gleitenden Mittelwert gewählt, weil man sich leicht etwas darunter vorstellen kann. Ganz abstrakt betrachtet ist jede Art der Filterung denkbar, die aus ganz vielen Messwerten einen einzigen Wert macht.
Ich kann aber nicht „in die Zukunft blicken“, also ich kann nicht von x-1 bis x+1 rechnen. Dass diese Kausalität das Ergebnis verschlechtert ist ein bekanntes Problem der Signalverarbeitung :wink:

Beim gleitenden Mittelwert habe ich eben das Problem, dass nicht vorhersehbar ist, wie viele Stützstellen berücksichtigt werden müsen, da erst mit der Dateneingabe bekannt wird, wie weit die Stützstellen auseinander liegen.
Das muss ich in Excel irgendwie abbilden und das genau ist mein Problem. In deinem file ist MITTELWERT(B5:B7) immer über 2 Messwerte, ohne dass du berücksichtigst, wie weit die Messwerte auseinander liegen (auch in VBA). Das trifft mein Problem leider nicht.

In VBA lässt sich das, was ich suche natürlich trotzdem umsetzen:

  • Ermittle x
  • Ermittle x-2
  • Mittle über alle Zellen, die in diesem Bereich liegen
    Dann muss man aber schnell darüber nachdenken, wie stark man jede Zahl gewichten möchte. Eine Zahl bei niedriger Stützstellendichte braucht logischerweise stärkere Gewichte, als eine Region von f(x) die gut „ausgemessen“ wurde.

Kein leichtes Problem also, aber ich dachte, dass Excel da vielleicht etwas fertig eingebaut hat.
Die „Trendlinie“ könnte eventuell sogar mein Problem erschlagen. Sieht aus, als wäre das nah an dem, was ich suche. Die Frage ist nur, wie man die Werte, die für das Diagramm berechnet werden, in die entsprechenden Zellen bekomme.