Dans son Marcher au hasard Blog, Mike Croucher montre comment ajuster une courbe non linéaire simple en utilisant cinq bibliothèques de programmation statistique différentes: R, MATLAB, Maple, Julia et Python / numpy. L'idée est de fournir des exemples concrets pour une question de modélisation couramment posée, qui soit simple à énoncer mais pas si simple à résoudre.
Pour un ensemble de données donné de 10 valeurs x et y, le problème est de trouver les meilleures valeurs pour les paramètres p 1 et P 2 afin que la courbe suivante corresponde le mieux aux valeurs y:
p 1 cos (p 2 x) + p 2 péché (p 1 X )
Comme l’ajustement non linéaire implique une recherche itérative dans l’espace de la solution, nous avons besoin des valeurs de paramètre de départ, données par Croucher comme suit:
p 1 = 1,0, p 2 = 0,2.
Alors, comment feriez-vous la même chose dans JMP ?
Normalement, vous commencez par une table de données et utilisez la plate-forme non linéaire du menu Analyse pour lancer l'ajustement de manière interactive. Pour un modèle comme celui-ci, qui n'est pas intégré à JMP, vous pouvez l'ajouter à une colonne de formule et l'utiliser dans la boîte de dialogue Non linéaire. Mais comme presque tout dans JMP, il peut être entièrement piloté par un script JSL si vous le souhaitez.
Voici ma version JSL:
xv
= [ - 2 , -1,64 , - 1,33 , -0,7 , 0 , 0,45 , 1.2 , 1,64 , 2,32 , 2,9 ] ; yv = [ 0,699369 , 0,700462 , 0,695354 , 1.03905 , 1,97389 ,
2.411430 , 1.910910 , 0,919576 , -0,730975 , -1.42001 ] ;
dt = Nouvelle table ( "Les données" ,
Nouvelle colonne ( "X" , Définir des valeurs ( xv )) ,
Nouvelle colonne ( "y" , Définir des valeurs ( yv ) ) ) ;
dt << Non linéaire ( Y ( : y ) , X ( : X ) ,
Modèle ( Paramètre ( { p1 = 1 , p2 = 0,2 } ,
p1 * Cosinus ( p2 * : X ) + p2 * Sinus ( p1 * : X ) ) ) ,
terminer , Limites de confiance ) ;
Ce script produit la sortie interactive suivante.

Certaines des autres langues nécessitent un peu plus de travail pour obtenir les intervalles de confiance. Il est donc agréable de voir que ce n'est qu'une option possible dans JMP.