Tuesday 1 August 2017

Exponentiell Glidande Medelvärde Missing Värden


En enkel och allmän metod för att fylla i saknade data, om du har körningar med fullständiga data, är att använda linjär regression. Säg att du har 1000 körningar på 5 i rad utan att någon saknas. Ställ in 1000 x 1 vektor y och 1000 x 4 matris X: Regression ger dig 4 nummer a b c d som ger bästa match för dina 1000 rader data mdash olika data, olika a b c d. Då använder du dessa a b c d för att uppskatta (förutsäga, interpolera) saknas wt0. (För mänskliga vikter, förväntar jag mig abcd att vara runt 14.) (Det finns zillioner av böcker och papper på regression, på alla nivåer. För anslutningen med interpolering vet jag emellertid inte om en bra introduktion någon) Utjämning och filtrering Är två av de vanligaste tidsserie teknikerna för att ta bort ljud från underliggande data för att hjälpa till att avslöja de viktiga funktionerna och komponenterna (t ex trend, säsonglighet, etc.). Vi kan emellertid också använda utjämning för att fylla i saknade värden och eller göra en prognos. I denna fråga kommer vi att diskutera fem (5) olika utjämningsmetoder: viktat glidande medelvärde (WMA i), enkel exponentiell utjämning, dubbel exponentiell utjämning, linjär exponentiell utjämning och trippel exponentiell utjämning. Varför ska vi bry sig? Utjämning används ofta (och missbrukas) i branschen för att göra en snabb visuell undersökning av dataegenskaperna (t ex trend, säsongsmässighet etc.), passa in i saknade värden och genomföra en snabb out-of-sample prognos. Varför har vi så många utjämningsfunktioner Som vi ser i det här dokumentet fungerar varje funktion för ett annat antagande om de underliggande data. Exempelvis förutsätter enkel exponentiell utjämning att data har ett stabilt medelvärde (eller åtminstone ett långsamt rörligt medelvärde), så enkelt exponentiell utjämning kommer dåligt att förutse data som uppvisar säsongsmässighet eller en trend. I detta dokument kommer vi att gå över varje utjämningsfunktion, belysa dess antaganden och parametrar och visa dess tillämpning genom exempel. Vägat rörligt medelvärde (WMA) Ett rörligt medelvärde används vanligen med tidsseriedata för att utjämna kortvariga fluktuationer och markera långsiktiga trender eller cykler. Ett viktat glidande medelvärde har multiplikationsfaktorer för att ge olika vikter till data vid olika positioner i provfönstret. Det vägda glidande medlet har ett fast fönster (d. v.s. N) och faktorerna väljs typiskt för att ge större vikt till de senaste observationerna. Fönsterstorleken (N) bestämmer antalet poäng i genomsnitt varje gång, så en större fönsterstorlek är mindre mottaglig för nya ändringar i de ursprungliga tidsserierna och ett litet fönsterstorlek kan orsaka att den släta utsignalen blir bullriga. För av prognosprognoser: Exempel 1: Låt oss överväga månadsförsäljning för Company X, med hjälp av ett 4 månaders (lika viktat) glidande medelvärde. Observera att det rörliga genomsnittet alltid ligger efter databasen och prognosen utanför proverna överensstämmer med ett konstant värde. Låt oss försöka använda ett viktningsschema (se nedan) som ger större vikt vid den senaste observationen. Vi plottade det lika viktiga glidande medlet och WMA på samma graf. WMA verkar mer mottagligt för de senaste ändringarna och prognosprognosen för konvergeringen överensstämmer med samma värde som det rörliga genomsnittet. Exempel 2: Låt oss undersöka WMA i närvaro av trend och säsong. För det här exemplet, använd de internationella passagerarfartygens data. Det glidande medelfönstret är 12 månader. MA och WMA håller takt med trenden, men prognosen utanför prognosen flattar. Dessutom, trots att WMA uppvisar viss säsonglighet, ligger den alltid bakom de ursprungliga uppgifterna. (Browns) Enkel exponentiell utjämning Enkel exponentiell utjämning liknar WMA, med undantag för att fönsterstorleken är oändlig och viktningsfaktorerna minskar exponentiellt. Som vi har sett i WMA är den enkla exponentialen lämpad för tidsserier med stabilt medelvärde, eller åtminstone ett mycket långsamt rörligt medelvärde. Exempel 1: Använda månadsförsäljningsdata (som vi gjorde i WMA-exemplet). I exemplet ovan valde vi utjämningsfaktorn att vara 0,8, vilket berättar frågan: Vad är det bästa värdet för utjämningsfaktorn Beräkna det bästa värdet från data Använda TSSUB-funktionen (för att beräkna felet), SUMSQ och Excel Datatabeller, beräknade vi summan av kvadrerade fel (SSE) och ritade resultaten: SSE når sitt lägsta värde runt 0,8, så vi valde detta värde för vår utjämning. (Holt-Winters) Dubbel exponentiell utjämning Enkel exponentiell utjämning går inte bra i närvaro av en trend, så flera metoder utarbetas under dubbel exponentiell paraply föreslås hantera denna typ av data. NumXL stöder Holt-Winters dubbel exponentiell utjämning, som tar följande formulering: Exempel 1: Låt oss undersöka de internationella passagerarnas flygdata Vi valde ett alfa-värde på 0,9 och ett beta av 0,1. Observera att även om dubbla utjämningar spårar de ursprungliga uppgifterna väl är prognosen utanför provet sämre än det enkla glidande medlet. Hur hittar vi de bästa utjämningsfaktorerna Vi tar en liknande inställning till vårt enkla exponentiella utjämningsexempel, men modifieras för två variabler. Vi beräknar summan av de kvadratiska felen konstruera en tvåvariabel datatabell och välja de alfa - och betavärden som minimerar den totala SSE. (Browns) Linjär exponentiell utjämning Detta är en annan metod för dubbla exponentiella utjämningsfunktioner, men den har en utjämningsfaktor: Browns dubbel exponentiell utjämning tar en parameter mindre än Holt-Winters-funktionen, men det kan inte erbjuda så bra passform som den funktionen. Exempel 1: Låt oss använda samma exempel i Holt-Winters dubbla exponentiella och jämföra den optimala summan av det kvadrerade felet. Browns dubbla exponentiella passar inte provdata samt Holt-Winters-metoden, men det externa provet (i det här fallet) är bättre. Hur hittar vi den bästa utjämningsfaktorn () Vi använder samma metod för att välja alfabetet som minimerar summan av kvadreringsfelet. För exempeldatauppgifterna är alfabetet att vara 0,8. (Winters) Trippel exponentiell utjämning Den tredubbla exponentiella utjämningen tar hänsyn till säsongsförändringar såväl som trender. Denna metod kräver 4 parametrar: Formuleringen för triple exponentiell utjämning är mer involverad än någon av de tidigare. Vänligen se vår online referenshandbok för den exakta formuleringen. Med hjälp av de internationella passagerarnas flygdata kan vi tillämpa vintrar tredubbla exponentiella utjämningar, hitta optimala parametrar och utföra en prognos för prover. Självklart är Winters tredubbla exponentiella utjämning bäst tillämpad för detta dataprov, eftersom det spårar värdena väl och det externa prognosprognosen uppvisar säsongsmässighet (L12). Hur hittar vi den bästa utjämningsfaktorn () Återigen måste vi välja de värden som minimerar den totala summan av kvadrerade fel (SSE), men datatabellerna kan användas för mer än två variabler, så vi tillgriper Excel Lösare: (1) Ställ in minimeringsproblemet, med SSE som verktygsfunktion (2) Begränsningarna för detta problem Slutsats stöd FilesExponential Moving Average - EMA BREAKING DOWN Exponential Moving Average - EMA De 12 och 26-dagars EMA: erna är de mest Populära kortsiktiga medelvärden, och de används för att skapa indikatorer som den rörliga genomsnittliga konvergensdivergensen (MACD) och den procentuella prisoscillatorn (PPO). I allmänhet används 50- och 200-dagars EMA som signaler för långsiktiga trender. Näringsidkare som använder teknisk analys, finner glidande medelvärden som är mycket användbara och insiktsfulla när de tillämpas korrekt men skapar kaos när de används felaktigt eller misstolkas. Alla glidande medelvärden som vanligen används i teknisk analys är av sin natur släpande indikatorer. Följaktligen bör slutsatserna från att tillämpa ett glidande medelvärde till ett visst marknadsdiagram vara att bekräfta en marknadsrörelse eller att indikera dess styrka. Mycket ofta, då en rörlig genomsnittlig indikatorlinje har förändrats för att återspegla ett betydande drag på marknaden, har den optimala marknaden för marknadsinträde redan passerat. En EMA tjänar till att lindra detta dilemma till viss del. Eftersom EMA-beräkningen lägger större vikt på de senaste uppgifterna, kramar prisåtgärden lite snävare och reagerar därför snabbare. Detta är önskvärt när en EMA används för att härleda en handelsinmatningssignal. Tolkning av EMA Liksom alla glidande medelindikatorer är de mycket bättre lämpade för trending marknader. När marknaden är i en stark och hållbar uptrend. EMA-indikatorlinjen visar också en uptrend och vice versa för en nedåtriktad trend. En vaksam näringsidkare kommer inte bara att uppmärksamma EMA-linjens riktning utan också förhållandet mellan förändringshastigheten från en stapel till en annan. Eftersom prisåtgärden för en stark uppåtgående börjar att platta och vända, kommer EMA: s förändringshastighet från en stapel till nästa att minska till dess att indikatorlinjen plattas och förändringshastigheten är noll. På grund av den försvagande effekten, vid denna punkt, eller till och med några få barer innan, bör prisåtgärden redan ha reverserat. Det följer därför att observera en konsekvent minskning i förändringshastigheten hos EMA kan själv användas som en indikator som ytterligare kan motverka det dilemma som orsakas av den släpande effekten av rörliga medelvärden. Vanliga användningar av EMA-EMA används ofta i kombination med andra indikatorer för att bekräfta betydande marknadsrörelser och att mäta deras giltighet. För näringsidkare som handlar intradag och snabba marknader är EMA mer tillämplig. Ofta använder handlare EMA för att bestämma en handelsförskjutning. Till exempel, om en EMA på ett dagligt diagram visar en stark uppåtgående trend, kan en intraday-traderstrategi vara att endast handla från långsidan på en intradagskarta. Jag har ett kontinuerligt värde för vilket Id gillar att beräkna ett exponentiellt rörligt medelvärde. Normalt använder Id bara standardformeln för detta: där Sn är det nya genomsnittet, är alfa alfa, Y är provet och S n-1 är föregående medelvärde. Tyvärr, på grund av olika problem har jag inte en konsekvent provtid. Jag kanske vet att jag kan prova högst, säg en gång per millisekund, men på grund av faktorer som jag inte kan kontrollera, kan jag inte ta ett prov i flera millisekunder åt gången. Ett troligt vanligare fall är dock att jag enkelt provar lite tidigt eller sent: i stället för provtagning vid 0, 1 och 2 ms. Jag provar vid 0, 0,9 och 2,1 ms. Jag förutser att, oberoende av förseningar, min samplingsfrekvens kommer att ligga långt, långt över Nyquistgränsen, och jag behöver därför inte oroa mig för aliasing. Jag tror att jag kan hantera detta på ett mer eller mindre rimligt sätt genom att variera alfabetet på lämpligt sätt, baserat på hur länge tiden har gått sedan det sista provet. En del av min resonemang att detta kommer att fungera är att EMA interpolerar linjärt mellan föregående datapunkt och den nuvarande. Om vi ​​överväger att beräkna en EMA av följande lista av prover med intervall t: 0,1,2,3,4. Vi borde få samma resultat om vi använder intervall 2t, där ingångarna blir 0,2,4, höger Om EMA hade antagit att vid t 2 hade värdet varit 2 sedan t 0. Det skulle vara detsamma som intervallet t beräkningen beräknas på 0,2,2,4,4, vilket det inte gör. Eller har det någon mening? Kan någon berätta för mig hur man kan variera alfabetet på lämpligt sätt. Vänligen visa ditt arbete. Dvs. Visa mig matematiken som visar att din metod verkligen gör rätt sak. Frågade 21 juni 09 kl 13:05 Du borde inte få samma EMA för olika inmatningar. Tänk på EMA som ett filter, provtagning vid 2t motsvarar nedprovtagning, och filtret kommer att ge en annan utgång. Detta klart för mig sedan 0,2,4 innehåller högre frekvenskomponenter än 0,1,2,3,4. Om inte frågan är, hur ändrar jag filtret på flyg så att det ger samma effekt. Kanske saknar jag något ndash freespace 21 jun 09 kl 15:52 Men inmatningen är inte annorlunda, det är bara samplet mindre ofta. 0,2,4 i intervaller 2t är som 0, 2, 4 med intervall t, där indikerar att provet ignoreras ndash Curt Sampson 21 jun 09 kl 23:45 Detta svar baseras på min goda förståelse av lågpass Filter (exponentiell glidande medelvärde är egentligen bara ett enkelpoligt lågpassfilter), men min dumma förståelse för vad du letar efter. Jag tror att följande är vad du vill: Först kan du förenkla din ekvation lite (ser mer komplicerat men det är lättare i kod). Jag kommer att använda Y för output och X för input (istället för S för output och Y för input, som du har gjort). För det andra är värdet av alfa här lika med 1-e - Deltattau där Deltat är tiden mellan proverna och tau är tidskonstanten för lågpassfiltret. Jag säger lika med citat eftersom det fungerar bra när Deltattau är liten jämfört med 1, och alpha 1-e-Delta asymp Deltattau. (Men inte för liten: Du kommer att köra i kvantiserande problem, och om du inte tillgriper några exotiska tekniker behöver du vanligtvis en extra N bitars upplösning i din tillståndsvariabel S, där N-log 2 (alfa).) För större värden av Deltattau Filtreringseffekten börjar försvinna tills du kommer till den punkt där alfa är nära 1 och du ger i princip bara inmatningen till utgången. Detta ska fungera ordentligt med varierande värden för Deltat (variationen av Deltat är inte så viktig så länge som alfa är liten, annars kommer du att springa på några ganska konstiga Nyquist-frågor aliasing etc.), och om du arbetar på en processor där multiplikation Är billigare än division, eller problem med fast punkt är viktiga, precalculate omega 1tau, och överväga att försöka approximera formeln för alfa. Om du verkligen vill veta hur man härleder formeln alpha 1-e-Delta, se sedan dess differentialekvationskälla: vilken, när X är en enhetstegfunktion, har lösningen Y 1 - e - ttau. För små värden av Deltat kan derivatet approximeras av DeltaYDeltat, vilket ger Y tau DeltaYDeltat X DeltaY (XY) (Deltattau) alfa (XY) och extrapoleringen av alfa 1-e-Delta-beteckningen kommer från att försöka matcha beteendet med Enhetstegfunktionsfall. Vill du snälla utarbeta quottrying för att matcha uppförandekvotdelen Jag förstår din kontinuerliga tidslösning Y 1 - exp (-t47) och dess generalisering till en skalad stegfunktion med magnitud x och initialtillstånd y (0). Men jag ser inte hur man sammanför dessa idéer för att uppnå ditt resultat. Ndash Rhys Ulerich 4 maj 13 kl 22:34 Detta är inte ett komplett svar, men kan vara början på en. Dess så långt som jag fick med det på en timme eller så om att leka Im posta det som ett exempel på vad jag letar efter, och kanske en inspiration till andra som arbetar med problemet. Jag börjar med S 0. Vilket är medelvärdet från föregående medel S -1 och provet Y 0 tagen vid t 0. (T 1 - t 0) är mitt provintervall och alfa är inställd på vad som är lämpligt för det provintervallet och den period över vilken jag önskar att genomsnittsvärdet. Jag funderade på vad som händer om jag saknar provet på t 1 och istället måste göra med provet Y 2 vid t 2. Tja, vi kan börja med att expandera ekvationen för att se vad som skulle ha hänt om vi hade haft Y 1: Jag märker att serien verkar sträcka sig oändligt på det här sättet, eftersom vi kan ersätta S n i högra sidan på obestämd tid: Ok , Så det är inte riktigt ett polynom (dumt jag), men om vi multiplicerar den ursprungliga termen av en så ser vi ett mönster: Hm: det är en exponentiell serie. Quelle överraskning Föreställ dig att komma ut ur ekvationen för ett exponentiellt rörligt medelvärde. Jag har ändå det här x 0 x 1 x 2 x 3. Sak går och jag är säker på att jag luktar e eller en naturlig logaritm som sparkar runt här, men jag kan inte komma ihåg var jag gick nästa gång jag sprang ur tiden. Någon svar på denna fråga eller något bevis på att ett sådant svar är korrekt beror högt på de uppgifter du mäter. Om dina prov togs vid t 0 0ms. T 1 0,9 ms och t 2 2,1 ms. Men ditt val av alfa är baserat på 1-ms-intervaller, och därför vill du ha en lokalt anpassad alfa n. Ett bevis på att valet är korrekt är att man vet att provvärdena är t1ms och t2ms. Detta leder till frågan: Kan du interpolera dina data resonabelt för att ha sanna gissningar om vilka mellanliggande värden som kan ha varit Eller kan du till och med interpolera genomsnittet själv Om ingen av dessa är möjliga, så långt som jag ser det, den logiska Valet av ett mellanvärde Y (t) är det senast beräknade genomsnittet. Dvs Y (t) asymp Sn där n är maximal så att t n ltt. Detta val har en enkel konsekvens: Lämna alfa ensam, oavsett vad tidsskillnaden var. Om däremot det är möjligt att interpolera dina värden, så kommer detta att ge dig genomgångar med konstantintervallprover. Slutligen, om det är möjligt att interpolera medlet självt, skulle det göra frågan meningslös. Svarade 21 juni 09 kl 15:08 balpha 9830 27.2k 9679 10 9679 87 9679 117 Jag tror att jag kan interpolera mina data: med tanke på att I39m samplar det med skilda intervaller, gör jag det redan med en vanlig EMA. Antag att jag behöver En quotproofquot som visar att den fungerar såväl som en standard EMA, som också har kommer att ge ett felaktigt resultat om värdena inte förändras relativt jämnt mellan provperioderna. Ndash Curt Sampson 21 Jun 09 kl 15:21 Men det är vad jag säger: Om du anser EMA en interpolering av dina värden, är du klar om du lämnar alfabetet som det är (eftersom du sätter in det senaste genomsnittet eftersom Y ändrar inte genomsnittsvärdet) . Om du säger att du behöver något som citerar såväl som en standard EMAquot - vad är fel med originalet Om du inte har mer information om de data du mäter kommer eventuella lokala justeringar av alpha vara bäst godtyckliga. Ndash balpha 9830 21 jun 09 kl 15:31 Jag skulle lämna alfavärdet ensam, och fyll i de saknade uppgifterna. Eftersom du inte vet vad som händer under tiden du inte kan prova kan du fylla i dessa prov med 0s, eller hålla det föregående värdet stabilt och använda dessa värden för EMA. Eller någon bakåtinterpolering när du har ett nytt prov, fyll i de saknade värdena och recomputera EMA. Vad jag försöker få på är att du har en inmatning xn som har hål. Det finns inget sätt att komma runt om det faktum att du saknar data. Så du kan använda en nollorderlagring, eller ställa in den på noll eller någon form av interpolering mellan xn och xnM. Där M är antalet saknade prover och n börjar klyftan. Eventuellt även använda värden före n. Svarade 21 Jun 09 kl 13:35 Från att ha en timmes eller så mucking om lite med matematiken för detta tror jag att det helt enkelt varierar alfabetet faktiskt ger mig rätt interpolering mellan de två punkterna som du pratar om, men i en Mycket enklare sätt. Vidare tror jag att det varierande alfabetiskt också kommer att hantera prov som tas mellan standardprovtagningsintervallen. Med andra ord söker jag efter vad du beskriver, men försöker använda matte för att räkna ut det enkla sättet att göra det. Ndash Curt Sampson 21 jun 09 kl 14:07 Jag tror inte att det finns ett sådant odjur som quotproper interpolationquot. Du vet helt enkelt inte vad som hände i tiden du inte provtagit. Bra och dålig interpolering innebär viss kunskap om vad du saknade, eftersom du måste mäta mot det för att bedöma om en interpolering är bra eller dålig. Även om det sagt kan du placera begränsningar, det vill säga med maximal acceleration, hastighet etc. Jag tror att om du vet hur man modellerar de saknade dataen, då skulle du bara modellera de saknade dataen och sedan tillämpa EMA-algoritmen utan förändring, snarare Än att ändra alfa. Bara min 2c :) ndash freespace 21 juni 09 kl 14:17 Det här är precis vad jag fick på min redigering till frågan för 15 minuter sedan: cDu du bara vet inte vad som hände i tiden du inte provtagning, men men det är sant Även om du provar vid varje bestämt intervall. Således min Nyquist kontemplation: så länge du vet vågformen ändrar inte riktningar mer än varje par prover, borde det faktiska provintervallet inte betyda, och borde kunna variera. EMA-ekvationen verkar mig exakt att beräkna som om vågformen ändrats linjärt från det sista provvärdet till det aktuella. Ndash Curt Sampson 21 Jun 09 kl 14:26 Jag tror inte det är helt sant. Nyquist39s teorem kräver att minst 2 prover per period ska kunna identifiera signalen unikt. Om du inte gör det får du aliasing. Det skulle vara detsamma som provtagning som fs1 för en tid, sedan fs2, sedan tillbaka till fs1, och du får alias i data när du provar med fs2 om fs2 ligger under Nyquist-gränsen. Jag måste också bekänna att jag inte förstår vad du menar med att kvotformen ändras linjärt från sista provet till nuvarande onequot. Kan du tacka Skål, Steve. Ndash freespace 21 jun 09 kl 14:36 ​​Detta liknar ett öppet problem på min todo lista. Jag har ett schema utarbetat i viss utsträckning men har inte matematisk arbete för att återställa detta förslag ännu. Uppdatera amp sammandrag: Vill du hålla utjämningsfaktorn (alfa) oberoende av kompensationsfaktorn (som jag refererar till som beta här). Jasons utmärkta svar redan accepterat här fungerar bra för mig. Om du också kan mäta tiden sedan det senaste provet togs (i avrundade multiplar av din konstanta provtagningstid - så 7,8 ms sedan senaste provet var 8 enheter), som kan användas för att applicera utjämningen flera gånger. Använd formeln 8 gånger i det här fallet. Du har effektivt gjort en utjämning partisk mot det nuvarande värdet. För att få en bättre utjämning behöver vi tweakera alfanumeriska samtidigt som du använder formeln 8 gånger i föregående fall. Vad kommer denna utjämna approximation miss Det har redan missat 7 prover i exemplet ovan Detta approximerades i steg 1 med en planerad omfördelning av nuvärdet ytterligare 7 gånger Om vi ​​definierar en approximationsfaktor beta som kommer att appliceras tillsammans med alfa (Som alfabet istället för bara alfa) antar vi att de 7 missade proverna ändrade sig smidigt mellan de föregående och nuvarande samplingsvärdena. Svarade 21 juni 09 klockan 13:35 Jag tänkte på det här, men det var lite att mucka med matematiken fick mig till den punkt där jag tror det, istället för att tillämpa formeln åtta gånger med provvärdet, kan jag göra en beräkning Av en ny alfa som tillåter mig att använda formeln en gång och ge mig samma resultat. Vidare skulle detta automatiskt ta itu med frågan om prover som kompenseras från exakta provtider. Ndash Curt Sampson 21 jun 09 kl 13:47 Den enkla ansökan är bra. Vad jag inte är säker på ännu är hur bra approximationen av de 7 saknade värdena är. Om den kontinuerliga rörelsen gör värdet jitter mycket över 8 millisekunder, kan approximationerna vara ganska borta från verkligheten. Men, om du är provtagning vid 1ms (högsta upplösning med undantag av de fördröjda proverna) har du redan funnit jitteren inom 1ms inte relevant. Fungerar denna resonemang för dig (jag försöker fortfarande övertyga mig själv). Ndash nik 21 juni 09 kl 14:08 Höger. Det är faktorn beta från min beskrivning. En beta-faktor skulle beräknas baserat på skillnadsintervallet och nuvarande och tidigare prover. Den nya alfabet kommer att vara (alfabetisk) men den kommer endast att användas för det provet. Medan du verkar vara 39moving39 alfabet i formeln, tenderar jag mig mot konstant alfa (utjämningsfaktor) och en självberäknad beta (en inställningsfaktor) som kompenserar för prover som saknas just nu. Ndash nik 21 juni 09 kl 15:23

No comments:

Post a Comment