Wednesday 12 July 2017

R Moving Average Missing Values


Um expoente positivo usado para calcular os pesos de tricube. Power3 dá os pesos usuais tricube. Valores menores dão mais ponderação. Deve ser maior que 0. Detalhes Esta função suaviza um vetor (considerado como uma série de tempo) usando uma média móvel com pesos tricube. Especificamente, a função calcula as médias ponderadas correntes de w valores consecutivos de x. Onde a largura da janela w é igual a 2h1 com h 2floor (spanlength (x) / 2). A largura da janela w é sempre ímpar para que cada janela tenha um dos valores x originais no centro. Cada média ponderada usa um conjunto de pesos de tricubos para que os valores próximos às extremidades da janela recebam menos peso. O mais suave retorna um vetor do mesmo comprimento como entrada. No início e no final do vetor, considera-se que a série é estendida por valores faltantes ea média ponderada é calculada somente sobre os valores observados. Em outras palavras, a largura da janela é reduzida para h1 nos limites com pesos assimétricos. O resultado dessa função é semelhante a uma curva de loess de mínimos quadrados de grau zero, com algumas diferenças. Primeiro, uma correção de continuidade é aplicada ao calcular a distância para pontos vizinhos, de modo que exatamente w pontos são incluídos com pesos positivos em cada média. Em segundo lugar, as metades span nos pontos finais de modo que o mais suave é mais sensível às tendências nas extremidades. A função de filtro no pacote stats é chamada para fazer os cálculos de nível baixo. Esta função é usada pelo barcodeplot para calcular worms de enriquecimento. Valor Vetor numérico de mesmo comprimento que x contendo valores suavizados. Author (s) Built-in Funções Extrair ou substituir substrings em um vetor de caracteres. X lt - quotabcdefquot substr (x, 2, 4) é quotbcdquot substr (x, 2, 4) lt - quot22222quot is quota222efquot Busca por padrão em x. Se FALSE fixo, o padrão é uma expressão regular. Se fixedTRUE, então pattern é uma string de texto. Retorna índices correspondentes. Grep (quotAquot, c (quotbquot, quotAquot, quotcquot), fixedTRUE) retorna 2 Encontre padrão em x e substitua por texto de substituição. Se fixedFALSE então pattern é uma expressão regular. Se T fixo, o padrão é uma string de texto. Sub (quotsquot, quot. quot, quotHello Therequot) retorna quotHello. Therequot Dividir os elementos do vetor de caracteres x na divisão. Strsplit (quotabcquot, quotquot) retorna 3 vetor de elemento quotaquot, quotbquot, quotcquot Concatenate strings depois de usar a seqüência de caracteres sep para separá-los. Colar (quotxquot, 1: 3, sepquotquot) retorna c (quotx1quot, quotx2quot quotx3quot) paste (quotxquot, 1: 3, sepquotMquot) retorna c (quotxM1quot, quotxM2quotxM3quot) paste (quotxay, Eu tenho 2 séries temporais (classe 39ts39) e eu quero traçar o acf para cada um ea ccf conjunta usando acf (ts. union (ts1, ts2)). De acordo com a ajuda da universidade, as almofadas de união com NAs para a cobertura de tempo total, mas o problema parece ser que uma série tem uma NA única, enquanto a outra tem 2 NAs. Ambas as séries têm 792 linhas de (data, valor). O comando ea resposta do R39s são: acf (ts. union (dalles. disch. ts, dalles. temp. ts)) Erro na. fail. default (as. ts (x)). Valores ausentes no objeto Existe uma maneira de massagear os dados de forma ts. union () aceita a entrada e passa-lo adequadamente para acf () Subconjuntos dos dados via dput () c (162000L, 127000L, 151000L, 172000L, 136000L, 150000L ) Pesquisa Discussões Rich Shepard Eu deveria ter escrito na primeira mensagem que quando eu tentei usar as duas séries de tempo com o NAs removido, ts. union me disse que os comprimentos de seqüência diferiram. De acordo com a ajuda ts. union que única diferença (790 vs 791) deveria ter sido preenchido com um NA se eu entender corretamente a página de ajuda. Rich Shepard escreveu: De acordo com a ajuda ts. union, quotts. union pads com NAs para a cobertura de tempo total, mas o problema parece ser que uma série Tem uma NA única enquanto a outra tem 2 NAs. Ambas as séries têm 792 linhas de (data, valor). Eu deveria ter escrito na primeira mensagem que quando eu tentei usar as duas séries temporais com as NAs removidas, ts. union me disse que os comprimentos de seqüência diferiam. De acordo com a ajuda ts. union que única diferença (790 vs 791) deveria ter sido preenchido com um NA se eu entender corretamente a página de ajuda. Por que você não está usando ts. intersect em vez de ts. union Bill Dunlap TIBCO Software wdunlap tibco ----- Mensagem Original ----- De: r-help-bounces em r-project. org mailto: r-help-bounces At r-project. org Em Nome De Rich Shepard Enviado: quinta-feira, 27 de março de 2014 5:45 Para: r-help at r-project. org Assunto: Re: R acf (ts. union ()): Missing Values Rich Shepard escreveu: De acordo com a ajuda ts. union, quotts. union pads com NAs para a cobertura de tempo total, mas o problema parece ser que uma série tem um único NA, enquanto o outro tem 2 NAs. Ambas as séries têm 792 linhas de (data, valor). Eu deveria ter escrito na primeira mensagem que quando eu tentei usar as duas séries temporais com as NAs removidas, ts. union me disse que os comprimentos de seqüência diferiam. De acordo com a ajuda ts. union que única diferença (790 vs 791) deveria ter sido preenchido com um NA se eu entender corretamente a página de ajuda. R-ajuda na lista de discussão r-project. org stat. ethz. ch/mailman/listinfo/r-help POR FAVOR leia o guia de postagem www. R-project. org/posting-guide e forneça comentários, mínimos, auto-contidos , Código reprodutível. Rich Shepard Bill, eu estava me perguntando a mesma coisa. A razão (talvez desculpa seria o termo mais apropriado) é a minha emulação do exemplo em Paul Cowpertwait e Andrew Metcalfe39s quotIntroductory séries de tempo em Rquot no capítulo 3. Reconheço que a intersecção dos dois conjuntos é mais apropriado do que a sua união. I39ll relatório de volta sobre se isso evita os erros. Muito obrigado, Rich On Thu, 27 Mar 2014, William Dunlap escreveu: Por que você não está usando ts. intersect em vez de ts. union Eu queria saber a mesma coisa. A razão (talvez desculpa seria o termo mais apropriado) é a minha emulação do exemplo em Paul Cowpertwait e Andrew Metcalfe39s quotIntroductory séries de tempo em Rquot no capítulo 3. Reconheço que a intersecção dos dois conjuntos é mais apropriado do que a sua união. I39ll relatório de volta sobre se isso evita os erros. Muito obrigado, Rich Shepard Mudar de ts. union () para ts. intersect () não fez a diferença. Então, eu voltei ao metal nu usando awk para gerar arquivos de texto de duas colunas, cada um consistindo de uma data e um interger ou valor real. Nenhum nome de coluna como um cabeçalho. Leia cada um com esta sintaxe: s95ec. z lt - read. zoo (quots95ec. datquot, sepquot. quot, format quotY-m-dquot Dois desses arquivos são: (s95ec. z): estrutura (c (85L, 80L, 85L , 90L, 110L, 90L, 100L, 875L, 85L, 83L, 75L, 49L, 65L, 57L, 55L, 64L, 60L, 80L, 80L, 45L, 65L, 83L, 60L, 40L, 62L, On Thu, 27 Mar 2014, Rich Shepard escreveu: I39ll relatório sobre se isso evita os erros. Cambiar de ts. union () para ts. intersect () não fez a diferença. Então, voltei ao metal nu, usando awk para gerar dois - Arquivos de texto de coluna, cada um consistindo de uma data e um interger ou valor real. Nenhum nome de coluna como um cabeçalho. Leia cada um com esta sintaxe: s95ec. z lt - read. zoo (quots95ec. datquot, sepquot. quot, format quotY - M-dquot Dois desses arquivos são: (s95ec. z): estrutura (c (85L, 80L, 85L, 90L, 110L, 90L, 100L, 875L, 85L, 83L, 75L, 49L, 65L, 57L, 55L, 60L, 80L, 80L, 45L, 65L, 83L, 60L, 40L, 62L, 80L, 119L, 55L, 65L, 44L, 48L, 68L, 43L, 50L, 70L, 52L, 45L, 66L, 92L, 92L, 134L, 77L, 38LL, 72L, 83L, 78L, 78L, 77L, 62L, 51L, 59L, 79L, 65L, 77L, 81L, 59L, 55L, 67L, 67L, 16L, 70L, 42L, 42L), estrutura de índice ( (8106, 8147, 8177, 8345, 8428, 8449, 8462, 8474, 8498, 8520, 8531, 8547, 8561, 8576, 8590, 8612, 8852, 8862, 8881, 8912, 8939, 9231, 9249, 9280, 9304, 9337, 9468, 9511, 9623, 9652, 9679, 9981, 9995, 10028, 10071, 10371, 10374, 10434, 10484, 10520, 10554, 10721, 10736, 10764, 10794, 10904, 10926, 11020, 11026, 11068, 11086, 11136, 11288, 11298, 11369, 11388, 11442, 11453, 11498, 11811, 11859, 12175, 12597, 12600), classe quotzooquot) e (s95tds. z): estrutura (c 47L , 45L, 30L, 10L, 42L, 45L, 51L, 33L, 18L, 49L, 49L, 58L, 54L, 32L, 35L, 40L, 28L, 34L, 48L, 34L, 43L, 41L, 56L, 82L, 61L, 66L , 33L, 56L, 26L, 41L, 42L, 31L, 52L, 39L, 24L, 27L, 50L, 31L, 50L, 95L, 22L, 33L, 96L, 68L, 22L, 56L, 29L, 35L, 10L, 1L, 1L 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 6L, 0L 0L, 0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 6L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L). Dim c (49 L, 2 L). Lista de Dimnames (NULL, c (quotV2quot, quotV3quot)), estrutura de índice (c (8852, 8862, 8881, 8912, 8939, 9231, 9249, 9280, 9304, 9337, 9468, 9511, 9623, 9652, 9679, 9981, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10 4 4, 10 4 34, 10 484, 10520, 10554, 10721, 10736, 10764, 10794, 10904, 10926, 11020, 11026, 11068, 11086, 11136, 11288, 11298, 11453, 11498, 11811, 11859, 12175, 12218, 12597, 12600), class quotDatequot), class quotzooquot) No entanto, quando eu tento traçar o acf para cada ccf e ccf com esta sintaxe: esta mensagem de erro é retornada: : Erro na avaliação do argumento 39x39 na seleção de um método para a função 39plot39: Erro em. cbind. ts (list (.). MakeNamesTs (.) , Dframe dframe, união FALSE): nenhuma série de tempo fornecida Desde que s95ec. z e s95tds. z são objetos de zoológico de séries de tempo de período irregular na classe quotzooquot, eu don39t ver onde o 39no série temporal suppled39 erro origina. Eu preciso especificar dframe FALSE no comando O que eu tenho errado em meu processo ou sintaxe de comando Rich Shepard) didn39t copiar, mas estava presente na linha de comando. Tentando especificar o método de plotagem, eu tento: plot. zoo (acf (ts. intersect (s95ec. z, s95tds. z))) que reduz o erro para o intrigante: Erro em. cbind. ts (list (.). MakeNamesTs (.), Dframe dframe, união FALSE). Nenhuma série de tempo fornecida porque o jardim zoológico é uma classe da série de tempo, ou assim que eu pensei. Rich On Thu, 27 Mar 2014, Rich Shepard escreveu: s95ec. z lt - read. zoo (quots95ec. datquot, sepquot. quot, format quotY-m-dquot) didn39t copiar, mas estava presente na linha de comando. Tentando especificar o método de plotagem, eu tento: plot. zoo (acf (ts. intersect (s95ec. z, s95tds. z))) que reduz o erro para o intrigante: Erro em. cbind. ts (list (.). MakeNamesTs (.), Dframe dframe, union FALSE): nenhuma série de tempo fornecida porque o zoo é uma classe de série de tempo, ou assim eu pensei. Eu sou novo para R e tendo problemas para descobrir isso. Tenho dados sobre as taxas de crescimento das árvores mortas, organizadas por ano. Assim, minha primeira coluna é ano e as colunas à direita são taxas de crescimento para árvores individuais, terminando no ano que cada árvore morreu. Depois que a árvore morreu, os valores são NA para os anos restantes no conjunto de dados. Eu preciso ter o crescimento médio para os 10 anos anteriores à morte de cada árvore, mas cada árvore morreu em um ano diferente. Alguém tem uma idéia de como fazer isso Aqui está um exemplo do que um conjunto de dados pode parecer: Então, as médias que eu preciso para calcular são: Uma vez que eu preciso fazer isso para um grande número de árvores, seria útil para Têm um método de automatizar o cálculo. Muito obrigado por qualquer ajuda Katie pediu 19/12 dezembro às 16: 30A especificação da parte não-sazonal do modelo ARIMA: os três componentes inteiros (p, d, q) são a ordem AR, o grau de diferenciação e A ordem MA. Uma especificação da parte sazonal do modelo ARIMA, mais o período (que assume o padrão de frequência (x)). Esta deve ser uma lista com componentes ordem e período. Mas uma especificação de apenas um vetor numérico de comprimento 3 será transformada em uma lista adequada com a especificação como a ordem. Opcionalmente, um vetor ou matriz de regressores externos, que deve ter o mesmo número de linhas que x. Caso o modelo ARMA inclua um termo de média / interceptação O padrão é TRUE para séries não diferenciadas e é ignorado para modelos ARIMA com diferenciação. Lógico se for verdade, os parâmetros AR são transformados para garantir que permaneçam na região de estacionaridade. Não usado para o método CSS. Para o método ML. Tem sido vantajoso definir transform. pars FALSE em alguns casos, veja também fixo. Vetor numérico opcional do mesmo comprimento que o número total de parâmetros. Se fornecido, apenas entradas de NA em fixo serão variadas. Transform. pars TRUE será substituído (com um aviso) se qualquer AR parâmetros são fixos. Pode ser sábio definir transform. pars FALSE ao fixar parâmetros MA, especialmente perto de não-invertibilidade. Vetor numérico opcional de valores de parâmetro iniciais. Os valores ausentes serão preenchidos por zeros, exceto pelos coeficientes de regressão. Os valores já especificados em fixed serão ignorados. Método de ajuste: máxima verossimilhança ou minimizar a soma condicional de quadrados. O padrão (a menos que haja valores em falta) é usar condicional-soma-de-quadrados para encontrar valores iniciais, então máxima verossimilhança. Pode ser abreviado. Somente usado se ajustado por soma-de-quadrados condicional: o número de observações iniciais a ignorar. Ele será ignorado se for menor do que o atraso máximo de um termo AR. Uma string especificando o algoritmo para calcular a inicialização do estado-espaço da probabilidade veja KalmanLike para detalhes. Pode ser abreviado. A variância prévia (como um múltiplo da variância das inovações) para as observações passadas em um modelo diferenciado. Não reduza isso. Detalhes Diferentes definições de ARMA modelos têm sinais diferentes para a AR e / ou MA coeficientes. A definição usada aqui tem Xt a1Xt-1 hellip apXt-p et b1et-1 hellip bqet-q e assim os coeficientes de MA diferem em sinal dos de S-PLUS. Além disso, se include. mean for true (o padrão para um modelo ARMA), esta fórmula se aplica a X-m em vez de X. Para modelos ARIMA com diferenciação, a série diferenciada segue um modelo ARMA de média zero. Se o termo am xreg for incluído, uma regressão linear (com um termo constante se include. mean for true e não houver diferenciação) é equipada com um modelo ARMA para o termo de erro. A matriz de variância das estimativas é encontrada a partir do Hessian do log-verossimilhança, e por isso só pode ser um guia áspero. A otimização é feita pelo optim. Funcionará melhor se as colunas em xreg forem escaladas aproximadamente à média zero e à variância da unidade, mas tenta estimar escalas apropriadas. Valor Uma lista da classe Arima com componentes: Uma lista que representa o Filtro de Kalman usado na montagem. Veja KalmanLike. Métodos de ajuste A probabilidade exata é calculada através de uma representação de espaço de estados do processo ARIMA, e as inovações e sua variação encontrada por um filtro de Kalman. A inicialização do processo ARMA diferenciado usa stationarity e é baseado em Gardner et al (1980). Para um processo diferenciado, os componentes não estacionários recebem uma prioridade difusa (controlada por kappa). As observações que ainda são controladas pelo anterior difuso (determinado por ter um ganho de Kalman de pelo menos 1e4) são excluídas dos cálculos de verossimilhança. (Isto dá resultados comparáveis ​​ao arima0 na ausência de valores faltantes, quando as observações excluídas são precisamente aquelas soltadas pela diferenciação.) Os valores ausentes são permitidos, e são tratados exatamente no método ML. Se transform. pars for true, a otimização é feita usando uma parametrização alternativa que é uma variação na sugerida por Jones (1980) e garante que o modelo é estacionário. Para um modelo AR (p) a parametrização é via inversa das autocorrelações parciais: o mesmo procedimento é aplicado (separadamente) aos RA e aos termos AR sazonais. Os termos de MA não são restritos para serem invertidos durante a otimização, mas serão convertidos em forma reversível após a otimização se transform. pars for true. A soma de quadrados condicionais é fornecida principalmente para fins expositivos. Isto calcula a soma dos quadrados das inovações cabidas da observação n. cond on, (onde n. cond é pelo menos o atraso máximo de um termo AR), tratando todas as inovações anteriores como sendo zero. Argumento n. cond pode ser usado para permitir comparabilidade entre diferentes ajustes. O lsquopart log-likelihoodrsquo é o primeiro termo, metade do log do quadrado médio estimado. Os valores em falta são permitidos, mas fará com que muitas das inovações faltem. Quando os regressores são especificados, eles são ortogonizados antes da montagem, a menos que qualquer dos coeficientes seja fixo. Pode ser útil escalar os regressores para uma média zero e uma variância unitária. Nota Os resultados são susceptíveis de serem diferentes dos S-PLUS arima. mle. Que calcula uma probabilidade condicional e não inclui uma média no modelo. Além disso, a convenção usada por arima. mle inverte os sinais dos coeficientes de MA. Arima é muito semelhante ao arima0 para modelos ARMA ou para modelos diferenciados sem valores em falta, mas manipula modelos diferenciados com valores faltando exatamente. É um pouco mais lento do que arima0. Particularmente para modelos sazonalmente diferenciados. Referências Brockwell, P. J. e Davis, R. A. (1996) Introdução às séries temporais e à previsão. Springer, Nova Iorque. Secções 3.3 e 8.3. Durbin, J. e Koopman, S. J. (2001) Time Series Analysis by State Space Methods. Imprensa da Universidade de Oxford. Gardner, G, Harvey, A. C. e Phillips, G. D. A. (1980) Algoritmo AS154. Um algoritmo para estimativa de máxima verossimilhança exata de modelos de média auto-regressiva-móvel por meio da filtragem de Kalman. Estatística Aplicada 29. 311ndash322. Harvey, A. C. (1993) Modelos de séries temporais. 2ª Edição, Harvester Wheatsheaf, secções 3.3 e 4.4. Jones, R. H. (1980) Máxima probabilidade de adaptação de modelos ARMA a séries temporais com observações faltantes. Technometrics 22 389ndash395. Ver também Exemplos

No comments:

Post a Comment