Ich entwickle einen kleinen Handelsroboter als Übung. Er erhält Tag für Tag Börsenkurse (dargestellt als Iterationen). Heres, was meine Trade-Klasse aussieht: Wie Sie von meinen beiden letzten Attributen sehen können, möchte ich einen Exponential Moving Average als Teil eines Trendfolgen-Algorithmus implementieren. Aber ich glaube, ich didnt ganz verstehen, wie zu implementieren es heres meine calcEMA-Funktion, die einfach die EMA berechnet: Aber wenn meine Bestandswerte (übergeben in einer Datei) sind wie folgt: Um sicherzustellen, dass meine EMA sinnvoll und gut. Es tut nicht Wo habe ich falsch auf die Operation gegangen Darüber hinaus, welchen Wert sollte ich geben lastEMA, wenn es das erste Mal, dass ich calcEMA Die Operation ist falsch, wie Sie bemerkt haben. Disclaimer Ich habe diesen Algorithmus von wikipedia. Und als solche könnte nicht richtig sein. (EMA) y (EMA) ein (c (Preis) - y (EMA) y (EMA) ein (c (Preis) - y (EMA) )) C (EMA) ist gegenwärtig EMA y (EMA) ist vorher EMA a ist etwas zufälliger Wert zwischen 0 und 1 c (Preis) ist aktueller Preis Aber Sie haben fast die gleiche Sache: c (EMA) (c (Preis) - Y (EMA) b) y (EMA) Ich weiß nicht, warum Sie 2 / daysInTrading 1 getan haben. Aber dies wird nicht immer ein Wert zwischen 0 und 1 (tatsächlich könnte es sogar die meiste Zeit 0 sein, weil diese alle sind Interger). Sie setzen eine Klammer an der falschen Stelle (nach b und nicht nach y (EMA)). Die Operation wird nun so aussehen: lastEMA 0.5 (currentStock - lastEMA) Für die erste lastEMA. Nach Wikipedia: S 1 ist undefiniert. S 1 kann auf verschiedene Weise initialisiert werden, am häufigsten durch Einstellen von S 11 Erste Element in der Liste, obwohl andere Techniken existieren, wie beispielsweise das Setzen von S 1 auf einen Durchschnitt der ersten 4 oder 5 Beobachtungen. Die Bedeutung der S 1 - Initialisierungswirkung auf den resultierenden gleitenden Durchschnitt hängt von kleineren Werten ab, was die Wahl von S 1 relativ wichtiger macht als größere Werte, da höhere Ermäßigungen älterer Beobachtungen schneller sind. Beantwortet Mai 18 at 13:30 Ich glaube, Sie fehlen eine Klammern in Ihnen calcEMA-Funktion. Es hilft, den Ausdruck in kleinere Ausdrücke mit temporären Variablen zu brechen, um Zwischenergebnisse zu halten. Auch, wie PaulMcKenzie in den Kommentaren darauf hinwies, verwenden Sie Ints, um Fließkomma-Mathematik zu tun. Sie sollten die Verwendung von Floats oder Doubles berücksichtigen, um eine Verkürzung zu vermeiden. Eine EMA wie Ihre ist für einen Zeitraum definiert, genannt timePeriod oben. Während daysInTrading kleiner oder gleich timePeriod ist, sollte lastEMA nur auf einen normalen Durchschnitt gesetzt werden. Sobald daysInTrading größer als Ihre timePeriod ist, können Sie mit der endgültigen Initialisierung der calcEMA-Funktion beginnen. Vergessen Sie nicht, lastEMA nach jedem Aufruf von calcEMA zu aktualisieren. Hier ist eine mögliche Implementierung: Ich habe im Wesentlichen ein Array von Werten wie folgt: Das obige Array ist vereinfacht, Im sammeln 1 Wert pro Millisekunde in meinem realen Code und ich muss die Ausgabe auf einem Algorithmus, den ich schrieb verarbeiten Um den nächsten Peak vor einem Zeitpunkt zu finden. Meine Logik schlägt fehl, weil in meinem Beispiel oben 0.36 die wahre Spitze ist, aber mein Algorithmus würde rückwärts schauen und sehen die sehr letzte Zahl 0.25 als die Spitze, als theres eine Abnahme zu 0.24 vor ihm. Das Ziel ist, diese Werte zu nehmen und einen Algorithmus auf sie, die glätten sie ein wenig, so dass ich mehr lineare Werte. (Dh: Id wie meine Ergebnisse curvy, nicht jaggedy) Ive wurde gesagt, um einen exponentiellen gleitenden durchschnittlichen Filter auf meine Werte anwenden. Wie kann ich dies tun Es ist wirklich schwer für mich, mathematische Gleichungen zu lesen, gehe ich viel besser mit Code. Wie verarbeite ich Werte in meinem Array, die Anwendung einer exponentiellen gleitenden Durchschnittsberechnung, um sie herauszufordern, um einen exponentiellen gleitenden Durchschnitt zu berechnen. Müssen Sie einige Zustand zu halten und Sie benötigen einen Tuning-Parameter. Dies erfordert eine kleine Klasse (vorausgesetzt, Sie verwenden Java 5 oder höher): Instantiate mit dem Decay-Parameter, die Sie wollen (kann Abstimmung sollte zwischen 0 und 1) und dann mit Average () zu filtern. Beim Lesen einer Seite auf einige mathematische Rekursion, alles, was Sie wirklich wissen müssen, wenn Sie es in Code ist, dass Mathematiker gerne Indizes in Arrays und Sequenzen mit Indizes schreiben. (Theyve einige andere Anmerkungen außerdem, die nicht helfen.) Jedoch ist die EMA ziemlich einfach, da Sie nur an einen alten Wert erinnern müssen, der keine komplizierten Zustandarrays erfordert. Beantwortet Feb 8 12 at 20:42 TKKocheran: Ziemlich viel. Isn39t es schön, wenn die Dinge einfach sein können (Wenn Sie mit einer neuen Sequenz beginnen, erhalten Sie einen neuen Mittelwert.) Beachten Sie, dass die ersten paar Begriffe in der gemittelten Sequenz um ein bisschen durch Randeffekte springen, aber Sie erhalten diese mit anderen gleitenden Durchschnitten auch. Allerdings ist ein guter Vorteil, dass Sie die gleitende durchschnittliche Logik in die Mittelung einwickeln und experimentieren können, ohne den Rest des Programms zu viel zu stören. Ndash Donal Fellows Ich habe eine harte Zeit, Ihre Fragen zu verstehen, aber ich werde versuchen, trotzdem zu beantworten. 1) Wenn Ihr Algorithmus 0,25 statt 0,36 gefunden hat, dann ist es falsch. Es ist falsch, weil es eine monotone Zunahme oder Abnahme (das ist immer nach oben oder immer nach unten). Wenn Sie ALLE Ihre Daten nicht klassifizieren, sind Ihre Datenpunkte - wie Sie sie darstellen - nichtlinear. Wenn Sie wirklich den maximalen Wert zwischen zwei Zeitpunkten finden wollen, dann schneiden Sie Ihr Array von tmin zu tmax und finden Sie das Maximum dieses Unterarrays. 2) Nun ist das Konzept der gleitenden Durchschnitte sehr einfach: vorstellen, dass ich die folgende Liste haben: 1.4, 1.5, 1.4, 1.5, 1.5. Ich kann es glätten, indem ich den Durchschnitt von zwei Zahlen: 1.45, 1.45, 1.45, 1.5. Beachten Sie, dass die erste Zahl ist der Durchschnitt von 1,5 und 1,4 (zweite und erste Zahlen) die zweite (neue Liste) ist der Durchschnitt von 1,4 und 1,5 (dritte und zweite alte Liste) die dritte (neue Liste) der Durchschnitt von 1,5 und 1,4 (Vierte und dritte), und so weiter. Ich könnte es Zeitraum drei oder vier gemacht haben, oder n. Beachten Sie, wie die Daten viel glatter sind. Ein guter Weg, um zu sehen, gleitende Durchschnitte bei der Arbeit ist, gehen Sie zu Google Finance, wählen Sie eine Aktie (versuchen Tesla Motors ziemlich volatil (TSLA)) und klicken Sie auf Technische Daten am unteren Rand des Diagramms. Wählen Sie Moving Average mit einer bestimmten Periode und Exponential gleitenden Durchschnitt, um ihre Differenzen zu vergleichen. Exponentielle gleitende Durchschnitt ist nur eine weitere Ausarbeitung dieser, aber Gewichte die älteren Daten weniger als die neuen Daten ist dies ein Weg, um die Glättung nach hinten auszugleichen. Bitte lesen Sie den Wikipedia-Eintrag. Also, dies ist eher ein Kommentar als eine Antwort, aber die kleine Kommentar-Box war nur zu klein. Viel Glück. Wenn Sie Probleme mit der Mathematik haben, könnten Sie mit einem einfachen gleitenden Durchschnitt statt exponentiell gehen. Also die Ausgabe erhalten Sie die letzten x-Terme durch x geteilt werden. Ungetestetes Pseudocode: Beachten Sie, dass Sie die Anfangs - und Endteile der Daten behandeln müssen, da deutlich, dass Sie die letzten 5 Ausdrücke nicht durchschnittlich sind, wenn Sie auf Ihrem 2. Datenpunkt sind. Außerdem gibt es effizientere Methoden, diesen gleitenden Durchschnitt (sum sum - älteste neueste) zu berechnen, aber dies ist, um das Konzept von dem, was passiert, zu bekommen. Beantwortet Feb 8 12 at 20: 41Wie zu berechnen EMA in Excel Erfahren Sie, wie die exponentiellen gleitenden Durchschnitt in Excel und VBA zu berechnen, und erhalten Sie eine kostenlose Web-Kalkulationstabelle. Die Kalkulationstabelle holt die Bestandsdaten von Yahoo Finance ab, berechnet die EMA (über dem gewählten Zeitfenster) und stellt die Ergebnisse dar. Der Download-Link ist unten. Die VBA kann angesehen und bearbeitet werden. Aber zuerst disover, warum EMA ist wichtig für technische Händler und Marktanalysten. Historische Aktienkurse werden oft mit vielen hochfrequenten Geräuschen belastet. Das verbirgt oft große Trends. Gleitende Durchschnitte helfen, diese kleinen Schwankungen auszugleichen, so dass Sie einen besseren Einblick in die allgemeine Marktrichtung erhalten. Der exponentielle gleitende Durchschnitt legt mehr Wert auf neuere Daten. Je größer die Zeitspanne, desto geringer die Wichtigkeit der aktuellsten Daten. EMA wird durch diese Gleichung definiert. (Multipliziert mit einem Gewicht) und yesterday8217s EMA (multipliziert mit 1-Gewicht) Sie müssen die EMA-Berechnung mit einer anfänglichen EMA (EMA 0) kickstart. Dies ist gewöhnlich ein einfacher gleitender Durchschnitt der Länge T. Die obige Tabelle gibt beispielsweise die EMA von Microsoft zwischen dem 1. Januar 2013 und dem 14. Januar 2014 an. Technische Händler verwenden oft die Kreuzung zweier gleitender Durchschnitte 8211 mit einer kurzen Zeitskala Und ein anderer mit einer langen Zeitskala 8211, um Kauf / Verkaufssignale zu erzeugen. Häufig werden 12- und 26-Tage-Gleitmittel verwendet. Wenn der kürzere gleitende Durchschnitt über dem längeren gleitenden Durchschnitt steigt, ist der Markt trends aufwändig, das ist ein Kaufsignal. Allerdings, wenn die kürzere gleitende Mittelwerte fällt unter den langlebigen Durchschnitt, der Markt sinkt dies ist ein Verkaufssignal. Let8217s erlernen zuerst, wie man EMA using Arbeitsblattfunktionen berechnet. Danach entdecken wir, wie man VBA zur Berechnung von EMA verwendet (und automatisch Plot Diagramme) Berechnen Sie EMA in Excel mit Worksheet-Funktionen Schritt 1. Let8217s sagen, dass wir die 12-Tage-EMA von Exxon Mobil8217s Aktienkurs berechnen wollen. Wir müssen zunächst historische Aktienkurse 8211 erhalten, die Sie mit diesem Bulk-Aktien-Downloader tun können. Schritt 2 . Berechnen Sie den einfachen Durchschnitt der ersten 12 Preise mit Excel8217s Average () - Funktion. In der Screengrab unten, in Zelle C16 haben wir die Formel AVERAGE (B5: B16) wo B5: B16 enthält die ersten 12 schließen Preise Schritt 3. Unterhalb der Zelle, die in Schritt 2 verwendet wird, geben Sie die EMA Formel oben ein Dort haben Sie es You8217ve berechnete erfolgreich einen wichtigen technischen Indikator, EMA, in einer Kalkulationstafel. Berechnen EMA mit VBA Jetzt let8217s mechanisieren die Berechnungen mit VBA, einschließlich der automatischen Erstellung von Plots. Ich hab8217t zeigt Ihnen die volle VBA hier (es8217s in der Kalkulationstabelle unten), aber wir8217ll diskutieren die meisten kritischen Code. Schritt 1. Laden Sie historische Aktienkurse für Ihren Ticker von Yahoo Finance (mit CSV-Dateien) und laden Sie sie in Excel oder verwenden Sie die VBA in dieser Tabelle, um historische Zitate direkt in Excel zu erhalten. Ihre Daten können so aussehen: Schritt 2. Dies ist, wo wir brauchen, um ein paar braincells 8211 wir brauchen, um die EMA-Gleichung in VBA implementieren. Wir können R1C1-Stil verwenden, um programmgesteuert Formeln in einzelne Zellen eingeben. Untersuchen Sie das Code-Snippet unten. EMAWindow ist eine Variable, die dem gewünschten Zeitfenster entspricht numRows ist die Gesamtzahl der Datenpunkte 1 (die 8220 18221 ist weil wir8217re unter der Annahme, dass die tatsächlichen Bestandsdaten in Zeile 2 beginnen) wird die EMA in Spalte berechnet h Angenommen, dass EMAWindow 5 und Numrows Die erste Zeile platziert eine Formel in der Zelle h6, die das arithmetische Mittel der ersten 5 historischen Datenpunkte berechnet. Die zweite Zeile platziert Formeln in den Zellen h7: h100, die die EMA der verbleibenden 95 berechnet Datenpunkte Schritt 3 Diese VBA-Funktion erzeugt einen Plot des engen Preises und der EMA. Großer Job auf Diagrammen und Erklärungen. Ich habe eine Frage though. Wenn ich das Anfangsdatum zu einem Jahr später ändere und neueste EMA Daten betrachte, ist es merklich unterschiedlich, als wenn ich den gleichen EMA Zeitraum mit einem früheren Anfangsdatum für die gleiche neue Datumsreferenz verwende. Ist das, was Sie erwarten. Es macht es schwierig, auf veröffentlichte Diagramme mit EMAs angezeigt und sehen nicht das gleiche Diagramm. Shivashish Sarkar sagt: Hallo, ich bin mit Ihrem EMA-Rechner und ich wirklich zu schätzen wissen. Allerdings habe ich festgestellt, dass der Taschenrechner nicht in der Lage, die Graphen für alle Unternehmen (es zeigt Run time error 1004). Können Sie bitte erstellen Sie eine aktualisierte Ausgabe Ihres Rechners, in dem neue Unternehmen aufgenommen werden wird Lassen Sie eine Antwort Antworten abbrechen Like the Free Spreadsheets Master Wissensbasis Aktuelle BeiträgeExponential Moving Average (EMA) Die klassische EMA Formel ist: Im Gegensatz zu Simple Moving Average. Wo das Gewicht aller vorherigen Balken gleich ist, macht der Exponential Moving Average die letzte Balke wichtiger. Das Gewicht jedes älteren Stabes verringert das exponentiell. Unten ist ein Gewichtsdiagramm für N 10 (1 ist der aktuelle Preis, 2 der vorherige und so weiter): Die Gewichtsformel ist, wo i eine Distanz zum letzten Balken ist. 0 bedeutet die letzte, 1 die vorherige Leiste und so weiter. First Value Die Formel bezieht sich auf den vorherigen Wert und es gibt keine Standardvereinbarung, was der erste (älteste) Wert ist. Unterschiedliche Implementierung von EMA verwendet: Der erste Preis (MT4, Marketscope) oder Der Einfache Moving Average der ersten N Preise (Stockcharts). Verwendung anstelle von einfachen gleitenden Durchschnitt Der exponentielle gleitende Durchschnitt kann genau als einfacher gleitender Durchschnitt verwendet werden. Insbesondere in der Situation, in der die Inertheit von Simple Moving Average nicht ignoriert werden kann. Vergleichen Sie EMA (10) und MVA (10), die zu denselben Preisen angewendet werden: Einschränkungen Der Exponential Moving Average basiert auf allen vorherigen Werten, so dass das Indikatorergebnis für einen bestimmten Balken davon abhängt, wie viel historische Daten berücksichtigt werden. In dem Fall, in dem mehr historische Daten geladen werden, kann sich der Wert des Indikators von dem zuvor berechneten Wert unterscheiden. Siehe auch Indikatoren Artikel Dieser Artikel in anderen SprachenSpreadsheet Umsetzung der saisonalen Anpassung und exponentielle Glättung Es ist einfach, saisonale Anpassung und passen exponentielle Glättung Modelle mit Excel führen. Die unten aufgeführten Bildschirmbilder und Diagramme werden einer Tabellenkalkulation entnommen, die eine multiplikative saisonale Anpassung und eine lineare Exponentialglättung für die folgenden vierteljährlichen Verkaufsdaten von Outboard Marine darstellt: Um eine Kopie der Tabellenkalkulation selbst zu erhalten, klicken Sie hier. Die Version der linearen exponentiellen Glättung, die hier für Demonstrationszwecke verwendet wird, ist die Brown8217s-Version, nur weil sie mit einer einzigen Spalte von Formeln implementiert werden kann und es nur eine Glättungskonstante gibt, die optimiert werden soll. In der Regel ist es besser, Holt8217s Version, die separate Glättungskonstanten für Ebene und Trend hat. Der Prognoseprozess verläuft wie folgt: (i) Die Daten werden saisonbereinigt (ii) sodann für die saisonbereinigten Daten über lineare exponentielle Glättung Prognosen erstellt und (iii) schließlich werden die saisonbereinigten Prognosen zur Erzielung von Prognosen für die ursprüngliche Serie herangezogen . Der saisonale Anpassungsprozess wird in den Spalten D bis G durchgeführt. Der erste Schritt in der Saisonbereinigung besteht darin, einen zentrierten gleitenden Durchschnitt (hier in Spalte D) zu berechnen. Dies kann erreicht werden, indem der Durchschnitt von zwei einjährigen Durchschnittswerten, die um eine Periode relativ zueinander versetzt sind, genommen wird. (Eine Kombination von zwei Offset-Durchschnittswerten anstatt eines einzigen Mittels wird für Zentrierzwecke benötigt, wenn die Anzahl der Jahreszeiten gleich ist.) Der nächste Schritt besteht darin, das Verhältnis zu dem gleitenden Durchschnitt - i. e zu berechnen. Wobei die ursprünglichen Daten durch den gleitenden Durchschnitt in jeder Periode dividiert werden, was hier in Spalte E durchgeführt wird. (Dies wird auch Quottrend-Cyclequot-Komponente des Musters genannt, sofern Trend - und Konjunktur-Effekte als all das angesehen werden können Bleibt nach einer Durchschnittsberechnung über ein ganzes Jahr im Wert von Daten bestehen. Natürlich können die monatlichen Veränderungen, die nicht saisonal bedingt sind, durch viele andere Faktoren bestimmt werden, aber der 12-Monatsdurchschnitt glättet sie weitgehend Wird der geschätzte saisonale Index für jede Jahreszeit berechnet, indem zuerst alle Verhältnisse für die jeweilige Jahreszeit gemittelt werden, was in den Zellen G3-G6 unter Verwendung einer AVERAGEIF-Formel erfolgt. Die Durchschnittsverhältnisse werden dann neu skaliert, so daß sie auf das genau 100-fache der Anzahl der Perioden in einer Jahreszeit, oder 400 in diesem Fall, das in den Zellen H3-H6 erfolgt, summieren. Unten in der Spalte F werden VLOOKUP-Formeln verwendet, um den entsprechenden saisonalen Indexwert in jede Zeile der Datentabelle einzufügen, entsprechend dem Viertel des Jahres, das es repräsentiert. Der zentrierte gleitende Durchschnitt und die saisonbereinigten Daten enden wie folgt: Beachten Sie, dass der gleitende Durchschnitt typischerweise wie eine glattere Version der saisonbereinigten Serie aussieht und an beiden Enden kürzer ist. Ein weiteres Arbeitsblatt in derselben Excel-Datei zeigt die Anwendung des linearen exponentiellen Glättungsmodells auf die saisonbereinigten Daten beginnend in Spalte G. Über der Prognosespalte (hier in Zelle H9) wird ein Wert für die Glättungskonstante (alpha) eingetragen Zur Vereinfachung wird ihm der Bereichsname quotAlpha. quot zugewiesen (Der Name wird mit dem Befehl quotInsert / Name / Createquot zugewiesen.) Das LES-Modell wird initialisiert, indem die ersten beiden Prognosen gleich dem ersten Istwert der saisonbereinigten Serie gesetzt werden. Die hier verwendete Formel für die LES-Prognose ist die rekursive Einzelformel des Brown8217s-Modells: Diese Formel wird in der Zelle entsprechend der dritten Periode (hier Zelle H15) eingegeben und von dort nach unten kopiert. Beachten Sie, dass sich die LES-Prognose für die aktuelle Periode auf die beiden vorherigen Beobachtungen und die beiden vorhergehenden Prognosefehler sowie auf den Wert von alpha bezieht. Somit bezieht sich die Prognoseformel in Zeile 15 nur auf Daten, die in Zeile 14 und früher verfügbar waren. (Natürlich könnten wir statt der linearen exponentiellen Glättung einfach statt der linearen exponentiellen Glättung verwenden, könnten wir stattdessen die SES-Formel ersetzen. Wir könnten auch Holt8217s anstelle von Brown8217s LES-Modell verwenden, was zwei weitere Spalten von Formeln erfordern würde, um das Niveau und den Trend zu berechnen Die in der Prognose verwendet werden.) Die Fehler werden in der nächsten Spalte (hier Spalte J) durch Subtrahieren der Prognosen von den Istwerten berechnet. Der Quadratwurzel-Quadratfehler wird als Quadratwurzel der Varianz der Fehler plus dem Quadrat des Mittelwerts berechnet. (Das ergibt sich aus der mathematischen Identität: MSE VARIANCE (Fehler) (AVERAGE (Fehler)). 2) Bei der Berechnung des Mittelwertes und der Varianz der Fehler in dieser Formel sind die ersten beiden Perioden ausgeschlossen, da das Modell nicht tatsächlich mit der Prognose beginnt Die dritte Periode (Zeile 15 auf der Kalkulationstabelle). Der optimale Wert von alpha kann entweder durch manuelles Ändern von alpha gefunden werden, bis das minimale RMSE gefunden wird, oder Sie können das quotSolverquot verwenden, um eine genaue Minimierung durchzuführen. Der Wert von alpha, den der Solver gefunden hat, wird hier angezeigt (alpha0.471). Es ist in der Regel eine gute Idee, die Fehler des Modells (in transformierten Einheiten) zu zeichnen und ihre Autokorrelationen zu berechnen und zu zeichnen, bis zu einer Saison. Hier ist eine Zeitreihenfolge der (saisonbereinigten) Fehler: Die Fehlerautokorrelationen werden mit Hilfe der CORREL () - Funktion berechnet, um die Korrelationen der Fehler selbst mit einer oder mehreren Perioden zu berechnen - Einzelheiten sind im Kalkulationsblatt dargestellt . Hier ist ein Diagramm der Autokorrelationen der Fehler bei den ersten fünf Verzögerungen: Die Autokorrelationen bei den Verzögerungen 1 bis 3 sind sehr nahe bei Null, aber die Spitze bei Verzögerung 4 (deren Wert 0,35 ist) ist etwas mühsam Saisonale Anpassungsprozess nicht vollständig erfolgreich war. Allerdings ist es eigentlich nur marginal signifikant. 95 Signifikanzbanden zum Testen, ob Autokorrelationen signifikant von Null verschieden sind, sind etwa plus-oder-minus 2 / SQRT (n-k), wobei n die Stichprobengröße und k die Verzögerung ist. Hier ist n gleich 38 und k variiert von 1 bis 5, so daß die Quadratwurzel von - n-minus-k für alle von etwa 6 ist, und daher sind die Grenzen für das Testen der statistischen Signifikanz von Abweichungen von Null ungefähr plus - Oder-minus 2/6 oder 0,33. Wenn Sie den Wert von alpha von Hand in diesem Excel-Modell variieren, können Sie den Effekt auf die Zeitreihen und Autokorrelationsdiagramme der Fehler sowie auf den Root-mean-squared-Fehler beobachten, der nachfolgend erläutert wird. Am Ende der Kalkulationstabelle wird die Prognoseformel quasi in die Zukunft gestartet, indem lediglich Prognosen für tatsächliche Werte an dem Punkt ausgetauscht werden, an dem die tatsächlichen Daten ablaufen - d. h. Wo die Zukunft beginnt. (Mit anderen Worten, in jeder Zelle, in der ein zukünftiger Datenwert auftreten würde, wird eine Zellreferenz eingefügt, die auf die Prognose für diese Periode hinweist.) Alle anderen Formeln werden einfach von oben nach unten kopiert: Beachten Sie, dass die Fehler für die Prognosen von Die Zukunft werden alle berechnet, um Null zu sein. Dies bedeutet nicht, dass die tatsächlichen Fehler null sein werden, sondern lediglich die Tatsache, dass wir für die Vorhersage davon ausgehen, dass die zukünftigen Daten den Prognosen im Durchschnitt entsprechen werden. Die daraus resultierenden LES-Prognosen für die saisonbereinigten Daten sehen folgendermaßen aus: Mit diesem für α-Periodenprognosen optimalen Wert von alpha ist der prognostizierte Trend leicht nach oben, was auf den lokalen Trend in den letzten 2 Jahren zurückzuführen ist oder so. Für andere Werte von alpha könnte eine sehr unterschiedliche Trendprojektion erhalten werden. Es ist normalerweise eine gute Idee, zu sehen, was mit der langfristigen Trendprojektion geschieht, wenn Alpha variiert wird, weil der Wert, der für kurzfristige Prognosen am besten ist, nicht notwendigerweise der beste Wert für die Vorhersage der weiter entfernten Zukunft sein wird. Dies ist beispielsweise das Ergebnis, das erhalten wird, wenn der Wert von alpha manuell auf 0,25 gesetzt wird: Der projizierte Langzeittrend ist jetzt eher negativ als positiv Mit einem kleineren Wert von alpha setzt das Modell mehr Gewicht auf ältere Daten Seine Einschätzung des aktuellen Niveaus und Tendenz und seine langfristigen Prognosen spiegeln den in den letzten 5 Jahren beobachteten Abwärtstrend anstatt den jüngsten Aufwärtstrend wider. Dieses Diagramm zeigt auch deutlich, wie das Modell mit einem kleineren Wert von alpha langsamer ist, um auf quotturning pointsquot in den Daten zu antworten und daher tendiert, einen Fehler des gleichen Vorzeichens für viele Perioden in einer Reihe zu machen. Die Prognosefehler von 1-Schritt-Vorhersage sind im Mittel größer als die, die zuvor erhalten wurden (RMSE von 34,4 statt 27,4) und stark positiv autokorreliert. Die Lag-1-Autokorrelation von 0,56 übersteigt den oben berechneten Wert von 0,33 für eine statistisch signifikante Abweichung von Null deutlich. Als Alternative zum Abkürzen des Wertes von Alpha, um mehr Konservatismus in Langzeitprognosen einzuführen, wird manchmal ein Quottrend-Dämpfungsquotfaktor dem Modell hinzugefügt, um die projizierte Tendenz nach einigen Perioden abflachen zu lassen. Der letzte Schritt beim Erstellen des Prognosemodells besteht darin, die LES-Prognosen durch Multiplikation mit den entsprechenden saisonalen Indizes zu veranschaulichen. Somit sind die reseasonalisierten Prognosen in Spalte I einfach das Produkt der saisonalen Indizes in Spalte F und der saisonbereinigten LES-Prognosen in Spalte H. Es ist relativ einfach, Konfidenzintervalle für einstufige Prognosen dieses Modells zu berechnen: Erstens Berechnen Sie den RMSE (root-mean-squared Fehler, der nur die Quadratwurzel der MSE ist) und berechnen Sie dann ein Konfidenzintervall für die saisonbereinigte Prognose durch Addition und Subtraktion zweimal des RMSE. (Im Allgemeinen ist ein 95-Konfidenzintervall für eine Ein-Perioden-Vorausprognose ungefähr gleich der Punktvorhersage plus-oder-minus-zweimal der geschätzten Standardabweichung der Prognosefehler, vorausgesetzt, die Fehlerverteilung ist annähernd normal und die Stichprobengröße Ist groß genug, sagen wir, 20 oder mehr Hier ist die RMSE anstelle der Standardabweichung der Fehler die beste Schätzung der Standardabweichung der zukünftigen Prognosefehler, weil sie auch die Zufallsvariationen berücksichtigt.) Die Vertrauensgrenzen Für die saisonbereinigte Prognose werden dann reseasonalisiert. Zusammen mit der Prognose, durch Multiplikation mit den entsprechenden saisonalen Indizes. In diesem Fall ist die RMSE gleich 27,4 und die saisonbereinigte Prognose für die erste künftige Periode (Dez-93) beträgt 273,2. So dass das saisonbereinigte 95-Konfidenzintervall von 273,2-227,4 218,4 auf 273,2227,4 328,0 liegt. Das Multiplizieren dieser Limits durch Decembers saisonalen Index von 68,61. Erhalten wir niedrigere und obere Konfidenzgrenzen von 149,8 und 225,0 um die Dez-93-Punktprognose von 187,4. Die Vertrauensgrenzen für Prognosen, die länger als eine Periode vorangehen, werden sich in der Regel aufgrund der Unsicherheit über das Niveau und den Trend sowie die saisonalen Faktoren erweitern, da der Prognosehorizont zunimmt, aber es ist schwierig, sie im Allgemeinen durch analytische Methoden zu berechnen. (Die geeignete Methode zur Berechnung der Vertrauensgrenzen für die LES-Prognose ist die Verwendung der ARIMA-Theorie, aber auch die Unsicherheit in den saisonalen Indizes ist eine andere.) Wenn Sie ein realistisches Konfidenzintervall für eine Prognose über mehrere Perioden bevorzugen, Fehler zu berücksichtigen, ist Ihre beste Wette, empirische Methoden zu verwenden: Zum Beispiel, um ein Vertrauensintervall für eine 2-Schritt-Vorausprognose zu erhalten, könnten Sie eine weitere Spalte auf der Kalkulationstabelle erstellen, um eine 2-Schritt-Voraus-Prognose für jeden Zeitraum zu berechnen Durch Booten der Ein-Schritt-Voraus-Prognose). Berechnen Sie dann die RMSE der 2-Schritt-Voraus-Prognosefehler und verwenden Sie diese als Basis für ein 2-stufiges Konfidenzintervall.
No comments:
Post a Comment