Eu tenho uma matriz de séries temporais para 8 variáveis com cerca de 2500 pontos (10 anos de sexta-feira) e gostaria de calcular a média, a variância, a aspereza e a curtose em média móvel. Digamos quadros 100 252 504 756 - Gostaria de calcular as quatro funções acima em cada um dos quadros (time-), diariamente - de modo que o retorno para o dia 300 no caso com 100 dia-quadro seria significante Kurtosis de desvio de variância a partir do período dia 201-dia300 (100 dias no total). e assim por diante. Eu sei que isso significa que eu obteria uma saída de matriz, e o primeiro número de quadros seria NaNs, mas não consigo descobrir a indexação necessária para fazer isso. Perguntou 24 de março 14 às 0:07 Esta é uma questão interessante porque acho que a solução ideal é diferente da média do que é para as outras estatísticas da amostra. Eu forneci um exemplo de simulação abaixo que você pode trabalhar. Primeiro, escolha alguns parâmetros arbitrários e simule alguns dados. Para a média, use o filtro para obter uma média móvel: pensei inicialmente em resolver este problema usando conv da seguinte maneira: Mas como PhilGoddard apontou nos comentários, a abordagem do filtro evita a Necessidade do loop. Observe também que Ive escolheu para tornar as datas na matriz de saída correspondem às datas em X, então no trabalho posterior você pode usar os mesmos índices para ambos. Assim, as primeiras observações de WindowLength-1 em MeanMA serão nan. Para a variância, não consigo ver como usar qualquer filtro ou conv ou mesmo uma soma executória para tornar as coisas mais eficientes, então, em vez disso, eu executo o cálculo manualmente em cada iteração: Poderíamos acelerar as coisas levando ao explorar o fato de que já temos Calculou a média móvel média. Basta substituir a linha de loop dentro do acima com: No entanto, duvido que isso faça muita diferença. Se alguém pode ver uma maneira inteligente de usar o filtro ou o conv para obter a variante da janela em movimento, fique muito interessado em vê-lo. Eu deixo o caso de skewness e kurtosis para o OP, já que eles são essencialmente iguais ao exemplo de variância, mas com a função apropriada. Um ponto final: se você estivesse convertendo o acima em uma função geral, você poderia passar em uma função anônima como um dos argumentos, então você teria uma rotina média móvel que funcione para escolha arbitrária de transformações. Final, ponto final: para uma seqüência de comprimentos de janela, simplesmente desligue o bloco de código inteiro para cada comprimento de janela. Sim, a função de filtro é realmente melhor para o meio - mas eu queria fazer isso por várias funções diferentes, não só a média. Acabei de publicar minha resposta porque funcionou para mim e pensei que poderia ajudar alguém também. Ndash Dexter Morgan 15 de abril 14 às 12: 40 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 Im computação é uma série de 365 valores (M), que em si é 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 procurei 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. nl help econ move-average-trend-estimate. html) Meu problema, porém, é que 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 da mesma forma. E se eu estiver fazendo isso inteiramente errado, eu poderia obter alguma ajuda com ele 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 filtro móvel N de tamanho, 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 testar 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 da 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.
Ao calcular uma média móvel em execução, colocar a média no período de tempo médio faz sentido No exemplo anterior, calculamos a média dos primeiros 3 períodos de tempo e colocamos ao lado do período 3. Poderíamos ter colocado a média no meio do Intervalo de tempo de três períodos, isto é, ao lado do período 2. Isso funciona bem com períodos de tempo estranhos, mas não tão bons para períodos de tempo iguais. Então, onde colocamos a primeira média móvel quando M 4 Tecnicamente, a Média Móvel cairá em t 2,5, 3,5. Para evitar este problema, suavizamos as MAs usando M 2. Assim, suavizamos os valores suavizados. Se nós medimos um número par de termos, precisamos suavizar os valores suavizados. A tabela a seguir mostra os resultados usando M 4.Calculando um Índice Sazonal Este folheto Deve ser usado junto com o arquivo MS Excel seasonalindex. xls localizado na página inicial da classe Econ437. 1. Liste os preços mensais em ordem cronológica na coluna D da sua planilha. Exemplo. O conjunto de...
Comments
Post a Comment