Il s'agit du quatrième d'une série d'articles sur la manière d'adapter des fonctions continues par morceaux à des ensembles de données. J'aime commencer chaque article avec des liens vers tous les autres articles précédents de la série :
Passons à la partie 4...
Introduction
Dans les articles précédents de cette série, nous avons travaillé sur l'ensemble de données présenté dans le graphique suivant :
Figure 1: Sample Data Set.Figure 1 : Exemple d'ensemble de données.
Jusqu'à présent, nous avons discuté de la segmentation des régions de données et de la définition des courbes associées à chaque région, notamment :
- Élimination de certains coefficients des équations segmentées grâce à la continuité aux extrémités.
- En utilisant JMP L'éditeur de formules de avec des paramètres inconnus et plusieurs équations dans une seule formule, en préparation à la résolution des inconnues.
Nous sommes maintenant prêts à utiliser la plateforme non linéaire de JMP pour trouver les paramètres inconnus et proposer le modèle le mieux adapté. Nous discutons maintenant :
- Comment résoudre les équations par morceaux à l'aide de la plateforme non linéaire de JMP
- Faire converger les modèles à travers :
- Algorithmes de convergence facultatifs
- Définition des limites des paramètres
- Objectifs de convergence
Regardons de plus près.
Plateforme non linéaire de JMP
La plateforme non linéaire utilise l'un des nombreux processus d'estimation itérative sélectionnables par l'utilisateur pour résoudre les paramètres inconnus décrits dans l'éditeur de formule. Pour résoudre les équations par morceaux comme décrit dans les articles de blog précédents, nous allons d'abord dans Analyse-->Modélisation spécialisée-->Non linéaire. L'interface utilisateur suivante s'ouvre :
Figure 2: The Nonlinear Input InterfaceFigure 2 : L'interface d'entrée non linéaire
Dans la figure 2, nous avons déjà rempli les entrées.
- « Y, Réponse » correspond aux données originales (mesurées).
- "X, Predictor Formula" est la colonne de formule définie dans le billet de blog précédent.
- Notez que les valeurs x auxquelles les valeurs y ont été mesurées ne sont pas saisies directement dans l'interface graphique, mais sont incluses via des références dans la colonne de formule.
- Notez que les paramètres de la colonne de formule sont affichés (avec leurs valeurs de départ) dans la section Options/Predictor. JMP le remplit automatiquement pour nous.
Après avoir cliqué sur OK, la fenêtre suivante apparaît :
Figure 3: Nonlinear platform, ready to fitFigure 3 : Plateforme non linéaire, prête à installer
Nous voyons ici un résumé du modèle jusqu'à présent, avec les valeurs de départ affichées pour chaque paramètre inconnu. Nous voyons également le critère de convergence (discuté plus tard). Nous voyons les données d'origine (points noirs) et l'ajustement actuel (fine ligne noire, résultant de l'utilisation des valeurs de départ des paramètres).
Nous avons également quatre boutons :
- Go : démarre le processus de résolution itérative.
- Stop : arrête le processus (si le solveur ne converge pas).
- Étape : effectuez manuellement une étape d'itération à la fois, pour observer l'évolution du critère de convergence et du tracé d'ajustement.
- Réinitialiser : Réinitialise les paramètres à leurs valeurs de départ.
En cliquant plusieurs fois sur le bouton « Étape », nous pouvons voir l'algorithme de convergence à l'œuvre :
Figure 4: Convergence In ActionFigure 4 : La convergence en action
Dans les sous-tracés de la figure 4, notez que la fine ligne noire converge définitivement vers les données mesurées à mesure que nous incrémentons les étapes. De plus, les paramètres évoluent et les critères de convergence se rétrécissent également.
Cliquer sur le bouton Go nous amène automatiquement aux valeurs convergées finales, comme indiqué ci-dessous :
Figure 5: Final Converged ModelFigure 5 : Modèle convergé final
Dans la figure 5, en haut de la sortie, nous avons un message d'avertissement indiquant « Échec : nombre maximal d'itérations dépassé ». Nous en parlerons plus tard dans cet article. Mais en regardant le graphique, il est clair que nous avons déjà atteint une bonne convergence du modèle avec les données observées.
Quelques observations sur les paramètres :
- Rappelez-vous de la figure 1 que X1, X2, X3 et X4 étaient les points de coupure des fonctions par morceaux. Celles-ci se sont décalées de manière appropriée par rapport à leurs valeurs de départ estimées pour donner de bons points finaux pour chacune des fonctions par morceaux.
- Les paramètres restants ont tous une importance pour les différentes pièces de courbe. Par exemple, a0 représente le niveau Y moyen avant que les données de test ne commencent à s'accumuler à X1=24,8.
Que se passe-t-il si nous n’avons pas de convergence ?
Options lorsque la solution ne converge pas
Comme indiqué ci-dessus, cette solution particulière n’a pas (techniquement) convergé. Cela signifie que l'algorithme de convergence par défaut ne répond pas à ses critères de convergence, tels que définis dans le panneau de configuration Ajustement non linéaire. En fait, sans convergence, JMP ne nous permet pas de faire grand-chose avec les résultats (comme enregistrer les nouveaux paramètres).
Alors, que pouvons-nous faire?Il existe plusieurs options :
Modifier les critères de convergence
Dans la section Critères de la figure 5, nous pouvons voir quels sont les critères de convergence actuels et dans quelle mesure nous sommes sur le point de les satisfaire. Par exemple, JMP a effectué 60 étapes d'itération dans l'exemple précédent et n'a pas atteint la convergence. Nous pourrions donc vouloir augmenter la « limite d'arrêt » pour essayer plus d'étapes (au prix d'un temps de convergence plus long).
Ou nous pouvons souhaiter modifier soit le changement d'objet, le dégradé relatif ou le dégradé. La convergence est atteinte si l'un des trois critères tombe en dessous de la « limite d'arrêt ».
Changer l'algorithme d'estimation itérative
Le triangle rouge à côté de « Ajustement non linéaire » (voir Figure 3) propose plusieurs options, notamment les « Options d'itération ». Ici, nous avons le choix entre trois algorithmes d’itération différents :
- Newton (la valeur par défaut)
BFGS quasi-Newton
Quasi-Newton SR1
Certaines de ces options permettent également le calcul de « dérivés numériques uniquement ». Par aide JMP , il n'y a pas de consensus sur lequel de ces algorithmes est le meilleur à utiliser, car cela dépend des données particulières et de l'équation à ajuster.
Vous pouvez combiner les algorithmes. Par exemple, dans notre cas de test, la méthode de Newton n’a pas convergé. Mais vous pouvez conserver les valeurs auxquelles la méthode de Newton est arrivée, et simplement modifier l'algorithme d'itération, puis cliquer sur le bouton Go pour procéder à la convergence à partir du point final atteint par l'algorithme de Newton. Pourquoi est-ce que ça marche ? Parce que nous partons de meilleures estimations des paramètres.
Ce qui m'amène à ma prochaine option pour améliorer la convergence...
Définition des limites des paramètres
Parfois, lorsqu'un algorithme itératif ajuste un paramètre, il peut « décoller » dans la mauvaise direction ou rester bloqué dans un minimum local, etc. Lorsque cela se produit, il peut être avantageux de limiter les plages que peuvent prendre les paramètres.
Dans notre exemple de problème, nous savons peut-être que le seuil X1 devrait avoir une valeur d’environ 20. Nous pourrions vouloir dire à JMP que X1 ne doit pas se situer en dehors de la plage 15-25. Cela aidera à éviter que l'algorithme itératif ne se « perde » pendant son travail.
Les limites des paramètres se trouvent sous le même triangle rouge d’ajustement non linéaire. Une fois activé, un tableau apparaît au bas du rapport, vous permettant de saisir des estimations et des plages pour chaque variable. Il convient également de noter que vous pouvez utiliser les curseurs de ce tableau comme une sorte de profileur, pour examiner les effets de la modification de chaque paramètre sur l'ajustement global affiché dans le tracé.
La figure 6 montre un exemple de tableau Limites des paramètres :
Figure 6: Parameter Bounds TableFigure 6 : Tableau des limites des paramètres
Une fois que nous aurons atteint la convergence
Si vous avez formé une équation appropriée dans l'éditeur de formule et que vous avez atteint la convergence via les options décrites ci-dessus, alors la plate-forme non linéaire de JMP devrait avoir fourni les meilleures estimations de tous les paramètres inconnus. Vous verrez une note à l'effet « Convergé en dégradé » en haut du rapport, et au bas du rapport, vous verrez une section pour « Solution », affichant les estimations finales de tous les paramètres inconnus :
Figure 7: Converged Parameter EstimatesFigure 7 : Estimations des paramètres convergés
De plus, juste au-dessus du tracé des données mesurées et de la fonction d'ajustement optimal, il devrait maintenant y avoir un bouton pour « Enregistrer les estimations ». Cliquer sur ce bouton remplacera les valeurs de paramètre actuelles dans la formule par les nouvelles valeurs les mieux adaptées.
Article suivant du blog (dernier de la série)
Cet article explique comment utiliser la plate-forme non linéaire pour résoudre une fonction arbitraire (et en particulier une fonction par morceaux.) Mais la plate-forme non linéaire dispose également d'une "bibliothèque de modèles" spéciale qui mérite son propre article de blog.
Ainsi, le dernier article de blog de la série Piecewise expliquera comment vous souhaiterez peut-être adapter d'autres modèles « prédéfinis » intégrés à la plate-forme non linéaire. J'espère que vous le vérifierez !