Sunday 6 August 2017

Exponentiell Glidande Medelvärde Oregelbunden Tidsserier


Exponentiella rörliga medelvärden för oregelbundna tidsserier. I tidsserieanalysen är det ofta ett behov av utjämningsfunktioner som reagerar snabbt på förändringar i signalen. I den typiska applikationen kan du bearbeta en insignal i realtid och vill beräkna sådana saker Som det senaste genomsnittliga värdet eller få en momentan lutning för det Men reala världssignaler är ofta bullriga Ett par bullriga prover gör det nuvarande värdet av signalen, eller dess lutning varierar mycket. Medelvärdena. Den enklaste utjämningsfunktionen är en windowed Glidande medelvärde Medan proven går in tar du i genomsnitt de senaste N-värdena. Detta släpper ut spikar, men introducerar en fördröjning eller latens. Medelvärdet kommer alltid att fördröjas med bredden på ditt glidande medelvärde. Exemplet ovan är relativt dyrt att beräkna För varje prov måste du iterera över hela storleken på fönstret Men det finns billigare sätt att hålla summan av alla prover i fönstret i en buffert och justera summan som nya prover com E in. Another typ av rörligt medelvärde är det viktade glidande medlet som vikter för varje position i provfönstret Innan medelvärdet multiplicerar du varje prov med vikten av den här fönsterpositionen Tekniskt kallas detta en konvolvering. En typisk viktningsfunktion tillämpar en klockkurva Till provfönstret Detta ger en signal som är mer avstämd till mitten av fönstret och fortfarande något tolerant för bullriga prover I finansiell analys använder du ofta en viktningsfunktion som värderar de senaste proverna för att ge ett glidande medelvärde som närmare spårar Nya prover Äldre prover ges gradvis mindre vikt. Detta minskar någonting av latens, samtidigt som det ger en rimligt bra utjämning. Med ett vägt genomsnitt måste du alltid iterera över hela fönsterstorleken för varje prov om du inte kan begränsa tillåtna vikter till Vissa funktioner. Exponentiell rörlig Average. Another typ av genomsnitt är exponentiell glidande medelvärde, eller EMA Detta är ofta du Sed där latens är kritisk, som i realtid finansiell analys I detta genomsnitt minskar vikterna exponentiellt Varje prov värderas en del procent mindre än nästa senaste prov Med denna begränsning kan du beräkna det rörliga genomsnittet mycket effektivt. Var alpha är en Konstant som beskriver hur fönsterviktarna minskar över tiden Till exempel om varje prov skulle vägas till 80 av värdet av föregående prov, skulle du ställa alfa 0 2 Den mindre alfabetet blir desto längre blir ditt glidande medelvärde, t ex blir det glattare, Men mindre reaktiva på nya prover. Vikten för en EMA med alfa 0 20. Som du kan se, för varje nytt prov behöver du bara genomsnitts det med värdet av föregående genomsnitt. Så beräkningen är väldigt mycket snabb. I teorin är alla tidigare Prover bidrar till det nuvarande genomsnittet, men deras bidrag blir exponentiellt mindre över tiden. Det här är en mycket kraftfull teknik, och förmodligen det bästa om du vill få ett glidande medelvärde som svarar qui Ckly till nya prover, har bra utjämningsegenskaper och är snabb att beräkna. Koden är trivial. EMA för oregelbunden tidsserie. Standard EMA är bra när signalen samplas med regelbundna tidsintervaller Men vad händer om dina prover kommer i oregelbundna intervaller. Föreställ dig en kontinuerlig signal som samplas med oregelbundna intervaller Detta är den vanliga situationen i finansiell analys I teorin finns det en kontinuerlig funktion för värdet av något finansiellt instrument, men du kan bara prova denna signal när någon faktiskt driver en handel. Så din dataström Består av ett värde plus tiden då den observerades. Ett sätt att hantera detta är att omvandla den oregelbundna signalen till en vanlig signal, genom att interpolera mellan observationer och resampling. Men det här förlorar data och det introducerar latens igen. Det är möjligt att beräkna en EMA för en oregelbunden tidsserie direkt. I den här funktionen passerar du i det aktuella provet från din signal och det föregående provet och hur länge tiden förflutit En de två och det tidigare värdet som returneras av den här funktionen. Så bra fungerar det För att demonstrera att jag har genererat en sinusvåg, samplades den med oregelbundna intervaller och introducerade omkring 20 ljud. Det är signalen varierar slumpmässigt - 20 från Den ursprungliga sanna sinus-signalen. Hur bra återfår det oregelbundna exponentiella glidande medlet. Den röda linjen är den ursprungliga sinusvågen samplad med oregelbundna intervaller Den blå linjen är signalen med det tillförda bruset Den blå linjen är den enda signalen som EMA ser Den gröna linjen är den smidiga EMA Du kan se att den återställer signalen ganska bra Lite wobbly, men vad kan man förvänta sig av en sådan bullrig källsignal. Den flyttas ungefär 15 till höger, eftersom EMA introducerar viss latens. Jätteare Du vill ha det, desto mer latens kommer du att se Men från det här kan du till exempel beräkna en momentan lutning för en bullrig oregelbunden signal. Vad kan du göra med det Hmm. Jag försöker att gräva ut några mätvärden som tittar på hur tillförlitligt Klienterna ansluter till en tjänst. Rådata finns i form av klient A, kom online offline vid tidpunkten X Anslutningen är mycket opålitlig och jag vill ha en typ av rörligt medelvärde för att visa om anslutningen förbättras eller inte över tiden. Klienterna är Inte alltid ansluten, så det går helt enkelt inte att säga offline. Så långt har jag tagit data och använt några antaganden för att förenkla det, antar jag att om en klient återansluts inom en minut avkoppling då är det ett fel Jag har modellerat som en enkel impuls, dvs klient A hade fel vid tidpunkt X. Den del jag kämpar med är hur man gör denna plot till ett glidande medelvärde. Jag m spelar med R för att krossa siffrorna. Jag tror att jag borde kunna Gör det med ett lågpassfilter eller använd zoopaketet och rollmean Men jag vet inte hur man hanterar de fall där klienten helt enkelt inte vill vara online. Jag försöker att gräva ut några mätvärden som tittar på hur tillförlitligt Kunderna ansluter till en service. Rådata finns i form av Klient A kom offline offline vid tidpunkten X Anslutningen är mycket opålitlig, och jag vill ha en viss glidande medelvärde för att visa huruvida anslutningen förbättras eller inte över tiden Klienterna är inte alltid anslutna, så det går inte att gå offline betyder det inte ett fel Så långt har jag tagit data och använt vissa antaganden för att förenkla det. Jag antar att om en klient återansluts inom en minut avkoppling då är det ett fel. Dessa modeller har jag modellerat som en enkel impuls, dvs klient A hade fel på Tid X. Den del jag kämpar med är hur man gör denna plot till ett glidande medelvärde. Jag m spelar med R för att krossa siffrorna. Jag tror att jag borde kunna göra detta med ett lågpassfilter eller använda zoopaketet och Rollmean Men jag vet inte hur man hanterar de fall där kunden helt enkelt inte vill vara online.

No comments:

Post a Comment