Processus indiqué comme stationnaire alors que non

a marqué ce sujet comme résolu.

Bonjour,

J'utilise la bibliothèque statsmodels (Python) et je travaille sur ces données (chez moi, les graphes ne s'affichent pas sur GitHub).

Conformément à cet exemple, je génère un modèle :

1
2
3
4
5
6
import statsmodels.api as sm

p = 1
d = 0
q = 1
model = sm.tsa.ARIMA(data, (p, d, q)).fit()

Puis, en m'inspirant de ça, je crée un processus :

1
process = sm.tsa.ArmaProcess(model.arparams, model.maparams)

Or l'ACF et la PACF montrent assez clairement qu'il n'est pas stationnaire. Pourtant :

1
2
3
4
>>> process.isinvertible
True
>>> process.isstationary
True

Et, mais ça semble plus cohérent, on retrouve le même résultat (sauf au niveau des paramètres AR et MA) après une différenciation.

Ai-je mal compris quelque chose ou y a-t-il un problème au niveau de la lib ?

Merci !

+0 -0

Un peu en vrac :

  • d'après tes données, le phénomène n'est pas stationnaire à l'échelle de la journée. Je veux dire que le jour choisi influence les données trouvées.
  • il l'est cependant peut-être au niveau de l'année. C'est à dire que, en moyenne, la quantité observée est constante sur une année (pas de vieillissement).
  • tu vérifies si ton modèle, et non tes données, est stationnaire.

Après, je ne comprends pas très bien ce que tu fait. :euh:

+1 -0

Après, je ne comprends pas très bien ce que tu fait. :euh:

J'ai malheureusement l'impression que moi non plus…

  • d'après tes données, le phénomène n'est pas stationnaire à l'échelle de la journée. Je veux dire que le jour choisi influence les données trouvées.
  • il l'est cependant peut-être au niveau de l'année. C'est à dire que, en moyenne, la quantité observée est constante sur une année (pas de vieillissement).

Je ne comprends pas. Dans ce que j'ai lu à propos de la stationnarité des séries temporelles, il n'est pas question de durée. Une série est stationnaire ou ne l'est pas : http://www.analyticsvidhya.com/blog/2015/02/step-step-guide-learn-time-series/

Non ?

  • tu vérifies si ton modèle, et non tes données, est stationnaire.

Le premier n'est-il pas censé refléter les secondes ?

+1 -0

Dans ce que j'ai lu à propos de la stationnarité des séries temporelles, il n'est pas question de durée. Une série est stationnaire ou ne l'est pas

Tu as raison. Je me suis mélangé avec périodique.

Le premier n'est-il pas censé refléter les secondes ?

« est censé » :D Ton phénomène n'est pas stationnaire (mais peut-être périodique), ton modèle est stationnaire. Soit il y a une erreur quelque part (interprétation, calcul…), soit le modèle ne décrit pas correctement les données. Je ne trancherai pas…

D'où la question : quel modèle utilises-tu ?

À vue de nez, un truc du genre $1-e^{-t}-t$ (essayes de tracer 1-exp(-x)-x/4 entre 0 et 5, ça donne qualitativement le même résultat quand tu ajoute un bruit gaussien). J'ai essayé, pour rire. Ça donne ça :

À vue de nez, c'est pas trop mal.

D'où ma question : quel est ton modèle mathématique testé ?

+0 -0

Il est en effet périodique. Il s'agit de production laitière et une période s'appelle une lactation : vêlage (accouchement), production, tarissement (congés maternité).

J'utilise le modèle ARIMA, qui me pose d'ailleurs des problèmes au niveau de la prédiction.

Ce modèle me convient bien parce qu'il s'adapte facilement à l'animal. En effet, tous ne sont pas pareils : https://github.com/Vayel/MPF/tree/master/data/views/crude

+0 -0

