Friday 18 August 2017

Moving average loop


Eu preciso calcular uma média móvel em uma série de dados, dentro de um loop for. Eu tenho que obter a média móvel em N9 dias. A matriz de computação é uma série de 365 valores (M), que em si são valores médios de outro conjunto de dados. Eu quero traçar os valores médios dos meus dados com a média móvel em um gráfico. Eu gritei um pouco sobre as médias móveis e o comando conv e encontrei algo que eu tentei implementar no meu código .: então, basicamente, eu calculo o meu significado e traço-o com uma média móvel (errada). Eu escolhi o valor de Wts diretamente do site Mathworks, então isso é incorreto. (Fonte: mathworks. nlhelpeconmoving-average-trend-estimate. html) Meu problema, porém, é que eu não entendo o que é isso. Alguém poderia explicar Se isso tem algo a ver com os pesos dos valores: isso é inválido neste caso. Todos os valores são ponderados o mesmo. E se eu estou fazendo isso inteiramente errado, eu poderia obter alguma ajuda com isso, meus mais sinceros agradecimentos. Perguntou 23 de setembro 14 às 19:05 Usando conv é uma excelente maneira de implementar uma média móvel. No código que você está usando, é o quanto você está pesando cada valor (como você adivinhou). A soma desse vetor deve ser sempre igual a uma. Se você deseja pesar cada valor de forma uniforme e fazer um tamanho N, mover o filtro, então você gostaria de fazer. Usando o argumento válido em conv resultaria em ter menos valores na Ms do que em M. Use o mesmo se você não se importar com os efeitos de Zero preenchimento. Se você tiver a caixa de ferramentas de processamento de sinal, você pode usar o cconv se quiser experimentar uma média móvel circular. Algo como Você deve ler a documentação conv e cconv para obter mais informações se você não tiver. Você pode usar o filtro para encontrar uma média em execução sem usar um loop for. Este exemplo encontra a média de execução de um vetor de 16 elementos, usando um tamanho de janela de 5. 2) liso como parte da Curva Fitting Toolbox (que está disponível na maioria dos casos) yy liso (y) suaviza os dados no vetor de coluna Usando um filtro de média móvel. Os resultados são retornados no vetor da coluna yy. O intervalo padrão para a média móvel é 5.Calculating Moving Average Este VI calcula e exibe a média móvel, usando um número pré-selecionado. Primeiro, o VI inicializa dois registros de deslocamento. O registro de deslocamento superior é inicializado com um elemento e, continuamente, adiciona o valor anterior com o novo valor. Este registro de deslocamento mantém o total das últimas x medições. Depois de dividir os resultados da função de adicionar com o valor pré-selecionado, o VI calcula o valor médio móvel. O registro de deslocamento inferior contém uma matriz com a dimensão Média. Este registro de deslocamento mantém todos os valores da medida. A função de substituição substitui o novo valor após cada loop. Este VI é muito eficiente e rápido porque usa a função de elemento de substituição dentro do loop while e ele inicializa a matriz antes de entrar no loop. Este VI foi criado no LabVIEW 6.1. Bookmark amp ShareR Evitando para Loop para média móvel Eu preciso calcular uma média móvel e uma média móvel ponderada exponencialmente em um conjunto de dados bastante grande (linhas de 500K). Fazer isso em um loop for funciona bem, mas é lento. Ewma lt - data36col1 N lt-dim (dados) 1 para (i em 2: N) dados36ewma lt-alpha data36ewmai-1 (1-alfa) data36valuei Uma vez que a média móvel continua a cobrar à medida que nos movemos através dos dados, eu não tenho certeza sobre o Melhor maneira de fazer isso. Alguém tem alguma sugestão sobre como evitar um loop fazendo isso - Noah Silverman Departamento de Estatística da UCLA 8117 Edifício das Ciências da Matemática 8208 Los Angeles, CA 90095 Pesquisar Discussões R. Michael Weylandt Você já olhou para o SMAEMA do pacote TTR Isso é muito rápido implementação. Runmean from caTools é ainda melhor para o SMA, mas não acho que é uma maneira fácil de transformar isso em um EWMA. Espero que isso ajude, Michael Weylandt em 2 de setembro de 2011 às 16:47. Você já olhou para o SMAEMA do pacote TTR que é uma implementação bastante rápida. Runmean from caTools é ainda melhor para o SMA, mas não acho que é uma maneira fácil de transformar isso em um EWMA. Espero que isso ajude, On Fri, 2 de setembro de 2011 às 12:43, Noah Silverman escreveu: Preciso calcular uma média móvel e uma média móvel ponderada exponencialmente em um conjunto de dados bastante grande (linhas de 500K). Fazer isso em um loop for funciona bem, mas é lento. Ewma lt - data36col1 N lt-dim (dados) 1 para (i em 2: N) dados36ewma lt-alpha data36ewmai-1 (1-alfa) data36valuei Uma vez que a média móvel continua a cobrar à medida que nos movemos através dos dados, eu não tenho certeza sobre o Melhor maneira de fazer isso. Alguém tem alguma sugestão sobre como evitar um loop fazendo isso - Noah Silverman UCLA Departamento de Estatística 8117 Math Sciences Building 8208 Los Angeles, CA 90095 alternativa versão HTML excluída r-helpr-project. org mailing list stat. ethz. chmailmanlistinfor - Ajuda POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentável, mínimo, autônomo e reprodutível. Joshua Ulrich SMA ainda chama o código Fortran, por isso é por isso que é mais lento do que caTools :: runmean. Eu movi o código EMA para C, então é tão rápido quanto possível. Noah, use o argumento da razão EMA39 para replicar o seu loop for. Melhor, - Joshua Ulrich FOSS Trading: fosstrading No sex, 2 de setembro de 2011 às 11h47, R. Michael Weylandt escreveu: Você já olhou para SMAEMA do pacote TTR That'ss uma implementação bastante rápida. Runmean from caTools é ainda melhor para o SMA, mas não acho que é uma maneira fácil de transformar isso em um EWMA. SMA ainda chama o código Fortran, então é por isso que é mais lento do que caTools :: runmean. Eu movi o código EMA para C, então é tão rápido quanto possível. Noah, use o argumento da razão EMA39 para replicar o seu loop for. Espero que isso ajude, - Joshua Ulrich FOSS Trading: fosstrading No sex. 2 de setembro de 2011 às 12:43, Noah Silverman escreveu: Preciso calcular uma média móvel e uma média móvel ponderada exponencialmente em um conjunto de dados bastante grande (500K Linhas). Fazer isso em um loop for funciona bem, mas é lento. Ewma lt - data36col1 N lt-dim (dados) 1 para (i em 2: N). Data36ewma lt-alpha data36ewmai-1 (1-alpha) data36valuei Uma vez que a média móvel continua a cobrar à medida que nos movemos através dos dados, eu não tenho certeza da melhor maneira de fazer isso. Alguém tem alguma sugestão sobre como evitar um loop fazendo isso - Noah Silverman UCLA Departamento de Estatística 8117 Math Sciences Building 8208 Los Angeles, CA 90095. Versão HTML alternativa excluída R-help na lista de endereços r-project. org stat. ethz. chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentado, mínimo, autônomo e reprodutível. Versão HTML alternativa excluída R-help na lista de endereços r-project. org stat. ethz. chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentado, mínimo, autônomo e reprodutível. Noah Silverman Joshua, obrigado pela dica. Eu preciso quotrollar meu próprio código sobre isso. Mas talvez eu possa emprestar algum código do pacote que você mencionou. O pacote apenas está executando o loop, mas em um idioma mais rápido - Noah Silverman UCLA Departamento de Estatística 8117 Math Sciences Building 8208 Los Angeles, CA 90095 Obrigado pela dica. Eu preciso quotrollar meu próprio código sobre isso. Mas talvez eu possa emprestar algum código do pacote que você mencionou. O pacote apenas está executando o loop, mas em um idioma mais rápido - Noah Silverman Departamento de Estatística da UCLA 8117 Edifício das Ciências da Matemática 8208 Los Angeles, CA 90095 No dia 2 de setembro de 2011, às 9:58 da manhã, Joshua Ulrich escreveu: On Fri, 2 de setembro de 2011 às 11h47, R. Michael Weylandt escreveu: Você já olhou para SMAEMA do pacote TTR That'ss uma implementação bastante rápida. Runmean from caTools é ainda melhor para o SMA, mas não acho que é uma maneira fácil de transformar isso em um EWMA. SMA ainda chama o código Fortran, então é por isso que é mais lento do que caTools :: runmean. Eu movi o código EMA para C, então é tão rápido quanto possível. Noah, use o argumento da razão EMA39 para replicar o seu loop for. Espero que isso ajude, melhor, - Joshua Ulrich FOSS Trading: fosstrading No sex., 2 de setembro de 2011 às 12:43, Noah Silverman escreveu: Preciso calcular uma média móvel e uma média móvel ponderada exponencialmente em um conjunto de dados bastante grande (Linhas de 500K). Fazer isso em um loop for funciona bem, mas é lento. Ewma lt - data36col1 N lt-dim (dados) 1 para (i em 2: N) dados36ewma lt-alpha data36ewmai-1 (1-alfa) data36valuei Uma vez que a média móvel continua a cobrar à medida que nos movemos através dos dados, eu não tenho certeza sobre o Melhor maneira de fazer isso. Alguém tem alguma sugestão sobre como evitar um loop fazendo isso - Noah Silverman UCLA Departamento de Estatística 8117 Math Sciences Building 8208 Los Angeles, CA 90095 alternativa versão HTML excluída r-helpr-project. org mailing list stat. ethz. chmailmanlistinfor - Ajuda POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentável, mínimo, autônomo e reprodutível. Versão HTML alternativa excluída r-helpr-project. org lista de discussão stat. ethz. chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentado, mínimo, autônomo e reprodutível. Em sex, 2 de setembro de 2011 às 12:06, Noah Silverman escreveu: Joshua, obrigado pela dica. Eu preciso quotrollar meu próprio código sobre isso. Mas talvez eu possa emprestar algum código do pacote que você mencionou. O pacote apenas está executando o loop, mas em um idioma mais rápido Como eu disse, a função está em C. Você também pode usar o pacote do compilador para compilar sua função R pura para uma aceleração 3-4x. - Joshua Ulrich FOSS Trading: fossorização - Noah Silverman Departamento de Estatística da UCLA 8117 Edifício das Ciências da Matemática 8208 Los Angeles, CA 90095 No dia 2 de setembro de 2011, às 9:58 da manhã, Joshua Ulrich escreveu: Em sex, 2 de setembro de 2011, em 11:47, R. Michael Weylandt escreveu: Você já olhou para o SMAEMA do pacote TTR que é uma implementação bastante rápida. Runmean from caTools é ainda melhor para o SMA, mas não acho que é uma maneira fácil de transformar isso em um EWMA. SMA ainda chama o código Fortran, então é por isso que é mais lento do que caTools :: runmean. Eu movi o código EMA para C, então é tão rápido quanto possível. Noah, use o argumento da razão EMA39 para replicar o seu loop for. Espero que isso ajude, melhor, - Joshua Ulrich FOSS Trading: fosstrading No sex., 2 de setembro de 2011 às 12:43, Noah Silverman escreveu: Preciso calcular uma média móvel e uma média móvel ponderada exponencialmente em um conjunto de dados bastante grande (Linhas de 500K). Fazer isso em um loop for funciona bem, mas é lento. Ewma lt - data36col1 N lt-dim (dados) 1 para (i em 2: N). Data36ewma lt-alpha data36ewmai-1 (1-alpha) data36valuei Uma vez que a média móvel continua a cobrar à medida que nos movemos através dos dados, eu não tenho certeza da melhor maneira de fazer isso. Alguém tem alguma sugestão sobre como evitar um loop fazendo isso - Noah Silverman UCLA Departamento de Estatística 8117 Math Sciences Building 8208 Los Angeles, CA 90095. Versão HTML alternativa excluída R-help na lista de endereços r-project. org stat. ethz. chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentado, mínimo, autônomo e reprodutível. Versão HTML alternativa excluída R-help na lista de endereços r-project. org stat. ethz. chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentado, mínimo, autônomo e reprodutível. . Versão HTML alternativa excluída R-help na lista de endereços r-project. org stat. ethz. chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentado, mínimo, autônomo e reprodutível. Noah Silverman Obrigado Joshua, eu realmente gosto do exemplo dado na publicação do blog que Abhijit me apontou. Fazê-lo em C usando o Inline parece ser uma maneira fácil de obter uma enorme melhoria na velocidade sem o incômodo de escrever um pacote. Estou trabalhando na codificação disso agora. - Noah Silverman Departamento de Estatística da UCLA 8117 Edifício das Ciências da Matemática 8208 Los Angeles, CA 90095 Eu realmente gosto do exemplo dado na publicação do blog que Abhijit me apontou. Fazê-lo em C usando o Inline parece ser uma maneira fácil de obter uma enorme melhoria na velocidade sem o incômodo de escrever um pacote. Estou trabalhando na codificação disso agora. - Noah Silverman Departamento de Estatística da UCLA 8117 Edifício das Ciências da Matemática 8208 Los Angeles, CA 90095 No dia 2 de setembro de 2011, às 10:32, Joshua Ulrich escreveu: No dia 2 de fevereiro de 2011 às 12:06, Noah Silverman escreveu : Joshua, obrigado pela dica. Eu preciso quotrollar meu próprio código sobre isso. Mas talvez eu possa emprestar algum código do pacote que você mencionou. O pacote apenas está executando o loop, mas em um idioma mais rápido Como eu disse, a função está em C. Você também pode usar o pacote do compilador para compilar sua função R pura para uma aceleração 3-4x. Melhor, - Joshua Ulrich FOSS Trading: fosshatagem - Noah Silverman Departamento de Estatística da UCLA 8117 Edifício das Ciências da Matemática 8208 Los Angeles, CA 90095 No dia 2 de setembro de 2011, às 9:58, Joshua Ulrich escreveu: Em sex, 2 de setembro, 2011 às 11:47, R. Michael Weylandt escreveu: Você já olhou para o SMAEMA do pacote TTR. Isso é uma implementação bastante rápida. Runmean from caTools é ainda melhor para o SMA, mas não acho que é uma maneira fácil de transformar isso em um EWMA. SMA ainda chama o código Fortran, então é por isso que é mais lento do que caTools :: runmean. Eu movi o código EMA para C, então é tão rápido quanto possível. Noah, use o argumento da razão EMA39 para replicar o seu loop for. Espero que isso ajude, melhor, - Joshua Ulrich FOSS Trading: fosstrading No sex., 2 de setembro de 2011 às 12:43, Noah Silverman escreveu: Preciso calcular uma média móvel e uma média móvel ponderada exponencialmente em um conjunto de dados bastante grande (Linhas de 500K). Fazer isso em um loop for funciona bem, mas é lento. Ewma lt - data36col1 N lt-dim (dados) 1 para (i em 2: N) dados36ewma lt-alpha data36ewmai-1 (1-alfa) data36valuei Uma vez que a média móvel continua a cobrar à medida que nos movemos através dos dados, eu não tenho certeza sobre o Melhor maneira de fazer isso. Alguém tem alguma sugestão sobre como evitar um loop fazendo isso - Noah Silverman UCLA Departamento de Estatística 8117 Math Sciences Building 8208 Los Angeles, CA 90095 alternativa versão HTML excluída r-helpr-project. org mailing list stat. ethz. chmailmanlistinfor - Ajuda POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentável, mínimo, autônomo e reprodutível. Versão HTML alternativa excluída r-helpr-project. org lista de discussão stat. ethz. chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentado, mínimo, autônomo e reprodutível. Versão HTML alternativa excluída r-helpr-project. org lista de discussão stat. ethz. chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentado, mínimo, autônomo e reprodutível. A função 39filter39 deve ser capaz de fazer o que deseja de forma eficiente. No 02092011 18:06, Noah Silverman escreveu: Joshua, obrigado pela dica. Eu preciso quotrollar meu próprio código sobre isso. Mas talvez eu possa emprestar algum código do pacote que você mencionou. O pacote apenas está executando o loop, mas em um idioma mais rápido - Noah Silverman Departamento de Estatística da UCLA 8117 Edifício das Ciências da Matemática 8208 Los Angeles, CA 90095 No dia 2 de setembro de 2011, às 9:58 da manhã, Joshua Ulrich escreveu: On Fri, 2 de setembro de 2011 às 11h47, R. Michael Weylandt escreveu: Você já olhou para SMAEMA do pacote TTR That'ss uma implementação bastante rápida. Runmean from caTools é ainda melhor para o SMA, mas não acho que é uma maneira fácil de transformar isso em um EWMA. SMA ainda chama o código Fortran, então é por isso que é mais lento do que caTools :: runmean. Eu movi o código EMA para C, então é tão rápido quanto possível. Noah, use o argumento da razão EMA39 para replicar o seu loop for. Espero que isso ajude, melhor, - Joshua Ulrich FOSS Trading: fosstrading No sex., 2 de setembro de 2011 às 12:43, Noah Silverman escreveu: Preciso calcular uma média móvel e uma média móvel ponderada exponencialmente em um conjunto de dados bastante grande ( Linhas de 500K). Fazer isso em um loop for funciona bem, mas é lento. Ewmalt - data36col1 Nlt-dim (dados) 1 para (i em 2: N) dados36ewmalt - dados alfa36ewmai-1 (1-alfa) data36valuei Uma vez que a média móvel continua a cobrar à medida que nos movemos através dos dados, eu não tenho certeza da melhor maneira de faça isso. Alguém tem alguma sugestão sobre como evitar um loop fazendo isso - Noah Silverman UCLA Departamento de Estatística 8117 Math Sciences Building 8208 Los Angeles, CA 90095 versão HTML alternativa excluída R-help na lista de endereços r-project. org stat. ethz. Chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentável, mínimo, autônomo e reprodutível. Versão HTML alternativa excluída R-help na lista de endereços r-project. org stat. ethz. chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentado, mínimo, autônomo e reprodutível. Versão HTML alternativa excluída R-help na lista de endereços r-project. org stat. ethz. chmailmanlistinfor-help POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentado, mínimo, autônomo e reprodutível. Há uma publicação de blog recente de Dirk Eddelbeutel sobre como fazer algo semelhante usando seu pacote Rcpp e C, com melhorias de tempo maciças. Em 922011 12:43, Noah Silverman escreveu: Olá, eu preciso calcular uma média móvel e uma média móvel ponderada exponencialmente em um conjunto de dados bastante grande (linhas de 500K). Fazer isso em um loop for funciona bem, mas é lento. Ewmalt - data36col1 Nlt-dim (dados) 1 para (i em 2: N) dados36ewmalt - dados alfa36ewmai-1 (1-alfa) data36valuei Uma vez que a média móvel continua a cobrar à medida que nos movemos através dos dados, eu não tenho certeza da melhor maneira de faça isso. Alguém tem alguma sugestão sobre como evitar um loop fazendo isso - Noah Silverman UCLA Departamento de Estatística 8117 Math Sciences Building 8208 Los Angeles, CA 90095 alternativa versão HTML excluída r-helpr-project. org mailing list stat. ethz. chmailmanlistinfor - Ajuda POR FAVOR, leia o guia de publicação R-project. orgposting-guide. html e forneça um código comentável, mínimo, autônomo e reprodutível.

No comments:

Post a Comment