Wednesday, 13 December 2017

Prognostisering glidande medelvärde säsongs


Flyttande medelprognos Inledning. Som du kan gissa vi tittar på några av de mest primitiva metoderna för prognoser. Men förhoppningsvis är dessa åtminstone en värdefull introduktion till några av de datorproblem som är relaterade till att implementera prognoser i kalkylblad. I den här vägen fortsätter vi med att börja i början och börja arbeta med Moving Average prognoser. Flyttande medelprognoser. Alla är bekanta med att flytta genomsnittliga prognoser oavsett om de tror att de är. Alla studenter gör dem hela tiden. Tänk på dina testresultat i en kurs där du kommer att ha fyra tester under semestern. Låt oss anta att du fick en 85 på ditt första test. Vad skulle du förutse för ditt andra testresultat Vad tycker du att din lärare skulle förutsäga för nästa testresultat Vad tycker du att dina vänner kan förutsäga för nästa testresultat Vad tror du att dina föräldrar kan förutsäga för nästa testresultat Oavsett om Allt du kan göra med dina vänner och föräldrar, de och din lärare är mycket troliga att vänta dig på att få något i det 85-tal som du just fått. Nåväl, nu kan vi anta att trots din egen marknadsföring till dina vänner överskattar du dig själv och räknar att du kan studera mindre för det andra testet och så får du en 73. Nu är vad alla berörda och oroade kommer att Förutse att du kommer att få ditt tredje test Det finns två mycket troliga metoder för att de ska kunna utveckla en uppskattning oavsett om de kommer att dela den med dig. De kan säga till sig själva: "Denna kille sprider alltid rök om hans smarts. Hes kommer att få ytterligare 73 om han är lycklig. Kanske kommer föräldrarna att försöka vara mer stödjande och säga, quote, hittills har du fått en 85 och en 73, så kanske du ska räkna med att få en (85 73) 2 79. Jag vet inte, kanske om du gjorde mindre fest och werent vaggar väsan överallt och om du började göra mycket mer studerar kan du få en högre poäng. quot Båda dessa uppskattningar flyttade faktiskt genomsnittliga prognoser. Den första använder endast din senaste poäng för att förutse din framtida prestanda. Detta kallas en glidande genomsnittlig prognos med en period av data. Den andra är också en rörlig genomsnittlig prognos men använder två dataperioder. Låt oss anta att alla dessa människor bråkar på ditt stora sinne, har gissat dig och du bestämmer dig för att göra det bra på det tredje testet av dina egna skäl och att lägga en högre poäng framför din quotalliesquot. Du tar testet och din poäng är faktiskt en 89 Alla, inklusive dig själv, är imponerade. Så nu har du det sista testet av terminen som kommer upp och som vanligt känner du behovet av att ge alla till att göra sina förutsägelser om hur du ska göra på det sista testet. Jo, förhoppningsvis ser du mönstret. Nu kan du förhoppningsvis se mönstret. Vilken tror du är den mest exakta whistle medan vi jobbar. Nu återvänder vi till vårt nya rengöringsföretag som startas av din främmande halvsyster som heter Whistle While We Work. Du har några tidigare försäljningsdata som representeras av följande avsnitt från ett kalkylblad. Vi presenterar först data för en treårs glidande medelprognos. Posten för cell C6 ska vara Nu kan du kopiera den här cellformeln ner till de andra cellerna C7 till och med C11. Lägg märke till hur genomsnittet rör sig över de senaste historiska data men använder exakt de tre senaste perioderna som finns tillgängliga för varje förutsägelse. Du bör också märka att vi inte verkligen behöver göra förutsägelser för de senaste perioderna för att utveckla vår senaste förutsägelse. Detta är definitivt annorlunda än exponentiell utjämningsmodell. Ive inkluderade quotpast predictionsquot eftersom vi kommer att använda dem på nästa webbsida för att mäta förutsägelse validitet. Nu vill jag presentera de analoga resultaten för en tvåårs glidande medelprognos. Posten för cell C5 ska vara Nu kan du kopiera den här cellformeln ner till de andra cellerna C6 till och med C11. Lägg märke till hur nu endast de två senaste bitarna av historiska data används för varje förutsägelse. Återigen har jag inkluderat quotpast predictionsquot för illustrativa ändamål och för senare användning vid prognosvalidering. Några andra saker som är viktiga att märka. För en m-period som rör genomsnittlig prognos används endast de senaste datavärdena för att göra förutsägelsen. Inget annat är nödvändigt. För en m-period rörande genomsnittlig prognos, när du gör quotpast predictionsquot, notera att den första förutsägelsen sker i period m 1. Båda dessa problem kommer att vara väldigt signifikanta när vi utvecklar vår kod. Utveckla den rörliga genomsnittsfunktionen. Nu behöver vi utveckla koden för den glidande medelprognosen som kan användas mer flexibelt. Koden följer. Observera att inmatningarna är för antalet perioder du vill använda i prognosen och en rad historiska värden. Du kan lagra den i vilken arbetsbok du vill ha. Funktion MovingAverage (Historical, NumberOfPeriods) Som enkel deklarering och initialisering av variabler Dim-objekt som variant Dim-räknare som integer Dim-ackumulering som Single Dim HistoricalSize som heltal Initialiserande variabler Counter 1 ackumulering 0 Bestämning av storleken på Historisk matris Historisk storlek Historisk. Count för Counter 1 till NumberOfPeriods Ackumulera lämpligt antal senast tidigare observerade värden ackumulering ackumulering historisk (HistoricalSize - NumberOfPeriods Counter) MovingAverage Accumulation NumberOfPeriods Koden förklaras i klassen. Du vill placera funktionen i kalkylbladet så att resultatet av beräkningen visas där den ska följa följande. Spridningsimplementering av säsongjustering och exponentiell utjämning Det är enkelt att utföra säsongsjustering och passa exponentiella utjämningsmodeller med Excel. Skärmbilderna och diagrammen nedan är hämtade från ett kalkylblad som har upprättats för att illustrera multiplicativ säsongsjustering och linjär exponentiell utjämning på följande kvartalsförsäljningsdata från Outboard Marine: För att få en kopia av kalkylarkfilen själv klickar du här. Den version av linjär exponentiell utjämning som kommer att användas här för demonstration är Brown8217s version, bara för att den kan implementeras med en enda kolumn med formler och det finns bara en utjämningskonstant för att optimera. Vanligtvis är det bättre att använda Holt8217s version som har separata utjämningskonstanter för nivå och trend. Prognosprocessen fortskrider enligt följande: (i) Första uppgifterna är säsongrensade (ii) så skapas prognoser för säsongrensade data via linjär exponentiell utjämning och (iii) slutligen är de säsongrensade prognoserna kvoterade för att få prognoser för den ursprungliga serien . Säsongsjusteringsprocessen utförs i kolumnerna D till G. Det första steget i säsongjustering är att beräkna ett centrerat glidande medelvärde (utfört här i kolumn D). Detta kan göras genom att ta medeltalet av två ettåriga medelvärden som kompenseras av en period i förhållande till varandra. (En kombination av två förskjutna medelvärden i stället för ett enda medel behövs för centreringsändamål när antalet årstider är jämnt.) Nästa steg är att beräkna förhållandet till glidande medelvärde, dvs. de ursprungliga uppgifterna dividerat med det rörliga genomsnittet i varje period - vilket görs här i kolumn E. (Detta kallas också kvotrend-cyclequot-komponenten i mönstret, i den mån trend - och konjunkturseffekter kan anses vara allt som förblir efter medeltal över en helårs värde av data. Naturligtvis kan förändringar från månad till månad som inte beror på säsongsmässighet bestämas av många andra faktorer, men tolvmånadersgenomsnittet släpper i stor utsträckning över dem.) Beräknat säsongsindex för varje säsong beräknas genom att medeltalvärdera alla förhållanden för den aktuella säsongen, vilket görs i cellerna G3-G6 med en AVERAGEIF-formel. Medelvärdena är sedan återkalnade så att de summeras till exakt 100 gånger antalet perioder i en säsong, eller 400 i detta fall, vilket görs i cellerna H3-H6. Nedan i kolumn F används VLOOKUP-formler för att infoga det lämpliga säsongsindexvärdet i varje rad i datatabellen, enligt kvartalet av det representerar. Det centrerade rörliga genomsnittet och de säsongrensade uppgifterna ser ut så här: Observera att det glidande medlet oftast ser ut som en mjukare version av den säsongrensade serien, och den är kortare i båda ändarna. Ett annat arbetsblad i samma Excel-fil visar tillämpningen av den linjära exponentiella utjämningsmodellen till säsongrensade data, som börjar i kolumn G. Ett värde för utjämningskonstanten (alfa) anges ovanför prognoskolumnen (här i cell H9) och För enkelhets skyld tilldelas serienavnet quotAlpha. quot (namnet är tilldelat med kommandot quotInsertNameCreatequot.) LES-modellen initieras genom att de första två prognoserna ställs lika med det första verkliga värdet av den säsongrensade serien. Formeln som används här för LES-prognosen är recirkulär form av Brown8217s modell: Denna formel är inmatad i cellen som motsvarar den tredje perioden (här, cell H15) och kopieras därifrån. Observera att LES-prognosen för den aktuella perioden avser de två föregående observationerna och de två föregående prognosfelen, liksom värdet av alfa. Således avser prognosformeln i rad 15 endast data som var tillgängliga i rad 14 och tidigare. (Självklart, om vi ville använda enkla istället för linjär exponentiell utjämning, kunde vi istället ersätta SES-formeln. Vi kan också använda Holt8217s snarare än Brown8217s LES-modell, vilket skulle kräva ytterligare två kolumner med formler för att beräkna nivån och trenden som används i prognosen.) Felen beräknas i nästa kolumn (här kolumn J) genom att subtrahera prognoserna från de faktiska värdena. Roten medelkvadratfelet beräknas som kvadratroten av felets varians plus kvadraten av medelvärdet. (Detta följer av den matematiska identiteten: MSE VARIANCE (fel) (AVERAGE (fel)). 2.) Vid beräkning av medelvärdet och variansen av fel i denna formel är de två första perioderna uteslutna eftersom modellen inte faktiskt börjar prognosera tills den tredje perioden (rad 15 på kalkylbladet). Det optimala värdet av alfa kan hittas antingen genom att manuellt byta alfa tills den minsta RMSE finns, annars kan du använda quotSolverquot för att utföra en exakt minimering. Värdet av alfa som Solver hittat visas här (alfa0.471). Det är vanligtvis en bra idé att plotta felet i modellen (i transformerade enheter) och även att beräkna och plotta sina autokorrelationer vid lags på upp till en säsong. Här är en tidsserie-plot av de (säsongrensade) felen: Felautokorrelationerna beräknas med hjälp av funktionen CORREL () för att beräkna korrelationerna av felen med sig självfördröjda av en eller flera perioder - detaljer visas i kalkylbladsmodellen . Här är en plot av autokorrelationerna av felen vid de första fem lagsna: Autokorrelationerna på lags 1 till 3 ligger mycket nära noll, men spetsen vid lag 4 (vars värde är 0,35) är lite besvärligt - det tyder på att säsongsjusteringsprocessen har inte varit helt framgångsrik. Det är emellertid faktiskt endast marginellt signifikant. 95 signifikansband för att testa om autokorrelationer skiljer sig signifikant från noll är ungefär plus-eller-minus 2SQRT (n-k), där n är provstorleken och k är fördröjningen. Här är n 38 och k varierar från 1 till 5, så kvadratroten-av-n-minus-k är omkring 6 för dem alla, och gränserna för att testa den statistiska signifikansen av avvikelser från noll är därför ungefär plus - eller-minus 26 eller 0,33. Om du varierar värdet av alfa för hand i denna Excel-modell kan du observera effekten på tidsserierna och autokorrelationsdiagrammen för felen, liksom på det roten-kvadratiska felet, vilket kommer att illustreras nedan. Nedan i kalkylbladet är prognostiseringsformeln quotbootstrappedquot in i framtiden genom att bara ersätta prognoser för faktiska värden vid den punkt där den faktiska data löper ut - det vill säga. där quotthe futurequot börjar. (Med andra ord, i varje cell där ett framtida datavärde skulle inträffa läggs en cellreferens in som pekar på prognosen för den perioden.) Alla övriga formler kopieras helt enkelt ovanifrån: Observera att fel för prognoser för framtiden beräknas alla vara noll. Det betyder inte att de faktiska felen kommer att vara noll, men snarare återspeglar den bara det faktum att vi förutspår att framtida data kommer att motsvara prognoserna i genomsnitt. De resulterande LES-prognoserna för säsongrensade data ser så här ut: Med detta speciella värde av alfa, vilket är optimalt för prognoser med en period framåt, är den prognostiserade trenden något uppåt, vilket återspeglar den lokala trenden som observerades under de senaste 2 åren eller så. För andra värden av alfa kan en väldigt annorlunda trendprojektion erhållas. Det är vanligtvis en bra idé att se vad som händer med den långsiktiga trendprojektionen när alfa varieras, eftersom det värde som är bäst för kortsiktiga prognoser inte nödvändigtvis är det bästa värdet för att förutsäga den mer avlägsna framtiden. Till exempel är här resultatet som erhålls om värdet av alfa manuellt ställs in på 0,25: Den prognostiserade långsiktiga trenden är nu negativ snarare än positiv. Med ett mindre värde av alfa lägger modellen större vikt vid äldre data i dess uppskattning av nuvarande nivå och trend och dess långsiktiga prognoser speglar den nedåtgående trend som observerats under de senaste 5 åren snarare än den senaste uppåtgående trenden. Detta diagram illustrerar också tydligt hur modellen med ett mindre värde av alfa är långsammare att svara på quotturning pointsquot i data och tenderar därför att göra ett fel på samma tecken under många perioder i rad. Dess 1-stegs prognosfel är större i genomsnitt än de som erhållits tidigare (RMSE på 34,4 i stället för 27,4) och starkt positivt autokorrelerade. Lag-1 autokorrelationen 0,56 överstiger väsentligen värdet 0,33, beräknat ovan för en statistiskt signifikant avvikelse från noll. Som ett alternativ till att sänka värdet av alfa för att introducera mer konservatism i långsiktiga prognoser, läggs en kvotränningsdämpningsquot-faktor ibland till modellen för att den planerade trenden ska flata ut efter några perioder. Det sista steget i att bygga prognosmodellen är att quoteraasonizequot LES prognoserna genom att multiplicera dem med lämpliga säsongsindex. De resesaliserade prognoserna i kolumn I är alltså helt enkelt produkten av säsongsindexen i kolumn F och de säsongrensade LES-prognoserna i kolumn H. Det är relativt lätt att beräkna konfidensintervaller för enstegsprognoser som gjorts av denna modell: först beräkna RMSE (root-mean-squared-felet, vilket är bara kvadratroten till MSE) och beräkna sedan ett konfidensintervall för den säsongrensade prognosen genom att lägga till och subtrahera två gånger RMSE. (Generellt är ett 95 konfidensintervall för en prognos för en period framåt ungefär lika med punktprognosen plus-eller-minus-två gånger den beräknade standardavvikelsen för prognosfel, förutsatt att felfördelningen är ungefär normal och provstorleken är tillräckligt stor, säg 20 eller mer. Här är RMSE istället för standardavvikelsen för provets standardavvikelse den bästa uppskattningen av standardavvikelsen för framtida prognosfel eftersom det tar hänsyn både till slumpmässiga variationer.) Förtroendebegränsningarna för den säsongrensade prognosen återförsäljas sedan. tillsammans med prognosen, genom att multiplicera dem med lämpliga säsongsindex. I detta fall är RMSE lika med 27,4 och den säsongrensade prognosen för den första framtida perioden (dec-93) är 273,2. så är det säsongrensade 95 konfidensintervallet från 273,2-227,4 218,4 till 273,2227,4 328,0. Multiplicera dessa gränser med Decembers säsongsindex på 68,61. vi uppnår lägre och övre konfidensgränser på 149,8 och 225,0 kring prognosen för 93-procentiga prognoser på 187,4. Förtroendebegränsningar för prognoser mer än en period framöver kommer i allmänhet att öka som prognoshorisonten ökar på grund av osäkerhet om nivå och trend samt säsongsfaktorer, men det är svårt att beräkna dem generellt med analytiska metoder. (Det lämpliga sättet att beräkna konfidensgränser för LES-prognosen är att använda ARIMA-teorin, men osäkerheten i säsongsindex är en annan fråga.) Om du vill ha ett realistiskt konfidensintervall för en prognos mer än en period framåt, tar du alla källor till felaktigt är det bästa sättet att använda empiriska metoder: till exempel för att få ett konfidensintervall för en 2-stegs prognos, kan du skapa en annan kolumn i kalkylbladet för att beräkna en prognos för två steg före varje period ( genom att förstärka prognosen med ett steg framåt). Beräkna sedan RMSE för de tvåstegsprognosfel och använd detta som utgångspunkt för ett konfidensintervall på 2 steg. I praktiken ger det glidande medelvärdet en bra uppskattning av medelvärdet av tidsserierna om medelvärdet är konstant eller långsamt förändras. I händelse av ett konstant medelvärde kommer det största värdet av m att ge de bästa uppskattningarna av det underliggande genomsnittet. En längre observationsperiod kommer att medeltala effekterna av variationen. Syftet med att tillhandahålla en mindre m är att tillåta prognosen att svara på en förändring i den underliggande processen. För att illustrera föreslår vi en dataset som innehåller förändringar i underliggande medelvärden av tidsserierna. Figuren visar tidsserien som används för illustration tillsammans med den genomsnittliga efterfrågan från vilken serien genererades. Medelvärdet börjar som en konstant vid 10. Börjar vid tid 21 ökar den med en enhet i varje period tills den når värdet 20 vid tidpunkten 30. Då blir det konstant igen. Uppgifterna simuleras genom att lägga till i genomsnitt ett slumpmässigt brus från en normalfördelning med nollvärde och standardavvikelse 3. Resultaten av simuleringen avrundas till närmsta heltal. Tabellen visar de simulerade observationer som används för exemplet. När vi använder bordet måste vi komma ihåg att vid varje given tidpunkt endast endast tidigare data är kända. Uppskattningarna av modellparametern, för tre olika värden på m visas tillsammans med medelvärdet av tidsserierna i figuren nedan. Figuren visar den genomsnittliga rörliga genomsnittliga beräkningen av medelvärdet vid varje tidpunkt och inte prognosen. Prognoserna skulle flytta de glidande medelkurvorna till höger av perioder. En slutsats framgår omedelbart av figuren. För alla tre uppskattningar ligger glidande medelvärde bakom den linjära trenden, där fördröjningen ökar med m. Lagen är avståndet mellan modellen och uppskattningen i tidsdimensionen. På grund av fördröjningen underskattar det rörliga genomsnittet observationerna när medelvärdet ökar. Estimatorns förspänning är skillnaden vid en viss tid i modellens medelvärde och medelvärdet förutspått av det rörliga genomsnittet. Förspänningen när medelvärdet ökar är negativt. För ett minskande medelvärde är förspänningen positiv. Fördröjningen i tid och den bias som införs i uppskattningen är funktionerna i m. Ju större värdet av m. desto större är storleken på fördröjning och förspänning. För en kontinuerligt ökande serie med trend a. värdena för fördröjning och förspänning av estimatorn av medelvärdet ges i ekvationerna nedan. Exemplet kurvorna stämmer inte överens med dessa ekvationer eftersom exemplet modellen inte ökar kontinuerligt, utan det börjar som en konstant, ändras till en trend och blir sedan konstant igen. Även kurvorna påverkas av bruset. Den glidande genomsnittliga prognosen för perioder i framtiden representeras genom att man ändrar kurvorna till höger. Fördröjningen och förskjutningen ökar proportionellt. Ekvationerna nedan anger fördröjningen och förspänningen av prognosperioder i framtiden jämfört med modellparametrarna. Återigen är dessa formler för en tidsserie med en konstant linjär trend. Vi borde inte bli förvånad över resultatet. Den rörliga genomsnittliga estimatorn är baserad på antagandet om ett konstant medelvärde och exemplet har en linjär trend i medelvärdet under en del av studieperioden. Eftersom realtidsserier sällan exakt kommer att följa antagandena till en modell, borde vi vara beredda på sådana resultat. Vi kan också dra av slutsatsen att brusets variabilitet har störst effekt för mindre m. Uppskattningen är mycket mer flyktig för det glidande medlet på 5 än det glidande medlet på 20. Vi har de motstridiga önskningarna att öka m för att minska effekten av variationer på grund av bullret och att minska m för att göra prognosen mer mottaglig för förändringar i medelvärdet. Felet är skillnaden mellan den faktiska data och det prognostiserade värdet. Om tidsserierna verkligen är ett konstant värde är det förväntade värdet av felet noll och variansen av felet består av en term som är en funktion av och en andra term som är brusets varians. Den första termen är medelvärdet av det medelvärde som uppskattas med ett urval av m-observationer, förutsatt att data kommer från en population med konstant medelvärde. Denna term minimeras genom att göra m så stor som möjligt. En stor m gör prognosen inte svarande mot en förändring i underliggande tidsserier. För att prognosen ska kunna reagera på förändringar vill vi m vara så liten som möjligt (1), men detta ökar felvariationen. Praktisk prognos kräver ett mellanvärde. Prognoser med Excel Prognosen för prognoser implementerar de glidande medelformlerna. Exemplet nedan visar analysen som tillhandahålls av tillägget för provdata i kolumn B. De första 10 observationerna indexeras -9 till 0. Jämfört med tabellen ovan förskjuts periodens index med -10. De första tio observationerna ger startvärdena för uppskattningen och används för att beräkna det glidande medlet för period 0. MA (10) kolumnen (C) visar de beräknade glidande medelvärdena. Den rörliga genomsnittsparametern m är i cell C3. Fore (1) kolumnen (D) visar en prognos för en period framåt. Prognosintervallet ligger i cell D3. När prognosintervallet ändras till ett större antal, flyttas numren i Fore-kolumnen nedåt. Err-kolumnen (E) visar skillnaden mellan observationen och prognosen. Till exempel är observationen vid tidpunkten 1 6. Det prognostiserade värdet som gjorts från det glidande medlet vid tidpunkten 0 är 11,1. Felet är då -5,1. Standardavvikelsen och genomsnittlig avvikelse (MAD) beräknas i cellerna E6 respektive E7.

No comments:

Post a Comment