Tuesday, October 11, 2016

Bewegende Gemiddelde Funksie R

Bewegende gemiddelde - 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. Built-funksies Uittreksel of substringe vervang in 'n karakter vektor. x LT quotabcdefquot substr (x, 2, 4) is quotbcdquot substr (x, 2, 4) LT quot22222quot is quota222efquot soek patroon in x. Indien ONWAAR vaste dan patroon is 'n gewone uitdrukking. As fixedTRUE dan patroon is 'n teks string. Opbrengste wat ooreenstem met die indekse. grep (quotAquot, c (quotbquot, quotAquot, quotcquot), fixedTRUE) gee terug 2 Vind patroon in x en vervang met die vervanging teks. As fixedFALSE dan patroon is 'n gewone uitdrukking. As vaste T dan patroon is 'n teks string. sub (quotsquot, quot. quot, quotHello Therequot) gee terug quotHello. Therequot Split die elemente van karakter vektor x by split. strsplit (quotabcquot, quotquot) gee terug 3 element vektor quotaquot, quotbquot, quotcquot koppel snare na die gebruik van September string te skei. plak (quotxquot, 1: 3, sepquotquot) opbrengste c (quotx1quot, quotx2quot quotx3quot) plak (quotxquot, 1: 3, sepquotMquot) opbrengste c (quotxM1quot, quotxM2quot quotxM3quot) plak (quotToday isquot, datum ()) Bewegende Gemiddeldes in R tot die beste van my wete, nie R nie 'n ingeboude funksie om bewegende gemiddeldes te bereken. Die gebruik van die filter funksie, maar ons kan 'n kort funksie te skryf vir bewegende gemiddeldes: Ons kan dan gebruik maak van die funksie op enige data: MAV (data), of MAV (data, 11) as ons wil 'n verskillende aantal datapunte spesifiseer as die standaard 5 plot werke soos verwag: plot (MAV (data)). Benewens die aantal datapunte waaroor om gemiddelde, kan ons ook die kante argument van die filter funksies te verander: sides2 gebruik beide kante, sides1 gebruik net verlede waardes. Deel hierdie: Post navigasie Kommentaar navigasie Kommentaar navigationUsing R vir Tydreeksanalise Tydreeksanalise Hierdie boekie itells jy hoe om die R statistiese sagteware gebruik 'n paar eenvoudige ontledings wat algemeen in die ontleding van tydreeksdata is om uit te voer. Hierdie boekie aanvaar dat die leser het 'n paar basiese kennis van tydreeksanalise, en die skoolhoof fokus van die boekie is tydreeksanalise nie te verduidelik nie, maar eerder om te verduidelik hoe hierdie ontledings uit te voer met behulp van R. As jy nuut is tot tyd reeks analise, en meer wil weet oor enige van die wat hier aangebied konsepte leer, sou ek raai die Open University boek 8220Time series8221 (produk-kode M249 / 02), by die Open University winkel. In hierdie boekie sal ek gebruik tydreeksdata stelle wat reeds vriendelik beskikbaar deur Rob Hyndman in sy tydreeksdata Biblioteek by robjhyndman / TSDL / gemaak. As jy graag hierdie boekie, kan jy ook graag om te kyk na my boekie oor die gebruik van R vir biomediese statistieke, a-little-book-of-r-for-biomedical-statistics. readthedocs. org/. en my boekie oor die gebruik van R vir meerveranderlike analise, little-book-of-r-for-multivariate-analysis. readthedocs. org/. Lees tydreeksdata Die eerste ding wat jy sal wil hê om te doen om jou tyd reeks te ontleed om dit te lees in R en die tydreeks te stip. Jy kan data te lees in R met behulp van die funksie scan (), wat veronderstel dat u data vir opeenvolgende tyd punte is in 'n eenvoudige teks lêer met een kolom. Byvoorbeeld, die lêer robjhyndman / tsdldata / misc / kings. dat bevat inligting oor die ouderdom van die dood van opeenvolgende konings van Engeland, wat begin met Willem die Veroweraar (oorspronklike bron: Hipel en McLeod, 1994). Die datastel lyk soos volg: Net die eerste paar reëls van die lêer het getoon. Die eerste drie reëls bevat 'n kommentaar op die data, en ons wil dit te ignoreer wanneer ons die data te lees in R. Ons kan dit gebruik deur die gebruik van die parameter 8220skip8221 van die skandering () funksie, wat bepaal hoeveel lyne aan die bokant van die lêer om te ignoreer. Om die lêer in R lees, ignoreer die eerste drie reëls, tik ons: In hierdie geval is die ouderdom van die dood van 42 opeenvolgende konings van Engeland is gelees in die veranderlike 8216kings8217. Sodra jy die tydreeksdata in R gelees het, die volgende stap is om die data op te slaan in 'n tydreeks voorwerp in R, sodat jy R8217s baie funksies kan gebruik vir die ontleding van tydreeksdata. Om die data in 'n tydreeks voorwerp te slaan, gebruik ons ​​die lepels () funksie in R. Byvoorbeeld, om die data in die veranderlike 8216kings8217 as 'n tydreeks voorwerp in R stoor, tik ons: Soms is die tydreeksdata te stel dat jy het dalk ingesamel met gereelde tussenposes wat minder as een jaar was, byvoorbeeld, maandeliks of kwartaalliks. In hierdie geval, kan jy die aantal kere wat data per jaar ingesamel is deur die gebruik van die parameter 8216frequency8217 in die lepels () funksie gee. Vir maandelikse tydreeksdata, jy frequency12 stel, terwyl dit vir kwartaallikse tydreeksdata, jy frequency4 stel. Jy kan ook die eerste jaar wat die data is ingesamel spesifiseer, en die eerste interval in daardie jaar deur die gebruik van die parameter 8216start8217 in die lepels () funksie. Byvoorbeeld, as die eerste data punt ooreenstem met die tweede kwartaal van 1986, sou jy startc (1986,2) stel. 'N Voorbeeld is 'n datastel van die aantal geboortes per maand in New York City, vanaf Januarie 1946 tot Desember 1959 (oorspronklik ingesamel deur Newton). Hierdie data is beskikbaar in die lêer robjhyndman / tsdldata / data / nybirths. dat Ons die data in R kan lees, en stoor dit as 'n tydreeks voorwerp, deur te tik: Net so is die lêer robjhyndman / tsdldata / data / fancy. dat bevat maandelikse verkope vir 'n souvenir winkel by die see oord in Queensland, Australië, vir Januarie 1987-Desember 1993 (oorspronklike data van wielmaker en Hyndman, 1998). Ons kan die data in R gelees deur te tik: Plot Tyd Reeks Sodra jy 'n tydreeks in R gelees het, is die volgende stap is gewoonlik om 'n plot van die tydreeksdata, wat jy kan doen met die plot. ts maak () funksie in R. byvoorbeeld, om die tydreeks van die ouderdom van die dood van 42 opeenvolgende konings van Engeland plot, tik ons: ons kan sien uit die tyd plot dat hierdie tyd reeks waarskynlik kan beskryf word met behulp van 'n toevoeging model, aangesien die ewekansige skommelinge in die data is min of meer konstant in grootte met verloop van tyd. Net so, om die tydreeks van die aantal geboortes per maand in New York stad plot, tik ons: Ons kan sien uit hierdie tyd reeks wat dit lyk asof daar seisoenale variasie in die aantal geboortes per maand wees: daar is 'n hoogtepunt elke somer , en 'n trog elke winter. Weereens, dit blyk dat hierdie tyd reeks waarskynlik kan beskryf word met behulp van 'n toevoeging model, soos die seisoenale skommelinge is min of meer konstant in grootte met verloop van tyd en lyk nie te afhanklik van die vlak van die tydreeks, en die ewekansige skommelinge lyk ook te wees ongeveer konstant in grootte met verloop van tyd. Net so, om die tydreeks van die maandelikse verkope vir die souvenir winkel by die see oord in Queensland, Australië plot, tik ons: In hierdie geval, dit blyk dat 'n toevoeging model is nie geskik vir die beskrywing van hierdie tyd reeks, aangesien die grootte van die seisoenale skommelinge en ewekansige skommelinge lyk verhoog met die vlak van die tydreeks. Dus, kan ons nodig het om die tydreeks te transformeer ten einde 'n getransformeerde tydreekse wat beskryf kan word met behulp van 'n toevoeging model kry. Byvoorbeeld, kan ons die tydreeks te omskep deur die berekening van die natuurlike log van die oorspronklike data: Hier kan ons sien dat die grootte van die seisoenale skommelinge en ewekansige skommelinge in die log omskep tydreekse lyk min of meer konstant oor tyd te wees, en te doen nie afhang van die vlak van die tydreeks. Dus, kan die log omskep tydreekse waarskynlik beskryf met behulp van 'n toevoeging model. Ontbindende Tyd Reeks ontbindende 'n tydreeks beteken skei dit in sy samestellende komponente, wat gewoonlik 'n tendens komponent en 'n onreëlmatige komponent, en as dit is 'n seisoenale tyd reeks, 'n seisoenale komponent. Ontbindende Nie Seisoene Data 'n Nie-seisoen tyd reeks bestaan ​​uit 'n tendens komponent en 'n onreëlmatige komponent. Ontbind die tydreeks behels probeer om die tydreeks te skei in hierdie komponente, dit wil sê die skatte van die die tendens komponent en die onreëlmatige komponent. Om die tendens komponent van 'n nie-seisoenale tydreekse wat beskryf kan word met behulp van 'n toevoeging model skat, is dit algemeen om 'n glad metode gebruik, soos die berekening van die eenvoudige bewegende gemiddelde van die tydreeks. Die funksie SMA () in die 8220TTR8221 R pakket kan gebruik word om tydreeksdata glad met behulp van 'n eenvoudige bewegende gemiddelde. Om hierdie funksie te gebruik, moet ons eers die 8220TTR8221 R pakket te installeer (vir instruksies oor hoe om 'n R-pakket te installeer, sien Hoe om 'n R-pakket te installeer). Sodra jy die 8220TTR8221 R pakket geïnstalleer is, kan jy die 8220TTR8221 R pakket te laai deur te tik: Jy kan dan gebruik die 8220SMA () 8221 funksie om tydreeksdata glad. Om die funksie SMA () te gebruik, moet jy aan die orde (span) van die eenvoudige bewegende gemiddelde spesifiseer, met behulp van die parameter 8220n8221. Byvoorbeeld, 'n eenvoudige bewegende gemiddelde van orde 5 bereken, het ons N5 in die funksie SMA (). Byvoorbeeld, soos hierbo bespreek, die tydreeks van die ouderdom van die dood van 42 opeenvolgende konings van Engeland verskyn is nie-seisoenale, en kan waarskynlik beskryf met behulp van 'n toevoeging model, aangesien die ewekansige skommelinge in die data is min of meer konstant in grootte oor tyd: dus, kan ons probeer om die tendens komponent van hierdie tyd reeks skat deur glad met behulp van 'n eenvoudige bewegende gemiddelde. Om die tydreeks glad met behulp van 'n eenvoudige bewegende gemiddelde van orde 3, en plot die stryk tydreeksdata, tik ons: Daar blyk nog heelwat ewekansige skommelinge in die tyd reeks wees stryk met behulp van 'n eenvoudige bewegende gemiddelde van orde 3. So, om die tendens komponent meer akkuraat te skat, kan ons wil om te probeer glad die data met 'n eenvoudige bewegende gemiddelde van 'n hoër orde. Dit neem 'n bietjie van probeer-en-fout, om die regte hoeveelheid smoothing vind. Byvoorbeeld, kan ons probeer om met behulp van 'n eenvoudige bewegende gemiddelde van orde 8: Die stryk met 'n eenvoudige bewegende gemiddelde van orde 8 data gee 'n duideliker prentjie van die tendens komponent, en ons kan sien dat die ouderdom van die dood van die Engelse konings lyk afgeneem het vanaf ongeveer 55 jaar oud om ongeveer 38 jaar oud tydens die bewind van die eerste 20 konings, en dan verhoog nadat sowat 73 jaar oud teen die einde van die regering van die 40ste koning in die tyd reeks. Ontbindende Seisoene Data A seisoenale tyd reeks bestaan ​​uit 'n tendens komponent, 'n seisoenale komponent en 'n onreëlmatige komponent. Ontbind die tydreeks beteken skeiding van die tydreeks in hierdie drie komponente: dit wil sê, die skatte van hierdie drie komponente. Om die tendens komponent en seisoenale komponent van 'n seisoenale tyd reeks wat beskryf kan word met behulp van 'n toevoeging model skat, kan ons die 8220decompose () 8221 funksie in R. Hierdie funksie skat die tendens, seisoenale en onreëlmatige komponente van 'n tydreeks te gebruik wat beskryf kan word met behulp van 'n toevoeging model. Die funksie 8220decompose () 8221 gee 'n lys voorwerp as gevolg, waar die skat van die seisoenale komponent, tendens komponent en onreëlmatige komponent in die naam van elemente van die lys voorwerpe gestoor word, onderskeidelik bekend as 8220seasonal8221, 8220trend8221, en 8220random8221. Byvoorbeeld, soos hierbo bespreek, die tydreeks van die aantal geboortes per maand in New York stad is seisoenale met 'n hoogtepunt elke somer en trog elke winter, en kan waarskynlik beskryf met behulp van 'n toevoeging model sedert die seisoen-en toevallige fluktuasies lyk wees rofweg konstante in grootte met verloop van tyd: Om die tendens skat, seisoenale en onreëlmatige komponente van hierdie tydreekse, tik ons: die beraamde waardes van die seisoenale, tendens en onreëlmatige komponente word nou gestoor in veranderlikes birthstimeseriescomponentsseasonal, birthstimeseriescomponentstrend en birthstimeseriescomponentsrandom. Byvoorbeeld, kan ons uit die geskatte waardes van die seisoenale komponent druk deur tik: Die beraamde seisoenale faktore gegee word vir die maande Januarie-Desember, en is dieselfde vir elke jaar. Die grootste seisoenale faktor is vir Julie (ongeveer 1,46), en die laagste is vir Februarie (sowat -2,08), wat daarop dui dat dit lyk asof daar 'n hoogtepunt in geboortes in Julie en 'n trog in geboortes in Februarie elke jaar. Ons kan die geskatte tendens, seisoenale en onreëlmatige komponente van die tydreeks te stip met behulp van die 8220plot () 8221 funksie, byvoorbeeld: Die plot hierbo toon die oorspronklike tydreekse (bo), die beraamde tendens komponent (tweede van bo), die beraamde seisoenale komponent (derde van bo), en die beraamde onreëlmatige komponent (onder). Ons sien dat die beraamde tendens komponent toon 'n klein afname van sowat 24 in 1947 tot sowat 22 in 1948, gevolg deur 'n geleidelike toename van toe af tot ongeveer 27 in 1959. Seisoenaal aanpassing As jy 'n seisoenale tyd reeks wat beskryf kan word met behulp van 'n toevoeging model, kan jy pas seisoenaal die tydreeks deur die skatte van die seisoenale komponent, en trek die beraamde seisoenale komponent van die oorspronklike tyd reeks. Ons kan dit doen met behulp van die skatting van die seisoen komponent bereken deur die 8220decompose () 8221 funksie. Byvoorbeeld, om seisoenaal pas die tydreeks van die aantal geboortes per maand in New York City, kan ons die seisoenale komponent met behulp van 8220decompose () 8221 skat, en dan trek die seisoenale komponent van die oorspronklike tyd reeks: Ons kan dan stip die seisoensaangepaste tydreeks met behulp van die 8220plot () 8221 funksie, deur te tik: Jy kan sien dat die seisoenale variasie het uit die seisoensaangepaste tydreeks verwyder. Die seisoensaangepaste tydreeks nou net bevat die tendens komponent en 'n onreëlmatige komponent. Voorspellings met behulp van Eksponensiële Smoothing Eksponensiële smoothing kan gebruik word om kort termyn voorspellings te maak vir tydreeksdata. Eenvoudige Eksponensiële Smoothing As jy 'n tydreeks wat beskryf kan word met behulp van 'n toevoeging model met 'n konstante vlak en geen seisoenaliteit, kan jy eenvoudig eksponensiële gladstryking gebruik om kort termyn voorspellings te maak. Die eenvoudige eksponensiële gladstryking metode bied 'n manier om die skatte van die vlak van die huidige tyd punt. Smoothing word beheer deur die parameter alfa vir die skatting van die vlak van die huidige tyd punt. Die waarde van alfa lê tussen 0 en 1. Waardes van alfa wat naby aan 0 is dat min gewig is geplaas op die mees onlangse waarnemings wanneer voorspellings van toekomstige waardes. Byvoorbeeld, die lêer robjhyndman / tsdldata / Hurst / precip1.dat bevat totale jaarlikse reënval in duim na Londen, 1813-1912 (oorspronklike data van Hipel en McLeod, 1994). Ons kan die data in R lees en plot dit deur te tik: Jy kan sien uit die plot dat daar min of meer konstant vlak (die gemiddelde konstant bly op ongeveer 25 duim). Die ewekansige skommelinge in die tyd reeks lyk min of meer konstant in grootte met verloop van tyd te wees, so dit is waarskynlik geskik is vir die data met behulp van 'n toevoeging model beskryf. Dus, kan ons voorspellings te maak met behulp van eenvoudige eksponensiële gladstryking. Vooruitskattings met behulp van eenvoudige eksponensiële gladstryking in R te maak, kan ons 'n eenvoudige eksponensiële gladstryking voorspellende model pas met behulp van die 8220HoltWinters () 8221 funksie in R. aan HoltWinters () vir eenvoudige eksponensiële gladstryking gebruik, moet ons die parameters betaFALSE en gammaFALSE in die stel HoltWinters () funksie (die beta en gamma parameters word gebruik vir Holt8217s eksponensiële gladstryking, of Holt-Winters eksponensiële gladstryking, soos hieronder beskryf). Die funksie HoltWinters () gee terug 'n lys veranderlike, wat 'n paar genoem elemente bevat. Byvoorbeeld, om eenvoudige eksponensiële gladstryking gebruik om voorspellings te maak vir die tyd reeks jaarlikse reënval in Londen, tik ons: Die uitset van HoltWinters () vertel ons dat die geskatte waarde van die alfa parameter is oor 0,024. Dit is baie naby aan nul, om ons te vertel dat die voorspellings is gebaseer op beide onlangse en minder onlangse waarnemings (hoewel ietwat meer gewig is geplaas op onlangse waarnemings). By verstek, HoltWinters () maak net voorspellings vir dieselfde tydperk gedek deur ons oorspronklike tydreekse. In hierdie geval, ons oorspronklike tydreekse ingesluit reënval vir Londen vanaf 1813-1912, sodat die voorspellings is ook vir 1813-1912. In die voorbeeld hierbo, het ons die uitvoer van die HoltWinters () funksie in die lys veranderlike 8220rainseriesforecasts8221 gestoor. Die voorspellings gemaak deur HoltWinters () gestoor word in 'n vernoem element van hierdie lys veranderlike genoem 8220fitted8221, sodat ons kan hul waardes kry deur te tik: Ons kan die oorspronklike tyd reeks teen die voorspellings plot deur te tik: Die plot toon die oorspronklike tydreekse in swart, en die voorspellings as 'n rooi lyn. Die tyd reeks voorspellings is baie gladder as die tyd reeks van die oorspronklike data hier. As 'n maatstaf van die akkuraatheid van die voorspellings, kan ons die som van kwadrate van foute te bereken vir die in-monster voorspelling foute, dit wil sê die voorspelling foute vir die tydperk gedek deur ons oorspronklike tydreekse. Die som-van-kwadraat-foute word gestoor in 'n vernoem element van die lys veranderlike 8220rainseriesforecasts8221 genoem 8220SSE8221, sodat ons kan die waarde daarvan te kry deur te tik: Dit is hier die som-van-kwadraat-foute is 1828,855. Dit is algemeen in eenvoudige eksponensiële gladstryking die eerste waarde te gebruik in die tyd reeks as die aanvanklike waarde vir die vlak. Byvoorbeeld, in die tyd reeks vir reënval in Londen, die eerste waarde is 23,56 (duim) vir reënval in 1813. Jy kan die aanvanklike waarde spesifiseer vir die vlak in die HoltWinters () funksie deur gebruik te maak van die parameter 8220l. start8221. Byvoorbeeld, om voorspellings te maak met die aanvanklike waarde van die stel om 23,56 vlak, tik ons: Soos hierbo verduidelik, by verstek HoltWinters () maak net voorspellings vir die tydperk gedek deur die oorspronklike data, wat is 1813-1912 vir die reënval tydreekse. Ons kan voorspellings vir verdere tyd punte te maak deur die gebruik van die 8220forecast. HoltWinters () 8221 funksie in die R 8220forecast8221 pakket. Om die forecast. HoltWinters gebruik () funksie, moet ons eers die 8220forecast8221 R pakket te installeer (vir instruksies oor hoe om 'n R-pakket te installeer, sien Hoe om 'n R-pakket te installeer). Sodra jy die 8220forecast8221 R pakket geïnstalleer is, kan jy die 8220forecast8221 R pakket te laai deur te tik: By die gebruik van die forecast. HoltWinters () funksie, as sy eerste argument (insette), jy dit slaag die voorspelbare model wat jy reeds met behulp van die het toegerus HoltWinters () funksie. Byvoorbeeld, in die geval van die reënval tydreekse, gestoor ons die voorspelbare model gemaak met behulp van HoltWinters () in die veranderlike 8220rainseriesforecasts8221. Jy spesifiseer hoeveel verder tyd punte wat jy wil voorspellings te maak deur middel van die parameter 8220h8221 in forecast. HoltWinters (). Byvoorbeeld, om 'n voorspelling van reënval vir die jaar 1814-1820 (8 meer jaar) met behulp van forecast. HoltWinters () maak, tik ons: Die forecast. HoltWinters () funksie gee jou die voorspelling vir 'n jaar, 'n 80 voorspelling interval vir die voorspelling, en 'n 95 voorspelling interval vir die voorspelling. Byvoorbeeld, die voorspelde reën vir 1920 is sowat 24,68 duim, met 'n 95 voorspelling interval van (16.24, 33.11). Om die voorspellings wat deur forecast. HoltWinters (plot), kan ons die 8220plot. forecast gebruik () 8221 funksie: Hier is die voorspellings vir 1913-1920 is geplot as 'n blou lyn, die 80 voorspelling interval as 'n oranje skaduwee area, en die 95 voorspelling interval as 'n geel beskadig. Die 8216forecast errors8217 word bereken as die waargenome waardes minus voorspelde waardes, vir elke keer punt. Ons kan net bereken die voorspelling foute vir die tydperk gedek deur ons oorspronklike tydreeks, wat 1813-1912 vir die reënval data. Soos hierbo genoem, een maat van die akkuraatheid van die voorspelling model is die som-van-kwadraat-foute (SSE) vir die in-monster voorspelling foute. Die in-monster voorspelling foute word in die naam van element 8220residuals8221 van die lys veranderlike teruggekeer deur forecast. HoltWinters (). As die voorspelbare model nie kan verbeter word, moet daar geen korrelasie tussen voorspelling foute vir opeenvolgende voorspellings. Met ander woorde, indien daar korrelasies tussen voorspelling foute vir opeenvolgende voorspellings, is dit waarskynlik dat die eenvoudige eksponensiële gladstryking voorspellings verbeter kan word deur 'n ander voorspelling tegniek. Om uit te vind of dit die geval is vind, kan ons 'n correlogram van die in-monster voorspelling foute vir lags 1-20 verkry. Ons kan nie 'correlogram van die voorspelling foute met behulp van die 8220acf () 8221 funksie in R. Om die maksimum lag wat ons wil om te kyk na spesifiseer bereken, gebruik ons ​​die parameter 8220lag. max8221 in ACF (). Byvoorbeeld, 'n correlogram van die in-monster voorspelling foute vir die Londense reënval data vir lags 1-20 bereken, tik ons: Jy kan sien uit die voorbeeld correlogram dat die outokorrelasie op lag 3 net die betekenis perke raak. Om te toets of daar beduidende bewyse vir nie-nul korrelasies by lags 1-20, kan ons uit te voer 'n Ljung-Box toets. Dit kan gedoen word in R met behulp van die 8220Box. test () 8221, funksie. Die maksimum lag wat ons wil om te kyk na gespesifiseer deur die parameter 8220lag8221 in die funksie Box. test (). Byvoorbeeld, om te toets of daar nie-nul outokorrelasies by lags 1-20, vir die in-monster voorspelling foute na Londen reënval data, tik ons: Hier is die Ljung-Box toetsstatistiek is 17.4, en die p-waarde is 0,6 , so daar is min bewyse van nie-nul outokorrelasies in die in-monster voorspelling foute by lags 1-20. Om seker te wees dat die voorspelbare model nie kan verbeter word, is dit ook 'n goeie idee om te kyk of die voorspelling foute normaal versprei is met gemiddelde nul en konstant variansie. Om seker te maak dat die voorspelling foute konstante stryd, kan ons 'n tyd plot van die in-monster voorspelling foute maak: Die plot toon dat die in-monster voorspelling foute blyk te min of meer konstant variansie met verloop van tyd het, hoewel die grootte van die skommelinge in die begin van die tyd reeks (1820-1830) mag effens minder as wat by 'n latere datum (bv. 1840-1850) wees. Om seker te maak dat die voorspelling foute normaal versprei is met gemiddelde nul, kan ons 'n histogram van die voorspelling foute plot, met 'n oorgetrek normale kurwe wat beteken nul en dieselfde standaardafwyking as die verspreiding van voorspelling foute het. Om dit te doen, kan ons 'n R funksie 8220plotForecastErrors definieer () 8221, hieronder: Jy sal moet die funksie hierbo in R kopieer om dit te gebruik. Jy kan dan gebruik plotForecastErrors () om 'n histogram te stip (met oorgetrek normale kurwe) van die voorspelling foute vir die reënval voorspellings: Die plot toon dat die verspreiding van voorspelling foute rofweg sentreer op nul, en is min of meer normaal verdeel, hoewel dit lyk effens skeef na regs in vergelyking met 'n normale kurwe te wees. Maar die regte skeef is relatief klein, en daarom is dit geloofwaardig dat die voorspelling foute normaal versprei is met gemiddelde nul. Die Ljung-Box toets het getoon dat daar is min bewyse van nie-nul outokorrelasies in die in-monster voorspelling foute, en die verspreiding van voorspelling foute lyk normaal versprei met gemiddelde nul. Dit dui daarop dat die eenvoudige eksponensiële gladstryking metode bied 'n voldoende voorspellende model vir Londen reënval, wat waarskynlik nie kan verbeter word. Verder is die aannames wat die 80 en 95 voorspellings intervalle is gebaseer op (dat daar geen outokorrelasies in die vooruitsig foute, en die voorspelling foute normaal verdeel met gemiddelde nul en konstant variansie) is waarskynlik geldig. Holt8217s Eksponensiële Smoothing As jy 'n tydreeks wat beskryf kan word met behulp van 'n toevoeging model met 'n toenemende of dalende neiging en geen seisoenaliteit, kan jy Holt8217s eksponensiële gladstryking gebruik om kort termyn voorspellings te maak. Holt8217s eksponensiële gladstryking skat die vlak en helling by die huidige tyd punt. Smoothing word beheer deur twee parameters, Alpha vir die skatting van die vlak van die huidige tyd punt, en beta vir die skatting van die helling b van die tendens komponent by die huidige tyd punt. Soos met 'n eenvoudige eksponensiële gladstryking, die paramters alfa en beta het waardes tussen 0 en 1, en waardes wat naby aan 0 is dat min gewig is geplaas op die mees onlangse waarnemings wanneer voorspellings van toekomstige waardes. 'N Voorbeeld van 'n tydreeks wat waarskynlik kan beskryf word met behulp van 'n toevoeging model met 'n tendens en geen seisoenaliteit is die tyd reeks van die jaarlikse deursnee van women8217s rompe by die soom van 1866 tot 1911. Die data is beskikbaar in die lêer robjhyndman / tsdldata / Roberts / skirts. dat (oorspronklike data van Hipel en McLeod, 1994). Ons kan in lees en plot die data in R deur te tik: Ons kan sien uit die plot dat daar 'n toename in soom deursnee van sowat 600 in 1866 tot ongeveer 1050 in 1880, en dat daarna die soom deursnee afgeneem tot sowat 520 in 1911 . om voorspellings te maak, kan ons 'n voorspelbare model met behulp van die HoltWinters (pas) funksie in R. om HoltWinters gebruik () vir Holt8217s eksponensiële gladstryking, moet ons die parameter gammaFALSE (die parameter gamma word gebruik vir Holt-Winters eksponensiële gladstryking stel, soos hieronder beskryf). Byvoorbeeld, om Holt8217s eksponensiële gladstryking gebruik om 'n voorspelbare model vir romp soom deursnee pas, tik ons: Die beraamde waarde van Alpha is 0,84, en van beta is 1.00. Dit is beide 'n hoë, om ons te vertel dat beide die raming van die huidige waarde van die vlak, en van die helling b van die tendens komponent, is gebaseer meestal op baie onlangse waarnemings in die tyd reeks. Dit maak goeie intuïtief sin, aangesien die vlak en die helling van die tydreeks beide verander heelwat met verloop van tyd. Die waarde van die som-van-kwadraat-foute vir die in-monster voorspelling foute is 16954. Ons kan die oorspronklike tydreekse plot as 'n swart streep, met die voorspelde waardes as 'n rooi lyn op die top van dat, deur te tik: Ons kan sien uit die foto's wat die in-monster voorspellings eens baie goed met die waargeneem waardes, hoewel hulle is geneig om agter die waargenome waardes 'n bietjie. As jy wil, kan jy die aanvanklike waardes van die vlak en die helling b van die tendens komponent te spesifiseer deur gebruik te maak van die 8220l. start8221 en 8220b. start8221 argumente vir die HoltWinters () funksie. Dit is algemeen om die aanvanklike waarde van die vlak van die eerste waarde in die tyd reeks (608 vir die rompe data), en die aanvanklike waarde van die helling na die tweede waarde minus die eerste waarde (9 vir die rompe data) te stel. Byvoorbeeld, 'n voorspelbare model om die romp soom data pas met behulp van Holt8217s eksponensiële gladstryking, met aanvanklike waardes van 608 vir die vlak en 9 vir die helling b van die tendens komponent, tik ons: Soos vir eenvoudige eksponensiële gladstryking, kan ons voorspellings te maak vir toekomstige tye nie gedek deur die oorspronklike tyd reeks met behulp van die forecast. HoltWinters () funksie in die pakket 8220forecast8221. Byvoorbeeld, ons tydreeksdata vir romp some was vir 1866-1911, sodat ons kan voorspellings te maak vir 1912-1930 (19 meer datapunte), en plot hulle deur te tik: Die voorspellings word getoon as 'n blou lyn met die 80 voorspelling tussenposes as 'n oranje skaduwee area, en die 95 voorspelling tussenposes as 'n geel beskadig. Soos vir eenvoudige eksponensiële gladstryking, kan ons kyk of die voorspelbare model verbeter kan word deur te kyk of die in-monster voorspelling foute wys nie-nul outokorrelasies by lags 1-20. Byvoorbeeld, vir die romp soom data, kan ons 'n correlogram maak, en uit te voer die Ljung-Box toets, deur te tik: Hier wys die correlogram dat die monster outokorrelasie vir die in-monster voorspelling foute by lag 5 oorskry die betekenis perke. Tog sou ons verwag dat een uit elke 20 van die outokorrelasies vir die eerste twintig loop om die 95 betekenis grense alleen oorskry per toeval. Inderdaad, wanneer ons uit te voer die Ljung-Box toets, die p-waarde is 0.47, wat daarop dui dat daar is min bewyse van nie-nul outokorrelasies in die in-monster voorspelling foute by lags 1-20. Soos vir eenvoudige eksponensiële gladstryking, moet ons ook seker te maak dat die voorspelling foute konstante stryd met verloop van tyd, en word gewoonlik versprei met gemiddelde nul. Ons kan dit doen deur 'n tyd plot van voorspelling foute, en 'n histogram van die verdeling van voorspelling foute met 'n oorgetrek normale kurwe: Die tyd plot van voorspelling foute toon dat die voorspelling foute het min of meer konstant variansie met verloop van tyd. Die histogram van voorspelling foute te wys dat dit geloofwaardig dat die voorspelling foute normaal versprei is met gemiddelde nul en konstant variansie. So, die Ljung-Box toets toon dat daar is min bewyse van outokorrelasies in die vooruitsig foute, terwyl die tyd plot en histogram van voorspelling foute te wys dat dit geloofwaardig dat die voorspelling foute normaal versprei is met gemiddelde nul en konstant variansie. Daarom kan ons aflei dat Holt8217s eksponensiële gladstryking bied 'n voldoende voorspellende model vir romp soom diameters, wat waarskynlik nie kan verbeter word. Verder is dit beteken dat die aannames wat die 80 en 95 voorspellings intervalle is gebaseer op waarskynlik geldig. Holt-Winters Eksponensiële Smoothing As jy 'n tydreeks wat beskryf kan word met behulp van 'n toevoeging model met 'n toenemende of dalende neiging en seisoenaliteit, kan jy Holt-Winters eksponensiële gladstryking gebruik om kort termyn voorspellings te maak. Holt-Winters eksponensiële gladstryking skat die vlak, helling en seisoenale komponent by die huidige tyd punt. Smoothing word beheer deur drie parameters: alfa-, beta - en gamma, vir die skat van die vlak, helling b van die tendens komponent, en die seisoenale komponent, onderskeidelik, by die huidige tyd punt. Die parameters alfa, beta en gamma almal waardes tussen 0 en 1, en waardes wat naby aan 0 is dat relatief min gewig is geplaas op die mees onlangse waarnemings wanneer voorspellings van toekomstige waardes. 'N Voorbeeld van 'n tydreeks wat waarskynlik kan beskryf word met behulp van 'n toevoeging model met 'n tendens en seisoenaliteit is die tyd reeks van die log maandelikse verkope vir die souvenir winkel by die see oord in Queensland, Australië (hierbo bespreek): Maak voorspellings, kan ons 'n voorspelbare model pas met behulp van die HoltWinters () funksie. Byvoorbeeld, 'n voorspelbare model vir die punteleer van die maandelikse verkope in die souvenir winkel pas, tik ons: Die beraamde waardes van alfa-, beta - en gamma is 0.41, 0.00 en 0.96 onderskeidelik. Die waarde van Alpha (0.41) is relatief laag, wat aandui dat die skatting van die vlak van die huidige tyd punt is gebaseer op beide onlangse waarnemings en 'n paar waarnemings in die verre verlede. Die waarde van beta is 0.00, wat aandui dat die skatting van die helling b van die tendens komponent nie opgedateer oor die tydreeks, en in plaas gelyk aan sy aanvanklike waarde stel. Dit maak goeie intuïtief sin, as die vlak verander nogal 'n bietjie meer as die tyd reeks, maar die helling b van die tendens komponent bly min of meer dieselfde. In teenstelling hiermee het die waarde van gammastrale (0.96) is 'n hoë, wat aandui dat die skatting van die seisoen komponent by die huidige tyd punt net gebaseer is op baie onlangse waarnemings. Soos vir eenvoudige eksponensiële gladstryking en Holt8217s eksponensiële gladstryking, kan ons die oorspronklike tydreekse plot as 'n swart streep, met die voorspelde waardes as 'n rooi lyn op die top van dat: Ons sien uit die plot wat die Holt-Winters eksponensiële metode is baie suksesvol in die voorspelling van die seisoenale pieke, wat in November elke jaar sowat voorkom. Voorspellings te maak vir toekomstige tye nie ingesluit in die oorspronklike tyd reeks, gebruik ons ​​die 8220forecast. HoltWinters () 8221 funksie in die pakket 8220forecast8221. Byvoorbeeld, die oorspronklike data vir die aandenking verkope is vanaf Januarie 1987 tot Desember 1993. As ons wou voorspellings vir Januarie 1994 maak tot Desember 1998 (48 maande), en plot die voorspellings, sal ons tik: Die voorspellings word as


No comments:

Post a Comment