Monday, October 17, 2016

Eenvoudige bewegende gemiddelde implementering

'N Eenvoudige bewegende gemiddelde Implementering in Java Op verskeie geleenthede Ive wou eenvoudig statistieke te bereken in my Java programme, byvoorbeeld die aantal hits per uur, of foute dwarsdeur 'n tydperk. Terwyl die berekening van eenvoudige statistieke is nie vreeslik moeilik, dit is net ekstra werk en Id eerder daardie tyd op die probleem domein spandeer. Ek was verbaas om enige algemeen aanvaar oplossings vir statistieke in Java vind nie. Ek het vind Statistieke maar dit was 'n bietjie te ingewikkeld en nie goed gedokumenteer - Al wat ek regtig wou hê, was om 'n bewegende gemiddelde bereken. Ek het gedink oor die probleem nog meer en besluit dit is nie 'n moeilike probleem. Hier is my oplossing Dit werk deur die skep van 'n verskeidenheid van die venster / update frekwensie grootte, dan 'n draad sit die telling na die volgende indeks in die skikking op die update frekwensie. Die telling vir die interval is eenvoudig arrayi - arrayi1, wat is die mees onlangse telling minus die oudste telling. Vir 'n 10 minute interval, die oudste telling (i1) is presies 10 minute oud. Om 'n bewegende gemiddelde om ons kode voeg eerste goed moet 'n toonbank, met behulp van AtomicLong. Dit toonbank moet geïnkrementeer gebaseer op die gebeure julle belangstel in berekening (bv POST versoeke vir 'n rus diens). Ons moet die implementering met toegang tot die toonbank gee en wat tot stand gebring deur die GetCount koppelvlak. Hier Siek skep 'n bewegende gemiddelde met 'n 5 minute venster wat elke tweede updates. En om die huidige gemiddelde ons net noem die getAverage metode te kry: 'n sleutel implementering besonderhede is hoe die skikking grootte word bepaal: deur die venster te deel deur die update frekwensie. So 'n groot venster met 'n gereelde update frekwensie kan 'n beduidende hoeveelheid geheue verbruik. In hierdie voorbeeld die skikking grootte redelik 300. Maar as ons 'n 24 uur bewegende gemiddelde geskep met 'n 1 sekonde interval die grootte sou verskeidenheid grootte van 288 wees 86.400 'n meer redelike update frekwensie vir 'n tydperk van 24 uur mag wees elke 5 minute ( ). Nog 'n oorweging van die keuse van die venster en update frekwensie is die venster moet deelbaar wees deur die frekwensie. Byvoorbeeld 'n 2 minute venster met 'n tweede werk frekwensie 6 is ok, maar 'n 7 tweede update frekwensie is nie, aangesien sy nie deelbaar is deur 120 N IllegalArgumentException gegooi indien die venster modulus update frekwensie is nie nul. Dit implementering vereis een draad per bewegende gemiddelde, wat nie baie doeltreffend nie. 'N beter oplossing sou wees om 'n draad oor baie gemiddeldes deel. Opdateer . Ive opgedateer die kode om 'n draad hier te deel. Laastens, Theres 'n aanvanklike toestand probleem: ons moenie data het nog vir die hele venster. Byvoorbeeld, as jy het 'n 5 minute venster en net 15 sekondes van data. Dit implementering terugkeer nul tot ons het 5 minute van data. 'N Ander benadering is om die gemiddelde te bepaal. Gestel ons het 'n telling van 10 in 30 sekondes, dan kan ons die gemiddelde skat as 40 in 2 minute. Daar is egter 'n risiko van wesenlike fout deur ekstrapolering onvolledige data. Byvoorbeeld, as ons 'n sarsie van 20 treffers gehad in 2 sekondes, wed wees beraming 1200 per 2 minute, wat in alle waarskynlikheid is weg off. In my handel aansoek Ek het live bosluise van aandele pryse. Ek moet SMA handhaaf. Kom ons neem aan ek wil SMA van 20 kerse, waar duur van elke kers is 10 sekondes. Dit beteken dat elke 10 sekondes Ek het kontrolepunt waar Ek huidige kers sluit en stoor gemiddelde prys vir die laaste 10 sekondes. Gemiddeld is (maksimum - min) / 2 Ek begin nuwe kers en winkel laaste prys. Ek skoon-up verouderde kers. Ek werk laaste prys van huidige vorm kers en herbereken SMA. So op 'n blok ek moet herbereken SMA. In die meeste gevalle net prys van die laaste kers verander (want ons gebruik van laaste prys). Een maal per 10 sekondes wat ek nodig het 'n bietjie meer ekstra werk - ek moet die gemiddelde van die ou kers, en die gemiddelde winkel van net gemaak kers vergeet. Kan jy raai hoe om dit te implementeer met die laagste latency Lae latency is primêre vereiste. gevra 28 April 14 aan 10:21 Ek is nie seker of dit die benadering jy op soek na, maar hier is die pseudokode vir baie vinnige SMAs. Eenvoudige bewegende gemiddelde: Ek neem aan dat jou data kom in die vorm van 'n paar stroom en gestoor in 'n aaneenlopende geheue plek (ten minste met voortdurend mappable adresse) Op dié manier met twee toevoegings en een vermenigvuldiging (met 1/2000) kan jy daaropvolgende bewegende genereer gemiddeldes vir die nuwe bosluise. Eksponensiële bewegende gemiddelde: Dit is 'n ordentlike alternatiewe, soos hierbo genoem: Hier is dit nie regtig 'n N-daagse bewegende gemiddelde. Dit is net 'n geweegde bewegende gemiddelde met 87 weightage om die laaste N-dae, so byna N-dae is meer soos dit. Let op samesteller optimalisaties: Doen asseblief kennis dat die draai op SSE of Avx opsies indien beskikbaar sal massiewe speedup van hierdie algoritmes staat stel om as verskeie berekeninge uit te churned in 'n enkele SVE cycle. Simple bewegende gemiddelde - SMA Wat is 'n eenvoudige bewegende gemiddelde - SMA A eenvoudige bewegende gemiddelde (SMA) is 'n rekenkundige bewegende gemiddelde bereken deur die byvoeging van die sluitingsprys van die sekuriteit vir 'n aantal tydperke en dan verdeel dit totaal deur die aantal tydperke. Soos getoon in die grafiek hierbo, baie handelaars kyk vir 'n kort termyn gemiddeldes hierbo langer termyn gemiddeldes te steek om die begin van 'n uptrend sein. Korttermyn gemiddeldes kan optree as die vlakke van ondersteuning wanneer die prys ondervind met 'n terugsakking. VIDEO laai die speler. Afbreek Eenvoudige bewegende gemiddelde - SMA N Eenvoudige bewegende gemiddelde is aanpas omdat dit bereken kan word vir 'n verskillende aantal tydperke, eenvoudig deur die toevoeging van die sluitingsprys van die sekuriteit vir 'n aantal tydperke en dan verdeel dit totaal deur die aantal van tydperke, wat die gemiddelde prys van die sekuriteit oor die tydperk gee. 'N Eenvoudige bewegende gemiddelde stryk uit wisselvalligheid, en maak dit makliker om die prys tendens van 'n sekuriteit te sien. As die eenvoudige tot bewegende gemiddelde punte, beteken dit dat die securitys prys is aan die toeneem. As dit is wys af beteken dit dat die securitys prys daal. Hoe langer die tydperk vir die bewegende gemiddelde, die gladder die eenvoudige bewegende gemiddelde. 'N Korter termyn bewegende gemiddelde is meer wisselvallig, maar sy lees is nader aan die bron data. Analitiese betekenis bewegende gemiddeldes is 'n belangrike analitiese instrument wat gebruik word om die huidige prys tendense te identifiseer en die potensiaal vir 'n verandering in 'n gevestigde tendens. Die eenvoudigste vorm van die gebruik van 'n eenvoudige bewegende gemiddelde in analise is om dit te gebruik om vinnig te identifiseer as 'n sekuriteit is in 'n uptrend of verslechtering neiging. Nog 'n gewilde, al is dit 'n bietjie meer kompleks analitiese instrument, is om 'n paar eenvoudige bewegende gemiddeldes te vergelyk met mekaar oor verskillende tydperke. As 'n korter termyn eenvoudige bewegende gemiddelde is bo 'n langer termyn gemiddelde, is 'n uptrend verwag. Aan die ander kant, 'n langtermyn-gemiddelde bo 'n korter termyn gemiddelde dui op 'n afwaartse beweging in die tendens. Gewilde handelspatrone Twee gewilde handelspatrone so eenvoudig bewegende gemiddeldes gebruik sluit die dood kruis en 'n goue kruis. 'N die dood kruis vind plaas wanneer die 50-dag eenvoudig bewegende gemiddelde kruise onder die 200-daagse bewegende gemiddelde. Dit word beskou as 'n lomp sein, wat verdere verliese is in die winkel. Die goue kruis vind plaas wanneer 'n korttermyn-bewegende gemiddelde breek bo 'n langtermyn-bewegende gemiddelde. Versterk deur 'n hoë verhandelingsvolumes, kan dit dui verdere stygings in store. Moving Gemiddeld - MA afbreek bewegende gemiddelde - MA As SMA voorbeeld, kyk na 'n sekuriteit met die volgende sluitingsdatum pryse meer as 15 dae: Week 1 (5 dae) 20, 22, 24, 25, 23 Week 2 (5 dae) 26, 28, 26, 29, 27 Week 3 (5 dae) 28, 30, 27, 29, 28 A 10-dag MA sou gemiddeld uit die sluitingsdatum pryse vir die eerste 10 dae as die eerste data punt. Die volgende data punt sal daal die vroegste prys, voeg die prys op dag 11 en neem die gemiddelde, en so aan, soos hieronder getoon. Soos voorheen verduidelik, MA lag huidige prys aksie omdat dit gebaseer is op vorige pryse hoe langer die tydperk vir die MA, hoe groter is die lag. So sal 'n 200-dag MA 'n veel groter mate van lag as 'n 20-dag MA het omdat dit pryse vir die afgelope 200 dae bevat. Die lengte van die MA om te gebruik, hang af van die handel doelwitte, met korter MA gebruik vir 'n kort termyn handel en langer termyn MA meer geskik vir 'n lang termyn beleggers. Die 200-dag MA word wyd gevolg deur beleggers en handelaars, met onderbrekings bo en onder hierdie bewegende gemiddelde beskou as belangrike handel seine wees. MA ook mee belangrik handel seine op hul eie, of wanneer twee gemiddeldes kruis. 'N stygende MA dui daarop dat die sekuriteit is in 'n uptrend. terwyl 'n dalende MA dui daarop dat dit in 'n verslechtering neiging. Net so, is opwaartse momentum bevestig met 'n lomp crossover. wat gebeur wanneer 'n korttermyn-MA kruisies bo 'n langer termyn MA. Afwaartse momentum bevestig met 'n lomp crossover, wat plaasvind wanneer 'n kort termyn MA kruisies onder 'n langer termyn MA. Moving gemiddelde en eksponensiële gladstryking modelle As 'n eerste stap in die beweging van buite gemiddelde modelle, ewekansige loop modelle, en lineêre tendens modelle, nonseasonal patrone en tendense kan geëkstrapoleer deur 'n bewegende-gemiddelde of glad model. Die basiese aanname agter gemiddelde en glad modelle is dat die tyd reeks is plaaslik stilstaande met 'n stadig wisselende gemiddelde. Vandaar, neem ons 'n bewegende (plaaslike) gemiddelde om die huidige waarde van die gemiddelde skat en dan gebruik dit as die voorspelling vir die nabye toekoms. Dit kan beskou word as 'n kompromie tussen die gemiddelde model en die ewekansige-stap-sonder-drif-model. Dieselfde strategie gebruik kan word om te skat en ekstrapoleer 'n plaaslike tendens. 'N bewegende gemiddelde is dikwels 'n quotsmoothedquot weergawe van die oorspronklike reeks, want kort termyn gemiddelde het die effek van gladstryking uit die knoppe in die oorspronklike reeks. Deur die aanpassing van die mate van gladstryking (die breedte van die bewegende gemiddelde), kan ons hoop om 'n soort van 'n optimale balans tussen die prestasie van die gemiddelde en die stogastiese wandeling modelle slaan. Die eenvoudigste soort gemiddelde model is die. Eenvoudige (ewe-geweeg) Moving Average: Die voorspelling vir die waarde van Y op tyd T1 wat gemaak word op tydstip t is gelyk aan die eenvoudige gemiddelde van die mees onlangse m waarnemings: (hier en elders sal ek die simbool 8220Y-hat8221 gebruik om op te staan vir 'n voorspelling van die tyd reeks Y gemaak op die vroegste moontlike voor datum deur 'n gegewe model.) Hierdie gemiddelde is gesentreer op tydperk t (M1) / 2, wat impliseer dat die skatting van die plaaslike gemiddelde sal neig om agter die werklike waarde van die plaaslike gemiddelde met sowat (M1) / 2 periodes. So, sê ons die gemiddelde ouderdom van die data in die eenvoudige bewegende gemiddelde is (M1) / 2 met betrekking tot die tydperk waarvoor die voorspelling is bereken: dit is die hoeveelheid tyd waarop voorspellings sal neig om agter draaipunte in die data. Byvoorbeeld, as jy gemiddeld die afgelope 5 waardes, sal die voorspellings wees oor 3 periodes laat in reaksie op draaipunte. Let daarop dat indien M1, die eenvoudige bewegende gemiddelde (SMA) model is soortgelyk aan die ewekansige loop model (sonder groei). As m is baie groot (vergelykbaar met die lengte van die skatting tydperk), die SMA model is gelykstaande aan die gemiddelde model. Soos met enige parameter van 'n voorspelling model, is dit gebruiklik om die waarde van k te pas ten einde die beste quotfitquot om die data, dit wil sê die kleinste voorspelling foute gemiddeld behaal. Hier is 'n voorbeeld van 'n reeks wat blykbaar ewekansige skommelinge toon om 'n stadig-wisselende gemiddelde. In die eerste plek kan probeer om dit aan te pas met 'n ewekansige loop model, wat gelykstaande is aan 'n eenvoudige bewegende gemiddelde van 1 kwartaal: Die ewekansige loop model reageer baie vinnig om veranderinge in die reeks, maar sodoende dit tel baie van die quotnoisequot in die data (die ewekansige skommelinge) asook die quotsignalquot (die plaaslike gemiddelde). As ons eerder probeer 'n eenvoudige bewegende gemiddelde van 5 terme, kry ons 'n gladder lyk stel voorspellings: Die 5 termyn eenvoudige bewegende gemiddelde opbrengste aansienlik kleiner foute as die ewekansige loop model in hierdie geval. Die gemiddelde ouderdom van die data in hierdie voorspelling is 3 ((51) / 2), sodat dit is geneig om agter draaipunte met sowat drie periodes. (Byvoorbeeld, blyk 'n afswaai het plaasgevind by tydperk 21, maar die voorspellings nie omdraai tot verskeie tydperke later.) Let daarop dat die langtermyn-voorspellings van die SMA model is 'n horisontale reguit lyn, net soos in die ewekansige loop model. So, die SMA model veronderstel dat daar geen neiging in die data. Maar, terwyl die voorspellings van die ewekansige loop model is eenvoudig gelyk aan die laaste waargenome waarde, die voorspellings van die SMA model is gelykstaande aan 'n geweegde gemiddelde van die afgelope waardes. Die vertroue perke bereken deur Stat Graphics vir die langtermyn-voorspellings van die eenvoudige bewegende gemiddelde nie groter as die vooruitskatting horison styg kry. Dit is natuurlik nie korrek Ongelukkig is daar geen onderliggende statistiese teorie wat ons vertel hoe die vertrouensintervalle behoort te brei vir hierdie model. Dit is egter nie te moeilik om empiriese ramings van die vertroue perke vir die langer-horison voorspellings te bereken. Byvoorbeeld, kan jy die opstel van 'n sigblad waarop die SMA model sal gebruik word om 2 stappe vooruit, 3 stappe vooruit, ens binne die historiese data monster voorspel. Jy kan dan bereken die monster standaardafwykings van die foute op elke voorspelling horison, en dan bou vertrouensintervalle vir langer termyn voorspellings deur optelling en aftrekking veelvoude van die toepaslike standaard afwyking. As ons probeer om 'n 9-termyn eenvoudige bewegende gemiddelde, kry ons selfs gladder voorspellings en meer van 'n sloerende uitwerking: Die gemiddelde ouderdom is nou 5 periodes ((91) / 2). As ons 'n 19-termyn bewegende gemiddelde te neem, die gemiddelde ouderdom toeneem tot 10: Let daarop dat, inderdaad, is die voorspellings nou agter draaipunte met sowat 10 periodes. Watter bedrag van smoothing is die beste vir hierdie reeks Hier is 'n tabel wat hulle dwaling statistieke vergelyk, ook met 'n 3-gemiddelde: Model C, die 5-termyn bewegende gemiddelde, lewer die laagste waarde van RMSE deur 'n klein marge oor die 3 - term en 9 termyn gemiddeldes, en hul ander statistieke is byna identies. So, onder modelle met 'n baie soortgelyke fout statistieke, kan ons kies of ons 'n bietjie meer responsiewe ingesteldheid of 'n bietjie meer gladheid in die voorspellings sou verkies. (Terug na bo.) Browns Eenvoudige Eksponensiële Smoothing (eksponensieel geweeg bewegende gemiddelde) Die eenvoudige bewegende gemiddelde model hierbo beskryf het die ongewenste eienskap dat dit behandel die laaste k Waarnemings ewe en heeltemal ignoreer al voorafgaande waarnemings. Intuïtief, moet afgelope data verdiskonteer in 'n meer geleidelike mode - byvoorbeeld, die mees onlangse waarneming moet 'n bietjie meer gewig kry as 2 mees onlangse, en die 2de mees onlangse moet 'n bietjie meer gewig as die 3 mees onlangse kry, en so aan. Die eenvoudige eksponensiële gladstryking (SES) model accomplishes hierdie. Laat 945 dui n quotsmoothing constantquot ( 'n getal tussen 0 en 1). Een manier om die model te skryf is om 'n reeks L dat die huidige vlak (dit wil sê die plaaslike gemiddelde waarde) van die reeks verteenwoordig as geraamde van data tot op hede te definieer. Die waarde van L op tydstip t is rekursief bereken uit sy eie vorige waarde soos volg: Dus, die huidige stryk waarde is 'n interpolasie tussen die vorige stryk waarde en die huidige waarneming, waar 945 kontroles die nabyheid van die geïnterpoleerde waarde tot die mees onlangse waarneming. Die voorspelling vir die volgende tydperk is eenvoudig die huidige stryk waarde: anders gestel ons kan die volgende voorspelling direk in terme van vorige voorspellings en vorige waarnemings uit te druk, in enige van die volgende ekwivalent weergawes. In die eerste weergawe, die voorspelling is 'n interpolasie tussen vorige skatting en vorige waarneming: In die tweede weergawe, is die volgende voorspelling verkry deur die aanpassing van die vorige skatting in die rigting van die vorige fout deur 'n breukdeel bedrag 945. is die fout gemaak by tyd t. In die derde weergawe, die voorspelling is 'n eksponensieel geweeg (dit wil sê afslag) bewegende gemiddelde met afslag faktor 1- 945: Die interpolasie weergawe van die voorspelling formule is die eenvoudigste om te gebruik as jy die uitvoering van die model op 'n spreadsheet: dit pas in 'n enkele sel en bevat selverwysings verwys na die vorige skatting, die vorige waarneming, en die sel waar die waarde van 945 gestoor. Let daarop dat indien 945 1, die SES model is gelykstaande aan 'n ewekansige loop model (sonder groei). As 945 0, die SES model is gelykstaande aan die gemiddelde model, met die veronderstelling dat die eerste stryk waarde gelyk aan die gemiddelde is ingestel. (Terug na bo.) Die gemiddelde ouderdom van die data in die eenvoudige eksponensiële-glad voorspelling is 1/945 relatief tot die tydperk waarvoor die voorspelling is bereken. (Dit is nie veronderstel duidelik te wees, maar dit kan maklik aangetoon deur die evaluering van 'n oneindige reeks.) Dus, die eenvoudige bewegende gemiddelde voorspelling is geneig om agter draaipunte met sowat 1/945 periodes. Byvoorbeeld, wanneer 945 0.5 die lag is 2 periodes wanneer 945 0.2 die lag is 5 periodes wanneer 945 0.1 die lag is 10 periodes, en so aan. Vir 'n gegewe gemiddelde ouderdom (bv bedrag van lag), die eenvoudige eksponensiële gladstryking (SES) voorspelling is 'n bietjie beter as die eenvoudige bewegende gemiddelde (SMA) voorspel, want dit plaas relatief meer gewig op die mees onlangse waarneming --i. e. dit is 'n bietjie meer quotresponsivequot om veranderinge voorkom in die onlangse verlede. Byvoorbeeld, 'n SMA model met 9 terme en 'n SES model met 945 0.2 beide het 'n gemiddelde ouderdom van 5 vir die data in hul voorspellings, maar die SES model plaas meer gewig op die laaste 3 waardes as wel die SMA model en by die Terselfdertyd is dit doesn8217t heeltemal 8220forget8221 oor waardes meer as 9 tydperke oud was, soos getoon in hierdie grafiek: nog 'n belangrike voordeel van die SES model die SMA model is dat die SES model maak gebruik van 'smoothing parameter wat voortdurend veranderlike, so dit kan maklik new deur die gebruik van 'n quotsolverquot algoritme om die gemiddelde minimum te beperk kwadraat fout. Die optimale waarde van 945 in die SES model vir hierdie reeks blyk te wees 0,2961, soos hier gewys word: die gemiddelde ouderdom van die data in hierdie voorspelling is 1 / 0,2961 3.4 tydperke, wat soortgelyk is aan dié van 'n 6-termyn eenvoudige bewegende gemiddelde. Die langtermyn-voorspellings van die SES model is 'n horisontale reguit lyn. soos in die SMA model en die ewekansige loop model sonder groei. Let egter daarop dat die vertrouensintervalle bereken deur Stat Graphics nou divergeer in 'n redelike aantreklike mode, en dat hulle aansienlik nouer as die vertrouensintervalle vir die ewekansige loop model. Die SES model veronderstel dat die reeks is 'n bietjie quotmore predictablequot as wel die ewekansige loop model. 'N SES model is eintlik 'n spesiale geval van 'n ARIMA model. sodat die statistiese teorie van ARIMA modelle bied 'n goeie basis vir die berekening van vertrouensintervalle vir die SES model. In die besonder, 'n SES model is 'n ARIMA model met een nonseasonal verskil, 'n MA (1) termyn, en geen konstante term. andersins bekend as 'n quotARIMA (0,1,1) model sonder constantquot. Die MA (1) koëffisiënt in die ARIMA model stem ooreen met die hoeveelheid 1- 945 in die SES model. Byvoorbeeld, as jy 'n ARIMA (0,1,1) model inpas sonder konstante om die reeks te ontleed hier, die beraamde MA (1) koëffisiënt blyk te wees 0,7029, wat byna presies 'n minus 0,2961. Dit is moontlik om die aanname van 'n nie-nul konstante lineêre tendens voeg by 'n SES model. Om dit te doen, net 'n ARIMA model met een nonseasonal verskil en 'n MA (1) termyn met 'n konstante, dit wil sê 'n ARIMA (0,1,1) model met 'n konstante spesifiseer. Die langtermyn-voorspellings sal dan 'n tendens wat gelyk is aan die gemiddelde tendens waargeneem oor die hele skatting tydperk is. Jy kan dit nie doen in samewerking met seisoenale aanpassing, omdat die aanpassing opsies seisoenale is afgeskakel wanneer die model tipe is ingestel op ARIMA. Jy kan egter 'n konstante langtermyn eksponensiële tendens om 'n eenvoudige eksponensiële gladstryking model voeg (met of sonder seisoenale aanpassing) deur gebruik te maak van die opsie inflasie-aanpassing in die vooruitskatting prosedure. Die toepaslike quotinflationquot (persentasie groei) koers per periode kan geskat word as die helling koëffisiënt in 'n lineêre tendens model toegerus om die data in samewerking met 'n natuurlike logaritme transformasie, of dit kan op grond van ander, onafhanklike inligting oor die langtermyn groeivooruitsigte . (Terug na bo.) Browns Lineêre (dws dubbel) Eksponensiële glad die SMA modelle en SES modelle aanvaar dat daar geen tendens van enige aard in die data (wat gewoonlik OK of ten minste nie-te-sleg vir 1- stap-ahead voorspellings wanneer die data is relatief raserig), en hulle kan verander word om 'n konstante lineêre tendens inkorporeer soos hierbo getoon. Wat van kort termyn tendense As 'n reeks vertoon 'n wisselende koers van groei of 'n sikliese patroon wat uitstaan ​​duidelik teen die geraas, en as daar 'n behoefte aan meer as 1 tydperk wat voorlê voorspel, dan skatting van 'n plaaslike tendens kan ook wees n probleem. Die eenvoudige eksponensiële gladstryking model veralgemeen kan word na 'n lineêre eksponensiële gladstryking (LES) model wat plaaslike begrotings van beide vlak en tendens bere te kry. Die eenvoudigste-time wisselende tendens model is Browns lineêr eksponensiële gladstryking model, wat twee verskillende reëlmatige reeks wat op verskillende punte gesentreer in die tyd gebruik. Die vooruitskatting formule is gebaseer op 'n ekstrapolasie van 'n streep deur die twee sentrums. ( 'N meer gesofistikeerde weergawe van hierdie model, Holt8217s, word hieronder bespreek.) Die algebraïese vorm van Brown8217s lineêr eksponensiële gladstryking model, soos dié van die eenvoudige eksponensiële gladstryking model, uitgedruk kan word in 'n aantal verskillende maar ekwivalente vorms. Die quotstandardquot vorm van hierdie model word gewoonlik uitgedruk as volg: Laat S dui die enkel-stryk reeks verkry deur die toepassing van eenvoudige eksponensiële gladstryking om reeks Y. Dit is, is die waarde van S op tydperk t gegee word deur: (Onthou dat, onder eenvoudige eksponensiële gladstryking, dit sou die voorspelling vir Y by tydperk T1 wees) Dan Squot dui die dubbel-stryk reeks verkry deur die toepassing van eenvoudige eksponensiële gladstryking (met behulp van dieselfde 945) tot reeks S:. ten slotte, die voorspelling vir Y tk. vir enige kgt1, word gegee deur: Dit lewer e 1 0 (dit wil sê kul n bietjie, en laat die eerste skatting gelyk wees aan die werklike eerste waarneming), en e 2 Y 2 8211 Y 1. waarna voorspellings gegenereer met behulp van die vergelyking hierbo. Dit gee dieselfde toegerus waardes as die formule gebaseer op S en S indien laasgenoemde is begin met behulp van S 1 S 1 Y 1. Hierdie weergawe van die model gebruik word op die volgende bladsy wat 'n kombinasie van eksponensiële gladstryking met seisoenale aanpassing illustreer. Holt8217s Lineêre Eksponensiële Smoothing Brown8217s LES model bere plaaslike begrotings van vlak en tendens deur glad die onlangse data, maar die feit dat dit nie so met 'n enkele glad parameter plaas 'n beperking op die data patrone wat dit in staat is om aan te pas: die vlak en tendens word nie toegelaat om wissel op onafhanklike tariewe. Holt8217s LES model spreek hierdie kwessie deur die insluiting van twee glad konstantes, een vir die vlak en een vir die tendens. Te eniger tyd t, soos in Brown8217s model, die daar is 'n skatting L t van die plaaslike vlak en 'n skatting T t van die plaaslike tendens. Hier is hulle rekursief bereken vanaf die waarde van Y op tydstip t en die vorige raming van die vlak en tendens waargeneem deur twee vergelykings wat eksponensiële gladstryking afsonderlik van toepassing op hulle. As die geskatte vlak en tendens op tydstip t-1 is L t82091 en T t-1. onderskeidelik, dan is die voorspelling vir Y tshy wat op tydstip t-1 sal gemaak is gelyk aan L t-1 T T-1. Wanneer die werklike waarde is waargeneem, is die opgedateer skatting van die vlak rekursief bereken deur interpol tussen Y tshy en sy voorspelling, L t-1 T T-1, die gebruik van gewigte van 945 en 1- 945. Die verandering in die geskatte vlak, naamlik L t 8209 L t82091. geïnterpreteer kan word as 'n lawaaierige meting van die tendens op tydstip t. Die opgedateer skatting van die tendens is dan rekursief bereken deur interpol tussen L t 8209 L t82091 en die vorige skatting van die tendens, T t-1. die gebruik van gewigte van 946 en 1-946: Die interpretasie van die tendens-glad konstante 946 is soortgelyk aan dié van die vlak glad konstante 945. Models met klein waardes van 946 aanvaar dat die tendens verander net baie stadig met verloop van tyd, terwyl modelle met groter 946 aanvaar dat dit vinniger is om te verander. 'N Model met 'n groot 946 is van mening dat die verre toekoms is baie onseker, omdat foute in die tendens-skatting word baie belangrik wanneer voorspel meer as een tydperk wat voorlê. (Terug na bo.) Die smoothing konstantes 945 en 946 kan in die gewone manier word beraam deur die vermindering van die gemiddelde kwadraat fout van die 1-stap-ahead voorspellings. Wanneer dit in Stat Graphics gedoen, die skattings uitdraai om te wees 945 0.3048 en 946 0,008. Die baie klein waarde van 946 beteken dat die model veronderstel baie min verandering in die tendens van een tydperk na die volgende, so basies hierdie model is besig om 'n langtermyn-tendens skat. Volgens analogie met die idee van die gemiddelde ouderdom van die data wat gebruik word in die skatte van die plaaslike vlak van die reeks, die gemiddelde ouderdom van die data wat gebruik word in die skatte van die plaaslike tendens is eweredig aan 1/946, hoewel nie presies gelyk aan Dit. In hierdie geval is dit blyk 1 / 0,006 125. Dit isn8217t n baie presiese aantal sover die akkuraatheid van die skatting van 946 isn8217t regtig 3 desimale plekke te wees, maar dit is van dieselfde algemene orde van grootte as die steekproefgrootte van 100 , so hierdie model is gemiddeld oor 'n hele klomp van die geskiedenis in die skatte van die tendens. Die voorspelling plot hieronder toon dat die LES model skat 'n effens groter plaaslike tendens aan die einde van die reeks as die konstante tendens geskat in die SEStrend model. Ook waarvan die beraamde waarde van 945 is byna identies aan die een wat deur die pas van die SES model met of sonder tendens, so dit is amper dieselfde model. Nou, doen hierdie lyk redelike voorspellings vir 'n model wat veronderstel is om te beraming 'n plaaslike tendens As jy hierdie plot 8220eyeball8221, dit lyk asof die plaaslike tendens afwaarts gedraai aan die einde van die reeks: Wat het die parameters van hierdie model gebeur is beraam deur die vermindering van die kwadraat fout van 1-stap-ahead voorspellings, nie langer termyn voorspellings, in welke geval die tendens 'n groot verskil doesn8217t maak. As alles wat jy is op soek na is 1-stap-ahead foute, is jy nie sien die groter prentjie van tendense oor (sê) 10 of 20 periodes. Ten einde hierdie model meer in harmonie te kry met ons oogbal ekstrapolasie van die data, kan ons met die hand die tendens-glad konstante pas sodat dit 'n korter basislyn vir tendens skatting. Byvoorbeeld, as ons kies om te stel 946 0.1, dan is die gemiddelde ouderdom van die gebruik in die skatte van die plaaslike tendens data is 10 periodes, wat beteken dat ons die gemiddeld van die tendens oor daardie laaste 20 periodes of so. Here8217s wat die voorspelling plot lyk asof ons '946 0.1 terwyl 945 0.3. Dit lyk intuïtief redelike vir hierdie reeks, maar dit is waarskynlik gevaarlik om hierdie tendens te ekstrapoleer nie meer as 10 periodes in die toekoms. Wat van die fout statistieke Hier is 'n model vergelyking vir die twee modelle hierbo asook drie SES modelle getoon. Die optimale waarde van 945.Vir die SES model is ongeveer 0,3, maar soortgelyke resultate (met 'n bietjie meer of minder 'n responsiewe ingesteldheid, onderskeidelik) verkry met 0,5 en 0,2. (A) Holts lineêre exp. glad met alfa 0,3048 en beta 0,008 (B) Holts lineêre exp. glad met alfa 0,3 en beta 0,1 (C) Eenvoudige eksponensiële gladstryking met alfa 0,5 (D) Eenvoudige eksponensiële gladstryking met alfa 0,3 (E) Eenvoudige eksponensiële gladstryking met alfa 0,2 hul statistieke is byna identies, so ons can8217t regtig die keuse te maak op die basis van 1-stap-ahead voorspelling foute binne die data monster. Ons het om terug te val op ander oorwegings. As ons glo dat dit sinvol om die huidige tendens skatting van wat die afgelope 20 periodes of so gebeur baseer, kan ons 'n saak vir die LES model met 945 0.3 en 946 0.1 maak. As ons wil hê agnostikus te wees oor die vraag of daar 'n plaaslike tendens, dan een van die SES modelle makliker om te verduidelik kan wees en sou ook vir meer middel-of-the-road voorspellings vir die volgende 5 of 10 periodes. (Terug na bo.) Watter tipe tendens-ekstrapolasie die beste: horisontale of lineêre empiriese bewyse dui daarop dat, indien die data is reeds aangepas (indien nodig) vir inflasie, dan is dit dalk onverstandig om kort termyn lineêre ekstrapoleer wees tendense baie ver in die toekoms. Tendense duidelik vandag mag verslap in die toekoms as gevolg van uiteenlopende oorsake soos produk veroudering, toenemende mededinging en sikliese afswaai of opwaartse fases in 'n bedryf. Om hierdie rede, eenvoudige eksponensiële gladstryking voer dikwels beter out-of-monster as wat dit andersins word verwag, ten spyte van sy quotnaivequot horisontale tendens ekstrapolasie. Gedempte tendens veranderinge van die lineêre eksponensiële gladstryking model word ook dikwels gebruik in die praktyk om 'n aantekening van konserwatisme in te voer in die tendens projeksies. Die gedempte-tendens LES model geïmplementeer kan word as 'n spesiale geval van 'n ARIMA model, in die besonder, 'n ARIMA (1,1,2) model. Dit is moontlik om vertrouensintervalle rondom langtermyn voorspellings wat deur eksponensiële gladstryking modelle bereken deur die oorweging van hulle as spesiale gevalle van ARIMA modelle. (Pasop: nie alle sagteware bereken vertrouensintervalle vir hierdie modelle korrek.) Die breedte van die vertrouensintervalle hang af van (i) die RMS fout van die model, (ii) die tipe glad (eenvoudige of lineêr) (iii) die waarde (s) van die smoothing konstante (s) en (iv) die aantal periodes voor jy voorspel. In die algemeen, die tussenposes versprei vinniger as 945 kry groter in die SES model en hulle uitgebrei, sodat baie vinniger as lineêre, eerder as eenvoudige smoothing gebruik. Hierdie onderwerp word verder in die ARIMA modelle deel van die notas bespreek. (Terug na bo.)


No comments:

Post a Comment