Comment analyser la tendance dans les séries chronologiques non périodiques

12

Supposons que j'ai des séries chronologiques non périodiques suivantes. Évidemment, la tendance est à la baisse et je voudrais le prouver par un test (avec une valeur de p ). Je ne peux pas utiliser la régression linéaire classique en raison d'une forte auto-corrélation temporelle (série) entre les valeurs.

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)

entrez la description de l'image ici

Quelles sont mes options?

Ladislav Naďo
la source
4
Je pense que le fait que la série soit non périodique ( frequency=1) est peu pertinent ici. Une question plus pertinente pourrait être de savoir si vous êtes prêt à spécifier une forme fonctionnelle pour votre modèle.
Richard Hardy
1
Des informations supplémentaires sur ce que sont les données seraient probablement utiles pour la modélisation.
bdeonovic
Les données sont des dénombrements d'individus (en milliers) de certaines espèces dénombrés chaque année dans le réservoir d'eau.
Ladislav Naďo
1
@LadislavNado est votre série aussi courte que dans l'exemple fourni? Je demande parce que si c'est le cas, cela réduit le nombre de méthodes qui peuvent être utilisées en raison de la taille de l'échantillon.
Tim
1
L'évidence de l'aspect décroissant est assez dépendante de l'échelle, ce qui, pour moi, doit être pris en compte
Laurent Duval

Réponses:

7

Comme vous l'avez dit, la tendance dans vos données d'exemple est évidente. Si vous voulez simplement justifier ce fait par un test d'hypothèse, en plus d'utiliser la régression linéaire (le choix paramétrique évident), vous pouvez utiliser le test de Mann-Kendall non paramétrique pour la tendance monotone. Le test est utilisé pour

évaluer s'il y a une tendance à la hausse ou à la baisse monotone de la variable d'intérêt au fil du temps. Une tendance monotone à la hausse (à la baisse) signifie que la variable augmente (diminue) de façon constante dans le temps, mais la tendance peut être ou non linéaire. ( http://vsp.pnnl.gov/help/Vsample/Design_Trend_Mann_Kendall.htm )

de plus, comme le note Gilbert (1987), le test

est particulièrement utile car les valeurs manquantes sont autorisées et les données n'ont pas besoin d'être conformes à une distribution particulière

Xj-Xjen(n-1)/2

S=je=1n-1j=je+1nsgn(Xj-Xje)

sgn()S τ-1+1τ

τ=Sn(n-1)/2

pndixpSS

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

ZMK

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

ZMK

  • ZMKZ1-α
  • ZMK-Z1-α
  • |ZMK|Z1-α/2

Dans ce fil, vous pouvez trouver du code R implémentant ce test.

SpSpSLes donnéesSpermutationSLes donnéesSpermutation


Gilbert, RO (1987). Méthodes statistiques pour la surveillance de la pollution de l'environnement. Wiley, NY.

Önöz, B. et Bayazit, M. (2003). La puissance des tests statistiques pour la détection des tendances. Journal turc des sciences de l'ingénieur et de l'environnement, 27 (4), 247-251.

Tim
la source
1

Le problème que vous avez "Je ne peux pas utiliser la régression linéaire classique en raison d'une forte auto-corrélation temporelle (série) entre les valeurs". est en réalité une opportunité. J'ai pris vos 27 valeurs et utilisé AUTOBOX un logiciel (que j'ai aidé à développer) qui peut (éventuellement) déterminer automatiquement un modèle possible. Voici le graphique réel / ajustement et prévision entrez la description de l'image ici. L'ACF des résidus est ici avec le tracé résiduel ici entrez la description de l'image ici. Le modèle est ici entrez la description de l'image iciet ici entrez la description de l'image iciet icientrez la description de l'image ici. Deux coefficients décrivent bien les données avec une "tendance" estimée "dérive", c'est-à-dire un différentiel de période à période de -.596. Notez qu'il s'agit d'un type de tendance où votre modèle a utilisé les nombres de comptage 1,2, ... 27 comme variable prédictive. Si vos données suggéraient ce type de tendance, le logiciel l'aurait trouvé plus applicable. Je vais essayer de trouver un de mes articles précédents qui a détaillé / contrasté ces deux types de tendances. Ici Identifier un modèle de tendance stochastique et détecter la tendance initiale ou les valeurs aberrantes

entrez la description de l'image ici

