Friday 4 August 2017

Glidande Medelvärde Sas By Proc Expand


Jag är SAS nybörjare och jag är nyfiken om följande uppgift kan göras mycket enklare som det är för närvarande i mitt huvud. Jag har följande förenklade metadata i en tabell som heter userdatemoney. User - Date - Money. with olika användare och datum För varje kalenderdag för de senaste 4 åren. Data är beställd av Användaren ASC och Date ASC. Samplingsdata ser ut så här. Jag vill nu beräkna ett fem dagars glidande medelvärde för de pengar jag började med den ganska populära apprach med lagfunktionen Som det här ser du uppstår problemet med den här metoden om datasteget går till en ny användare skulle Aron få några fördröjda värden från Anna som naturligtvis inte ska hända. Nu är jag ganska säker på att du kan hantera Användaromkopplare genom att lägga till några extra fält som laggeduser och genom att återställa N, Sum och Mean variables om du märker en sådan switch men. Kan detta göras på ett enklare sätt Kanske använder BY-klausulen på något sätt Tack för dina idéer och hjälp. Jag tycker att det enklaste sättet är att använda PROC EXP AND. And som nämns i John s kommentar är det viktigt att komma ihåg om saknade värden och om att börja och avsluta observationer också. Jag har lagt till SETMISS-alternativet till koden, eftersom du klargjorde att du vill sakna värden, inte ignorera dem som standard MOVAVE-beteende Och om du vill utesluta de första 4 observationerna för varje användare eftersom de inte har tillräckligt med förhistorik för att beräkna glidande medelvärde 5, kan du använda alternativet TRIMLEFT 4 inom TRANSFORMOUT. answered dec 3 13 vid 15 29. Release 6 08 av SAS-systemet, PROC EXPAND i SAS ETS-mjukvaran kan användas för att göra en mängd olika dataomvandlingar. Dessa omvandlingar inkluderar ledningar, lags, viktade och obesvidda glidmedel, rörliga summor och kumulativa summor för att nämna några Många nya transformationer tillsattes i frisättning 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 Släpp 6 12 Exempel på hur man anger syntaxen för centrerade och bakåtgående glidmedel med Släpp 6 11 och tidigare och Släpp 6 12 och senare ges nedan. PROC EXPAND kan beräkna antingen ett centrerat glidande medelvärde eller en bakåtgående glidande A 5-period Centrerat glidande medelvärde beräknas genom att beräkna totalt 5 konsekutiva 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 det nuvarande värdet A 5-periodens bakåtrörande medelvärde beräknas genom att medelvärdet av den aktuella perioden Värdet med värdena från de fyra föregående perioden. Följande syntax illustrerar hur man använder TRANSFORM MOVAVE n-specifikationen för att beräkna ett 5-årigt centrerat glidande medelvärde med användning 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, utnyttja TRANSFORM MOVAVE n LAG k specifikationen, där k n-1 2 om n är udda eller där k n-2 2 om n är jämn. Till exempel följer fol synkende syntax illustrerar hur man beräknar ett 5-årigt bakåtgående glidande medelvärde med användning av Släpp 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 Släpp 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 medel med Release 6 12 eller senare. För mer information, se Transformationsoperationer i EXPAND-kapitlet i SAS ETS User's Guide. Om du inte gör det Har tillgång till SAS ETS, kan du beräkna ett glidande medelvärde i DATA-steget som illustreras i detta provprogram. Operativsystem och Release Informationpute ett glidande medelvärde i SAS. En vanlig fråga på SAS diskussionsforum är hur man beräknar ett glidande medelvärde i SAS Denna artikel visar hur man 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 definierar en movin G genomsnittet 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 glidande medelvärden. MA-kurvan är ett fempunktsläget glidande medelvärde. WMA kurvan är ett viktat rörligt medelvärde med vikter 1 till 5 Vid beräkning av det vägda glidande medlet vid tid t har värdet ytvikten 5, värdet y t-1 har vikt 4, värdet y t-2 har vikten 3 och så vidare EWMA-kurvan är ett exponentiellt vägt rörligt medelvärde med utjämningsfaktor 0 3.Denna artikeln visar hur man använder EXPAND-proceduren i SAS ETS-mjukvaran för att beräkna ett enkelt glidande medelvärde, ett vägat glidande medelvärde och ett exponentiellt vägat glidande medelvärde i SAS För en översikt över PROC EXPAND och dess många möjligheter, rekommenderar jag att du läser korta papper Stupid Human Tricks med PROC EXPAND av David Cassell 2010. Eftersom alla SAS-kunder inte har licens för SAS ETS-programvara, finns det länkar i slutet av den här artikeln som s Hur man beräknar ett enkelt glidande medelvärde i SAS genom att använda DATA-steget. Skapa ett exempel på tidsserier. 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 där Är inga saknade värden Data är sorterade efter tidsvariabeln. T Variabeln Y innehåller den månatliga slutkursen för IBM-aktien under en 20-årig periodpute 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-värdet tidsvariabeln, T Data ska sorteras efter ID-variabeln CONVERT-satsen anger namnen på ingången och output variabler 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ång Variabel som beräknas som ett bakåtgående 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 med 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. Notera METODEN NONE Alternativet i PROC EXPAND-satsen Som standard anpassar EXPAND-proceduren kubiska spline-kurvor till de icke-misslyckade värdena för variabler. Alternativet METOD NONE säkerställer att de råa datapunkterna används för att beräkna de glidande medelvärdena, snarare än interpolerade värden. viktig användning av ett rörligt 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 längst upp i denna artikel. Behåll denna artikel så enkel som möjligt, jag har inte diskuterat hur du 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 SAS ETS-programvara visar följande referenser hur du använder SAS DATA-steg för att beräkna enkla glidande medelvärden genom att använda LAG-funktionen. SAS Knowledge Base tillhandahåller artikeln Beräkna det rörliga genomsnittet av en variabel. Premiär Vora 2008 jämför DATA-steget till PROC EXPAND-koden i papperet Easy Rolling Statistics med PROC EXPAND. Ron Cody innehåller ett SAS-makro i flera av hans böcker. Cody s Collection of Popular SAS-programmeringsuppgifter och hur man hanterar dem ger ett makro som heter movingAve. Du kan ner Ladda makroet som en del av exempelkoden och data 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 en framtida blogginlägg kommer jag att visa hur man skriver SAS IML-funktioner som beräknar enkla, viktade och exponentiellt viktade glidmedel. Matrisspråket i PROC IML är lättare att arbeta med för beräkningar som kräver åtkomst till flera tidpunkter. Om författaren. Rick Wicklin, PhD, är en framstående forskare i beräkningsstatistik hos SAS och är en huvudutvecklare av PROC IML och SAS IML Studio. Hans kompetensområden innefattar beräkningsstatistik, simulering, statistisk grafik och moderna metoder i statistisk dataanalys. Rick är författare till böckerna Statistical Programmering med SAS IML-programvara och simuleringsdata med SAS. Du kan också skapa rullande medelvärden genom att kombinera PROC SUMMARY med en MLFormat och även med h Arpanspjäll i DATA-steget Du kan läsa mer om dessa tekniker i boken Carpenter s Guide till innovativa SAS-tekniker. Jag har problem med glidande medelvärden som jag inte kunde ta reda på någon lösning hittills behöver jag beräkna det glidande genomsnittet av de föregående 6 månaderna i 6 månader Saken är att jag vill inkludera tidigare beräknade glidande medelvärden inklusive den rörliga statistiken jag har försökt göra med LAG-funktionen och med PROC EXPAND, men det fungerade inte. X-kolumnen är min ursprungliga information , Y1 är vad jag gör för att SAS anser att M7 till M12 saknas och Y2 är vad jag vill. MX Y1 Y2 M1 100,0 100,0 100,0 M2 200,0 200,0 200,0 M3 300,0 300 , 0 300,0 M4 400,0 400,0 400,0 M5 500,0 500,0 500,0 M6 600,0 600,0 600,0 M7 350,0 350,0 M8 400,0 391,7 M9 450,0 423,6 M10 500,0 444,2 M11 550,0 451,6 M12 600,0 443,5. Det är bäst att ställa SAS-programproblem på SAS Support Community eftersom det har funktioner som ställer frågor och postar SAS-kod lättare Du kan al så få råd från många människor, inte bara jag. Det här är bara en liten variation av en SQL-lösning som publicerades på SAS-gemenskapen. Inte alla har tillgång till SAS ETS och PROC EXPAND. Lägg till ett observeringsnummer till den redan sorterade datasatsen dataserieuppsättningsserie xn run. proc sql skapa tabellen flyttar som välj, välj medel y från serie där x mellan en x-4 och ax som flyttar från serier som ett slut. Värdet av MOVINGAVG första fyra observationer använder 1, 2, 3 och 4 värden av Y för att beräkna det glidande medlet och sedan är det alltid den aktuella observationen plus den tidigare 4. Det är ändrat from. posted av SAS Yoda, Ksharp.

No comments:

Post a Comment