Thursday 9 November 2017

Calcular El Promedio Móvil Sas


He incluido una captura de pantalla para ayudar a aclarar mi problema: Estoy tratando de calcular algún tipo de media móvil y la desviación estándar en movimiento. La cosa es que quiero calcular los coeficientes de variación (stdev / avg) para el valor real. Normalmente esto se hace mediante el cálculo de la stdev y avg durante los últimos 5 años. Sin embargo a veces habrá observaciones en mi base de datos para las que no tengo la información de los últimos 5 años (quizás sólo 3, 2 etc). Es por eso que quiero un código que calculará la media y stdev, incluso si no hay información para el conjunto de 5 años. Además, como ves en las observaciones, a veces tengo información de más de 5 años, cuando este es el caso necesito algún tipo de media móvil que me permite calcular el promedio y stdev durante los últimos 5 años. Así que si una empresa tiene información durante 7 años necesito algún tipo de código que calculará el promedio y el stdev para, digamos, 1997 (por 1991-1996), 1998 (1992-1997) y 1999 (1993-1998). Como no estoy muy familiarizado con los comandos de sas debería mirar (muy, muy groseramente) como: O algo así, realmente no tengo ni idea, voy a tratar de averiguarlo, pero vale la pena publicarlo si no lo encuentro yo mismo. En la ficha Código completo ilustra cómo calcular la media móvil de una variable a través de un conjunto de datos completo, sobre las últimas N observaciones en un conjunto de datos o sobre las últimas N observaciones dentro de un grupo BY. Estos ejemplos de archivos y ejemplos de código son proporcionados por SAS Institute Inc. como es sin garantía de ningún tipo, ya sea expresa o implícita, incluyendo pero no limitado a las garantías implícitas de comerciabilidad y aptitud para un propósito en particular. Los recipientes reconocen y aceptan que SAS Institute no será responsable de los daños y perjuicios derivados de su uso de este material. Además, el SAS Institute no proporcionará soporte para los materiales aquí contenidos. Estos ejemplos de archivos y ejemplos de código son proporcionados por SAS Institute Inc. como es sin garantía de ningún tipo, ya sea expresa o implícita, incluyendo pero no limitado a las garantías implícitas de comerciabilidad y aptitud para un propósito en particular. Los recipientes reconocen y aceptan que SAS Institute no será responsable de los daños y perjuicios derivados de su uso de este material. Además, el SAS Institute no proporcionará soporte para los materiales aquí contenidos. Calcular el promedio móvil de una variable a través de un conjunto de datos completo, sobre las últimas N observaciones en un conjunto de datos, o sobre las últimas N observaciones dentro de un BY-grouppute un promedio móvil en SAS Este post fue amablemente contribuido por el DO Loop - go Para comentar y leer el post completo. Una cuestión común en los foros de discusión de SAS es cómo calcular un promedio móvil en SAS. En este artículo se muestra cómo utilizar PROC EXPAND y contiene vínculos a artículos que utilizan el paso DATA o macros para calcular promedios móviles en SAS. En un post anterior, expliqué cómo definir un promedio móvil y proporcioné un ejemplo, que se muestra aquí. El gráfico es un diagrama de dispersión del precio de cierre mensual de las acciones de IBM durante un período de 20 años. Las tres curvas son promedios móviles. La curva 8220MA8221 es una media móvil de cinco puntos (arrastre). La curva 8220WMA8221 es una media móvil ponderada con pesos 1 a 5. Cuando se calcula la media móvil ponderada en el tiempo t, el valor yt tiene peso 5, el valor y t-1 tiene peso 4, el valor y t-2 tiene peso 3, etc.). La curva 8220EWMA8221 es una media móvil exponencialmente ponderada con factor de suavizado alfa 0.3. Este artículo muestra cómo utilizar el procedimiento EXPAND en el software SAS / ETS para calcular un promedio móvil simple, un promedio móvil ponderado y un promedio móvil ponderado exponencialmente en SAS. Para obtener una visión general de PROC EXPAND y sus múltiples capacidades, recomiendo leer el breve artículo 8220Stupid Human Tricks con PROC EXPAND8221 de David Cassell (2010). Como no todos los clientes de SAS tienen una licencia para el software SAS / ETS, hay enlaces al final de este artículo que muestran cómo calcular un promedio móvil simple en SAS mediante el paso DATA. Crear un ejemplo de serie temporal Antes de poder calcular un promedio móvil en SAS, necesita datos. La siguiente llamada a PROC SORT crea una serie de tiempo de ejemplo con 233 observaciones. No faltan valores. Los datos se ordenan por la variable de tiempo, T. La variable Y contiene el precio de cierre mensual de las acciones de IBM durante un período de 20 años. Calcular un promedio móvil en SAS mediante PROC EXPAND PROC EXPAND calcula muchos tipos de promedios móviles y otras estadísticas de balanceo, como desviaciones estándar de rodadura, correlaciones y sumas acumulativas de cuadrados. En el procedimiento, la instrucción ID identifica la variable de tiempo, T. Los datos deben ordenarse por la variable ID. La sentencia CONVERT especifica los nombres de las variables de entrada y salida. La opción TRANSFORMOUT especifica el método y los parámetros que se utilizan para calcular las estadísticas de balanceo. El ejemplo utiliza tres sentencias CONVERT: La primera especifica que MA es una variable de salida que se calcula como una media móvil (hacia atrás) que utiliza cinco valores de datos (k 5). La segunda sentencia CONVERT especifica que WMA es una variable de salida que es una media móvil ponderada. Los pesos se estandarizan automáticamente mediante el procedimiento, por lo que la fórmula es WMA (t) (5 yt 4 y t-1 3 y t-2 2 y t-3 1 y t-4) / 15. La tercera sentencia CONVERT especifica que EWMA es una variable de salida que es una media móvil exponencialmente ponderada con el parámetro 0.3. Observe la opción METHODNONE en la instrucción PROC EXPAND. De forma predeterminada, el procedimiento EXPAND ajusta las curvas cúbicas de spline a los valores no variables de las variables. Las opciones METHODNONE garantizan que los puntos de datos sin procesar se utilizan para calcular las medias móviles, en lugar de los valores interpolados. Visualización de promedios móviles Un uso importante de un promedio móvil consiste en superponer una curva en un diagrama de dispersión de los datos brutos. Esto le permite visualizar tendencias a corto plazo en los datos. La siguiente llamada a PROC SGPOT crea el gráfico en la parte superior de este artículo: Para mantener este artículo lo más simple posible, no he discutido cómo manejar los datos que faltan al calcular promedios móviles. Consulte la documentación de PROC EXPAND para obtener información sobre varios problemas relacionados con los datos que faltan. En particular, puede utilizar la opción METHOD para especificar cómo interpolar los valores faltantes. También puede utilizar opciones de transformación para controlar cómo se definen las medias móviles para los primeros puntos de datos. Crear un promedio móvil en SAS mediante el paso DATA Si no dispone de software SAS / ETS, las siguientes referencias muestran cómo utilizar el paso SAS DATA para calcular promedios móviles simples mediante la función LAG. La base de conocimiento SAS proporciona el artículo 8220Compute el promedio móvil de una variable.8221 Preoral Vora (2008) compara el paso DATA con el código PROC EXPAND en el papel 8220Easy Rolling Statistics con PROC EXPAND.8221 Ron Cody incluye una macro SAS en varios de sus libros. Por ejemplo, Cody8217s Colección de populares SAS tareas de programación y cómo lidiar con ellos proporciona una macro llamada movingAve. Puede descargar la macro como parte del 8220Example Code y Data8221 para el libro. El paso DATA, que está diseñado para manejar una observación a la vez, no es la mejor herramienta para los cálculos de series de tiempo, que naturalmente requieren múltiples observaciones (retardos y derivaciones). En un blog futuro, mostraré cómo escribir funciones SAS / IML que calculan medias móviles simples, ponderadas y exponencialmente ponderadas. El lenguaje de matriz en PROC IML es más fácil de trabajar con cálculos que requieren acceder a múltiples puntos de tiempo. ff / TheDoLoopdyIl2AUoC8zA / ff / TheDoLoopdqj6IDK7rITs / ff / TheDoLoopicbsotKEf1zY: e5B0sfO55lA: gIN9vFwOqvQ / ff / TheDoLoopicbsotKEf1zY: e5B0sfO55lA: VsGLiPBpWU / ff / TheDoLoopicbsotKEf1zY: e5B0sfO55lA: F7zBnMyn0Lo / ff / TheDoLoopdl6gmwiTKsz0 /

No comments:

Post a Comment