<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Proc nlin method in Developers</title>
    <link>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284920#M5048</link>
    <description>&lt;P&gt;Hi Rick,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you. Yes, I ran the two macro and the sas server information is:&lt;/P&gt;
&lt;P&gt;SYSSCP= LIN X64&lt;/P&gt;
&lt;P&gt;SYSSCPL = Linux&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;and my local sas is:&lt;/P&gt;
&lt;P&gt;SYSSCP= WIN&lt;/P&gt;
&lt;P&gt;SYSSCPL = W32_7PRO&lt;/P&gt;
&lt;P&gt;and when the 5 parameter proc nlin code run (based on previous 4 parameter code):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt; proc nlin data=nlinready outest=est5 method=marquardt maxiter=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;32000&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt; maxsubit=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;by byval;&lt;/P&gt;
&lt;P&gt;parms / pdata=initialval5;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt; bounds c5&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;0&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt; model rlu=c1+(c2-c1)/(&lt;/FONT&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;1&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt;+exp(-c3-c4*log(dose)-c5*dose));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt; _weight_=&lt;/FONT&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;1&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt;/rlu**&lt;/FONT&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;2&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;ods output parameterestimates=params5 anova=stats5 convergencestatus=converge5;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;quit;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I noticed the number of observation difference of output EST5 between the server and local sas. and output data params5 has 5 obs and 9 variables in local SAS and 6 obs and 10 variable and 10 variables as indicated by the uploaded files (original is server log and the revision is local sas log).&lt;/P&gt;
&lt;P&gt;Any further suggestions to make them consistent?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you very much!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Herbman&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 15 Jul 2016 18:13:41 GMT</pubDate>
    <dc:creator>herbman</dc:creator>
    <dc:date>2016-07-15T18:13:41Z</dc:date>
    <item>
      <title>Proc nlin method</title>
      <link>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284339#M5044</link>
      <description>&lt;P&gt;Hey, when&amp;nbsp;excuting proc nlin in SAS 9.3 and SAS enterprise guide 5.1 stored process using method Marquardt, I got two different iteration result. I am wondering was this really because my setting or ther is potential difference between this two platform for running proc nlin using Gauss or Marquardt methods?&lt;/P&gt;
&lt;P&gt;Thank you!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Herbman&lt;/P&gt;</description>
      <pubDate>Thu, 14 Jul 2016 14:05:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284339#M5044</guid>
      <dc:creator>herbman</dc:creator>
      <dc:date>2016-07-14T14:05:22Z</dc:date>
    </item>
    <item>
      <title>Re: Proc nlin method</title>
      <link>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284390#M5045</link>
      <description>&lt;P&gt;Enterprise Guide 5.1 is just an interface that submists SAS programs to whatever SAS server it is connected to. &amp;nbsp;Thus the real issue is what version of SAS id running the code (assuming that the data is the same).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can submit the following SAS code and then view the Log to see the version of SAS that is running on the server:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%put SYSVLONG = &amp;amp;SYSVLONG;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You'll see something like&lt;/P&gt;
&lt;P&gt;SYSVLONG = 9.03.01M2D082312&lt;/P&gt;
&lt;P&gt;which is interpretted as SAS 9.3, maintenance 2.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since you are getting different behavior, you will presumably find that you are comparing two different versions of SAS. &amp;nbsp;Each version is SAS is compiled using potentially different compiler versions and compiler optimizations. It is not unusual to see slightly different results as the result of a&amp;nbsp;statistical&amp;nbsp;optimization problem (which&amp;nbsp;PROC NLIN solves).&lt;/P&gt;</description>
      <pubDate>Thu, 14 Jul 2016 17:15:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284390#M5045</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2016-07-14T17:15:14Z</dc:date>
    </item>
    <item>
      <title>Re: Proc nlin method</title>
      <link>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284398#M5046</link>
      <description>&lt;P&gt;Thank you, I ran &lt;SPAN class="token macrostatement"&gt;%put&lt;/SPAN&gt; SYSVLONG &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token operator"&gt;&amp;amp;&lt;/SPAN&gt;SYSVLONG&lt;SPAN class="token punctuation"&gt;; you sent,&amp;nbsp;both the server and sas codes show: SYSVLONG = 9.03.01M2P081512. So this means they ran under exact the same enviroment. It is really confusing when I copied the same code into enterprise guide and SAS code did show susscessful converge when using proc nlin and &lt;/SPAN&gt;method=marquardt but the stored process showed failure to converge.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Jul 2016 17:32:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284398#M5046</guid>
      <dc:creator>herbman</dc:creator>
      <dc:date>2016-07-14T17:32:20Z</dc:date>
    </item>
    <item>
      <title>Re: Proc nlin method</title>
      <link>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284617#M5047</link>
      <description>&lt;P&gt;Well, if it's not the SAS version, then it must be the operating system or the bitness of the OS. Submit:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%put SYSSCP= &amp;amp;SYSSCP;
