Saturday 12 August 2017

How To Compute Glidande Medelvärde In Sas


Jag inkluderade en skärmdump för att klargöra mitt problem: Jag försöker att beräkna någon form av glidande medelvärde och flyttande standardavvikelse. Saken är att jag vill beräkna variationskoefficienterna (stdevavg) för det verkliga värdet. Normalt görs detta genom att beräkna stdev och avg för de senaste 5 åren. Men ibland kommer det att finnas observationer i min databas för vilken jag inte har information under de senaste 5 åren (kanske bara 3, 2 etc). Det är därför jag vill ha en kod som kommer att beräkna avg och stdev även om det inte finns någon information för hela 5 år. Också, som du ser i observationerna, har jag ibland information över mer än 5 år, då det är fallet behöver jag ett slags glidande medelvärde som gör det möjligt för mig att beräkna avg och stdev för de senaste 5 åren. Så om ett företag har information i 7 år behöver jag någon typ av kod som beräknar avg och stdev för, säger vi 1997 (1991-1996), 1998 (1992-1997) och 1999 (1993-1998). Jag är inte särskilt bekant med sas-kommandon, det borde (mycket väldigt grovt) se ut som: Eller så har jag ingen aning, jag ska försöka hitta det men det är värt att skicka det om jag inte hittar det själv. Kod på fliken Fullständig kod illustrerar hur man beräknar det rörliga genomsnittet av en variabel genom en hel datamängd, över de sista N-observationerna i en dataset eller över de sista N-observationerna inom en BY-grupp. Dessa samplingsfiler och kodexempel tillhandahålls av SAS Institute Inc., utan garantin av något slag, varken uttryckligt eller underförstått, inklusive men inte begränsat till de underförstådda garantierna för säljbarhet och lämplighet för ett visst ändamål. Mottagarna bekräftar och godkänner att SAS Institute inte är ansvarigt för eventuella skador som uppstår på grund av deras användning av detta material. Dessutom kommer SAS Institute att inte ge något stöd för materialet som ingår i häri. Dessa samplingsfiler och kodexempel tillhandahålls av SAS Institute Inc., utan garantin av något slag, varken uttryckligt eller underförstått, inklusive men inte begränsat till de underförstådda garantierna för säljbarhet och lämplighet för ett visst ändamål. Mottagarna bekräftar och godkänner att SAS Institute inte är ansvarigt för eventuella skador som uppstår på grund av deras användning av detta material. Dessutom kommer SAS Institute att inte ge något stöd för materialet som ingår i häri. Beräkna det rörliga genomsnittet av en variabel genom en hel dataset, över de sista N-observationerna i en dataset eller över de sista N-observationerna inom en BY-grouppute, ett glidande medelvärde i SAS. Detta inlägg var vänligt medverkat av DO Loop-go där för att kommentera och läsa hela posten. En vanlig fråga om SAS diskussionsforum är hur man beräknar ett glidande genomsnitt i SAS. Denna artikel visar hur du använder PROC EXPAND och innehåller länkar till artiklar som använder DATA-steget eller makron för att beräkna glidande medelvärden i SAS. I ett tidigare inlägg förklarade jag hur man definierade ett glidande medelvärde och gav ett exempel som visas här. Diagrammet är en scatterplot av den månatliga slutkursen för IBM-aktier över en 20-årig period. De tre kurvorna är rörliga medelvärden. 8220MA8221-kurvan är ett fempunkts (släpande) glidande medelvärde. 8220WMA8221-kurvan är ett viktat glidande medelvärde med vikterna 1 till 5. (Vid beräkning av det vägda glidande medlet vid tid t. Värdet yt har vikt 5 har värdet y t-1 vikt 4, värdet y t-2 har vikt 3 och så vidare.) 8220EWMA8221-kurvan är ett exponentiellt vägt glidmedel med utjämningsfaktor alfa 0,3. Denna artikel visar hur man använder EXPAND-proceduren i SASETS-programvaran för att beräkna ett enkelt glidande medelvärde, ett vägat glidande medelvärde och ett exponentiellt vägt glidande medelvärde i SAS. För en översikt över PROC EXPAND och dess många funktioner rekommenderar jag att du läser korta papper 8220Stupid Human Tricks med PROC EXPAND8221 av David Cassell (2010). Eftersom inte alla SAS-kunder har licens för SASETS-programvara finns det länkar i slutet av den här artikeln som visar hur man beräknar ett enkelt glidande medelvärde i SAS genom att använda DATA-steget. Skapa ett exempel tidsserie Innan du kan beräkna ett glidande medelvärde i SAS behöver du data. Följande samtal till PROC SORT skapar ett exempel på tidsserier med 233 observationer. Det finns inga saknade värden. Uppgifterna sorteras efter tidsvariabeln, T. Variabeln Y innehåller den månatliga slutkursen för IBM-aktien under en 20-årig period. Beräkna ett glidande medelvärde i SAS genom att använda PROC EXPAND PROC EXPAND beräknar många typer av glidande medelvärden och annan rullande statistik, såsom rullande standardavvikelser, korrelationer och kumulativa summor av kvadrater. I proceduren identifierar ID-beräkningen tidsvariabeln, T. Data ska sorteras efter ID-variabeln. I CONVERT-satsen anges namnen på ingångs - och utgångsvariablerna. Alternativet TRANSFORMOUT anger metoden och parametrarna som används för att beräkna rullande statistiken. Exemplet använder tre CONVERT-satser: Det första anger att MA är en utgående variabel som beräknas som ett (bakåt) glidande medelvärde som använder fem datavärden (k 5). Det andra CONVERT-satsen anger att WMA är en utgående variabel som är ett viktat glidande medelvärde. Vikterna standardiseras automatiskt genom proceduren, så formeln är WMA (t) (5 yt 4 y t-1 3 y t-2 2 y t-3 1 y t-4) 15. Den tredje CONVERT-satsen anger att EWMA är en utgående variabel som är ett exponentiellt vägat glidande medelvärde med parameter 0,3. Lägg märke till METHODNONE-alternativet i PROC EXPAND-satsen. Som standard passar EXPAND-proceduren kubiska spline-kurvor till de icke-missgivande värdena för variabler. METODNONE-alternativen säkerställer att de råa datapunkterna används för att beräkna de glidande medelvärdena, snarare än interpolerade värden. Visualisering av glidande medelvärden En viktig användning av ett glidande medelvärde är att överlappa en kurva på en scatterplot av rådata. Detta gör att du kan visualisera kortsiktiga trender i data. Följande samtal till PROC SGPOT skapar grafen högst upp i den här artikeln: För att hålla denna artikel så enkel som möjligt har jag inte diskuterat hur man hanterar saknade data vid beräkning av glidande medelvärden. Se dokumentationen för PROC EXPAND för olika problem relaterade till saknade data. I synnerhet kan du använda METHOD-alternativet för att ange hur man interpolerar saknade värden. Du kan också använda omvandlingsalternativ för att styra hur glidande medelvärden definieras för de första datapunkterna. Skapa ett glidande medelvärde i SAS genom att använda DATA-steget Om du inte har SASETS-programvara, visar följande referenser hur du använder SAS DATA-steget för att beräkna enkla glidande medelvärden genom att använda LAG-funktionen. SAS Knowledge Base tillhandahåller artikeln 8220Compute det rörliga genomsnittet av en variabel.8221 Premal Vora (2008) jämför DATA-steget till PROC EXPAND-koden i papperet 8220Easy Rolling Statistics med PROC EXPAND.8221 Ron Cody innehåller ett SAS-makro i flera av hans böcker. Cody8217s samling av populära SAS-programmeringsuppgifter och hur man hanterar dem ger till exempel ett makro som heter movingAve. Du kan ladda ner makroet som en del av 8220exempelkoden och Data8221 för boken. DATA-steget, som är utformat för att hantera en observation i taget, är inte det bästa verktyget för tidsserieberäkningar, vilket naturligtvis kräver flera observationer (lags och leads). I ett framtida blogginlägg kommer jag att visa hur man skriver SASIML-funktioner som beräknar enkla, viktade och exponentiellt viktade glidande medelvärden. Matrisspråket i PROC IML är lättare att arbeta med för beräkningar som kräver åtkomst av flera tidpunkter. ffTheDoLoopdyIl2AUoC8zA ffTheDoLoopdqj6IDK7rITs ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: gIN9vFwOqvQ ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: VsGLiPBpWU ffTheDoLoopicbsotKEf1zY: e5B0sfO55lA: F7zBnMyn0Lo ffTheDoLoopdl6gmwiTKsz0 början i Release 6,08 av SAS System PROC expandera i SASETS programvara kan användas för att göra en mängd olika uppgifter transformationer. Dessa omvandlingar inkluderar: leder, lags, vägda och obegripade glidmedel, rörliga summor och kumulativa summor, för att nämna några. Många nya transformationer tillsattes i Release 6.12, inklusive separata specifikationer för centrerade och bakåtgående glidmedel. Dessa nya omvandlingar gjorde det nödvändigt att modifiera syntaxen för några av de transformationer som stöddes före Release 6.12. Exempel på hur man anger syntaxen för centrerade och bakåtrörande medelvärden med hjälp av Release 6.11 och tidigare och Release 6.12 och senare ges nedan. PROC EXPAND kan beräkna antingen ett centrerat glidande medelvärde eller ett bakåtgående glidande medelvärde. Ett 5-årigt centrerat glidande medelvärde beräknas genom att iverna totalt 5 på varandra följande värden i serien (det aktuella periodvärdet utöver de två omedelbart föregående värdena och två värden som omedelbart följer nuvärdet). Ett 5-årigt, bakåtgående glidande medelvärde beräknas genom att medelvärdet av det aktuella perioden värderas med värdena från de 4 föregående perioderna. Följande syntax illustrerar hur man använder TRANSFORM (MOVAVE n) - specifikationen för att beräkna ett 5-centrerat glidande medelvärde med hjälp av Släpp 6.11 eller tidigare: För att beräkna ett n-period bakåtgående glidande medelvärde med användning av Släpp 6.11 eller tidigare, använd TRANSFORM (MOVAVE n LAG k) specifikation, där k (n-1) 2 om n är udda eller där k (n-2) 2 om n är jämn. Följande syntax illustrerar till exempel hur man beräknar ett 5-årigt bakåtgående glidande medel med användning av Release 6.11 eller tidigare: Följande syntax illustrerar hur man använder TRANSFORM (CMOVAVE n) - specifikationen för att beräkna ett 5-centrerat glidande medelvärde med användning av Release 6.12 eller Senare: Följande liknande syntax illustrerar hur man använder TRANSFORM (MOVAVE n) - specifikationen för att beräkna ett 5-årigt, bakåtgående glidande medelvärde med användning av Release 6.12 eller senare: Mer information finns i Transformation Operations i EXPAND-kapitlet i SASETS Användarhandbok. Om du inte har tillgång till SASETS kan du beräkna ett glidande medelvärde i DATA-steget som illustreras i detta provprogram. Operativsystem och Release Information

No comments:

Post a Comment