Wednesday, October 19, 2016

Eksponensiële bewegende gemiddelde implementering

Ek ontwikkeling van 'n klein handel robot as 'n oefening. Hy ontvang aandeelpryse dag na dag (verteenwoordig as iterasies). Hier is wat my Handel klas lyk: Soos jy kan sien uit my laaste twee eienskappe, ek wil implementeer 'n eksponensiële bewegende gemiddelde as deel van 'n tendens volgende algoritme. Maar ek dink ek didnt nogal verstaan ​​hoe om dit hier is implementeer my calcEMA funksie wat eenvoudig die EMO bereken: Maar toe my voorraad waardes (geslaag in 'n lêer) is soos so: Soos om seker te maak my EMO sinvol en goed. dit nie Waar het ek verkeerd gaan op die operasie Aditionally, watter waarde moet ek gee lastEMA as sy die eerste keer dat ek noem calcEMA Die operasie is verkeerd, as jy al agtergekom. Disclaimer Ek het hierdie algoritme uit Wikipedia. en as sodanig kan nie akkuraat wees. Hier (bladsy 3) dalk 'n beter een, maar ek kan nie oordeel, ek het nooit gebruik die algoritmes en so het geen idee wat Im praat :) c (EMA) y (EMA) 'n (c (prys) - y (EMO )) c (EMA) is die huidige EMO y (EMA) is vorige EMO n is 'n paar random waarde tussen 0 en 1 k (prys) is die huidige prys, maar jy het amper dieselfde ding: c (EMA) (c (prys) - y (EMA) b) y (EMA) Ek weet nie hoekom jy 2 / daysInTrading 1. gedoen, maar dit sal nie altyd 'n waarde tussen 0 en 1 (eintlik, is dit dalk selfs die meeste van die tyd 0 wees, want dit is al intergers). Jy het 'n hakies op die verkeerde plek (ná b. En nie na y (EMA)). So het die operasie sal nou soos volg lyk: lastEMA 0.5 (currentStock - lastEMA) Vir die eerste lastEMA. volgens Wikipedia: S 1 ongedefinieerd is. S 1 kan in 'n aantal verskillende maniere, wat die algemeenste geïnisialiseer deur die oprigting van S 11 Eerste element in die lys, maar ander tegnieke bestaan, soos die opstel van S 1 tot 'n gemiddeld van die eerste 4 of 5 waarnemings. Die belangrikheid van die S 1 initialisations uitwerking op die gevolglike bewegende gemiddelde is afhanklik van kleiner waardes maak die keuse van S 1 relatief belangriker as groter waardes, aangesien 'n hoër afslag ouer Waarnemings vinniger. antwoord 18 Mei om 13:30 Ek glo jy mis 'n hakies in jou calcEMA funksie. Dit help om die uitdrukking te breek in kleiner uitdrukkings met tydelike veranderlikes tot intermediêre resultate te hou. Ook, as PaulMcKenzie uitgewys in die kommentaar, jy gebruik SY te swaai punt wiskunde te doen. Jy moet oorweeg om dryf of dubbels te afkorting vermy. 'N EMO soos joune gedefinieer vir 'n tydperk, genaamd timePeriod hierbo. Terwyl daysInTrading minder of gelyk aan timePeriod is, moet lastEMA net ingestel word om 'n normale gemiddelde. Sodra daysInTrading is groter as jou timePeriod jy kan begin roep jou calcEMA funksie met lastEMA behoorlik geïnisialiseer. Onthou om lastEMA werk na elke oproep om calcEMA. Hier is 'n moontlike implementering: geantwoord Mei 18 by 15: 18I het in wese 'n verskeidenheid van waardes soos volg: Bogenoemde skikking word oorvereenvoudig, Im invordering 1 waarde per millisekonde in my werklike kode en ek nodig het om die uitset op 'n algoritme wat ek geskryf verwerk na die naaste piek voor 'n tydstip vind. My logika nie, omdat my voorbeeld hierbo, 0,36 is die ware hoogtepunt, maar my algoritme sal agter te kyk en te sien die heel laaste aantal 0,25 as die hoogtepunt, as Theres 'n afname tot 0,24 voor dit. Die doel is om hierdie waardes te neem en 'n algoritme toe te pas om hulle verwek wat hulle sal glad 'n bietjie, sodat ek meer lineêre waardes. (Dit wil sê: id graag my resultate te bochtig wees, nie jaggedy) Ive vertel is om 'n eksponensiële bewegende gemiddelde filter van toepassing op my waardes. Hoe kan ek hierdie Sy doen baie moeilik vir my om wiskundige vergelykings gelees, ek gaan baie beter met kode. Hoe kan ek verwerk waardes in my skikking, die toepassing van 'n eksponensiële bewegende gemiddelde berekening om hulle selfs uit gevra 8 Februarie 12 aan 20:27 Om 'n eksponensiële bewegende gemiddelde bereken. wat jy nodig het om 'n staat om te hou en jou 'n stem parameter nodig het. Dit vereis 'n bietjie klas (met die aanvaarding jy met behulp van Java 5 of later): instansieer met die verval parameter wat jy wil (kan stem te neem moet wees tussen 0 en 1) en gebruik dan die gemiddelde () te filtreer. Lees 'n artikel op 'n mathmatical herhaling, al wat jy regtig nodig het om te weet wanneer om dit in kode is dat wiskundiges graag indekse in skikkings en rye met onderskrifte te skryf. (Theyve 'n paar ander notasies sowel, wat help nie die geval is.) Maar die EMO is eenvoudig as wat jy net nodig het om 'n ou waarde geen ingewikkelde toestand skikkings nodig om te onthou. beantwoord 8 Februarie 12 aan 20:42 TKKocheran: Pretty much. Isn39t dit lekker as dinge eenvoudig (As begin met 'n nuwe reeks, kry 'n nuwe Averager.) Kan wees Let daarop dat die eerste paar terme in die gemiddelde volgorde om 'n bietjie sal spring as gevolg van grens-effekte, maar jy kry diegene met ander bewegende gemiddeldes ook. Maar 'n goeie voordeel is dat jy die bewegende gemiddelde logika in die Averager en eksperimenteer kan draai sonder die res van jou program te veel te versteur. â € Donal Fellows 9 Februarie 12 by 00:06 Ek het 'n harde tyd te verstaan ​​jou vrae, maar ek sal probeer om in elk geval te beantwoord. 1) As jou algoritme gevind 0,25 in plaas van 0,36, dan is dit verkeerd. Dit is verkeerd, want dit neem 'n monotoniese vermeerdering of vermindering (wat altyd opgaan of altyd gaan af). Tensy jy al jou data gemiddeld jou datapunte --- soos jy dit aan te bied --- is nie-lineêre. As jy regtig wil om die maksimum waarde tussen twee punte in die tyd te vind, dan sny jou verskeidenheid van tmin om Tmax en vind die maksimum van daardie subarray. 2) Nou, die konsep van bewegende gemiddeldes is baie eenvoudig: dink dat ek die volgende lys: 1.4, 1.5, 1.4, 1.5, 1.5. Ek kan dit glad deur die neem van die gemiddelde van twee getalle: 1.45, 1.45, 1.45, 1.5. Let daarop dat die eerste getal is die gemiddeld van 1.5 en 1.4 (tweede en eerste nommers) die tweede (nuwe lys) is die gemiddeld van 1.4 en 1.5 (derde en tweede ou lys) die derde (nuwe lys) die gemiddelde van 1,5 en 1,4 (vierde en derde), en so aan. Ek kon dit drie of vier, of N gemaak. Let op hoe die data is baie gladder. 'N Goeie manier om bewegende gemiddeldes te sien by die werk is om te gaan na Google Finansies, kies 'n voorraad (probeer Tesla Motors mooi vlugtige (TSLA)) en klik op technicals aan die onderkant van die grafiek. Kies bewegende gemiddelde met 'n gegewe tydperk, en Eksponensiële bewegende gemiddelde om hul verskille te vergelyk. Eksponensiële bewegende gemiddelde is net nog 'n uitbreiding van hierdie, maar gewigte die ouer data minder as die nuwe data dit is 'n manier om vooroordeel die smoothing na die agterkant. Lees asseblief die Wikipedia-inskrywing. So, dit is meer 'n opmerking as 'n antwoord, maar die bietjie kommentaar boks was net te klein. Sterkte. As jy probleme het met die wiskunde, kan jy gaan met 'n eenvoudige bewegende gemiddelde plaas van eksponensiële. So die uitset jy sou wees die laaste x terme gedeel deur x. Ongetoets pseudokode: Let daarop dat jy sal nodig hê om te hanteer die begin en einde dele van die data sedert duidelik jy kan nie gemiddeld die afgelope 5 terme wanneer jy op jou 2de data punt. Daar is ook meer doeltreffende maniere berekening hierdie bewegende gemiddelde (som som - oudste nuutste), maar dit is om die konsep van kry whats oor gebeur. beantwoord 8 Februarie 12 aan 20: 41How om EMO Bereken in Excel Leer hoe om die eksponensiële bewegende gemiddelde in Excel en VBA bereken, en kry 'n gratis web-verbind sigblad. Die sigblad gekry voorraad data van Yahoo Finansies, bereken EMO (oor jou gekose tyd venster) en intrige van die resultate. Die aflaai skakel is aan die onderkant. Die VBA kan besigtig word en geredigeer it8217s heeltemal gratis. Maar eers disover waarom EMO is belangrik om tegniese handelaars en markanaliste. Historiese aandele prys kaarte is dikwels besoedel met 'n baie hoë frekwensie geraas. Dit bedek dikwels groot tendense. Bewegende gemiddeldes te help gladde uit hierdie geringe fluktuasies, gee jou 'n groter insig in die algehele mark rigting. Die eksponensiële bewegende gemiddelde plekke groter belang op meer onlangse data. Hoe groter die tydperk, hoe laer is die belangrikheid van die mees onlangse data. EMO word gedefinieer deur die vergelyking. today8217s prys (vermenigvuldig met 'n gewig) en yesterday8217s EMO (vermenigvuldig met 1-gewig) Jy moet die EMO berekening met 'n aanvanklike EMO (EMO 0) kickstart. Dit is gewoonlik 'n eenvoudige bewegende gemiddelde lengte T. Die grafiek hierbo, byvoorbeeld, gee die EMO van Microsoft tussen 1 Januarie 2013 en 14 Januarie 2014 Tegniese handelaars dikwels die cross-over van twee bewegende gemiddeldes 8211 een gebruik met 'n kort tydskaal en 'n ander met 'n lang tydskaal 8211 tot koop / verkoop seine op te wek. Dikwels 12- en 26-dae - bewegende gemiddeldes gebruik. Wanneer die korter bewegende gemiddelde styg bo die meer bewegende gemiddelde, die mark is trending updwards dit is 'n koopsein. Maar wanneer die korter bewegende gemiddeldes val onder die lang bewegende gemiddelde, die mark val dit 'n sell sein. Let8217s eers leer hoe om EMO bereken met behulp van werkblad funksies. Daarna we8217ll ontdek hoe om VBA gebruik om EMO bereken (en outomaties plot kaarte) Bereken EMO in Excel met Werkkaart Funksies Stap 1. Let8217s sê dat ons wil hê dat die 12-dag EMO van Exxon Mobil8217s aandele prys te bereken. Eerstens moet ons historiese aandele pryse 8211 kry jy dat hierdie grootmaat voorraad kwotasie Downloader doen. Stap 2. Bereken die eenvoudige gemiddelde van die eerste 12 pryse met Excel8217s Gemiddeld () funksie. In die onderstaande Screengrab, in sel C16 het ons die formule GEMIDDELDE (B5: B16) waar B5: B16 bevat die eerste 12 naby pryse Stap 3. Net onder die sel wat in Stap 2, tik die EMO formule hierbo Daar het jy dit You8217ve suksesvol bereken 'n belangrike tegniese aanwyser, EMO, in 'n sigblad. Bereken EMO met VBA Nou let8217s meganiseer die berekeninge met VBA, insluitend die outomatiese skepping van erwe. Ek won8217t jou die volle VBA hier (it8217s beskikbaar in die onderstaande sigblad), maar we8217ll die mees kritieke kode bespreek. Stap 1. Aflaai historiese voorraadkwotasies vir jou ENKELE van Yahoo Finansies (met behulp van CSV lêers), en laai dit in Excel of die VBA gebruik in hierdie sigblad om historiese kwotasies te kry reguit in Excel. Stap 2: Jou data kan soos volg lyk. Dit is hier waar ons nodig het om 'n paar braincells 8211 wat ons nodig het om die EMO vergelyking in VBA implementeer oefen. Ons kan R1C1 styl gebruik om programatically betree formules in individuele selle. Ondersoek die kode hieronder snippet. EMAWindow is 'n veranderlike wat die vereiste tyd venster numRows gelyk is die totale aantal datapunte 1 (die 8220 18221 is omdat we8217re die veronderstelling dat die werklike voorraad data begin ry 2) die EMO word bereken in kolom H veronderstelling dat EMAWindow 5 en numrows 100 (dit wil sê, daar is 99 datapunte) die eerste reël plaas 'n formule in sel H6 dat die rekenkundige gemiddelde van die eerste 5 historiese data punte die tweede reël plaas formules in selle H7 bereken: H100 dat die EMO van bereken die oorblywende 95 datapunte Stap 3 Hierdie VBA funksie skep 'n plot van die beslote prys en EMO. Groot taak op kaarte en verduidelikings. Ek het 'n vraag though. As ek die begindatum tot 'n jaar later verander en kyk na onlangse EMO data, is dit opvallend anders as wanneer ek gebruik dieselfde EMO tydperk met 'n vroeëre aanvang van die datum vir dieselfde onlangse datum verwysing. Is dit wat jy verwag. Dit maak dit moeilik om te kyk na gepubliseerde kaarte met EMA getoon en dieselfde grafiek nie sien nie. Shivashish Sarkar sê: Hi, ek gebruik jou EMO sakrekenaar en ek dit baie waardeer. Ek het egter opgemerk dat die sakrekenaar is nie in staat om die grafieke te plot vir alle maatskappye (dit wys Run tyd fout 1004). Kan jy asseblief skep 'n updated weergawe van jou sakrekenaar waarin nuwe maatskappye sal ingesluit Laat 'n antwoord Kanselleer antwoord Soos die Vrystaat Spreadsheets Meester Knowledge Base Onlangse PostsExponential bewegende gemiddelde (EMA) Die klassieke EMO formule is: In teenstelling met eenvoudige bewegende gemiddelde. waar die gewig van al die vorige bars gelyk is, die eksponensiële bewegende gemiddelde maak die mees onlangse bar belangriker. Die gewig van elke ouer bar verminder die eksponensieel. Hier is 'n gewig grafiek vir N 10 (1 is die huidige prys, 2 die vorige en so aan): Die gewig formule is waar ek is 'n afstand na die mees onlangse bar. 0 beteken dat die mees onlangse, 1 die vorige bar en so aan. Eerste Waarde Die formule verwysings na die vorige waarde en daar is geen standaard ooreenkoms wat die eerste (oudste) waarde. Verskillende implementering van EMO gebruik: Die eerste prys (MT4, Marketscope) of The Simple bewegende gemiddelde van die eerste N pryse (Stockcharts). Gebruik in die plek van Simple bewegende gemiddelde die eksponensiële bewegende gemiddelde kan presies so eenvoudig bewegende gemiddelde gebruik. veral in die situasie wanneer die traagheid van Simple bewegende gemiddelde is kan nie geïgnoreer word nie. Net vergelyk EMO (10) en MVA (10) toegepas op dieselfde pryse: Beperkings die eksponensiële bewegende gemiddelde is gebaseer al sy vorige waardes, so, die aanwyser gevolg vir 'n bepaalde bar hang af van hoeveel historiese data in ag geneem word. So, in die situasie wanneer meer historiese data gelaai, die waarde van die aanwyser kan verskil van die voorheen bereken. Sien ook Indicators Artikels hierdie artikel in Ander LanguagesSpreadsheet implementering van seisoenale aanpassing en eksponensiële gladstryking Dit is maklik om seisoenale aanpassing voer en pas eksponensiële gladstryking modelle met behulp van Excel. Die skerm beelde en kaarte hieronder is geneem uit 'n sigblad wat is opgestel om multiplikatiewe seisoenale aanpassing en lineêre eksponensiële gladstryking op die volgende kwartaallikse verkope data van Buitenboord Marine illustreer: Om 'n afskrif van die sigbladlêer self te bekom, kliek hier. Die weergawe van lineêre eksponensiële gladstryking wat hier gebruik sal word vir doeleindes van demonstrasie is Brown8217s weergawe, bloot omdat dit geïmplementeer kan word met 'n enkele kolom van formules en daar is net een glad konstante te optimaliseer. Gewoonlik is dit beter om Holt8217s weergawe dat afsonderlike glad konstantes vir vlak en tendens het gebruik. Die vooruitskatting proses verloop soos volg: (i) die eerste keer die data is seisoenaal-aangepaste (ii) dan voorspellings gegenereer vir die seisoenaal-aangepaste data via lineêre eksponensiële gladstryking en (iii) Ten slotte het die seisoensaangesuiwerde voorspellings is quotreseasonalizedquot om voorspellings vir die oorspronklike reeks te verkry . Die aanpassingsproses seisoenale word in kolomme gedoen D deur G. Die eerste stap in seisoenale aanpassing is om te bereken 'n gesentreerde bewegende gemiddelde (hier opgevoer in kolom D). Dit kan gedoen word deur die gemiddelde van twee een-jaar-wye gemiddeldes wat geneutraliseer deur 'n tydperk relatief tot mekaar. ( 'N kombinasie van twee geneutraliseer gemiddeldes eerder as 'n enkele gemiddelde nodig vir sentrering doeleindes wanneer die aantal seisoene is selfs.) Die volgende stap is om die verhouding te bereken om bewegende gemiddelde --i. e. die oorspronklike data gedeel deur die bewegende gemiddelde in elke tydperk - wat hier uitgevoer word in kolom E. (Dit is ook die quottrend-cyclequot komponent van die patroon genoem, sover tendens en besigheid-siklus effekte kan oorweeg word om almal wat bly nadat gemiddeld meer as 'n geheel jaar se data. natuurlik, maand-tot-maand veranderinge wat nie as gevolg van seisoenale kan bepaal word deur baie ander faktore, maar die 12-maande-gemiddelde glad oor hulle 'n groot mate.) die na raming seisoenale indeks vir elke seisoen word bereken deur die eerste gemiddeld al die verhoudings vir daardie spesifieke seisoen, wat gedoen word in selle G3-G6 behulp van 'n AVERAGEIF formule. Die gemiddelde verhoudings word dan verklein sodat hulle som presies 100 keer die aantal periodes in 'n seisoen, of 400 in hierdie geval, wat gedoen word in selle H3-H6. Onder in kolom F, word VLOOKUP formules wat gebruik word om die toepaslike seisoenale indeks waarde in elke ry van die datatabel voeg, volgens die kwartaal van die jaar wat dit verteenwoordig. Die gesentreerde bewegende gemiddelde en die seisoensaangepaste data beland lyk soos hierdie: Let daarop dat die bewegende gemiddelde lyk tipies soos 'n gladder weergawe van die seisoensaangepaste reeks, en dit is korter aan beide kante. Nog 'n werkblad in dieselfde Excel lêer toon die toepassing van die lineêre eksponensiële gladstryking model om die seisoensaangepaste data, begin in kolom G. 'n Waarde vir die glad konstante (alfa) bo die voorspelling kolom ingeskryf (hier, in sel H9) en vir gerief dit die omvang naam quotAlpha. quot (die naam is opgedra deur die opdrag quotInsert / naam / Createquot.) die LES model is geïnisialiseer deur die oprigting van die eerste twee voorspellings gelyk aan die eerste werklike waarde van die seisoensaangepaste reeks toegeken. Die formule wat hier gebruik word vir die LES voorspelling is die enkel-vergelyking rekursiewe vorm van Brown8217s model: Hierdie formule is in die sel wat ooreenstem met die derde tydperk (hier, sel H15) aangegaan en kopieer af van daar af. Let daarop dat die LES voorspelling vir die huidige tydperk verwys na die twee voorafgaande waarnemings en die twee voorafgaande voorspelling foute, sowel as om die waarde van alfa. So, die voorspelling formule in ry 15 slegs verwys na data wat beskikbaar is in ry 14 en vroeër was. (Natuurlik, as ons wou eenvoudig in plaas van lineêre eksponensiële gladstryking te gebruik, kan ons die SES formule hier vervang in plaas. Ons kan ook gebruik Holt8217s eerder as Brown8217s LES model, wat nog twee kolomme van formules sou vereis dat die vlak en tendens bereken wat gebruik word in die vooruitsig.) die foute word bereken in die volgende kolom (hier, kolom J) deur die aftrekking van die voorspellings van die werklike waardes. Die wortel beteken kwadraat fout is bereken as die vierkantswortel van die variansie van die foute plus die vierkant van die gemiddelde. (Dit volg uit die wiskundige identiteit. MSE afwyking (foute) (gemiddeld (foute)) 2) By die berekening van die gemiddelde en variansie van die foute in hierdie formule, is die eerste twee periodes uitgesluit omdat die model vooruitskatting nie eintlik nie begin totdat die derde tydperk (ry 15 op die sigblad). Die optimale waarde van alfa kan óf gevind word deur die hand verander alfa tot die minimum RMSE is gevind, of anders kan jy die quotSolverquot gebruik om 'n presiese minimering. Die waarde van alfa dat die Solver gevind word hier (alpha0.471) getoon. Dit is gewoonlik 'n goeie idee om die foute van die model (in omskep eenhede) te plot en ook om te bereken en stip hul outokorrelasies by lags van tot een seisoen. Hier is 'n tydreeks plot van die (seisoenaangepaste) foute: Die fout outokorrelasies word bereken deur gebruik te maak van die funksie CORREL () om die korrelasies van die foute te bereken met hulself uitgestel word deur een of meer periodes - besonderhede word in die sigblad model . Hier is 'n plot van die outokorrelasies van die foute by die eerste vyf lags: Die outokorrelasies by lags 1 tot 3 is baie naby aan nul, maar die pen op lag 4 (wie se waarde is 0.35) is 'n bietjie lastig - dit dui daarop dat die seisoenale aanpassing proses het nie heeltemal suksesvol. Maar dit is eintlik net effens betekenisvol. 95 betekenis bands om te toets of outokorrelasies is aansienlik verskil van nul is min of meer plus-of-minus 2 / SQRT (N-k), waar n die steekproefgrootte en k is die lag. Hier N 38 en k wissel van 1 tot 5, so die vierkant-wortel-van-n-minus-k is ongeveer 6 vir almal, en vandaar die perke vir die toets van die statistiese betekenisvolheid van afwykings van nul is min of meer plus - of-minus 2/6, of 0.33. As jy die waarde van alfa wissel met die hand in hierdie Excel model, kan jy die effek op die tydreeks en outokorrelasie erwe van die foute in ag te neem, sowel as op die wortel-gemiddelde-kwadraat fout, wat onder sal wees geïllustreer. Aan die onderkant van die sigblad, is die voorspelling formule quotbootstrappedquot in die toekoms deur bloot vervang voorspellings vir werklike waardes by die punt waar die werklike data loop uit - d. w.z. waar quotthe futurequot begin. (Met ander woorde, in elke sel waar 'n toekomstige datawaarde sou plaasvind, 'n selverwysing is ingevoeg wat daarop dui dat die voorspelling gemaak vir daardie tydperk.) Al die ander formules is eenvoudig van bo af gekopieer: Let daarop dat die foute vir voorspellings van die toekoms is al bereken as nul. Dit beteken nie dat die werklike foute sal nul wees nie, maar eerder dit weerspieël bloot die feit dat vir doeleindes van voorspelling is ons veronderstelling dat die toekoms data die voorspellings sal gelyk gemiddeld. Die gevolglike LES voorspellings vir die seisoenaal-aangepaste data soos volg lyk: Met hierdie besondere waarde van Alpha, wat is optimaal vir een-periode-vooruit voorspellings, die geprojekteerde tendens is effens opwaarts, wat die plaaslike tendens wat oor die afgelope 2 jaar is waargeneem of so. Vir ander waardes van Alpha dalk 'n heel ander tendens projeksie verkry. Dit is gewoonlik 'n goeie idee om te sien wat gebeur met die langtermyn-tendens projeksie wanneer Alpha is uiteenlopend, omdat die waarde wat die beste vir 'n kort termyn vooruitskatting sal nie noodwendig die beste waarde vir die voorspelling van die meer verre toekoms wees. Byvoorbeeld, hier is die resultaat wat verkry word indien die waarde van alfa hand is ingestel op 0,25: Die geprojekteerde langtermyn-tendens is nou negatiewe eerder as positiewe Met 'n kleiner waarde van Alpha model plaas meer gewig op ouer data in sy skatting van die huidige vlak en tendens, en sy voorspellings langtermyn weerspieël die afwaartse neiging waargeneem oor die afgelope 5 jaar, eerder as die meer onlangse opwaartse neiging. Hierdie grafiek ook duidelik illustreer hoe die model met 'n kleiner waarde van Alpha is stadiger te reageer op quotturning pointsquot in die data en dus geneig is om 'n fout van die dieselfde teken maak vir baie tye in 'n ry. Die 1-stap-ahead voorspelling foute is groter gemiddeld as dié verkry voordat (RMSE van 34,4 eerder as 27.4) en sterk positief autocorrelated. Die lag-1 outokorrelasie van 0,56 oorskry grootliks die waarde van 0.33 hierbo bereken vir 'n statisties beduidende afwyking van nul. As 'n alternatief vir slingerspoed die waarde van alfa ten einde meer konserwatisme te voer in 'n lang termyn voorspellings, is 'n quottrend dampeningquot faktor soms by die model ten einde te maak die geprojekteerde tendens plat uit na 'n paar periodes. Die finale stap in die bou van die voorspelling model is om die LES voorspellings quotreasonalizequot deur hulle deur die toepaslike seisoenale indekse te vermenigvuldig. So, die reseasonalized voorspellings in kolom Ek is net die produk van die seisoenale indekse in kolom F en die seisoensaangepaste LES voorspellings in kolom H. Dit is relatief maklik om vertrouensintervalle bereken vir een-stap-ahead voorspellings gemaak deur hierdie model: eerste bereken die RMSE (wortel-gemiddelde-kwadraat fout, wat net die vierkantswortel van die MSE) en dan bereken 'n vertrouensinterval vir die seisoensaangepaste voorspel deur optelling en aftrekking twee keer die RMSE. (Oor die algemeen 'n 95 vertrouensinterval vir 'n een-tydperk lig voorspelling is min of meer gelyk aan die punt voorspelling plus-of-minus twee keer die geskatte standaardafwyking van die voorspelling foute, die aanvaarding van die fout verspreiding is ongeveer normale en die steekproefgrootte groot genoeg is, sê, 20 of meer. Hier is die RMSE eerder as die monster standaardafwyking van die foute is die beste raming van die standaard afwyking van toekomstige vooruitsig foute, want dit neem vooroordeel sowel toevallige variasies in ag.) die vertroue perke vir die seisoensaangepaste voorspelling is dan reseasonalized. saam met die voorspelling, deur hulle met die toepaslike seisoenale indekse te vermenigvuldig. In hierdie geval is die RMSE is gelyk aan 27.4 en die seisoensaangepaste voorspelling vir die eerste toekoms tydperk (Desember-93) is 273,2. sodat die seisoensaangepaste 95 vertrouensinterval is 273,2-227,4 218,4 te 273.2227.4 328,0. Vermenigvuldig hierdie perke deur Decembers seisoenale indeks van 68,61. Ons kry onderste en boonste vertroue grense van 149,8 en 225,0 rondom die Desember-93 punt voorspelling van 187,4. Vertroue perke vir voorspellings meer as een tydperk wat voorlê, sal oor die algemeen uit te brei as die voorspelling horison toeneem, as gevolg van onsekerheid oor die vlak en tendens asook die seisoenale faktore, maar dit is moeilik om hulle te bereken in die algemeen deur analitiese metodes. (Die geskikte manier om vertroue perke vir die LES voorspelling bereken is deur die gebruik van ARIMA teorie, maar die onsekerheid in die seisoenale indekse is 'n ander saak.) As jy 'n realistiese vertroue interval vir 'n voorspelling wil meer as een tydperk wat voorlê, met al die bronne van fout in ag, jou beste bet is om empiriese metodes gebruik: byvoorbeeld, 'n vertrouensinterval vir 'n 2-stap vorentoe voorspel verkry, jy kan 'n ander kolom skep op die sigblad om 'n 2-stap-ahead voorspelling bereken vir elke tydperk ( deur Opstarten die een-stap-ahead voorspelling). bereken dan die RMSE van die 2-stap-ahead voorspelling foute en gebruik dit as die basis vir 'n 2-stap-ahead vertroue interval.


No comments:

Post a Comment