IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

recalage temporel de 2 séries


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 22
    Points : 15
    Points
    15
    Par défaut recalage temporel de 2 séries
    Bonjour,
    j'ai besoin de recaler une série temporelle par rapport a une autre (référence)
    Avant de me lancer dans un code compliqué, on m'a parlé du fait que Matlab fait ce genre de chose.
    je vous montre un exemple de ces séries temporelle (noir=référence)
    Mon probleme principal est que le décalage n'est pas constant.
    Avez-vous une idée de la façon dont je pourrais recaler ma série rouge sur ma série noir?
    Merci d'avance
    Images attachées Images attachées  

  2. #2
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Tu n'es pas assez précis sur le "recalage" que tu souhaites.

    De ce que j'imagine, si tu possèdes (pour les deux séries) les dates et les valeurs, alors tu peux interpoler ta série 2 aux dates de la série 1, par exemple via la fonction interp1

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    pardon, je vais tenter de préciser:
    la courbe rouge a un déphasage variable par rapport a la courbe noire.
    ce que je voudrais c'est dilater ou contracter la courbe rouge de façon a ce que les 2 courbes soient correlées de façon optimum.

    autre explication:
    certains evenements sont présents dans les 2 courbes, je voudrais adapter l'echelle temporelle de la courbe rouge pour que ces évenements soient concordant temporellement.

    = je voudrais faire varier le sampling de la serie rouge de façon à observer les memes évenements en meme temps

    c'est mieux?

  4. #4
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Oui, beaucoup mieux.

    Ici tu ne peux pas interpoler car tu n'as pas les dates. Le choix de l'algo dépend de toutes les infos a priori disponibles, par exemple

    - Si tu connaissais le déphasage exacte, la corrélation serait-elle parfaite (=1) ? Dans la négative, tu peux utilise autre chose qu'une corrélation (information mutuelle, autres distances entre séries).

    -Tu aura parfois un problème d'identifiabilité. Imagine un cas dégénéré : deux séries sinusoidales décalées de pi/2. Tu as alors 2 solutions (en général indistinguable sur un plan mathématiques) amenant une correl parfaite: - pi/2 ou +3 pi/2

    - Le déphasage est-il toujours de même signe ? A-t'il une amplitude maximale ?

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par VV33D Voir le message
    Oui, beaucoup mieux.

    Ici tu ne peux pas interpoler car tu n'as pas les dates. Le choix de l'algo dépend de toutes les infos a priori disponibles, par exemple

    - Si tu connaissais le déphasage exacte, la corrélation serait-elle parfaite (=1) ? Dans la négative, tu peux utilise autre chose qu'une corrélation (information mutuelle, autres distances entre séries).

    -Tu aura parfois un problème d'identifiabilité. Imagine un cas dégénéré : deux séries sinusoidales décalées de pi/2. Tu as alors 2 solutions (en général indistinguable sur un plan mathématiques) amenant une correl parfaite: - pi/2 ou +3 pi/2

    - Le déphasage est-il toujours de même signe ? A-t'il une amplitude maximale ?
    si, si, j'ai les dates, j'ai fais un plot rapidement, sans vraiment prendre le temps, de faire quelque chose de propre, désolé. Les séries que j'ai uploadé font 20 jours, avec globalement un point par heure

    le déphasage n'est pas de meme signe et je ne peux qu'appréhender visuellement sa valeur max, qui doit etre de l'ordre de +/- ~1 jours.

    Meme en connaissant le déphasage exacte, la correl serait < 1. Le max que je trouve pour l'instant avec mes séries "décalées" est de .6 .

    Pour que tu comprennes mieux, la série noire est une mesure Martienne, la serie rouge a été mesurée au voisinage de la terre. Je l'ai 'transportée' a l'orbite de Mars, en lui appliquant un timeshift qui est fonction de nombreux parametres. Si on regarde ces 2 séries sur de grandes fenêtres temporelles (200 jours par exemple), on voit que les signaux sont très bien corrélés, mais je voudrais affiner cela en faisant un recalage plus précis.

    j'espere avoir (bien) répondu

  6. #6
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Si j'ai bien compris, les dates que tu as ne sont pas les bonnes, i.e elles n'induisent pas le changement de temps que tu recherches.

    Est-ce que chaque point de la série rouge correspond forcément à un point de la noire et vice-versa, ou y'a-t'il des trous ? Cela risque d'affecter fortement les algos.

    Dans tous les cas je ne vois pas trop comment tu pourrais trouver une procédure automatique disponible en Matlab. Tu risques de devoir coder les différentes solutions.

    Je commencerai par
    - réduire/centrer chaque série.
    - parcourir la rouge. En chaque point, tu regardes quel point de la noir, distant d'au plus 1jour, en est le plus proche, sous contrainte d’être postérieur à l'indice noir sélectionné pour le précédent point rouge.

    C'est tout de même assez instable car c'est une procédure fortement séquentielle qui répercute ses erreurs aux itérations suivantes. Pour l'améliorer,:
    * Il arrive parfois que les résultats (les correl par exemple) soient meilleurs si tu commences par sous sampler les signaux, ou avec d'autres distances que la corrélation.
    * Méthodes de type plus proches voisins. Pour chaque sous vecteur rouge de taille M (disons 10 ou 20), trouves le sous vecteur noir qui soit le plus proches, et qui en soit distant d'au plus un jour. Il faut ensuite trouver un moyen d'exploiter simultanément tous ces ppv.

  7. #7
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Est-ce que chaque point de la série rouge correspond forcément à un point de la noire et vice-versa, ou y'a-t'il des trous ?
    non, il y aura des trous et des "paquets".

    Je commencerai par
    - réduire/centrer chaque série.
    - parcourir la rouge. En chaque point, tu regardes quel point de la noir, distant d'au plus 1jour, en est le plus proche, sous contrainte d’être postérieur à l'indice noir sélectionné pour le précédent point rouge.
    oui c'etait un peu comme ça que je voyait les choses, utiliser des moyennes glissantes, des coeff directeurs, pour des sous séries, mais je m'imaginais (feignant que je suis ) pouvoir trouver quelquechose déjà fait en matlab.

    Je te remercie pour tes conseils

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. séries temporelles - ARIMA
    Par mathieu_r dans le forum R
    Réponses: 5
    Dernier message: 21/04/2011, 16h23
  2. Réponses: 2
    Dernier message: 30/03/2010, 16h27
  3. Requète sur séries temporelles
    Par Christian78 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/09/2008, 07h51
  4. Séries temporelles Arma et Farima
    Par sam13 dans le forum MATLAB
    Réponses: 1
    Dernier message: 31/01/2007, 19h19
  5. [JFreeChart] Séries temporelles
    Par habasque dans le forum 2D
    Réponses: 1
    Dernier message: 10/12/2006, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo