Wednesday 13 September 2017

Medio Code Sas Moving


Im un principiante SAS e Im curioso di sapere se la seguente attività può essere fatto molto di più semplice in quanto è attualmente nella mia testa. Ho il seguente (semplificato) meta-dati in una tabella denominata userdatemoney: utente - Data - i soldi con i vari utenti e le date per ogni giorno di calendario (per gli ultimi 4 anni). Il dato è ordinato da ASC Utente e Data ASC, dati di esempio appare così: Ora voglio calcolare una media mobile cinque giorni per i soldi. Ho iniziato con il apprach piuttosto popolare con la funzione di ritardo () in questo modo: come si vede, il problema con questo metodo si verifica se c'è se il passaggio di dati si imbatte in un nuovo utente. Aron sarebbe ottenere alcuni valori ritardati da Anna che, ovviamente, non dovrebbe accadere. Ora la mia domanda: Sono abbastanza sicuro che è possibile gestire lo switch utente con l'aggiunta di alcuni campi aggiuntivi, come laggeduser e reimpostando il N, Somma e media variabili se si nota un tale passaggio, ma: questo può essere fatto in un modo più semplice Forse usando il BY in alcun modo Grazie per le vostre idee e aiuto credo che il modo più semplice è quello di utilizzare PROC EXPAND: e come accennato in Johns commento, è importante ricordo di valori mancanti (e su inizio e la fine osservazioni pure). Ive ha aggiunto l'opzione SETMISS al codice, come ha chiarito che si desidera zerofy valori mancanti, non li (comportamento MOVAVE default) ignorare. E se si desidera escludere primi 4 osservazioni per ogni utente (in quanto essi non hanno abbastanza preistoria per calcolare media mobile 5), è possibile utilizzare l'opzione TrimLeft 4 all'interno TRANSFORMOUT (). ha risposto 3 dicembre 13 a 15: 29The codice di esempio sulla scheda codice completo illustra come calcolare la media mobile di una variabile attraverso un intero set di dati, nel corso degli ultimi N osservazioni in un insieme di dati, o nel corso degli ultimi N osservazioni entro un BY - gruppo. Questi file di esempio e gli esempi di codice sono forniti da SAS Institute Inc. come è, senza alcun tipo di garanzia, espressa o implicita, compreso ma non limitato alle garanzie implicite di commerciabilità e idoneità per uno scopo particolare. Destinatari riconoscono e concordano sul fatto che SAS Institute non sarà responsabile per qualsiasi danno derivante dal loro uso di questo materiale. Inoltre, SAS Institute fornirà alcun supporto per i materiali qui contenuti. Questi file di esempio e gli esempi di codice sono forniti da SAS Institute Inc. come è, senza alcun tipo di garanzia, espressa o implicita, compreso ma non limitato alle garanzie implicite di commerciabilità e idoneità per uno scopo particolare. Destinatari riconoscono e concordano sul fatto che SAS Institute non sarà responsabile per qualsiasi danno derivante dal loro uso di questo materiale. Inoltre, SAS Institute fornirà alcun supporto per i materiali qui contenuti. Calcolare la media mobile di una variabile attraverso un intero set di dati, nel corso degli ultimi N osservazioni in un insieme di dati, o nel corso degli ultimi N osservazioni entro un by-group. Beginning a rilascio 6.08 del Sistema SAS, PROC espandersi nel software SASETS può essere usato per fare una serie di trasformazioni di dati. Queste trasformazioni sono: cavi, ritardi, ponderate e non ponderati medie mobili, somme e somme cumulative, in movimento solo per citarne alcuni. Molte nuove trasformazioni sono state aggiunte nella versione 6.12, comprese le specifiche distinte per le medie mobili centrate e arretrate. Queste nuove trasformazioni hanno reso necessario modificare la sintassi per alcune delle trasformazioni supportate prima di rilasciare 6.12. Esempi di come specificare la sintassi per medie mobili centrate e indietro utilizzando uscita 6.11 e precedenti e Release 6.12 e in seguito sono riportati di seguito. PROC EXPAND grado di calcolare sia una centrato media mobile o di una media mobile a ritroso. A 5-periodo centrata media mobile viene calcolato facendo la media di un totale di 5 valori consecutivi della serie (il valore del periodo corrente oltre ai due valori immediatamente precedenti e due valori immediatamente successivi al valore attuale). Una media all'indietro mobile a 5 periodi è calcolato facendo la media del valore del periodo corrente con i valori dei 4 periodi immediatamente precedenti. La sintassi seguente illustra come utilizzare le specifiche TRASFORMARE (MOVAVE n) per calcolare un 5-periodo centrato media mobile utilizzando uscita 6.11 o precedenti: Per calcolare un periodo di n all'indietro media mobile utilizzando uscita 6.11 o versioni precedenti, fare uso della trasformazione (MOVAVE n GAL k) specifica, dove k (n-1) 2 se n è dispari o dove k (n-2) 2 se n è pari. Ad esempio, la seguente sintassi illustra come calcolare un 5-periodo medio all'indietro in movimento con uscita 6.11 o precedenti: la seguente sintassi illustra come utilizzare le specifiche TRASFORMARE (CMOVAVE n) per calcolare un 5-periodo di media mobile centrata utilizzando uscita 6.12 o in movimento in seguito: la seguente sintassi simile illustra come utilizzare le specifiche TRASFORMARE (MOVAVE n) per calcolare un 5-periodo medio all'indietro in movimento con uscita 6.12 o versioni successive: per ulteriori informazioni, vedere operazioni di trasformazione nel capitolo EXPAND dei SASETS utenti Guida. Se non si ha accesso a SASETS, è possibile calcolare una media mobile nel passaggio DATA come illustrato in questo programma di esempio. Sistema operativo e Informazioni sul rilascio

No comments:

Post a Comment