IrishStat
la source
2
Les prévisions Autobox manquent tous les points intéressants de 1996, 1999, 2000 et 2009 où la tendance récente est rompue. C'est presque comme un décalage de phase d'un an. À cet égard, cela n'explique rien.
Aksakal
Votre recommandation précédente (ironique) d'ajuster un polynôme de haut niveau aux données ferait exactement ce que vous avez demandé. Mais nous ne sommes pas sur l'ajustement, nous sommes sur la modélisation. Le tracé résiduel semble décrire adéquatement un processus d'erreur dû à un facteur externe / inconnu. Tous les modèles sont faux mais certains sont utiles. Je pense que c'est un modèle utile, mais si vous pensez que vous pouvez faire mieux, veuillez publier vos résultats afin que nous puissions tous apprendre. Il n'y a aucune explication à partir d'un modèle ARIMA car le passé n'est qu'un proxy pour les variables omises.
IrishStat
2
Dans ce cas, il semble qu'il n'y ait pas grand-chose à voir avec les statistiques. Ce n'est pas du tout une question de statistiques intéressante. Il y a une tendance évidente, et OP doit étudier la physique du phénomène. Je pense que ces modèles, comme ceux d'Autobox, conduisent simplement OP dans la mauvaise direction. Ils ne révèlent rien de valeur au-delà de ce qui est déjà évident.
Aksakal
La question est de savoir si l'analyse peut ou non remplacer l'œil humain ... L'analyse révèle ce que l'œil soutient, c'est pourquoi nous pratiquons la statistique afin de faire éventuellement plus que ce qui est immédiatement visible. La solution AUTOBOX mène l'OP dans la bonne direction, c'est-à-dire vers le bas. Vos commentaires ne sont pas du tout productifs à mon avis MAIS comme je l'ai déjà demandé (poliment) veuillez fournir une alternative viable basée sur des statistiques. À mon avis, c'est une question statistique très intéressante qui nécessite une réponse. Veuillez en fournir un si vous le pouvez.
IrishStat
1

Vous pouvez utiliser le coefficient de corrélation de rang de Spearman pour déterminer le degré de monotonie de vos données. Il renvoie des valeurs positives pour les données monotones croissantes et des valeurs négatives pour les données monotones décroissantes (entre -1 et +1). En suivant le lien ci - dessus, il y a aussi un test de signification de négociation de la section, même si je suis sûr que la plupart des logiciels ont une valeur p faite pour vous lors du calcul des coefficients de corrélation (par exemple dans Matlab: [RHO,PVAL] = corr(...); en R: cor.test(x,...))

Alexander F.
la source
0

Vous pouvez utiliser OLS car il n'y a pas d'autocorrélation en série (au moins dans l'échantillon que vous avez fourni); notez la statistique de test de Durbin-Watson de 1,966 (≈2).

Donc, l'estimation du coefficient significativement négative pour x1 est tout ce dont vous avez besoin pour dire quelque chose comme

Le nombre observé de [certaines espèces] diminue d'environ 1 000 par an.

ou

Le nombre observé de [certaines espèces] diminue entre 628 et 1 408 par an (avec un niveau de confiance de 95%).

Cela suppose que la méthodologie de comptage des espèces a une bonne couverture et est cohérente au fil des ans dans votre échantillon.

entrez la description de l'image ici

Cela a été produit avec ce code Python (désolé, je n'ai pas R à portée de main):

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())
Amérique
la source
0

Connaître la source des données serait très utile, ainsi que les informations si les valeurs de my.ts pourraient devenir négatives ou non.

Cependant, en jetant un coup d'œil sur l'intrigue, plutôt que de voir une tendance linéaire constante , je suggère plutôt que la série chronologique n'est pas stationnaire, donc intégrée . À titre d'exemple, les cours des actions sont également intégrés, mais les rendements des actions ne sont plus (ils fluctuent près de 0).

Cette hypothèse peut également être testée à l'aide du test Dickey Fuller augmenté:

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

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

Étant donné que la valeur de p n'est pas inférieure à 0,05, rien n'indique que le processus est stationnaire.

Pour obtenir les données stationnaires, vous devez les différencier:

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

entrez la description de l'image ici

Maintenant, les données ne montrent plus de tendance , et la seule chose que vous trouverez est un terme autorégressif d'ordre 2 (en utilisant acf(diff.ts)).

lambruscoAcido
la source