Monday 27 November 2017

Mudança De Padrão Padrão Padrão


Abaixo você pode ver meu método C para calcular Bandas Bollinger para cada ponto (média móvel, banda ascendente, banda descendente). Como você pode ver, esse método usa 2 para loops para calcular o desvio padrão móvel usando a média móvel. Ele costumava conter um loop adicional para calcular a média móvel nos últimos n períodos. Este eu poderia remover adicionando o novo valor de ponto a totalaverage no início do loop e removendo o valor do ponto i-n no final do loop. Minha pergunta agora é basicamente: Posso remover o loop interno restante de uma maneira similar que eu consegui com a média móvel perguntada em 31 de janeiro de 13 às 21:45 A resposta é sim, você pode. Em meados dos anos 80, desenvolvi apenas um algoritmo desse tipo (provavelmente não original) no FORTRAN para uma aplicação de monitoramento e controle de processo. Infelizmente, isso aconteceu há mais de 25 anos e não me lembro das fórmulas exatas, mas a técnica foi uma extensão da média móvel, com cálculos de segunda ordem em vez de apenas linear. Depois de olhar para o seu código, penso que posso descobrir como eu fiz isso naquela época. Observe como seu loop interno está fazendo uma Soma de Quadrados: da mesma forma que sua média deve ter originalmente uma Soma de Valores. As únicas duas diferenças são a ordem (seu poder 2 em vez de 1) e que você está subtraindo a média Cada valor antes de você marcar. Agora, isso pode parecer inseparável, mas na verdade eles podem ser separados: agora o primeiro termo é apenas uma Soma de Quadrados, você lida com a mesma maneira que você faz a soma de Valores para a média. O último termo (k2n) é apenas a média ao quadrado do período. Como você divide o resultado pelo período de qualquer maneira, você pode simplesmente adicionar o novo quadrado médio sem o loop extra. Finalmente, no segundo termo (SUM (-2vi) k), desde SUM (vi) total kn, você pode alterá-lo para este: ou apenas -2k2n. Que é -2 vezes o quadrado médio, uma vez que o período (n) é dividido novamente. Então, a fórmula combinada final é: (certifique-se de verificar a validade disso, já que eu estou derrubando o topo da minha cabeça) E incorporar seu código deve ser algo assim: Obrigado por isso. Eu usei isso como base de uma implementação em C para o CLR. Descobri que, na prática, você pode atualizar de forma que newVar seja um número negativo muito pequeno, e o sqrt falhar. Introduzi um if para limitar o valor a zero para este caso. Não é idéia, mas estável. Isso ocorreu quando cada valor na minha janela tinha o mesmo valor (usei um tamanho de janela de 20 e o valor em questão era 0,5, caso alguém pretendesse tentar reproduzir isso). Ndash Drew Noakes 26 de julho 13 às 15:25 Ive Usou common-math (e contribuiu para essa biblioteca) para algo muito parecido com isso. Sua fonte aberta, portar para C deve ser fácil como torta comprada na loja (você tentou fazer uma torta do zero). Confira: commons. apache. org/math/api-3.1.1/index. html. Eles têm uma classe StandardDeviation. Vá para a cidade respondeu Jan 31 13 às 21:48 Você já esqueci Desculpe, eu não tinha a resposta que você estava procurando. Eu definitivamente não queria sugerir portar toda a biblioteca. Apenas o código mínimo necessário, que deveria ser algumas centenas de linhas ou assim. Note-se que não tenho ideia do que as restrições legais / de direitos autorais apache têm nesse código, então você deve verificar isso. No caso de você persegui-lo, aqui está o link. De modo que o Variance FastMath ndash Jason Jan 31 13 às 22:36 A informação mais importante já foi dada acima --- mas talvez isso ainda seja de interesse geral. Uma pequena biblioteca Java para calcular média móvel e desvio padrão está disponível aqui: github / tools4j / meanvar A implementação é baseada em uma variante do método Welfords mencionado acima. Métodos para remover e substituir valores foram derivados que podem ser usados ​​para mover o valor windows. Como calcular as médias móveis no Excel Excel Data Analysis For Dummies, 2 ª edição O comando Data Analysis fornece uma ferramenta para calcular médias movimentadas e suavizadas exponencialmente no Excel. Suponha, por causa da ilustração, que você coletou informações de temperatura diária. Você deseja calcular a média móvel de três dias 8212 a média dos últimos três dias 8212 como parte de algumas previsões meteorológicas simples. Para calcular as médias móveis para este conjunto de dados, siga as etapas a seguir. Para calcular uma média móvel, primeiro clique no botão de comando Análise de Dados tab8217s Dados. Quando o Excel exibe a caixa de diálogo Análise de dados, selecione o item Média móvel da lista e clique em OK. O Excel exibe a caixa de diálogo Mover média. Identifique os dados que deseja usar para calcular a média móvel. Clique na caixa de texto Intervalo de entrada da caixa de diálogo Média móvel. Em seguida, identifique o intervalo de entrada, digitando um endereço de faixa de planilha ou usando o mouse para selecionar o intervalo da planilha. Sua referência de intervalo deve usar endereços de células absolutos. Um endereço de célula absoluto precede a letra da coluna e o número da linha com sinais, como em A1: A10. Se a primeira célula do seu intervalo de entrada incluir um rótulo de texto para identificar ou descrever seus dados, marque a caixa de seleção Etiquetas em primeira fila. Na caixa de texto Intervalo, diga ao Excel quantos valores incluir no cálculo da média móvel. Você pode calcular uma média móvel usando qualquer número de valores. Por padrão, o Excel usa os três valores mais recentes para calcular a média móvel. Para especificar que algum outro número de valores seja usado para calcular a média móvel, insira esse valor na caixa de texto Intervalo. Diga ao Excel onde colocar os dados médios móveis. Use a caixa de texto do intervalo de saída para identificar o intervalo da planilha na qual deseja colocar os dados médios móveis. No exemplo da planilha, os dados da média móvel foram colocados no intervalo da planilha B2: B10. (Opcional) Especifique se deseja um gráfico. Se você quiser um gráfico que traça as informações da média móvel, selecione a caixa de seleção da Saída do gráfico. (Opcional) Indique se deseja obter informações de erro padrão. Se você deseja calcular erros padrão para os dados, selecione a caixa de seleção Erros padrão. Excel coloca valores de erro padrão ao lado dos valores médios móveis. (As informações de erro padrão entram em C2: C10.) Depois de terminar de especificar quais as informações de média em movimento que deseja calcular e onde você deseja, clique em OK. O Excel calcula informações de média móvel. Nota: Se o Excel não possuir informações suficientes para calcular uma média móvel para um erro padrão, ele coloca a mensagem de erro na célula. Você pode ver várias células que mostram essa mensagem de erro como um valor.

No comments:

Post a Comment