Tuesday, 16 May 2017

Bewegungsdurchschnitt Prognose Sas


Der Beispielcode auf der Registerkarte Vollcode veranschaulicht, wie man den gleitenden Durchschnitt einer Variablen über einen ganzen Datensatz, über die letzten N Beobachtungen in einem Datensatz oder über die letzten N Beobachtungen innerhalb einer BY-Gruppe berechnet. Diese Beispieldateien und Codebeispiele werden von SAS Institute Inc. zur Verfügung gestellt, wie es ohne jegliche Gewährleistung, weder ausdrücklich noch stillschweigend, einschließlich, aber nicht beschränkt auf die implizierten Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck ist. Die Empfänger bestätigen und stimmen zu, dass das SAS-Institut nicht für irgendwelche Schäden haftbar ist, die sich aus der Verwendung dieses Materials ergeben. Darüber hinaus wird das SAS-Institut die hierin enthaltenen Materialien nicht unterstützen. Diese Beispieldateien und Codebeispiele werden von SAS Institute Inc. zur Verfügung gestellt, wie es ohne jegliche Gewährleistung, weder ausdrücklich noch stillschweigend, einschließlich, aber nicht beschränkt auf die implizierten Garantien der Marktgängigkeit und Eignung für einen bestimmten Zweck ist. Die Empfänger bestätigen und stimmen zu, dass das SAS-Institut nicht für irgendwelche Schäden haftbar ist, die sich aus der Verwendung dieses Materials ergeben. Darüber hinaus wird das SAS-Institut die hierin enthaltenen Materialien nicht unterstützen. Berechnen Sie den gleitenden Durchschnitt einer Variablen durch einen ganzen Datensatz, über die letzten N Beobachtungen in einem Datensatz oder über die letzten N Beobachtungen innerhalb einer BY-Gruppe. Ich möchte einen Prognosewert hinzufügen Bericht hinzufügen, in dem Bericht, den ich verwende Eine naive Prognose (MA3, 3 Monate gleitender Durchschnitt) als Grundlinie. Jetzt bin ich im November, ich möchte, dass meine Prognose ab Dezember beginnt und 12 Monate abhängt, ich habe komplette Anfrage Geschichte bis September. Für MA3 möchte ich, dass die Prognose als unten gebaut wird. Prognose Summe von jul, aug und sep request 3 jan prognose (Summe von aug und sep request dec prognose) 3 feb prognose (sep prognose sum von dec und jan prognose) 3 mar Prognose Summe von Dec, Jan und Feb Prognose bis zu 12 Monate aufwenden meine Datenspeicher in der unteren Struktur (für alle fehlenden Monat, Anfrage Menge ist 0) ProductArea ProductLevel1 RequestPeriodDT RequestQuantity AAA bbb nov-2010 100 AAA bbb mar-2011 80 AAA bbb apr -2011 100 AAA bbb Mai-2011 90 AAA bbb sep-2011 200 AAA ccc jun-2011 100 AAA ccc jul-2011 50 AAA ccc aug-2011 80 AAA ccc sep-2011 90 BBB ddd jul-2011 100 BBB eee mar-2011 80 Wie kann ich programmieren, um MA3 Prognose für 5 Zyklen zu erstellen: smileyconfused: Als Teil meiner Prognose. Wie kann ich programmieren, um MA3 Prognose für 5 Zyklen zu erstellen: Smileyconfused: Als Teil meiner Prognose Ich benutze einen gleitenden Durchschnitt auf der Grundlage von drei Beobachtungen. Berechnen dieses in SAS habe ich es geschafft, es nur für Ergebnisdaten zu tun und es nicht geschafft, es für Prognosedaten zu tun. Der gleitende Durchschnitt für einen bestimmten Monat sollte der Durchschnitt für die gleichen Monate drei Jahre zurück sein. Ich habe verschiedene Art von Syntax ausprobiert, aber ich habe nichts gefunden, das eine korrekte Berechnung für Werte nach Mai 2014 (mein letztes Ergebnis) macht. Diese Syntax schafft korrekte Werte bis Mai 2014. Danach ist alles leer (ich habe MA nach dem auf mehrere Weisen erstellt, aber nie richtig). Proc erweitern dataQQQ outQQQQ transformout (reverse movave 3 reverse) Irgendwelche Ideenfunktionen Ich denke, es sollte von diesem Setup funktionieren. Proc-Erweiterung wird eher verwendet, um Daten zu transformieren, als es für die Prognose zu verwenden. Wenn Sie tatsächlich nach einfachen gleitenden Durchschnitten suchen (nicht exponentiell gewichtet), könnten Sie einen Datenschritt verwenden. Vielleicht so etwas wie das: Data AForecast (Dropdummy) Dummy beibehalten Set Ein DummySum (Dummy, ACTUAL, - Lag3 (ACTUAL)) MovAve3GDdummy3 Run p. s. Kredit geht an SAS :-) Ich habe diese Art von Lösung gesehen. Das Problem ist aber, dass mein MA nicht so einfach ist wie das (sie sind noch einfach aber nicht genug ..). Für den Juni 2014 möchte ich den Durchschnitt von Juni 2011-2013. Und so weiter, also will ich einfach nicht den Durchschnitt der drei letzten Monate. Wie kann ich eine By-Anweisung und eine ID-Variable in Ihre Lösung hinzufügen. Geben Sie uns ein Beispiel, um Ihr Problem zu veranschaulichen. Ich könnte ganz falsch sein, aber ich denke: Let Periods3 Lass Lead5 Multiplier12 12 Monate Daten A (Dropi j k) Format Datum Datum9. K1 bis 3 Do j1 bis 5 Do i1 bis 12 DateMDY (i, 1, j2000) ACTUALRound (Normal (1) k20) k als Standardabweichung IDk Ausgang End End End Run einfach saisonal () gleitender Durchschnitt Daten AForecast (KeepID Datum ACTUAL MovAve) Set A Von ID Array Dummy Dummy1-Dummy12 Array Dummysum Dummysum1-Dummysum12 Array Dummydrop Dummydrop1-Dummydrop12 Behalte Dummysum1-Dummysum12 Do i1 Zu 12 Wenn Monat (Datum) eq I Dann Dummy ACTUAL Dummydrop LagampCombLag (ACTUAL) End End If First. ID Dann zählen count0 Do i1 To 12 dummysum 0 End End count1 Wenn count gt ampCombLag. Dann mache ich zu 12 Dummysum-Summe (Dummysum, Dummy, - Dummydrop) End End Else Do Do 1 bis 12 Dummysum Sum (Dummysum, Dummy) End End Wenn count ge ampCombLag. Dann mache ich zu 12 Wenn nicht fehlt (Dummy) Dann dummysumactdummysum End MovAvedummysumactampPeriods. End Run füllen Sie das Blei aus Daten AForecastLead (Dropi) Beibehalten Datum ID MveAve Set AForecast By ID Wenn Last. ID Dann Ausgabe ausführen i1 to ampLead. DateIntNX (Monat, Datum, 1, gleich) ACTUAL. Output End End Output Run Vielen Dank udosas. Ich konnte nicht wirklich damit anfangen, nachdem ich von meinem Urlaub zurückgekehrt bin, aber jetzt kann ich etwas Zeit finden und ich habe schon einige Gebrauch von deiner Antwort gefunden. Allerdings bin ich noch nicht da. Ich glaube, ich brauche nicht Ihre Art von Datenschritt, weil ich schon ein Datum variabler Manad (YYMMN6, 200801-201812) und natürlich meine Variable von Interesse SGIRODFPANDEL (mit Werten von 200801 bis 201405). Beim Schreiben meiner Proc Timedata Schritt Im tut so: proc timedata datahave outnull outarraywant id manad intervalMONTH do 1 zu LENGTH movavg (SGIRODFPANDELt-12SGIRODFPANDELt-24SG IRODFPANDELt-36) 3 Dann bekam ich movavg Werte von 201101 bis 201505. Mein Ziel ist jedoch zu Erhalten Werte von 201406 bis 201812. Daher möchte ich gleitende Mittelwerte, die von einer Mischung aus SGIRODFPANDEL-Werten und movavg-Werten abhängen und einige, die nur von movavg-Werten abhängen. Ist das möglich Wenn ich LENGTH für etwas anderes ersetze, funktioniert es einfach nicht. Was ich falsch macheMoving Average Forecasting Einführung. Wie Sie vielleicht vermuten, sehen wir uns einige der primitivsten Ansätze zur Prognose an. Aber hoffentlich sind dies zumindest eine lohnende Einführung in einige der Computing-Fragen im Zusammenhang mit der Umsetzung von Prognosen in Tabellenkalkulationen. In diesem Sinne werden wir fortfahren, indem wir am Anfang beginnen und mit Moving Average Prognosen arbeiten. Gleitende durchschnittliche Prognosen. Jeder ist mit gleitenden durchschnittlichen Prognosen vertraut, unabhängig davon, ob sie glauben, dass sie sind. Alle College-Studenten machen sie die ganze Zeit. Denken Sie an Ihre Testergebnisse in einem Kurs, wo Sie vier Tests während des Semesters haben werden. Nehmen wir an, Sie haben eine 85 bei Ihrem ersten Test. Was würdest du für deinen zweiten Test-Score vorhersagen Was denkst du, dein Lehrer würde für deinen nächsten Test-Score voraussagen Was denkst du, deine Freunde können für deinen nächsten Test-Score voraussagen Was denkst du, deine Eltern können für deinen nächsten Test-Score voraussagen All das Blabbing, das du mit deinen Freunden und Eltern machen kannst, sie und deinem Lehrer sind sehr wahrscheinlich zu erwarten, dass du etwas im Bereich der 85 bekommst, die du gerade bekommen hast. Nun, jetzt können wir davon ausgehen, dass trotz Ihrer Selbst-Förderung zu Ihren Freunden, Sie über-schätzen Sie sich selbst und Figur können Sie weniger für den zweiten Test zu studieren und so erhalten Sie eine 73. Nun, was sind alle betroffenen und unbekümmert zu gehen Erwarten Sie auf Ihrem dritten Test zu bekommen Es gibt zwei sehr wahrscheinlich Ansätze für sie eine Schätzung zu entwickeln, unabhängig davon, ob sie es mit Ihnen teilen wird. Sie können sich selbst sagen, "dieser Kerl ist immer bläst Rauch über seine smarts. Er wird noch 73, wenn er glücklich ist. Vielleicht werden die Eltern versuchen, mehr unterstützend zu sein und zu sagen, quotWell, so weit hast du eine 85 und eine 73 bekommen, also vielleicht solltest du auf eine (85 73) 2 79 kommen. Ich weiß nicht, vielleicht, wenn du weniger feiern musst Und werent wedelte den Wiesel überall auf den Platz und wenn du anfing, viel mehr zu studieren, könntest du eine höhere Punktzahl bekommen. Diese beiden Schätzungen belegen tatsächlich durchschnittliche Prognosen. Die erste nutzt nur Ihre aktuellste Punktzahl, um Ihre zukünftige Leistung zu prognostizieren. Dies wird als eine gleitende durchschnittliche Prognose mit einer Periode von Daten bezeichnet. Die zweite ist auch eine gleitende durchschnittliche Prognose, aber mit zwei Perioden von Daten. Nehmen wir an, dass all diese Leute, die auf deinem großen Verstand zerschlagen sind, dich irgendwie verärgert haben und du entscheidest, den dritten Test aus deinen eigenen Gründen gut zu machen und eine höhere Punktzahl vor deinem Quoten zu setzen. Sie nehmen den Test und Ihre Partitur ist eigentlich ein 89 Jeder, auch Sie selbst, ist beeindruckt. So, jetzt haben Sie die endgültige Prüfung des Semesters kommen und wie üblich fühlen Sie sich die Notwendigkeit, goad jeder in die Herstellung ihrer Vorhersagen darüber, wie youll auf den letzten Test zu tun. Nun, hoffentlich sehen Sie das Muster. Nun, hoffentlich kannst du das Muster sehen. Was glaubst du, ist die genaueste Pfeife während wir arbeiten. Jetzt kehren wir zu unserer neuen Reinigungsfirma zurück, die von deiner entfremdeten Halbschwester namens Whistle während wir arbeiten. Sie haben einige vergangene Verkaufsdaten, die durch den folgenden Abschnitt aus einer Kalkulationstabelle dargestellt werden. Zuerst stellen wir die Daten für eine dreistellige gleitende durchschnittliche Prognose vor. Der Eintrag für Zelle C6 sollte jetzt sein. Du kannst diese Zellformel auf die anderen Zellen C7 bis C11 kopieren. Beachten Sie, wie sich der Durchschnitt über die aktuellsten historischen Daten bewegt, aber genau die drei letzten Perioden verwendet, die für jede Vorhersage verfügbar sind. Sie sollten auch bemerken, dass wir nicht wirklich brauchen, um die Vorhersagen für die vergangenen Perioden zu machen, um unsere jüngsten Vorhersage zu entwickeln. Dies unterscheidet sich definitiv von dem exponentiellen Glättungsmodell. Ive enthalten die quotpast Vorhersagen, weil wir sie in der nächsten Webseite verwenden, um die Vorhersagegültigkeit zu messen. Jetzt möchte ich die analogen Ergebnisse für eine zweistufige gleitende durchschnittliche Prognose vorstellen. Der Eintrag für Zelle C5 sollte jetzt sein. Du kannst diese Zellformel in die anderen Zellen C6 bis C11 kopieren. Beachten Sie, wie jetzt nur die beiden letzten Stücke der historischen Daten für jede Vorhersage verwendet werden. Wieder habe ich die quotpast-Vorhersagen für illustrative Zwecke und für die spätere Verwendung in der Prognose-Validierung enthalten. Einige andere Dinge, die wichtig sind, um zu bemerken. Für eine m-Periode gleitende durchschnittliche Prognose werden nur die m aktuellsten Datenwerte verwendet, um die Vorhersage zu machen. Nichts anderes ist nötig Für eine m-Periode gleitende durchschnittliche Prognose, wenn Sie quotpast Vorhersagen quot, bemerken, dass die erste Vorhersage in Periode m 1 auftritt. Beide Themen werden sehr wichtig sein, wenn wir unseren Code entwickeln. Entwicklung der beweglichen Mittelfunktion. Jetzt müssen wir den Code für die gleitende Mittelprognose entwickeln, die flexibler genutzt werden kann. Der Code folgt. Beachten Sie, dass die Eingaben für die Anzahl der Perioden gelten, die Sie in der Prognose und dem Array von historischen Werten verwenden möchten. Sie können es in der beliebigen Arbeitsmappe speichern. Funktion MovingAverage (Historical, NumberOfPeriods) Als Single Declaring und Initialisierung von Variablen Dim Item als Variant Dim Zähler als Integer Dim Akkumulation als Single Dim HistoricalSize als Integer Initialisierung von Variablen Counter 1 Akkumulation 0 Bestimmen der Größe von Historical Array HistoricalSize Historical. Count For Counter 1 To NumberOfPeriods Akkumulation der entsprechenden Anzahl der aktuellsten bisher beobachteten Werte Akkumulation Akkumulation Historical (HistoricalSize - NumberOfPeriods Counter) MovingAverage Accumulation NumberOfPeriods Der Code wird in der Klasse erklärt. Sie möchten die Funktion auf der Kalkulationstabelle positionieren, damit das Ergebnis der Berechnung erscheint, wo es wie folgt ankommt:

No comments:

Post a Comment