OK. Je viens de voir l'autre sujet, et effectivement, le modèle à l'air de bien coller (et il n'est pas stationnaire !). Le problème est plus clair. Malheureusement, je n'ai pas de réponse… Désolé.

+0 -0

Le test augmenté de Dickey-Fuller semble le confirmer :

1
2
3
ADF crude: (-3.8535137605866305, 0.0024048823206302677, 23, 1483, {'5%': -2.8634908922653302, '10%': -2.5678086339403325, '1%': -3.4347671645756304}, 7982.1399270341799)

ADF diff 1: (-7.8470556885881599, 5.7318468331677856e-12, 20, 1485, {'5%': -2.8634882621786728, '10%': -2.5678072333888831, '1%': -3.4347612052013901}, 7985.3887776714364)

Mais pourtant j'ai un corrélogramme qui semble indiquer que ce n'est pas le cas :

ACF

Si c'est effectivement stationnaire, comment je sélectionne mon paramètre $q$ pour mon mondèle ARMA ? C'est censé être le dernier pic non nul, mais là…

Enfin, comme j'ai des saisonnalités, ça ne peut pas l'être, si ?

+0 -0

@Höd : pour moi, stationnaire signifie qu'aucune variable associé au système n'a de dépendance au temps. Là, il y a des creux, des bosses, des plats… Autour de 1400, ça vaut 0, autour de 800, ça vaut pas du tout 0.

Après, selon les domaines, on met parfois des sens différents (mais proche) sur les même mots. Si tu veux dire qu'il est équivalent de prendre une année ou une autre (0 -> 365 ou 1095 -> 1460) (aux variations intrinsèques près), là, on est d'accord.

+0 -0

Ce n'est pas la définition de stationnaire. La stationnarité est une propriété du processus qui génère les trajectoires.

Un processus est stationnaire si son espérance est indépendante du temps, sa variance est finie et indépendante du temps et l'auto-corrélation entre deux VA ne dépend que de la distance temporelle entre les deux (et donc l'auto-corrélation dépend du temps).

Un exemple

Cela n'inderdit pas des périodicités. Le processus $X(t) = a\text{sin}(\omega x + \Phi)$ est stationnaire pourtant tu conviendras qu'il s'autorise une périodicité temporelle.

+1 -0

@Höd : pour moi, stationnaire signifie qu'aucune variable associé au système n'a de dépendance au temps.

Ça, c'est la définition physique la plus basique de la stationnarité (dérivées temporelles nulle). Mais là, il s'agit d'un processus qu'on qualifie en général en physique de statistiquement stationnaire (tu as sûrement déjà croisé le terme).

+0 -0

@Gabbro, si tu fais reference au modele ici, il semble tout a fait stationnaire au contraire.

Höd

Pourrais-tu préciser comment tu constates ça ? Le test de Dickey-Fuller semble le confirmer mais :

  • L'autocorrélogramme a une tête bizarre pour une série stationnaire ;
  • En principe, le processus sous-jacent ne l'est pas vu qu'une vache produit clairement moins de lait en fin de lactation qu'au milieu. D'ailleurs, les périodes de production nulle (périodes de tarissement) à intervalles réguliers semblent poser problème à la stationnarité. Ce qui se retrouve sur le graphe des données différenciées.

D'ailleurs, comment peut-on juger de la stationnarité d'un processus à partir d'une seule réalisation ? Si je prends une réalisation d'un bruit blanc (processus stationnaire), il n'est pas impossible que j'obtienne une droite de pente non nulle. Le cas échéant, j'aurais tendance à dire que le processus n'est pas stationnaire.

Merci. ^^

+0 -0

La trajectoire n'a pas de tendance. La composante saisonnière est régulière en amplitude et en période. Tu ne peux pas juger de la stationnarité en une seule réalisation, mais cette réalisation ne discrédite pas l'hypothèse, ce qui est déjà pas mal. Depuis, il n'y a pas de raison physique pour que les trajectoires s'écartent trop de celle-ci et donc on peut vraisemblablement affirmer que le processus sous-jacent est stationnaire.

La trajectoire n'a pas de tendance.

Oui.

La composante saisonnière est régulière en amplitude et en période.

Oui.

Tu ne peux pas juger de la stationnarité en une seule réalisation, mais cette réalisation ne discrédite pas l'hypothèse, ce qui est déjà pas mal.

Pourquoi ? Si $(X_{t})$ est mon processus, il semblerait que $X_{t}$ et $X_{t+320/2}$ n'aient pas la même espérance (la première est dans une zone de forte production, la seconde dans une zone de faible production. Ou inversement.).

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte