Friday 15 December 2017

Knuth glidande medelvärde


Jag försöker hitta ett sätt att beräkna ett rörligt kumulativt medel utan att lagra räkningen och den totala data som hittills har tagits emot. Jag kom fram med två algoritmer men båda måste lagra count. new genomsnittet gamla räkna gamla data nästa data nästa räkning. New genomsnittligt gammalt medelvärde nästa data - gammalt medelvärde nästa count. The problem med dessa metoder är att räkningen blir större och större vilket resulterar i att man förlorar precision i det resulterande genomsnittet. Den första metoden använder det gamla räknet och nästa räkning som uppenbarligen är 1 från varandra Det här fick mig att tänka på att det kanske finns ett sätt att ta bort räkningen, men tyvärr har jag inte hittat det än. Det fick mig lite längre men resulterade i den andra metoden men fortfarande räknningen är närvarande. Är det möjligt, eller är jag bara söker efter det omöjliga. asked den 28 september 12 på 8 46. Jag försöker hitta en effektiv numeriskt stabil algoritm för att beräkna en rullande varians till exempel en varians över ett rullande fönster i 20 år jag är medveten om Welford-algoritmen som effektiviserar y beräknar köravvikelsen för en ström av siffror som bara kräver ett pass, men är inte säker på om det här kan anpassas för ett rullande fönster, jag skulle också vilja lösningen för att undvika de noggrannhetsproblem som diskuteras i början av den här artikeln. En lösning i Vilket språk som helst är bra. asked den 28 februari 11 på 20 46. Jag har också problem med det här problemet Det finns några bra inlägg där ute i beräkningen av den löpande kumulativa variansen som John Cooke s Precis computing running variance post och posten från Digital explorations , Python-kod för beräkning av prov och populationavvikelser, kovarians - och korrelationskoefficient. Det gick inte att hitta någon som var anpassad till ett rullande fönster. Running Standard Deviations-posten av Subluminal Messages var avgörande för att få rullande fönsterformeln att fungera. Jim tar kraft summan av de kvadrerade skillnaderna i värdena mot Welfords tillvägagångssätt att använda summan av de kvadrerade skillnaderna i medelformeln enligt följande. PSA idag PSA igår x tod ay x idag - x igår nx-värde i din tidsserie. Ett antal värden du har analyserat hittills. Men för att konvertera Power Sum Average formel till ett fönsterfönster måste du tweak formeln till följande. PSA idag PSA igår x Idag x idag - x igår x Igår nx-värde i din tidsserie. Ett antal värden du har analyserat hittills. Du behöver också Rolling Simple Moving Average formula. SMMA idag SMA igår x idag - x idag - n nx värde i din tid series. n period som används för ditt rullande fönster. Från där kan du beräkna Rolling Population Variance. Population Var idag PSA idag n - n SMA idag SMA idag n. Or Rolling Sample Variance. Sample Var idag PSA idag n-n SMA idag SMA idag n - 1. Jag har täckt detta ämne tillsammans med prov Python kod i ett blogginlägg några år tillbaka, Running Variance. Hope hjälper det. Observera att jag tillhandahöll länkar till alla blogginlägg och matematiska formler i Latex bilder för detta svar Men på grund av mitt låga rykte 10 är jag begränsad till Ly 2 hyperlänkar och absolut inga bilder Ledsen om detta Hopp tar det inte bort från innehållet. Här är det att dela och erövra tillvägagångssätt som har O log k - time uppdateringar, där k är antalet prover. Det ska vara relativt stabilt för samma anledningar att parvis summering och FFTs är stabila men det är lite komplicerat och konstanten är inte stor. Anta att vi har en sekvens A med längden m med medelvärdet EA och varians VA och en sekvens B med längd n med medelvärdet EB och varians VB Låt C är sammanbindningen av A och B Vi har. Nu lägger elementen i ett rött-svart träd, där varje nod är dekorerad med medelvärdet och variansen av subtreeen roterad vid den noden. Sätt till höger raderas åt vänster Eftersom vi är igen bara åtkomst till ändarna kan ett splay-träd avskrivas, men jag antar att amortiserat är ett problem för din ansökan. Om k är känd vid kompileringstid kan du förmodligen avlösa den inre slingan FFTW-style. answered 28 februari 11 på 21 53.Actually Welfords-algoritmen kan AFAICT lätt b E anpassad för att beräkna viktade variationer och genom att ställa in vikter till -1 bör du kunna avbryta element som jag inte har kontrollerat matematiken om det tillåter negativa vikter men vid en första utseende bör det. Jag utförde ett litet experiment Med hjälp av ELKI.14-siffror med precision jämfört med den exakta två-pass-algoritmen är det ungefär lika mycket som man kan förvänta sig från dubbler. Observera att Welford kommer till viss beräkningskostnad på grund av extraavdelningarna - det tar ungefär dubbelt så lång tid som exakt två-pass-algoritm Om din fönsterstorlek är liten kan det vara mycket mer vettigt att faktiskt rekomputera medelvärdet och sedan på en sekund passera variansen varje gång. Jag har lagt till detta experiment som enhetstest till ELKI, du kan se hela källan här jämför det också med exakt två-pass-variansen. Men på skilda dataset kan beteendet vara annorlunda Denna dataset är uppenbarligen jämn fördelad men jag har också försökt en sorterad array och det fungerade. svarade den 5 januari kl 13.answered Apr 24 14 på 18 32. Jag ser fram emot att vara visat fel på detta men jag tror inte att det kan bli gjort snabbt Med det sagt är en stor del av beräkningen att hålla reda på EV-fönstret som kan enkelt göras. Jag lämnar med frågan är du säker på att du behöver en fönsterfunktion Om du inte arbetar med mycket stora fönster är det nog bättre att bara använda en välkänd fördefinierad algoritm. Svarade 28 februari 11 kl 20 57. Jag antar att hålla reda på din 20 prover, summa X 2 från 1 20 och summa X från 1 20 och sedan successivt rekomputera de två summan vid varje iteration är inte tillräckligt effektiv Det är möjligt att rekomputera den nya variansen utan att lägga upp, kvadrera, etc alla proverna varje gång . Svarade den 28 februari 11 på 21 07. Jag tror att denna lösning är mottaglig för stabilitetsproblemen som nämns i länken i mitt ursprungliga inlägg I synnerhet när ingångsvärdena och stora och deras skillnad är liten än resultatet kan faktiskt vara negativt kommer jag att ha ingen kontroll över ingången, så jag föredrar att undvika denna inställning Abiel 28 feb 11 kl 21 11.Oh ser jag Är det något du kan säga om ingången Avsedd användning Är det ett problem att du bara kan kasta fler bitar på 64-bitars float, arbitär precision aritmetik Osv. Avrundningsfel går bort om du trumpar inmatningen i signifikanta siffror, nej John 28 feb 11 kl 21 16. Jason S Den rullande variansen är vad den är Det kan mycket hända i övergången från 1 miljon till. zero, Men det är djurets natur Det och de första 980 av 1000,1 miljoner värden är ute av bilden när förändringen sker ändå Min kommentar föreslog att om du hade tillräckligt stora siffror i dina beräkningar skulle inget av detta betyda John Feb 28 11 vid 21 51.Input kan verkligen vara någonting Värde magnitud kan säkert vara i trillionerna, och medan de ursprungliga uppgifterna bara kommer att ha noggrannhet med några decimaler, kan användarna omvandla sin data till exempel dela med någon skalär före Beräkna variansen Abiel Feb 28 11 på 21 56. För endast 20 värden är det trivialt att anpassa den metod som exponeras här. Jag sa inte snabbt, though. You kan helt enkelt plocka upp en serie med 20 av dessa RunningStat-klasser. De första 20 elementen i strömmen är något speciellt, men när det här är gjort är det mycket enklare. När ett nytt element kommer fram, raderar du nuvarande RunningStat-instans, lägger till elementet i alla 20 instanser och ökar diskmodulen 20 som identifierar den nya fullständiga RunningStat-förekomsten. Vid ett givet tillfälle kan du hämta den nuvarande fullständiga instansen för att få din löpande variant. Du kommer självklart att notera att detta tillvägagångssätt inte är riktigt skalbart. Du kan också notera att det finns viss reduktion i numren vi behåller om du går med RunningStat full klass En uppenbar förbättring skulle vara att hålla 20 sista Mk och Sk direkt. Jag kan inte tänka på en bättre formel med denna speciella algoritm, jag är rädd att dess rekursiva formulering något knyter våra händer. svarade mar 1 11 på 9 01.Vyer Översikt Data Management. Part 3 Sofisticated Data Management. Powerful analytiska verktyg är bara användbara om du enkelt kan arbeta med dina data. EViews tillhandahåller det bredaste utbudet av datahanteringsverktyg som finns tillgängliga i någon ekonometrisk programvara. Från dess omfattande bibliotek med matematisk, statistisk, datum, sträng och Tidsserier operatörer och funktioner, för omfattande stöd för numeriska, karaktär och datum data, EViews erbjuder de data hanteringsfunktioner du kommer att förvänta dig från modern statistisk program. Extensive Function Library. EViews innehåller ett omfattande bibliotek med funktioner för att arbeta med data I Utöver standardmatematiska och trigonometriska funktioner erbjuder EViews funktioner för beskrivande statistik, kumulativ och rörlig statistik, gruppstatistik, specialfunktioner, specialiserad datum - och tidsseriefunktioner, arbetsfiler, värdekarta och finansiella beräkningar. Visningar ger också slumpmässiga talgeneratorer Knuth, L Ecuyer eller Mersenne-Twister, densitetsfunktioner och kumulativ dis fördelningsfunktioner för arton olika kan användas för att generera nya serier, eller vid beräkning av skalär - och matrisuttryck. Visningar erbjuder ett omfattande bibliotek av funktioner. Avancerad uttryckshantering. Visningar kraftfulla verktyg för uttryckshantering innebär att du kan använda uttryck nästan var som helst du skulle använda en serie Du behöver inte skapa nya variabler för att fungera med Y-logaritmen, det rörliga genomsnittet för W eller förhållandet mellan X och Y eller något annat giltigt uttryck. Istället kan du använda uttrycket i datablad för beskrivande statistik som en del Av en ekvation eller modellspecifikation eller vid konstruktion av grafer. När du förutser att du använder en ekvation med ett uttryck för den beroende variabeln kan EViews om möjligt låta dig prognosera den underliggande beroende variabeln och justera det beräknade konfidensintervallet i enlighet med detta. Till exempel om den beroende variabeln anges som LOG G, du kan välja att förutse antingen loggen eller nivån på G och för att beräkna appr opriate, eventuellt asymmetrisk, konfidensintervall. Arbeta direkt med uttryck i stället för variabler. Länkar, formulär och värden Maps. Link-objekt gör att du kan skapa serier som länkar till data som finns i andra arbetsfiler eller arbetssidor. Länkar låter dig kombinera data på olika frekvenser eller matcha in data från en sammanfattande sida till en enskild sida så att data uppdateras dynamiskt när de underliggande data förändras. På liknande sätt kan formler i en arbetsfil tilldelas dataserier så att dataserierna omberäknas automatiskt när Underliggande data är modifierade. Value-etiketter, t. ex. High, Med, Low, motsvarande 2, 1, 0 kan appliceras på numeriska eller alfaserier så att kategoriska data kan visas med meningsfulla etiketter. Inbyggda funktioner låter dig arbeta med antingen Underliggande eller de mappade värdena när man utför beräkningar. Länkar kan användas för dynamisk frekvensomvandling eller matchning av sammanslagning. Datastrukturer och typer. Visningar kan hand le komplexa datastrukturer, inklusive regelbundna och oregelbundna daterade data, tvärsnittsdata med observationsidentifierare och daterad och utaterad paneldata. Förutom numeriska data kan en EViews-arbetsfil också innehålla alfanumeriska teckensträngsdata och serier som innehåller datum, alla Av vilka kan manipuleras med ett omfattande bibliotek med funktioner. Visningar ger också ett brett utbud av verktyg för att arbeta med datasets workfiles, data inklusive möjligheten att kombinera serier med komplexa matchningskriterier och arbetsrutiner för att ändra strukturen i dina data, lägga till, dela in, ändra storlek, sortera och omforma stack och unstack. EViews-arbetsfiler kan vara mycket strukturerade. Enterprise Edition Support för ODBC, FAME TM DRIBase och Haver Analytics Databaser. Som en del av EViews Enterprise Edition finns ett extrakostnadsalternativ över EViews Standard Upplaga, stöd ges för tillgång till data i relationsdatabaser via ODBC-drivrutiner och till databaser i en mängd olika proprietära format som används av kommersiella data och databasleverantörer Open Database Connectivity ODBC är en standard som stöds av många relationsdatabasystem, inklusive Oracle, Microsoft SQL Server och IBM DB2 EViews kan du läsa eller skriva hela tabeller från ODBC-databaser eller skapa en ny arbetsfil från resultaten av en SQL-fråga. EViews Enterprise Edition stöder också åtkomst till FAME TM-formatdatabaser, både lokala och serverbaserade Global Insight s DRIPro - och DRIBase-databaser, databaser för databaserna Haver Analytics DLX, Datastream, FactSet och Moody s Den bekanta, lätt-att - Använd EViews databas gränssnitt har utökats till dessa dataformat så att du kan arbeta med utländska databaser lika enkelt som inbyggda EViews databaser. Frequency Conversion. När du importerar data från en databas eller från en annan arbetsfil eller arbetssida, konverteras den automatiskt till frekvensen av ditt nuvarande projekt. Visningar erbjuder många alternativ för frekvensomvandling, och inkluderar stöd för konvertering av dagligen, veckovis eller jag Regelbundna frekvenser Serien kan tilldelas en föredragen konverteringsmetod, så att du kan använda olika metoder för olika serier utan att behöva ange omvandlingsmetoden varje gång en serie är tillgänglig. Du kan även skapa länkar så att frekvensomvandlade dataserier automatiskt Omräknad när den underliggande data är modifierad. Specifiera en seriespecifik automatisk konvertering eller välj en specifik metod. För försäljningsinformation, vänligen email. For teknisk support, vänligen email. Please ta med ditt serienummer med all email-korrespondens. For ytterligare kontaktuppgifter, se vår Om sidan.

No comments:

Post a Comment