cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Browse apps to extend the software in the new JMP Marketplace
%3CLINGO-SUB%20id%3D%22lingo-sub-600498%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EAjustement%20non%20lin%C3%A9aire%20-%20Comment%20v%C3%A9rifier%20le%20succ%C3%A8s%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-600498%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%3CSTRONG%3EAper%C3%A7u%3A%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E%3CSTRONG%3EComment%20puis-je%20v%C3%A9rifier%20qu'un%20ajustement%20non%20lin%C3%A9aire%20a%20r%C3%A9ussi%26nbsp%3B%3F%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3E(Les%20donn%C3%A9es%20r%C3%A9elles%20ne%20convergent%20pas%20toujours%20et%20peuvent%20n%C3%A9cessiter%20un%20examen%20manuel%20pour%20les%20probl%C3%A8mes%20d'automatisation%2Fde%20test%2Fde%20produit.)%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CSTRONG%3ED%C3%A9tail%3A%3C%2FSTRONG%3E%3C%2FP%3E%3CP%3EJe%20voudrais%20%C3%A9crire%20une%20r%C3%A9ponse%20apr%C3%A8s%20qu'un%20ajustement%20non%20lin%C3%A9aire%20ne%20converge%20pas.Si%20l'ajustement%20%C3%A9choue%2C%20je%20dois%20traiter%20d'une%20autre%20mani%C3%A8re%20et%2Fou%20%C3%A9ventuellement%20%C3%A9tiqueter%20pour%20examen%20manuel.%20(J'%C3%A9chantillonne%20une%20population%2C%20puis%20pour%20chaque%20partie%2C%20je%20fais%20un%20ajustement%20non%20lin%C3%A9aire.G%C3%A9n%C3%A9ralement%2C%20si%20j'%C3%A9choue%20%C3%A0%20la%20convergence%2C%20il%20y%20avait%20un%20probl%C3%A8me%20de%20test%20quelque%20part%3B%20Je%20ne%20veux%20pas%20vraiment%20assouplir%20les%20crit%C3%A8res%20de%20convergence.)%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E(Message%20%22%C3%89chec%22%26nbsp%3B%3A%20%22%C3%89chec%26nbsp%3B%3A%20impossible%20de%20r%C3%A9duire%20la%20fonction%20objective%22)%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20style%3D%22width%3A%20400px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.jmp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F50091i16B5465CA55A7137%2Fimage-size%2Fmedium%3Fv%3Dv2%26amp%3Bpx%3D400%22%20role%3D%22button%22%20title%3D%22Nonlinear%20Fail%20Screenshot.png%22%20alt%3D%22Nonlinear%20Fail%20Screenshot.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EScript%20modifi%C3%A9%20de%20D%C3%A9riv%C3%A9es%20num%C3%A9riques%20uniquement%20(Aide%20%26gt%3B%20Index%20des%20scripts%20%26gt%3B%20%22%26lt%3B%3CNON%20lin%C3%A9aire%3D%22%22%3E%3C%2FNON%3E%3C%2FP%3E%3CP%3E(JMP%2015.2.1%20en%20cours%20d'ex%C3%A9cution)%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3ENames%20Default%20To%20Here(%201%20)%3B%0Adt%20%3D%20Open(%0A%20%22%24SAMPLE_DATA%2FNonlinear%20Examples%2FUS%20Population.jmp%22%0A)%3B%0A%0A%2F%2F%20Random%2C%20intentionally%20divergent%2C%20formula%20on%20this%20dataset%0Adt%20%26lt%3B%26lt%3B%20New%20Column(%20%22Random%22%2C%20Numeric%2C%20Formula(%20Random%20LogLogistic(5)%20)%20)%3B%0A%0Adt%20%26lt%3B%26lt%3B%20New%20Column(%20%22FancyPredictionFormula%22%2C%0A%20Numeric%2C%0A%20Continuous%2C%0A%20Formula(%0A%20%20Parameter(%0A%20%20%20%7BRth0%20%3D%20735%2C%20n%20%3D%200.5%7D%2C%0A%20%20%20(%3Ayear%20%2F%20%3Apop)%20*%20((1%20-%20((n%20-%201)%20*%20%3Apop%20*%20Rth0)%20%2F%20(%3Ayear%0A%20%20%20%20*%20(300%20%2F%20%3Ayear)%20%5E%20n))%20%5E%20(-1%20%2F%20(n%20-%201))%20-%201)%0A%20%20)%0A%20)%0A)%3B%0A%0Anonlinear%20%3D%20dt%20%26lt%3B%26lt%3B%20Nonlinear(%0A%20Y(%20%20%3AName(%20%22Random%22%20)%20)%2C%0A%20X(%20%3AName(%22FancyPredictionFormula%22)%20)%2C%0A%20Expand%20Intermediate%20Formulas(%201%20)%2C%0A%20Numeric%20Derivatives%20Only(%201%20)%2C%0A%20QuasiNewton%20SR1%2C%0A%20Interation%20Limit(50)%2C%0A%20Finish%2C%0A%20Plot(%200%20)%2C%0A%20Confidence%20Limits%2C%0A%20Save%20Estimates%0A)%3B%0A%0A%2F%2F%20How%20to%20check%20if%20nonlinear%20fit%20succeeded%3F%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CU%3EId%C3%A9al.%3C%2FU%3E%3C%2FP%3E%3CP%3ES'il%20y%20a%20une%20variable%20d'%C3%A9tat%20bool%20renvoy%C3%A9e%20par%20la%20plate-forme%20d'ajustement%20non%20lin%C3%A9aire%20quelque%20part%20indiquant%20le%20succ%C3%A8s%20ou%20l'%C3%A9chec%2C%20ce%20serait%20la%20m%C3%A9thode%20id%C3%A9ale%20pour%20v%C3%A9rifier%20le%20succ%C3%A8s%2C%20je%20pense.%3C%2FP%3E%3CP%3E%3CU%3EVariante%201.%3C%2FU%3E%3C%2FP%3E%3CP%3EJe%20peux%20aussi%20tabuler%20ou%20faire%20un%20r%C3%A9sum%C3%A9%20des%20donn%C3%A9es%20pour%20voir%20si%20toutes%20les%3CFONT%20face%3D%22verdana%2Cgeneva%22%3E%20%3A%3CFONT%20color%3D%22%230000FF%22%3E%20Nom%3C%2FFONT%3E%20(%3CFONT%20color%3D%22%23993366%22%3E%20%22FancyPredictionFormula%22%3C%2FFONT%3E%20)%3C%2FFONT%3E%20les%20valeurs%20sont%20nulles.(Les%20valeurs%20semblent%20%C3%AAtre%200%20si%20l'ajustement%20%C3%A9choue).%3C%2FP%3E%3CP%3E%3CU%3EVariante%202.%20%3C%2FU%3E%3C%2FP%3E%3CP%3EIl%20existe%20probablement%20un%20moyen%20de%20v%C3%A9rifier%20le%20XML%20et%20de%20lire%20le%20message%20%22%C3%A9chec%22.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EMerci%20pour%20votre%20temps%20et%20votre%20consid%C3%A9ration.%3C%2FP%3E%3CP%3E-Aubrey%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-600498%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CLINGO-LABEL%3EScript%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-600622%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%26nbsp%3B%3A%20Ajustement%20non%20lin%C3%A9aire%20-%20Comment%20v%C3%A9rifier%20le%20succ%C3%A8s%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-600622%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EVoici%20une%20approche%20utilisant%20l'alternative%202a%20(en%20grattant%20les%20mots%20du%20rapport).%20Les%202%20premi%C3%A8res%20lignes%20font%20le%20travail%20r%C3%A9el%2C%20et%20la%20troisi%C3%A8me%20ligne%20est%20juste%20un%20exemple%20simple%20de%20ce%20qu'il%20faut%20faire%20avec%20les%20informations%20%3B%20vous%20avez%20probablement%20autre%20chose%20en%20t%C3%AAte%20pour%20cette%20partie.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%2F%2F%20How%20to%20check%20if%20nonlinear%20fit%20succeeded%3F%0Ar%20%3D%20nonlinear%20%26lt%3B%26lt%3B%20report%3B%0Aalltext%20%3D%20r%5BOutline%20Box(%22Control%20Panel%22)%5D%20%26lt%3B%26lt%3B%20get%20text%3B%0Aif%20(contains(alltext%2C%20%22Cannot%20Decrease%22)%2C%20caption%20(%22Failed%3A%20Cannot%20Decrease%20...%22))%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-600846%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%26nbsp%3B%3A%20Ajustement%20non%20lin%C3%A9aire%20-%20Comment%20v%C3%A9rifier%20le%20succ%C3%A8s%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-600846%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3E%C3%87a%20va%20le%20faire.Merci%20Djed%20!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-601016%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%26nbsp%3B%3A%20Ajustement%20non%20lin%C3%A9aire%20-%20Comment%20v%C3%A9rifier%20le%20succ%C3%A8s%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-601016%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EJe%20me%20demande%20s'il%20est%20pr%C3%A9f%C3%A9rable%20de%20v%C3%A9rifier%20si%20le%20texte%20est%20autre%20chose%20qu'un%20succ%C3%A8s%26nbsp%3B%3A%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EIf(%20Not(%20Contains(%20alltext%2C%20%22Converged%22%20)%20)%2C%0A%20%2F%2F%20trap%20failure%0A%20%2C%0A%20%2F%2F%20proceed%20after%20success%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-601121%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%26nbsp%3B%3A%20Ajustement%20non%20lin%C3%A9aire%20-%20Comment%20v%C3%A9rifier%20le%20succ%C3%A8s%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-601121%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EVous%20%C3%AAtes%20plus%20proche%20de%20l'endroit%20o%C3%B9%20je%20me%20dirige%20avec%20elle.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EJ'ai%20travaill%C3%A9%20avec%20%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Eif%20(contains(alltext%2C%20%22Failed%22)%2C%20caption%20(%22Failed%3A%20Do%20additional%20action%20now%20...%22))%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EComme%20un%20fourre-tout%2C%20mais%20j'envisage%20d'ajouter%20plus%20d'une%20d%C3%A9claration%20de%20cas%20(ou%20je%20suppose%20plusieurs%20'si')%2C%20pour%20g%C3%A9rer%20sp%C3%A9cifiquement%20la%20raison%20de%20l'%C3%A9chec.%3CCODE%20class%3D%22%20language-jsl%22%3E%3C%2FCODE%3E%3C%2FP%3E%3CP%3E%3CCODE%20class%3D%22%20language-jsl%22%3E%3C%2FCODE%3E%3C%2FP%3E%3CP%3Epar%20exemple%2C%20je%20peux%20ex%C3%A9cuter%20%C3%A0%20nouveau%20avec%20un%20nombre%20d'it%C3%A9rations%20plus%20%C3%A9lev%C3%A9%20si%20j'attrape%20cette%20raison%20d'%C3%A9chec%26nbsp%3B%3A%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Econtains(alltext%2C%20%22Maximum%20Iteration%20Exceeded%22)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3ELa%20v%C3%A9ritable%20motivation%20est%20que%20%22la%20plupart%22%20des%20parties%20convergeront%20avec%20une%20approche%20num%C3%A9rique%2C%20mais%20certaines%20semblent%20n%C3%A9cessiter%20une%20analyse.Je%20ne%20sais%20pas%20ce%20qui%20se%20passe%20pour%20causer%20cela.Crit%C3%A8res%20de%20convergence%3FMais%20la%20%22solution%22%20consiste%20%C3%A0%20ex%C3%A9cuter%20%C3%A0%20nouveau%20sans%20d%C3%A9riv%C3%A9s%20num%C3%A9riques%2C%20quelque%20chose%20comme%26nbsp%3B%3A%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Enonlinear%20%3D%20dt%20%26lt%3B%26lt%3B%20Nonlinear(%0A%20Y(%20%20%3AName(%20%22Random%22%20)%20)%2C%0A%20X(%20%3AName(%22FancyPredictionFormula%22)%20)%2C%0A%20Expand%20Intermediate%20Formulas(%201%20)%2C%0A%20Newton%2C%0A%20Finish%2C%0A%20Plot(%200%20)%2C%0A%20Confidence%20Limits%2C%0A%20Save%20Estimates%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3EApr%C3%A8s%20avoir%20attrap%C3%A9%20avec%20%3A%3C%2FP%3E%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Econtains(alltext%2C%20%22Cannot%20Decrease%20Objective%20Function%22)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-601522%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3ERe%26nbsp%3B%3A%20Ajustement%20non%20lin%C3%A9aire%20-%20Comment%20v%C3%A9rifier%20le%20succ%C3%A8s%26nbsp%3B%3F%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-601522%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3ELe%20coupable%20habituel%20derri%C3%A8re%20l'%C3%A9chec%20de%20la%20convergence%20est%20les%20valeurs%20des%20param%C3%A8tres%20de%20d%C3%A9part.%20Il%20suffit%20souvent%20d'utiliser%20des%20heuristiques%20sp%C3%A9cifiques%20au%20domaine%20pour%20les%20initialiser%20lorsqu'elles%20sont%20disponibles.%3C%2FP%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
AApperson
Level II

Nonlinear Fit - How to check for success?

Overview:

How can I check to see a Nonlinear fit succeeded?

(Real-data doesn't always converge and may need manual review for automation/test/product issues.)

 

Detail:

I would like to script a response after a nonlinear fit fails to converge.  If the fit fails, I need to process another way, and/or eventually label for manual review. (I'm sampling a population, then for each part, doing a non-linear fit.  Generally if I fail convergence, there was a test issue somewhere; I don't actually want to loosen the convergence criteria.)

 

('Failed' message: "Failed: Cannot Decrease Objective Function")

Nonlinear Fail Screenshot.png

 

Modified script from Numeric Derivatives Only (Help > Scripting Index > "<<Nonlinear")

(Currently running JMP 15.2.1)

Names Default To Here( 1 );
dt = Open(
	"$SAMPLE_DATA/Nonlinear Examples/US Population.jmp"
);

// Random, intentionally divergent, formula on this dataset
dt << New Column( "Random", Numeric, Formula( Random LogLogistic(5) ) );

dt << New Column( "FancyPredictionFormula",
	Numeric,
	Continuous,
	Formula(
		Parameter(
			{Rth0 = 735, n = 0.5},
			(:year / :pop) * ((1 - ((n - 1) * :pop * Rth0) / (:year
			 * (300 / :year) ^ n)) ^ (-1 / (n - 1)) - 1)
		)
	)
);

nonlinear = dt << Nonlinear(
	Y(  :Name( "Random" ) ),
	X( :Name("FancyPredictionFormula") ),
	Expand Intermediate Formulas( 1 ),
	Numeric Derivatives Only( 1 ),
	QuasiNewton SR1,
	Interation Limit(50),
	Finish,
	Plot( 0 ),
	Confidence Limits,
	Save Estimates
);

// How to check if nonlinear fit succeeded?

 

 

 

Ideal.

If there is a bool status variable returned by the Nonlinear fit platform somewhere indicating success or failure, that would be the ideal method to verify success, I think.

Alternative 1.

I can also tabulate or take a summary of the data to see if all the :Name("FancyPredictionFormula") values are zero.  (Values seem to be 0 if the fit fails). 

Alternative 2.

There's probably a way to check the XML and read the 'failed' message. 

 

Thank you for your time and consideration.

-Aubrey

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Nonlinear Fit - How to check for success?

Here's an approach using Alternative 2a (scraping the words from the report). The first 2 lines do the actual work, and the third line is just a simple example of what to do with the information; you likely have something else in mind for this part.

 

// How to check if nonlinear fit succeeded?
r = nonlinear << report;
alltext = r[Outline Box("Control Panel")] << get text;
if (contains(alltext, "Cannot Decrease"), caption ("Failed: Cannot Decrease ..."));

View solution in original post

5 REPLIES 5

Re: Nonlinear Fit - How to check for success?

Here's an approach using Alternative 2a (scraping the words from the report). The first 2 lines do the actual work, and the third line is just a simple example of what to do with the information; you likely have something else in mind for this part.

 

// How to check if nonlinear fit succeeded?
r = nonlinear << report;
alltext = r[Outline Box("Control Panel")] << get text;
if (contains(alltext, "Cannot Decrease"), caption ("Failed: Cannot Decrease ..."));
AApperson
Level II

Re: Nonlinear Fit - How to check for success?

That'll do it.  Thanks Jed!

Re: Nonlinear Fit - How to check for success?

I wonder if a better check is if the text is anything other than success:

 

If( Not( Contains( alltext, "Converged" ) ),
	// trap failure
	,
	// proceed after success
);
AApperson
Level II

Re: Nonlinear Fit - How to check for success?

You are closer to where I am heading with it.

 

I've been working with:

 

if (contains(alltext, "Failed"), caption ("Failed: Do additional action now ..."));

As a catch all, but I'm considering adding more of a case statement (or I guess multiple 'ifs'), to specifically handle the fail reason.

e.g. I can run again with a higher iteration count if I catch this fail-reason:

 

contains(alltext, "Maximum Iteration Exceeded");

 

The real motivation is, 'most' parts will converge with a numerical approach, but some seem to require analytical.  I'm not sure what's happening to cause this.  Convergence criteria?  But the 'fix' is to run again without numerical derivatives, something like:

nonlinear = dt << Nonlinear(
	Y(  :Name( "Random" ) ),
	X( :Name("FancyPredictionFormula") ),
	Expand Intermediate Formulas( 1 ),
	Newton,
	Finish,
	Plot( 0 ),
	Confidence Limits,
	Save Estimates
);

After catching with:

contains(alltext, "Cannot Decrease Objective Function");

Re: Nonlinear Fit - How to check for success?

The usual culprit behind failing to converge is the starting parameter values. It is often sufficient to use domain-specific heuristics to initialize them when available.