Wednesday, December 14, 2016

Parcela Media Móvil Sas


Im un principiante del SAS y Im curioso si la tarea siguiente se puede hacer mucho más simple pues está actualmente en mi cabeza. Tengo los siguientes metadatos (simplificados) en una tabla llamada userdatemoney: Usuario - Fecha - Dinero con varios usuarios y fechas para cada día calendario (durante los últimos 4 años). Los datos son ordenados por el usuario ASC y fecha ASC, datos de ejemplo se ve así: Ahora quiero calcular un promedio móvil de cinco días para el dinero. Comencé con el apprach bastante popular con la función lag () como esto: como ves, el problema con este método se produce si hay si el paso de datos se ejecuta en un nuevo usuario. Aron obtendría algunos valores rezagados de Anna, que por supuesto no debería suceder. Ahora mi pregunta: Estoy bastante seguro de que puede manejar el cambio de usuario mediante la adición de algunos campos adicionales como laggeduser y restablecer las variables N, Suma y Media si se nota un cambio, pero: Puede hacerse esto de una manera más fácil Tal vez utilizando el Por Cláusula de cualquier manera Gracias por tus ideas y ayuda Creo que la manera más fácil es usar PROC EXPAND: Y como se mencionó en el comentario de Johns, es importante recordar acerca de los valores perdidos (y sobre las observaciones de principio y fin). He añadido la opción SETMISS al código, ya que dejó claro que desea poner a cero los valores faltantes, no ignorarlos (comportamiento predeterminado MOVAVE). Y si desea excluir las primeras 4 observaciones para cada usuario (ya que no tienen suficiente antecedente para calcular el promedio móvil 5), puede utilizar la opción TRIMLEFT 4 dentro de TRANSFORMOUT (). El código de ejemplo en la pestaña Código completo ilustra cómo 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 - grupo. 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 grupo BY. Ver MACMA1 en la biblioteca de muestras SAS / QC El ejemplo anterior ilustra cómo Puede crear gráficos de media móvil usando datos brutos (mediciones de proceso). Sin embargo, en muchas aplicaciones los datos se proporcionan como subgrupos resumen estadística. Este ejemplo ilustra cómo puede utilizar la instrucción MACHART con datos de este tipo. El siguiente conjunto de datos (CLIPSUM) proporciona los datos del ejemplo anterior en forma resumida: En la figura 21.3 se muestra una lista de CLIPSUM. Hay exactamente una observación para cada subgrupo (tenga en cuenta que los subgrupos todavía están indexados por DAY). La variable GAPX contiene las medias del subgrupo, la variable GAPS contiene las desviaciones estándar del subgrupo, y la variable GAPN contiene los tamaños de las muestras del subgrupo (éstas son todas las cinco). El conjunto de datos CLIPSUM Figura 21.3: El conjunto de datos de resumen CLIPSUM Puede leer este conjunto de datos especificándolo como un conjunto de datos HISTORY en la instrucción PROC MACONTROL, de la siguiente manera: El gráfico de media móvil resultante se muestra en la figura 21.4. Dado que la opción LINEPRINTER se especifica en la instrucción PROC MACONTROL, se produce la salida de la impresora de línea. El asterisco () especificado en comillas simples después de la variable de subgrupo indica el carácter utilizado para trazar puntos. Este personaje debe seguir un signo igual. Tenga en cuenta que GAP no es el nombre de una variable SAS en el conjunto de datos, sino que es, en cambio, el prefijo común para los nombres de las tres variables SAS GAPX, GAPS y GAPN. Los caracteres de sufijo X. S. Y N indican la media. Desviación estándar. Y el tamaño de la muestra. respectivamente. Por lo tanto, puede especificar tres variables de resumen de subgrupo en un conjunto de datos HISTORY con un solo nombre (GAP), que se conoce como el proceso. Las variables GAPX, GAPS y GAPN son todas requeridas. El nombre DAY especificado después del asterisco es el nombre de la variable de subgrupo. En general, un conjunto de datos de entrada de HISTORIA utilizado con la instrucción MACHART debe contener las siguientes variables: subgrupo variable subgrupo media variable subgrupo desviación estándar variable subgrupo tamaño de la muestra variable Por otra parte, un conjunto de datos de entrada HISTÓRICO utilizado con la declaración MACHART , Los nombres de la media de subgrupo, la desviación estándar y las variables de tamaño de muestra deben comenzar con el nombre de proceso especificado en la instrucción MACHART y finalizar con los caracteres de sufijo especiales X. S. y N . respectivamente. Si los nombres no siguen esta convención, puede utilizar la opción RENAME en la instrucción PROC MACONTROL para cambiar el nombre de las variables durante la duración del paso del procedimiento MACONTROL. En resumen, la interpretación del proceso depende del conjunto de datos de entrada. Si los datos sin procesar se leen con la opción DATA (como en el ejemplo anterior), proceso es el nombre de la variable SAS que contiene las mediciones del proceso. Si los datos de resumen se leen utilizando la opción HISTORY (como en este ejemplo), process es el prefijo común para los nombres de las variables que contienen las estadísticas de resumen. Para obtener más información, vea 34HISTORY Data Set34. 13 13

No comments:

Post a Comment