Bonjour à tous,
Je travaille actuellement sur un projet ou il s'agit de déterminer des sous-séries de points suivant certaines conditions particulières. Je vais y venir tout de suite : mais j'aimerais avant préciser que je ne suis ni statisticien, ni mathématicien, donc je vais peut être dire certaines choses qui vont vous sembler triviales ou vous hérisser les cheveux sur la tête... mais ne vous en faites pas c'est norrrrrmal :-P
Je cherche en fait à modéliser les sous tendances d'une série de points, et donc pour cela j'ai besoin de déterminer de manière automatique (ou suivant certaines contraintes imposées par l'algorithme (sensibilité ou autre...) ou sont ces sous-séries.
Comme un exemple est souvent plus parlant qu'un long discours, voici ce que j'aimerais obtenir en images.
J'aimerais donc pouvoir déterminer les points faisant parties d'une même sous tendance....
J'ai pas mal bossé dessus, et en ce qui concerne le modèle mathématique pour le fittage, j'utilise la fonction :
f(x) = a.exp(bx) + H (qui revient à la regression linéaire logarithmique).
Ce modèle convient très bien, et il est caractéristique de certaines spécificitées que j'aimerais étudier. Donc c'est déjà un bon point de gagner!
Concernant la détermination automatique des sous séries, j'ai développé deux algorithmes :
Méthode 1
Voici donc le premier algorithme développé. c'est assez simple :
-Je trace une droite ayant pour coefficient directeur les points extremes de la série de données.
-Je projète tout ces points sur cette doite.
-J'observe la distance (euclidienne (donc absolue) sur l'axe Y) entre les points réels et leur projection.
-Par la sélection des minimums locaux, on obtient les indices des sous séries.
Voici ce que ca donne en image sur une de mes séries :
et les distances euclidiennes associées :
(les minimums locaux correspondant aux points -> première sous série : point 1 à point 3, etc.)
Cette méthode fonctionne bien pour certaines séries, mais c'est une catastrophe pour d'autres. Il a l'avantage d'être libre de contraintes (entièrement automatique).
Méthode 2
Cette fois-ci j'utilise un algorithme itératif ou je commence à essayer de fitter une série avec un nombre minimum de points, et à chaque fois que j'ajoute un point, je calcule une erreur, et si celle-ci est trop grande, ca veut dire que j'entre dans une nouvelle sous série. et je recommence.
Je ne rentre pas trop dans les détails pour cette méthode, car elle marche moins bien que la méthode 1, et son rendement est essentiellement soumis à l'estimation de l'erreur.
Voilà, donc je suis limité par ma méconnaissance des algorithmes pouvant m'aider (études des données dans d'autres espaces ou je ne sais pas), et j'aimerais que vous me fassiez part de vos reflexions concernant mon problème.
j'ai également une autre question (autrement plus simple) : comment estimer l'erreur a chaque fittage? j'ai vu sur des logiciels de stats que celle-ci est exprimée suivant deux variables R et p. j'ai cherché à droite et à gauche, mais je n'ai rien trouvé, peut-être savez vous comment les calculer ?
Je précise que je travaille sous Octave qui est un clone de Matlab.
merci pour votre aide.
PS : je posterais de plus amples informations demain (si mon accès à Internet est réparé), surtout en ce qui concerne les résultats. Vous pourrez vous rendre compte des problèmes qui peuvent subvenir dans la détermination de certaines sous séries.
Partager