Einfache Zeitreihe normieren

Neue Frage »

Marius23 Auf diesen Beitrag antworten »
Einfache Zeitreihe normieren
Guten Tag,

zur Zeit beschäftige ich mich etwas mit Zeitreihen. Konkret habe ich mir beispielsweise eine Zeitreihe mit 8760 Werten angesehen, also pro Stunde ein Wert. Die Summe aller Werte ist 500000 und der maximale Werte beträgt 90. Mein Ziel ist es die Zeitreihe soweit anzupassen, dass die stündlichen Fluktutationen erhalten bleiben, jedoch sollte die Summe aller Werte 100000 betragen und der maximale Werte bei 10 liegen.

Ich frage mich ernsthaft, ob dies ohne Weiteres möglich ist? Ich habe es schon probiert bzgl. der Summe zu normieren, indem ich jeden Wert mit 100000/500000 multipliziere. Dann erhalte ich am Ende, dass die Summe aller Werte 100000 beträgt, aber der maximale Wert liegt leider bei 13,4. Weit weg von den 10.

Umgekehrt habe ich auch schon versucht alle Werte auf den maximalen Wert zu normieren. Das heißt jeder Wert wird mit 12,5/90 zu multiplizieren. Dann passt natürlich der maximale Wert, aber die Gesamtsumme aller Werte liegt dann nur bei 67000. Also weit entfernt von den angestrebten 100000.

Kann mir jemand weiterhelfen? Was könnte ich noch probieren oder kann ich dieses Problem nicht lösen?
Steffen Bühler Auf diesen Beitrag antworten »
RE: Einfache Zeitreihe normieren - Geht das?
Wenn's Dir nur um die Fluktuationen geht und nicht um die absoluten Werte, könnstest Du die Werte um eine konstante Zahl verschieben, dann bekommst Du beide Bedingungen erfüllt.

Viele Grüße
Steffen
Marius23 Auf diesen Beitrag antworten »

Hallo Steffen,

mir geht es um beides. Zum einen muss die Summe 100000 ergeben und zum anderen darf der maximale Wert von 10 nach Möglichkeit nicht überschritten werden.

Aus meiner Sicht werde ich dies nur hinbekommen, wenn man den minimalen Wert geschickt etwas nach oben schiebt. Die Fluktuationen sollten im Verhältnis gleich bleiben, aber der untere Wert dürfte etwas angehoben werden, damit ich am Ende auf die 100000 komme. Ist dies möglich? Ich habe es schon mit einer if-Bedingung versucht, aber damit werden die Fluktuationen nicht richtig abgebildet.
Steffen Bühler Auf diesen Beitrag antworten »

Gut, dann meinen wir dasselbe.

Wenn das Maximum trotz Skalierung gleichbleiben soll, musst Du dieses erst einmal auf Null bringen, indem Du die Werte entsprechend verschiebst. Wie verändert sich dann die Summe? Diese Differenz merken wir uns.

Nun geht's ans Skalieren. Die verschobenen Werte sollen addiert eine Summe ergeben, die, wenn man die obige Differenz dazuzählt, die Sollsumme ergibt. So kannst Du den Skalierungsfaktor ausrechnen und rein multiplizieren, ohne dass das Maximum, das ja Null ist, verändert wird.

Anschließend werden die Werte wieder verschoben.

Viele Grüße
Steffen
Marius23 Auf diesen Beitrag antworten »

Hallo,

ich bin nicht sicher, ob ich dich richtig verstanden habe. Ich versuche mal die Schritte wiederzugeben, welche ich jetzt befolgen werde:

1) Von den Rohdaten ziehe ich den maximalen Wert ab. Dann sind alle Werte negativ bzw. maximal identisch 0.

2) Jetzt bilde ich die Summe aller Werte. Diese Summe wird dann negativ sein. Ich berechne die Differenz zur ursprünglichen Summe.

3) Jetzt berechne ich meinen Skalierungsfaktor mit dieser Summe, wie von dir beschrieben.

4) Die Werte werden wieder verschoben, indem ich das vorherige Maximum wieder addiere.

Schritt 4 ist mir noch nicht ganz klar, denn ich muss ja noch auf ein anderes Maximum normieren, welches ich im Normalfall ebenfalls durch eine Multiplikation erhalte.

Ich kann es leider gerade nicht ausprobieren. Aber micht hätte deine Meinung interessiert. Vielen Dank und schönen Abend,
Marius
Steffen Bühler Auf diesen Beitrag antworten »

Zitat:
Original von Marius23
ich bin nicht sicher, ob ich dich richtig verstanden habe.


Doch, sieht ganz so aus. Ich folge Dir mal mit einem Beispiel für die Zahlenreihe 4;7;1;1. Die soll auf Summe 20 und Maximum 10 normiert werden.

Zitat:
Original von Marius23
1) Von den Rohdaten ziehe ich den maximalen Wert ab. Dann sind alle Werte negativ bzw. maximal identisch 0.


