Tuesday 29 August 2017

Sas Calcolo A Mobile Media In


Ho incluso uno screenshot per contribuire a chiarire il mio problema: Im cercando di calcolare una sorta di media mobile e in movimento deviazione standard. Il fatto è che voglio per il calcolo dei coefficienti di variazione (stdevavg) per il valore effettivo. Normalmente questo si fa calcolando la STDEV e medio per gli ultimi 5 anni. Tuttavia a volte ci saranno osservazioni nel mio database per il quale non ho le informazioni degli ultimi 5 anni (forse solo 3, 2, ecc). Ecco perché voglio un codice che calcola la media e STDEV anche se non ci sono informazioni per l'intero 5 anni. Inoltre, come si vede nelle osservazioni, a volte ho informazioni su più di 5 anni, quando questo è il caso ho bisogno di un qualche tipo di media mobile che mi permette di calcolare la media e STDEV per il passato 5 anni. Quindi, se una società ha informazioni per 7 anni ho bisogno di un certo tipo di codice che calcola la media e STDEV per, diciamo, 1997 (dal 1991-1996), 1998 (dal 1992-1997) e nel 1999 (1993-1998). Come im non molto familiarità con i comandi sas dovrebbe apparire (molto molto approssimativamente) come: O qualcosa di simile, ho davvero alcun indizio, Im che va cercare di capirlo, ma ne vale la pena distacco, se non lo vorrei trovo myself. Beginning in Rilasciare 6.08 del sistema SAS, PROC EXPAND nel software SASETS può essere usato per fare una varietà 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 il codice di esempio di rilascio InformationThe 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. In questo post, vi mostro un trucco per fare movimento calcolo della media (può essere esteso ad altre operazioni che richiedono funzioni di windowing), che è super veloce. Spesso, gli analisti SAS bisogno per condurre in movimento calcolo della media e ci sono diverse opzioni per l'ordine di preferenza: 1. PROC EXPAND 2. DATI FASE 3. PROC SQL, ma molti siti non possono licenza SASETS da utilizzare PROC espandere e fare media mobile a DATI STEP richiede un po 'di codifica ed è soggetto a errori. PROC SQL è una scelta naturale per i programmatori minori e, in molti casi aziendali l'unica soluzione, ma SAS39s PROC SQL manca funzioni di windowing che sono disponibili in molti DB per facilitare lo spostamento calcolo della media. Una tecnica la gente di solito usano è CROSS JOIN, che è molto costoso e non una soluzione valida per il set di dati, anche di medie dimensioni. In questo post, vi mostro un trucco per fare movimento calcolo della media (può essere estesa ad altre operazioni che richiedono funzioni di windowing), che è super veloce. Si consideri il semplice movimento calcolo della media in cui le finali osservazioni K sono inclusi nel calcolo, vale a dire MA (K), qui abbiamo fissato K5. Per prima cosa generare un 20 dati di esempio OB, dove variabile ID deve essere utilizzato per finestre e la variabile X è quello di essere utilizzato in calcoli MA, e poi applichiamo il CROSS standard di JOIN di esaminare prima i dati risultanti, non raggruppati, basta per capire come sfruttare la struttura di dati. Dal conseguente insieme di dati, è difficile trovare un indizio, ora let39s ordina per colonna quotbidquot in questo insieme di dati: Da questo allineati i dati, è chiaro che in realtà don39t devono attraversare ENTRA l'intero insieme di dati originale, ma, invece, siamo in grado di generare un insieme di dati quotoperationquot che contiene il valore della differenza, e lasciare che l'originale set di dati CROSS JOIN con questo set di dati quotoperationquot molto più piccolo, e tutti i dati che dobbiamo usare per il calcolo MA saremo lì. Ora let39s farlo: CROSS JOIN dati originali con i dati quotoperationquot, sort by (a. idops), che è in realtà quotbid39 in ordinata serie di dati noti che nel codice di cui sopra, è necessario avere ascia moltiplicare per b. weight in modo che i dati possono essere inter-foglie, altrimenti lo stesso valore X da tavolo originale verrà emesso e il calcolo MA saranno fallito. La variabile di peso esplicito in realtà aggiunge a una maggiore flessibilità per l'intero calcolo di MA. Durante l'impostazione che sia 1 per tutti i risultato OB in un semplice calcolo MA, assegnare pesi diversi aiuteranno a risolvere più complesso MA computing, come dare ulteriori osservazioni meno peso per un MA decaduto. Se sono necessari diversi parametri K in MA (K) i calcoli, solo il set di dati di funzionamento ha bisogno di essere aggiornato, che è lavoro banale. Ora il modello di codice effettivo per il calcolo MA (K) sarà: Con questo nuovo metodo, è interessante confrontarlo con la costosa auto CROSS JOIN e per proc espandersi. Sul mio posto di lavoro (Intel i5 3,8 GHz, 32GB di memoria, 1TB 72K HDD), l'auto CROSS JOIN è proibitivo a lungo nel tempo di esecuzione (se i dati è grande), mentre il nuovo metodo utilizza solo 2X quanto più tempo PROC EXPAND, sia i consumi di tempo sono banale confronto con sé CROSS JOIN. consumo di tempo indicato di seguito è in quotsecondquot. Qui di seguito è il lettori di codici possano correre e confrontare voi stessi. Pubblicato 10 Maggio 2015 da Liang Xie SAS di programmazione per il Data Mining

No comments:

Post a Comment