2017-05-18 3 views
2

Cette question concerne moins la programmation que les mathématiques, mais j'aimerais avoir quelques opinions. J'essaie de modéliser le comportement de décroissance exponentielle de this curve mais comme vous pouvez le voir il y a un certain niveau de fluctuations/bruit aux valeurs les plus basses. Comment pourrais-je éliminer/atténuer ce bruit afin que mon ajustement n'en dépende pas autant? Je travaille avec le log de cette courbe, donc j'utilise des régressions linéaires pour faire l'ajustement. J'ai utilisé la méthode des moindres carrés, mais la pente de la droite varie significativement (d'environ 20%) en fonction de l'intervalle de temps que je choisis.Ajustement de courbe exponentielle/linéaire Python

J'ai entendu parler deux autres méthodes qui pourraient aider:

  • méthode des moindres carrés pondérés, mais je ne sais pas comment je m'y prendrais mes points pesant.
  • Les écarts les moins absolus, apparemment de petites valeurs ont tendance à être moins pertinents en utilisant cette méthode.

Je voudrais éviter la phase d'essai et d'erreur. As tu des idées?

Edit: Le code se fait en utilisant python

+0

S'il vous plaît ajouter les données et le code que vous utilisez et peut-être ajouter aussi la balise 'python'. – Cleb

+0

La réduction de la décroissance exponentielle à l'aide de méthodes linéaires sur des données compressées en journal est incorrecte. Essayez de chercher sur le net pour "modélisation cinétique". De nombreux paquets existent pour résoudre ce genre de problèmes. Un exemple est kinfit un paquet 'R'. –

+0

Pourriez-vous expliquer pourquoi il est incorrect de l'adapter à l'aide d'un modèle linéaire? J'ai obtenu des résultats corrects jusqu'ici, cela simplifie l'équation et les paramètres en jeu sont plus intuitifs. –

Répondre

2

Si dans le journal de l'espace la partie en décomposition des données ne semble pas linéaire, il n'est pas une décroissance simple. En fait, les données ressemblent plus à la somme d'une décroissance exponentielle et d'un arrière-plan constant. Alors essayez un modèle comme a*exp(-b*x)+c. La courbe dans l'image est le côté droit d'un pic gaussien (les queues tombent plus ou moins exponentiellement) avec un décalage constant. L'ajustement (ligne verte) est une fonction donnée ci-dessus.

fit of simulated data

+0

Oui c'est ça, ajouter le paramètre 'c' aide à garder l'ajustement en échec. Je vous remercie. Avez-vous utilisé une fonction de montage spécifique? –

+0

Simplement les moindres carrés, via 'scipy.odr'. L'image est une capture d'écran d'une session peak-o-mat (http://lorentz.sf.net). –