Ja, das ergibt -3;0;-6;-6.

Zitat:
Original von Marius23
2) Jetzt bilde ich die Summe aller Werte. Diese Summe wird dann negativ sein. Ich berechne die Differenz zur ursprünglichen Summe.


Das ergibt -15. Die ursprüngliche Summe war 13. Der Unterschied ist 4*7=28.

Zitat:
Original von Marius23
3) Jetzt berechne ich meinen Skalierungsfaktor mit dieser Summe, wie von dir beschrieben.


Genau. (Wobei ich mich da etwas unklar ausgedrückt hatte.) Nachher addierst Du ja nicht 28, sondern 40, denn alle 4 Zahlen sollen ja um 10 (das neue Maximum) erhöht werden. Die alte Summe -15 muss also -20 werden, denn wenn Du die 40 wieder draufzählst, sollen ja 20 rauskommen. Also alle Werte mal 20/15: -4;0;-8;-8.

Zitat:
Original von Marius23
4) Die Werte werden wieder verschoben, indem ich das vorherige Maximum wieder addiere.


Nein, jetzt willst Du ja das neue Maximum haben. Also überall die 10 drauf: 6;10;2;2. Maximum ist 10, Summe ist 20.

Viele Grüße
Steffen
 
 
Marius23 Auf diesen Beitrag antworten »

Hallo,

es scheint geklappt zu haben. Zumindest komme ich damit klar und die Werte stimmen einigermaßen. Die Zahlen sind leider nicht ganz so rund, wie von mir oben beschrieben. Aber das Prinzip ist mir klar geworden.

Grundsätzlich reicht mir das erstmal. Aber aus Interesse würde ich gerne wissen, ob eine zusätzliche Nebenbedingung ebenfalls noch so ohne weitere möglich ist, nämlich: Angenommen jemand käme auf die Idee und würde in deinem Beispiel sagen, dass das Minimum 3 ist, ginge das dann auch noch?
oder
Der Mittelwert sollte einen gewissen Wert annehmen!

Vielen dank nochmal und Grüße,
Marius
Steffen Bühler Auf diesen Beitrag antworten »

Das wird nicht gehen, fürchte ich.

Der Mittelwert z.B. ist ja über Summe und Anzahl der Werte vorgegeben. Den kannst Du also auf keinen Fall erzwingen.

Und sobald Du bei gegebenem Maximalwert den Minimalwert erzwingen willst, änderst Du zwangsläufig auch den Mittelwert. Auch hier entsteht also ein Widerspruch.

Viele Grüße
Steffen
Marius23 Auf diesen Beitrag antworten »

Hallo Steffen,

ich melde mich nochmal, weil ich allgemein sehr häufig mit diesem Themenbereich zu tun habe und fragen wollte, ob es denn Bücher zu diesem Thema gibt? Also speziell für die Manipulation von Zeitreihen etc. Zur Zeitreihenanalyse selbst gibt es natürlich zig Bücher... aber speziell zur Manipulation von Daten habe ich eher selten etwas gefunden.

Mein Problem ist immer das gleiche: Man hat eine Zeitreihe. Die Summe der Werte soll einen bestimmten Wert haben, der meistens vom ursprünglichen Summenwert abweicht. Andererseits sollen die Werte der Zeitreihe in einem bestimmten Wertebereich liegen. Auch die Fluktuationen sollten sich nicht so sehr ändern.

Angenommen man hat Werte 0,0,2,4,3,9 und multipliziert diese mit 3, weil beispielsweise die Summe nicht 18 sondern 54 ergeben soll. Dann bekomme ich die Werte 0,0,6,12,9,27. Das Problem ist, dass dann der Sprung von 9 auf 27 natürlich viel größer ist, als von 3 auf 9. Außerdem liegt die 27 plötzlich nicht mehr im Wertbereich. Mir wäre z.B. eine Umverteilung lieber, so das die Sprünge von einem zum nächsten Wert etwa in der gleichen Ordnung bleiben wichtig. Das ist aber wahrscheinlich sehr kompliziert und man müsste andere Methoden als eine einfache Mulitplikation anwenden. Meine Forderungen widersprechen sich aber deutlich. Doch welche Möglichkeiten gibt es? Keine?

Danke und Grüße
Steffen Bühler Auf diesen Beitrag antworten »

Was Du beschreibst, erinnert mich sehr an digitale Filter, wo die Problemstellungen oft ähnlich lauten. Eventuell könntest Du Dich mal damit beschäftigen. Bei mir ist das allerdings zwanzig Jahre her, ich müsste in alten Unterlagen kramen und hab auch aktuell keine Buchempfehlung. Aber wenn Du mal bei den üblichen Verdächtigen nach Stichworten wie FIR, IIR und z-Transformation suchst, sollte was Brauchbares herauskommen.

Viele Grüße
Steffen
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »