Médias móveis em R No meu melhor conhecimento, R não possui uma função interna para calcular as médias móveis. Usando a função de filtro, no entanto, podemos escrever uma função curta para médias móveis: podemos então usar a função em qualquer dado: mav (dados) ou mav (dados, 11) se quisermos especificar um número diferente de pontos de dados Do que o traçado padrão 5 funciona como esperado: plot (mav (data)). Além do número de pontos de dados sobre os quais a média, também podemos alterar o argumento lateral das funções de filtro: sides2 usa ambos os lados, sides1 usa apenas valores passados. Compartilhe isso: Publicar navegação Comentar navegação Comentar navegaçãoMoving Average Block Oi Pedro, o bloco faz o que se esperaria da média móvel: seja x a entrada, e as amostras de saída, N o comprimento da média móvel Esta é uma questão muito válida Id ainda Gostaria de salientar que o GNU Radio realmente se presta à experimentação. Um simples gráfico de fluxo de três blocos teria resolvido esse mistério para você: cumprimentos, Marcus Em 07.01.2017 19:23, Pedro Gabriel Adami escreveu: A documentação do bloco de média móvel me fez sentir confuso sobre sua funcionalidade. Diz: a saída é a soma móvel das últimas N amostras. Se eu precisar de uma soma de 100 amostras, esse bloco somará as 100 amostras que eu preciso e, depois disso, obterá outras amostras diferentes. Por exemplo: 123. 100 e 101102. 200. Ou fará isso: 12. 100 e 23 101 e 34. 102. Sei que parece confundir um pouco, mas não encontrei uma maneira melhor de explicar isso, desculpe. Desde já, obrigado. Ouvi, percebi que não respondi a todos quando respondi, então minha mensagem e a resposta de Pedro não foram encaminhadas para a lista de discussão: Le jeu. 7 janv. 2017 20:28, Pedro Gabriel Adami ltidden email gt a crit: Muito obrigado. Estou fazendo alguns testes e percebi que os resultados são um pouco estranhos. É por isso que eu perguntei. Permitam-me perguntar-lhe mais uma coisa: você conhece algum bloco que é capaz de reter N amostras, para que eu possa usá-las e, depois disso, ela mantém as próximas N amostras. Como uma variável onde eu posso quotavequotar a informação por um curto período de O tempo, mas o meu Gnuradio não tem um coletor quotvariable. Desde já, obrigado. Em 07012017 17:18, quotTimothe COCAULTquente e-mail chamado gt escreveu: quando você não está seguro, a melhor solução é muitas vezes olhar o código. Se você olhar para a função de trabalho em gr-blockslibmovingaverageXXimpl. cc. t, você vê que o bloco primeiro resume o histórico (do comprimento 100 no seu caso). Para cada item de entrada adicional, ele adiciona o novo item e subtrai o item n-100, e exibe a soma atual. Então, primeiro calculará 1. 100, então 2. 101 e assim por diante. Além da minha resposta anterior, I39m anexando uma imagem que mostra a fórmula I39m tentando construir no gnuradio (usando blocos). Mas em vez de n 0 e N-1, eu preciso de n 1 e 100 (100 amostras). A segunda imagem mostra como eu tentei fazer no Gnuradio, mas o bloco de média móvel não recebe 100 amostras da maneira que eu preciso (como pudemos ver nas respostas anteriores). Timothe me disse para usar o fluxo para o vetor, mas se eu embalá-los, cada 100 amostras se tornarão uma única informação, certo. O que eu preciso é mais como um controlador que me dá 100 amostras por vez. Por favor, agradeço se você pudesse me dar algumas dicas. Desde já, obrigado. 2017-01-08 14:47 GMT-02: 00 Timothe COCAULT lthidden email gt: Whoops, acabei de notar que não respondi a todos quando respondi, então minha mensagem e a resposta de Pedro não foram encaminhadas para a lista de discussão: Le jeu. 7 janv. 2017 20:28, Pedro Gabriel Adami ltidden email gt a crit: Muito obrigado. Estou fazendo alguns testes e percebi que os resultados são um pouco estranhos. É por isso que eu perguntei. Permitam-me perguntar-lhe mais uma coisa: você conhece algum bloco que é capaz de reter N amostras, para que eu possa usá-las e, depois disso, ela mantém as próximas N amostras. Como uma variável onde eu posso quotavequotar a informação por um curto período de O tempo, mas o meu Gnuradio não tem um coletor quotvariable. Desde já, obrigado. Em 07012017 17:18, quotTimothe COCAULTquente e-mail chamado gt escreveu: quando você não está seguro, a melhor solução é muitas vezes olhar o código. Se você olhar para a função de trabalho em gr-blockslibmovingaverageXXimpl. cc. t, você vê que o bloco primeiro resume o histórico (do comprimento 100 no seu caso). Para cada item de entrada adicional, ele adiciona o novo item e subtrai o item n-100, e exibe a soma atual. Então, primeiro calculará 1. 100, então 2. 101 e assim por diante. Não é senão a média móvel sobre a magnitude quadrada. Infelizmente, a sua fórmula não especifica o que significa T é T usado como uma única soma sobre N amostras de grandezas quadradas, ou está funcionando (ou seja, você obtém tantos Ts como você considera amostras. Eu apenas suponho que você realmente está procurando uma média móvel , No caso em que o seu gráfico de fluxo está correto. Timothe me disse para usar o fluxo para o vetor, mas se eu os embalar, cada 100 amostras se tornarão uma única informação, certo. O que eu preciso é mais como um controlador que me dá 100 amostras em um Na verdade, não tenho certeza de onde veio a fórmula que você anexou, ou o que você quer dizer, ou se o que você quer dizer é o que você precisa. Talvez você possa simplesmente anotar, explicitamente, o que cada amostra de saída deveria ser (por isso eu Escreveu em vez de). Atenciosamente, Marcus Em 12.01.2017 17:27, Pedro Gabriel Adami escreveu: Além da minha resposta anterior, estou anexando uma imagem que mostra a fórmula Im tentando construir no gnuradio (usando blocos). De n 0 e N-1, eu preciso de n 1 e 100 (100 amostras). O segundo pictur E mostra como eu tentei fazer no Gnuradio, mas o bloco de média móvel não recebe 100 amostras da maneira que eu preciso (como podemos ver nas respostas anteriores). Timothe me disse para usar o fluxo para o vetor, mas se eu embalá-los, cada 100 amostras se tornarão uma única informação, certo. O que eu preciso é mais como um controlador que me dá 100 amostras por vez. Por favor, agradeço se você pudesse me dar algumas dicas. Desde já, obrigado. 2017-01-08 14:47 GMT-02: 00 Timothe COCAULT lthidden email gt: Whoops, acabei de notar que não respondi a todos quando respondi, então minha mensagem e a resposta de Pedros não foram encaminhadas para a lista de discussão: Le jeu. 7 janv. 2017 20:28, Pedro Gabriel Adami ltidden email gt a crit: Muito obrigado. Estou fazendo alguns testes e percebi que os resultados são um pouco estranhos. É por isso que eu perguntei. Deixe-me perguntar-lhe mais uma coisa: você conhece algum bloco que é capaz de reter N amostras, então eu posso usá-las e, depois disso, ela conserva as próximas N amostras. Como uma variável onde eu posso salvar as informações por um curto período de Tempo, mas o meu Gnuradio não tem uma pia variável. Desde já, obrigado. Em 07012017 17:18, Timothe COCAULT lthidden email gt escreveu: Quando você não tem certeza, a melhor solução é muitas vezes olhar o código. Se você olhar para a função de trabalho em gr-blockslibmovingaverageXXimpl. cc. t, você vê que o bloco primeiro resume o histórico (do comprimento 100 no seu caso). Para cada item de entrada adicional, ele adiciona o novo item e subtrai o item n-100, e exibe a soma atual. Então, ele primeiro calculará 1. 100, então 2. 101 e assim por diante. Quando você passa apenas um vetor de dados para a função R plot (), faz um gráfico xy usando o índice do ponto como o valor x e os dados especificados Vetor pontos como o valor y. Como o arquivo de dados lista os dados em ordem histórica, o gráfico mostra o valor do índice SampP 500 ao longo do tempo. Isso não é ruim para três linhas de código No entanto, você pode criar uma trama mais bonita e melhorada usando o argumento () funções de argumentos opcionais. Por exemplo, para adicionar um título, um subtítulo e rótulos de eixo, digite: Isso produz o gráfico mostrado na Figura 4. Figura 4. Um gráfico de preço fechado SampP 500 anotado Continuando, você poderia usar as classes de data e eixo Rs para produzir um Eixo x que usa as datas armazenadas na coluna 1 do quadro de dados para rótulos. Consulte a documentação R para obter detalhes. Depois de gerar um gráfico, R fornece opções para adicionar novos dados. A média móvel de 90 dias é plotada em gráficos de índice de ações publicados no Wall Street Journal. Uma média móvel é o valor médio dos itens de dados n precedentes. Que tal exibir a média móvel do SampP 500 nos 90 dias anteriores. Na nomenclatura Rs, uma média móvel é um filtro (uma equação) aplicado a uma série temporal (valores do índice SampP 500). A função do filtro Rs () é complexa, oferecendo muitas opções diferentes de processamento de dados. Felizmente, os comandos reais para criar um conjunto de dados de média móvel de 90 dias são pequenos em comparação com o que as linguagens de programação padrão podem exigir: a primeira linha define um fator de ponderação para os dados no filtro: cada valor de SampP 500 no dia representará 190 dos Média móvel. A segunda linha cria o conjunto de dados de média móvel. A função rep () repete o coeficiente 190 90 vezes (incluindo 90 dias de dados SampP 500 na média móvel). O parâmetro sides1 especifica incluir apenas os pontos de dados posteriores na média móvel (que é como as médias moventes financeiras são sempre calculadas, porque não podemos prever o futuro). Adicione os dados médios móveis (variável ma90) ao gráfico existente como linha verde usando a função R (): a Figura 5 mostra o resultado. Figura 5. Preço de fechamento SampP 500 e média móvel de 90 dias
Comments
Post a Comment