Sunday 8 October 2017

Mathematica Flytting Gjennomsnittet Tomten


Jeg har et plott av tidsserier i ggplot2-pakken, og jeg har utført Moving gjennomsnittet, og jeg vil gjerne legge til resultatet av å flytte gjennomsnittet til tidsplanen for tidsseriene. Eksempel på datasett (p31): ambtemp dt -1.14 2007-09-29 00:01:57 -1.12 2007-09-29 00:03:57 -1.33 2007-09-29 00:05:57 -1.44 2007 -09-29 00:07:57 -1.54 2007-09-29 00:09:57 -1.29 2007-09-29 00:11:57 Anvendt kode for tidsseriepresentasjon: Eksempel på Moving Average Plot Eksempel på forventede resultater The Utfordring er at tidsseriedataene overholdes fra datasett som inkluderer tidsstempler og temperatur, men Flytte gjennomsnittlige data inkluderer bare gjennomsnittskolonnen og ikke tidsstemplene og montering av disse to kan føre til inkonsekvens. Jeg har en liste over datapunkter,. mine data. Når jeg plotter dem, er kurven spisset. Jeg vil glatte kurven og bevare de to skarpe hjørnene. Dette er et plott av rådataene. Jeg har prøvd å bruke lavpasfiltre i en uke, men kurven er fortsatt ikke veldig bra. Min kurve har mange zigzags. Følgende er min lavpassfilterfunksjon. Etter å ha vurdert den ovennevnte koden, kan jeg glatte de tre delene av zigzagkurven separat. Da kombinerer jeg dem. Som jeg sa, ser kurven fremdeles ikke bra ut. Noen deler endres ufullstendig Det jeg vil ha, er noe som dette, som er oppnådd ved å tegne :). Jeg vil bare bruke noen Mathematica plot triks eller en annen tilnærming som gir meg den glatte kurven jeg søker. spurte okt 10 14 kl 13:04 Bare en utvidet kommentar å starte. Jeg prøver å følge opp noen kode senere i dag eller i helgen. Dette høres ut som en perfekt jobb for et Laguerre filter og mest sannsynlig en adaptiv en, f. eks. Laguerre Filtre En introduksjon. Du kan finne mye informasjon om dette på nettet. Laguerre-filteret glatter et datasett basert på Laguerre-polynomene. Dens første periode, et eksponentielt flytende gjennomsnitt, etterfulgt av visse tilbakemeldingsbetingelser. Utjevningen blir styrt av en alfafaktor (alfaen for eksponentiell flytende gjennomsnitt) og damper også de ytterligere vilkårene. Alpha kan variere fra 1 til å følge dataene nesten nøyaktig til 0 for et veldig sakte respons. Resultatet gir vektet gjennomsnitt av tidligere verdier. Et adaptivt laguerrefilter introduserer en variabel alfa-faktor basert på hvor godt filteret sporer de tidligere N-verdiene. Dette skal gjøre det mulig for filteret å følge dataene ganske tett da det endrer karakter over spenningen på x-aksen. Mathematica LaguerreL-funksjonen kan gjøre dette ganske enkelt. Fra dokumentasjonen: Jeg prøver å legge inn noen kode senere. svarte 10. okt 14 kl 13:58 Hei, Jagra Takk for det interessante jeg vil også prøve det Jeg tenker at MovingAverage kan gjøre denne jobben perfekt hvis vi kan kontrollere vekten for å gjøre gjennomsnittet på den oscillerende delen og følge kurven min i nærheten de to inversjonspunktene. Som du kan se, med min LowpassFilter eller Kale39s GaussianFilter. Det er en upassende endring i høyre del av kurven, der den opprinnelige kurven er jevn eller god nok. ndash kan okt 10 14 kl 14:14 Heres en ganske skin-fisted tilnærming ved hjelp av GaussianFilter: Først en filtreringsfunksjon: Denne funksjonen gjelder et Gaussisk filter til alle dataene som er større enn en bestemt y-verdi. Vi kan bruke det slik: For å leke med verdiene kan vi bygge et enkelt Manipuleringsprogram: Jeg tror WienerFilter fungerer bedre: Besvart 10. oktober 14 kl 13:52 Takk Kale Som du kan se, med min LowpassFilter eller din GaussianFilter. Det er både en upassende forandring i den høyre delen av kurven, der den opprinnelige kurven er jevn eller god nok. Jeg tror din WienerFilter er relativt god. Men vi kan fortsatt forbedre det. Kan du pls legge inn din WienerFilter-kode ndash kan 10 okt 14 kl 14:21 Ixy Bare erstatt GaussianFilter med WeinerFilter. ndash kale 10 okt 14 kl 14:22 Ditt svar 2017 Stack Exchange, IncJeg spiller i Python litt igjen, og jeg fant en fin bok med eksempler. Et av eksemplene er å plotte noen data. Jeg har en. txt-fil med to kolonner, og jeg har dataene. Jeg plottet dataene helt fint, men i øvelsen står det: Endre programmet videre for å beregne og plotte det løpende gjennomsnittet av dataene, definert av: hvor r5 i dette tilfellet (og yk er den andre kolonnen i datafilen) . Har programmet plott både de opprinnelige dataene og løpende gjennomsnittet på samme graf. Så langt har jeg dette: Så hvordan beregner jeg summen I Mathematica er dens enkle siden den symbolske manipulasjonen (Sumi, for eksempel), men hvordan beregnes summen i python som tar hver tiende poeng i dataene og gjennomsnittsverdi det, og gjør det til slutten av poeng jeg så på boken, men fant ingenting som ville forklare dette: heltonbikers kode gjorde kunstenet: D tusen takk :) Det er et problem med det aksepterte svaret. Jeg tror vi må bruke gyldig i stedet for samme her - returner numpy. convolve (intervall, vindu, samme). Som et eksempel, prøv MA av dette datasettet 1,5,7,2,6,7,8,2,2,7,8,3,7,3,7,3,15,6 - resultatet skal være 4,2,5,4,6,0,5,0,5,0,5,2,5,4,4,4,5,4,5,6,5,6,4,6,7,0,6,8. men å ha samme gir oss en feil utgang på 2,6,3,0,4,2,5,4,6,0,5,0,5,0,5,2,5,4,4,4,5,4,5,6,5,6, 4,6,7,0,6,8,6,2,4,8 Rusten kode for å prøve dette ut -: Prøv dette med gyldig forsterker lik og se om matematikken er fornuftig. svaret 29. oktober kl 14:27 Haven39t prøvde dette, men jeg ser på det, det har vært en stund siden jeg har kodet i Python. ndash dingod Oct 29 14 at 7:07 dingod Hvorfor kan du ikke prøve dette ut med den rustne koden (og prøvedata-settet (som en enkel liste), postet jeg. For noen late mennesker (som jeg hadde vært i starten) - det maskerer ut det faktum at det bevegelige gjennomsnittet er ukorrekt. Du bør vurdere å redigere ditt opprinnelige svar. Jeg prøvde det bare i går, og doble sjekket lagret meg fra å se dårlig på å rapportere til Cxo-nivå. Alt du trenger å gjøre er å prøve ditt samme glidende gjennomsnitt en gang med quotvalidquot og annen gang med quotsamequot - og når du er overbevist om å gi meg litt kjærlighet (aka-up-vote) ndash ekta 29 okt 14 kl 07:16

No comments:

Post a Comment