%put SYSSCPL = &amp;amp;SYSSCPL;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;I'm guessing that you'll either see Windows vs Linux &amp;nbsp;or 32-bit vs 64-bit.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The bigger issue is what to do about the problem. Look at the iteration history table to see why it is not converging. (If there is no iteration history, make sure that the NOITHIST option is not used.)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Some reasons why the convergence problems can occur are&lt;/P&gt;
&lt;P&gt;1) The sample size of the data is small&lt;/P&gt;
&lt;P&gt;2) The model does not fit the data&lt;/P&gt;
&lt;P&gt;3) The initial guess for the parameters is not good&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There's not a lot you can do about (1). &amp;nbsp;(2) is a modeling problem. For (3) try using the optimal values for the program&amp;nbsp;that converges as initial values on the PARMS statement in the program that does not converge. &amp;nbsp;This should help the second program converge to the same optimal solution. You can also specify a grid of parameter values, if necessary.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If all this fails, look at &lt;A href="http://support.sas.com/documentation/cdl/en/statug/68162/HTML/default/viewer.htm#statug_nlin_details16.htm" target="_self"&gt;the "Troubleshooting" section of the doc&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Jul 2016 18:23:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284617#M5047</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2016-07-14T18:23:41Z</dc:date>
    </item>
    <item>
      <title>Re: Proc nlin method</title>
      <link>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284920#M5048</link>
      <description>&lt;P&gt;Hi Rick,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you. Yes, I ran the two macro and the sas server information is:&lt;/P&gt;
&lt;P&gt;SYSSCP= LIN X64&lt;/P&gt;
&lt;P&gt;SYSSCPL = Linux&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;and my local sas is:&lt;/P&gt;
&lt;P&gt;SYSSCP= WIN&lt;/P&gt;
&lt;P&gt;SYSSCPL = W32_7PRO&lt;/P&gt;
&lt;P&gt;and when the 5 parameter proc nlin code run (based on previous 4 parameter code):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt; proc nlin data=nlinready outest=est5 method=marquardt maxiter=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;32000&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt; maxsubit=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;by byval;&lt;/P&gt;
&lt;P&gt;parms / pdata=initialval5;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt; bounds c5&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;0&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt; model rlu=c1+(c2-c1)/(&lt;/FONT&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;1&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt;+exp(-c3-c4*log(dose)-c5*dose));&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt; _weight_=&lt;/FONT&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;1&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt;/rlu**&lt;/FONT&gt;&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;2&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;ods output parameterestimates=params5 anova=stats5 convergencestatus=converge5;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;quit;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I noticed the number of observation difference of output EST5 between the server and local sas. and output data params5 has 5 obs and 9 variables in local SAS and 6 obs and 10 variable and 10 variables as indicated by the uploaded files (original is server log and the revision is local sas log).&lt;/P&gt;
&lt;P&gt;Any further suggestions to make them consistent?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thank you very much!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Herbman&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Jul 2016 18:13:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284920#M5048</guid>
      <dc:creator>herbman</dc:creator>
      <dc:date>2016-07-15T18:13:41Z</dc:date>
    </item>
    <item>
      <title>Re: Proc nlin method</title>
      <link>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284923#M5049</link>
      <description>Now the real concern is the inconsistence between the server and local sas, as I replied below. Thank you!</description>
      <pubDate>Fri, 15 Jul 2016 18:26:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284923#M5049</guid>
      <dc:creator>herbman</dc:creator>
      <dc:date>2016-07-15T18:26:44Z</dc:date>
    </item>
    <item>
      <title>Re: Proc nlin method</title>
      <link>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284938#M5050</link>
      <description>&lt;P&gt;One system is 64-bit Linux. The other is 32-bit Windows. These systems use different compilers, compiler optimization flags, possibly different linear algebra BLAS and vendor-supplied math libraries,.... and the list goes on. &amp;nbsp;Numerically speaking, there is no reason to expect that these systems will give exactly the same answers to a complex optimization&amp;nbsp;problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I don't follow what you are trying to accomplish statistically, but if you are using the results of a previous run to provide initial estimates for a subsequent run, then these little differences can add up.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Based on what you've told me and what I've inferred, I don't see&amp;nbsp;any way to guarrantee that the results are exactly the same for both runs. &amp;nbsp;Check the Iteration History to see how/when the optimizations diverge from each other.&lt;/P&gt;</description>
      <pubDate>Fri, 15 Jul 2016 19:03:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/Developers/Proc-nlin-method/m-p/284938#M5050</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2016-07-15T19:03:16Z</dc:date>
    </item>
  </channel>
</rss>

