Como analisar tendências em séries temporais não periódicas


12

Suponha que eu tenha as seguintes séries temporais não periódicas. Obviamente, a tendência está diminuindo e eu gostaria de provar isso por algum teste (com valor-p ). Não consigo usar a regressão linear clássica devido à forte correlação temporal (serial) entre os valores.

library(forecast)
my.ts <- ts(c(10,11,11.5,10,10.1,9,11,10,8,9,9,
               6,5,5,4,3,3,2,1,2,4,4,2,1,1,0.5,1),
            start = 1, end = 27,frequency = 1)
plot(my.ts, col = "black", type = "p",
     pch = 20, cex = 1.2, ylim = c(0,13))
# line of moving averages 
lines(ma(my.ts,3),col="red", lty = 2, lwd = 2)

insira a descrição da imagem aqui

Quais são as minhas opções?


4
Eu acho que o fato de a série não ser periódica ( frequency=1) é pouco relevante aqui. Uma questão mais relevante pode ser se você deseja especificar um formulário funcional para o seu modelo.
Richard Hardy

1
Mais algumas informações sobre quais são os dados provavelmente seriam úteis para modelagem.
Bdonovic

Os dados são contagens de indivíduos (em milhares) de certas espécies contadas todos os anos em reservatórios de água.
Ladislav Naďo

1
@LadislavNado é sua série tão curta quanto no exemplo fornecido? Pergunto porque, se assim for, reduz o número de métodos que podem ser empregados devido ao tamanho da amostra.
Tim

1
A obviedade do aspecto diminuição é bastante escala dependente, o que, para mim, deve ser levado em conta
Laurent Duval

Respostas:


7

Como você disse, a tendência nos dados de exemplo é óbvia. Se você deseja justificar esse fato apenas pelo teste de hipóteses, além de usar regressão linear (a escolha paramétrica óbvia), pode usar o teste não paramétrico de Mann-Kendall para tendência monotônica. O teste é usado para

