10
votes

Ajustement sigmoïde aux données

Il existe de nombreux outils d'ajustement de courbes et d'interpolation tels que PolyFit (ou même cette belle boîte à outils Logfit, j'ai trouvé ici ), mais je ne peux pas sembler trouver quelque chose qui convient à une fonction sigmoid à mes données xy.

Un tel outil existe-t-il ou est-ce que j'ai besoin de faire le mien?


0 commentaires

3 Réponses :


13
votes

Si vous avez la boîte à outils Statistiques installée, vous pouvez utiliser Régression non linéaire < / a> avec nlinfit : xxx

ici sigfunc est juste un exemple pour une fonction sigmoïde et A est le vecteur des coefficients d'ajustement.


4 commentaires

J'ai trouvé que le Sigfunc suivant sera plus utile sigfunc = @ (A, x) (A (1) ./ (1 + exp (-a (2) * x)));


@ user92519 Aucun problème, je n'ai donné que cela comme exemple.


Bonjour. Qu'entendez-vous par Vector des coefficients d'ajustement ?


@Shohamdebnath Ce que je veux dire, c'est que le vecteur a est le vecteur des coefficients qui définit le sigmoïde ajusté. Pour clarfiy, vous pouvez regarder la définition de sigfunc .



1
votes

Je vous suggère d'utiliser Matlab's Boîte à outils d'optimisation globale , et en particulier la solveur d'algorithme génétique , que vous pouvez utiliser pour votre problème en optimisant ( Trouver le meilleur ajustement pour vos données) Les paramètres de la fonction Sigmoid par l'algorithme génétique. Il a une interface graphique facile à utiliser.

the solveur d'algorithme génétique gru, que vous pouvez Appelez en utilisant gatool : Entrez la description de l'image ici


0 commentaires

9
votes

NLINFIT , et surtout gatool , sont de gros marteaux pour ce problème. Un sigmoïde n'est pas une fonction spécifique. Le plus souvent, il est pris pour être identique à la fonction logistique (également souvent le plus efficace de calculer): xxx

ou une logistique généralisée. Mais toutes sortes de courbes peuvent avoir formes sigmoïdales . Si vous savez si vos données correspondent à l'une en particulier, le raccord peut être amélioré et des méthodes plus efficaces peuvent être appliquées. Par exemple, le fonction d'erreur ( erf ) a une forme sigmoïdale et apparaît dans le CDF du Distribution normale . Si vous savez que vos données sont le résultat d'un processus gaussien (c'est-à-dire que les données sont le CDF) et vous disposez de la boîte à outils STATS, vous pouvez utiliser la fonction normfit . Cette fonction est basée sur estimation maximale de vraisemblance (mle). Si vous avez fini par avoir besoin d'écrire une fonction de raccord personnalisée - dites, pour des raisons de performance - j'écouerais les techniques de mle pour la forme particulière de Sigmoid que vous souhaitez vous adapter.


0 commentaires