O código de exemplo na guia Código Completo ilustra como calcular a média móvel de uma variável através de um conjunto de dados inteiro, nas últimas N observações em um conjunto de dados ou nas últimas N observações dentro de um grupo BY. Esses exemplos de arquivos e exemplos de código são fornecidos pelo SAS Institute Inc., tal como está sem garantia de qualquer tipo, expressa ou implícita, incluindo, entre outras, as garantias implícitas de comercialização e adequação para um propósito específico. Os destinatários reconhecem e concordam que o SAS Institute não será responsável por quaisquer danos decorrentes do uso deste material. Além disso, o SAS Institute não fornecerá suporte para os materiais aqui contidos. Esses exemplos de arquivos e exemplos de código são fornecidos pelo SAS Institute Inc., tal como está sem garantia de qualquer tipo, expressa ou implícita, incluindo, entre outras, as garantias implícitas de comercialização e adequação para um propósito específico. Os destinatários reconhecem e concordam que o SAS Institute não será responsável por quaisquer danos decorrentes do uso deste material. Além disso, o SAS Institute não fornecerá suporte para os materiais aqui contidos. Calcule a média móvel de uma variável através de um conjunto de dados inteiro, nas últimas N observações em um conjunto de dados ou nas últimas N observações dentro de um grupo BY. Começando na Versão 6.08 do Sistema SAS, o PROC EXPAND no software SASETS pode Ser usado para fazer uma variedade de transformações de dados. Essas transformações incluem: leads, atrasos, médias móveis ponderadas e não ponderadas, somas em movimento e somas cumulativas, para citar alguns. Muitas novas transformações foram adicionadas na versão 6.12, incluindo especificações separadas para médias movidas centradas e para trás. Essas novas transformações tornaram necessário modificar a sintaxe para algumas das transformações suportadas antes da versão 6.12. Exemplos de como especificar a sintaxe para médias móveis centradas e atrasadas usando a Versão 6.11 e versões anteriores e a Versão 6.12 e posterior são fornecidas abaixo. PROC EXPAND pode calcular uma média móvel centrada ou uma média móvel para trás. Uma média móvel centrada em 5 períodos é calculada pela média de um total de 5 valores consecutivos da série (o valor do período atual, além dos dois valores imediatamente precedentes e dois valores imediatamente após o valor atual). Uma média móvel retroativa de 5 períodos é calculada pela média do valor do período atual com os valores dos 4 períodos imediatamente anteriores. A sintaxe a seguir ilustra como usar a especificação TRANSFORM (MOVAVE n) para calcular uma média móvel centrada em 5 períodos usando a Versão 6.11 ou anterior: Para calcular uma média móvel em atraso n usando a Versão 6.11 ou anterior, faça uso da TRANSFORM (MOVAVE N LAG k), onde k (n-1) 2 se n for estranho ou onde k (n-2) 2 se n for igual. Por exemplo, a seguinte sintaxe ilustra como calcular uma média móvel de 5 períodos com a versão 6.11 ou anterior. A seguinte sintaxe ilustra como usar a especificação TRANSFORM (CMOVAVE n) para calcular uma média móvel centrada em 5 períodos usando a Versão 6.12 ou Mais tarde: A seguinte sintaxe semelhante ilustra como usar a especificação TRANSFORM (MOVAVE n) para calcular uma média móvel retroativa de 5 períodos usando a Versão 6.12 ou posterior: para obter mais informações, consulte Operações de Transformação no capítulo EXPAND do Guia do Usuário SASETS. Se você não tiver acesso a SASETS, você pode calcular uma média móvel na etapa DATA como ilustrado neste programa de exemplo. Sistema operacional e informações de lançamentoIm um iniciante do SAS e estou curioso se a seguinte tarefa pode ser feita muito mais simples, pois atualmente está na minha cabeça. Eu tenho os seguintes metadados (simplificados) em uma tabela chamada userdatemoney: Usuário - Data - Dinheiro com vários usuários e datas para cada dia do calendário (nos últimos 4 anos). Os dados são ordenados pelo Usuário ASC e Data ASC, os dados de amostra são assim: agora eu quero calcular uma média móvel de cinco dias para o Money. Eu comecei com o apprach muito popular com a função lag () como esta: como você vê, o problema com este método ocorre se houver se o passo de dados for executado em um novo usuário. Aron teria alguns valores atrasados de Anna, que, claro, não deveria acontecer. Agora, minha pergunta: Tenho certeza de que você pode lidar com a mudança do usuário, adicionando alguns campos extras como o laggeduser e redefinindo as variáveis N, Soma e Média se você notar tal comutador, mas: Isso pode ser feito de maneira mais fácil. POR Cláusula de qualquer maneira Obrigado por suas idéias e ajuda, acho que a maneira mais fácil é usar PROC EXPAND: E como mencionado no comentário de Johns, é importante lembrar sobre valores faltantes (e também sobre observações iniciais e finais). Eu adicionei a opção SETMISS ao código, como você deixou claro que deseja esconder valores faltantes, não ignorá-los (comportamento MOVAVE padrão). E se você quiser excluir as primeiras 4 observações para cada usuário (uma vez que não têm pré-histórico suficiente para calcular a média móvel 5), você pode usar a opção TRIMLEFT 4 dentro de TRANSFORMOUT (). Respondido 3 de dezembro 13 às 15:29
Pesquisa de Símbolos Copyright copy 2017 MarketWatch, Inc. Todos os direitos reservados. Ao usar este site, você concorda com os Termos de Serviço. Política de privacidade e política de cookies. Dados intraday fornecidos pela SIX Informações Financeiras e sujeito aos termos de uso. Dados históricos e atuais do fim do dia fornecidos pela SIX Financial Information. Dados intraday atrasados por requisitos de troca. Índices SPDow Jones (SM) da Dow Jones Company, Inc. Todas as citações estão em tempo de troca local. Dados em tempo real da última venda fornecidos pelo NASDAQ. Mais informações sobre o NASDAQ trocaram símbolos e seu status financeiro atual. Os dados intraday atrasaram 15 minutos para a Nasdaq e 20 minutos para outras trocas. Índices SPDow Jones (SM) da Dow Jones Company, Inc. Os dados intrínsecos da SEHK são fornecidos pela SIX Financial Information e tem pelo menos 60 minutos de atraso. Todas as citações estão em tempo de troca local. MarketWatch Top StoriesSymbol Lookup Co...
Comments
Post a Comment