När du beräknar ett löpande rörligt medelvärde, är det genomsnittligt att placera genomsnittet i mellantidstiden. I föregående exempel beräknade vi genomsnittet av de första 3 tidsperioderna och placerade det bredvid period 3. Vi kunde ha placerat medelvärdet mitt i tidsintervall av tre perioder, det vill säga bredvid period 2. Detta fungerar bra med udda tidsperioder, men inte så bra för jämn tid. Så vart skulle vi placera det första glidande medlet när M 4 Tekniskt sett skulle det rörliga genomsnittet falla vid t 2.5, 3.5. För att undvika detta problem släpper vi MAs med M 2. Således släpper vi de släta värdena Om vi i genomsnitt ett jämnt antal termer behöver vi släta de jämnda värdena Följande tabell visar resultaten med M 4. För att förenkla min fråga, låt oss säg att jag har en tabell med kvartalsdatum och försäljningsnummer av säkerhet. monthenddate, ID, Sales Jag behöver beräkna 4 kvartals glidande medelvärden av försäljning per ID. Jag försökte göra följande: Det första steget för att skapa ett datumindex fungerade bra men den BERÄKNADE FLYGGÄNDERNA delen ger mig ett fel Ett objekt eller kolumnnamn saknas eller är tomt. Om jag tar ut MAX (monthenddate) från SELECT-linjen går det utan fel men ger mig ett tomt tabellresultat. Kanske är mitt tillvägagångssätt väsentligt bristfälligt. Tack på förhand för någon hjälp. Också försökt använda en underfråga: FRÅN TempDateIndex l VAR R. dateidx4 GROUP BY ID Msg 156, Nivå 15, Stat 1, Linje 3 Felaktig syntax nära sökordet SELECT. Msg 102, Nivå 15, Stat 1, Linje 6 Fel syntax i närheten).Moving Average I det här exemplet lär du dig hur du beräknar det glidande genomsnittet för en tidsserie i Excel. Ett glidande medel används för att jämna ut oegentligheter (toppar och dalar) för att enkelt kunna känna igen trender. 1. Låt oss först titta på våra tidsserier. 2. Klicka på Dataanalys på fliken Data. Obs! Det går inte att hitta knappen Data Analysis Klicka här för att ladda verktyget Analysis ToolPak. 3. Välj Flytta medelvärde och klicka på OK. 4. Klicka i rutan Inmatningsområde och välj intervallet B2: M2. 5. Klicka i rutan Intervall och skriv 6. 6. Klicka i rutan Utmatningsområde och välj cell B3. 8. Skriv en graf över dessa värden. Förklaring: Eftersom vi ställer intervallet till 6 är det rörliga genomsnittet genomsnittet för de föregående 5 datapunkterna och den aktuella datapunkten. Som ett resultat utjämnas toppar och dalar. Diagrammet visar en ökande trend. Excel kan inte beräkna det rörliga genomsnittet för de första 5 datapunkterna eftersom det inte finns tillräckligt med tidigare datapunkter. 9. Upprepa steg 2 till 8 för intervall 2 och intervall 4. Slutsats: Ju större intervall desto mer topparna och dalarna utjämnas. Ju mindre intervallet desto närmare rörliga medelvärden är till de faktiska datapunkterna. Ja, MapReduce är avsedd att fungera på en stor mängd data. Och tanken är att i allmänhet ska kartan och minska funktionerna inte bryr sig om hur många mappers eller hur många reducerare det finns, det är bara optimering. Om du tänker noggrant på den algoritm som jag skrev upp kan du se att det spelar ingen roll vilken mappare får vilka delar av data som finns. Varje inmatningsrekord kommer att vara tillgänglig för varje reducerad operation som behöver den. ndash Joe K Sep 18 12 på 22:30 I bästa av mina förståelse är rörligt medelvärde inte snygga kartor till MapReduce-paradigmet eftersom dess beräkning väsentligen skjuter fönster över sorterade data, medan MR behandlar icke-skärmade intervall av sorterade data. Lösningen jag ser är som följer: a) Att implementera anpassad partitioner för att kunna skapa två olika partitioner i två körningar. I varje körning kommer dina reducerare att få olika dataområden och beräkna glidande medelvärde där det är lämpligt att jag ska försöka illustrera: I första omgången bör data för reduktionsmedel vara: R1: Q1, Q2, Q3, Q4 R2: Q5, Q6, Q7, Q8 . här kommer du att cacluate glidande medelvärde för några Qs. I nästa körning bör dina reducerare få data som: R1: Q1. Q6 R2: Q6. Q10 R3: Q10..Q14 Och caclulate resten av glidande medelvärden. Då måste du sammanställa resultaten. Idé av anpassad partitioner att det kommer att ha två olika sätt att fungera - varje gång dela i lika stora områden men med lite skift. I en pseudokod kommer det att se ut så här. partition (keySHIFT) (MAXKEYnumOfPartitions) där: SHIFT kommer att tas från konfigurationen. MAXKEY maximalt värde för nyckeln. Jag antar för enkelhet att de börjar med noll. RecordReader, IMHO är inte en lösning eftersom den är begränsad till specifik delning och kan inte glida över splitsgränsen. En annan lösning skulle vara att implementera anpassad logik för att dela in data (det är en del av InputFormat). Det kan göras att göra 2 olika bilder, liknar partitionering. svarat den 17 september kl 12:59
Comments
Post a Comment