avaliar se existe uma tendência monotônica para cima ou para baixo da variável de interesse ao longo do tempo. Uma tendência monotônica para cima (para baixo) significa que a variável aumenta consistentemente (diminui) ao longo do tempo, mas a tendência pode ou não ser linear. ( http://vsp.pnnl.gov/help/Vsample/Design_Trend_Mann_Kendall.htm )

além disso, como observado por Gilbert (1987), o teste

é particularmente útil, pois valores ausentes são permitidos e os dados não precisam estar em conformidade com nenhuma distribuição específica

A estatística do teste é a diferença entre as diferenças negativas e positivas entre todos os pares possíveis, ou seja,xjxin(n1)/2

S=i=1n1j=i+1nsgn(xjxi)

onde é uma função de sinal . pode ser usado para calcular estatísticas semelhantes à correlação, pois variam de a , onde o sinal sugere tendência negativa ou positiva e o valor de é proporcional à inclinação da tendência.sgn()S τ1+1τ

τ=Sn(n1)/2

Finalmente, você pode calcular os valores de . Para amostras de tamanho você pode usar tabelas de valores pré-computados para diferentes valores de e diferentes tamanhos de amostra (ver Gilbert, 1987). Com amostras maiores, primeiro você precisa calcular a variação depn10pSS

var(S)=118[n(n1)(2n+5)p=1gtp(tp1)(2tp+5)]

e depois calcular a estatística de testeZMK

ZMK={S1var(S)if S>00if S=0S+1var(S)if S<0

o valor de é comparado aos valores normais padrão ZMK

  • ZMKZ1α para tendência de alta,
  • ZMKZ1α para tendência de queda,
  • |ZMK|Z1α/2 para tendência ascendente ou descendente.

Em esta discussão pode encontrar código R implementação deste teste.

Como a estatística é comparada com todos os pares possíveis de observações, em vez de usar a aproximação normal para o valor você pode usar o teste de permutação que é óbvio para este caso. Primeiro, você calcula a estatística dos seus dados e, em seguida, embaralha aleatoriamente seus dados várias vezes e calcula-os para cada uma das amostras. é simplesmente a proporção de casos em que para tendência ascendente ou para tendência descendente.Dados S p S p SS permutação S dadosS permutaçãoSpSpSdataSpermutationSdataSpermutation


Gilbert, RO (1987). Métodos Estatísticos para Monitoramento da Poluição Ambiental. Wiley, NY.

Önöz, B. & Bayazit, M. (2003). O poder dos testes estatísticos para detecção de tendências. Revista Turca de Engenharia e Ciências Ambientais, 27 (4), 247-251.


1

O problema que você tem "Não consigo usar a regressão linear clássica devido à forte correlação temporal (serial) entre os valores". é na realidade uma oportunidade. Peguei seus 27 valores e usei a AUTOBOX um software (que eu ajudei a desenvolver) que pode (opcionalmente) determinar automaticamente um possível modelo. Aqui está o gráfico real / de ajuste e previsão insira a descrição da imagem aqui. A ACF dos resíduos está aqui com plotagem residual aqui insira a descrição da imagem aqui. O modelo está aqui insira a descrição da imagem aquie aqui insira a descrição da imagem aquie aquiinsira a descrição da imagem aqui. Dois coeficientes descrevem adequadamente os dados com estimativa de "tendência", também conhecida como "desvio", ou seja, diferencial de período para período de -.596. Observe que esse é um tipo de tendência em que seu modelo usou os números de contagem 1,2, ... 27 como uma variável preditora. Se seus dados sugerissem esse tipo de tendência, o software teria considerado mais aplicável. Vou tentar encontrar um post anterior que detalhava / contrastava completamente esses dois tipos de tendências. Aqui Identificando um modelo de tendência estocástico e Detectando tendências iniciais ou outliers

insira a descrição da imagem aqui


2
A previsão da Autobox perde todos os pontos interessantes de 1996, 1999, 2000, 2009 em que a tendência recente é quebrada. É quase como uma mudança de fase em um ano. Nesse sentido, não explica nada.
Aksakal

Sua recomendação anterior (simplória) de ajustar um polinômio de alto grau aos dados faria exatamente o que você solicitou. Mas não somos sobre montagem, somos sobre modelagem. O gráfico residual parece descrever adequadamente um processo de erro devido a algum fator externo / desconhecido. Todos os modelos estão errados, mas alguns são úteis. Acredito que este seja um modelo útil, mas se você acha que pode fazer melhor, publique seus resultados para que todos possamos aprender. Não há explicação para um modelo ARIMA, pois o passado é apenas um proxy para variáveis ​​omitidas.
IrishStat

2
Nesse caso, parece que não há muito a ver com estatísticas. Não é uma pergunta interessante sobre estatísticas. Há uma tendência óbvia, e o OP deve estudar a física do fenômeno. Eu acho que esses modelos se encaixam como na Autobox estão simplesmente levando o OP na direção errada. Eles não estão revelando nada de valor além do que já é evidente.
Aksakal

A questão é se a analítica pode ou não substituir o olho humano ... A análise revela o que o olho suporta. É por isso que praticamos estatísticas para fazer possivelmente mais do que pode ser imediatamente visível. A solução AUTOBOX leva o OP na direção certa, ou seja, para baixo. Seus comentários não são nada produtivos na minha opinião, MAS, como pedi anteriormente (educadamente), forneça uma alternativa viável baseada em estatísticas. Na minha opinião, esta é uma questão estatística muito interessante e requer uma resposta. Por favor, forneça um, se puder.
IrishStat

1

Você pode usar o coeficiente de correlação de classificação de Spearman para determinar o grau em que seus dados são monotônicos. Retorna valores positivos para dados crescentes monotônicos e valores negativos para dados decrescentes monotônicos (entre -1 e +1). Seguindo o link acima, há também uma seção que trata de testes de significância, embora eu esteja certo de que a maioria dos pacotes de software terá um valor p feito para você ao calcular os coeficientes de correlação (por exemplo, no Matlab:; [RHO,PVAL] = corr(...)no R cor.test(x,...):)


0

Você pode usar o OLS porque não há autocorrelação serial (pelo menos na amostra que você forneceu); observe a estatística do teste de Durbin-Watson de 1,966 (± 2).

Portanto, a estimativa do coeficiente significativamente negativo para x1 é tudo o que você precisa dizer algo como

A contagem observada de [certas espécies] está diminuindo em cerca de 1.000 por ano.

ou

A contagem observada de [certas espécies] está diminuindo entre 628 e 1.408 por ano (com 95% de confiança).

Isso pressupõe que a metodologia de contagem das espécies tenha boa cobertura e seja consistente ao longo dos anos em sua amostra.

insira a descrição da imagem aqui

Isso foi produzido com este código Python (desculpe; não tenha o R à mão):

import numpy as np
import statsmodels.api as sm

y = [10,12,10,11,8,9,6,4,2,4]
x = np.arange(len(y))
x = sm.add_constant(x)

mod = sm.OLS(y, x)
result = mod.fit()
print(result.summary())

0

Conhecer a fonte de dados seria muito útil e também as informações se os valores de my.tspudessem ficar negativos ou não.

No entanto, observando rapidamente o enredo, em vez de observar uma tendência linear constante , sugiro que a série temporal não seja estacionária, portanto integrada . Como exemplo, os preços das ações também são integrados, mas os retornos das ações não são mais (eles flutuam perto de 0).

Essa hipótese também pode ser testada usando o Teste Aumentado de Dickey Fuller:

require(tseries)
adf.test(my.ts)

Augmented Dickey-Fuller Test
Dickey-Fuller = -2.9557, Lag order = 2, p-value = 0.7727
alternative hypothesis: stationary

Dado que o valor-p não é menor que 0,05, não há evidências de que o processo seja estacionário.

Para obter os dados estacionários, é necessário diferenciá-los:

diff.ts <- diff(my.ts)
plot(diff.ts)

insira a descrição da imagem aqui

Agora, os dados não mostram mais nenhuma tendência e a única coisa que você encontrará é um termo autoregressivo da ordem 2 (usando acf(diff.ts)).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.