05-01-2017 10:28 AM
Running a program under SAS v9.2, a call to proc nlmixed produced in ods ParameterEstimates a (theta) probt value of .0527, while under v9.4 gives the value .0528. Can anyone tell me why? I am a programmer, not a statistician, and have a responsibility to produce results using the same program against the same data that match what was produced before; this looks to me like a formatting change, but I cannot see where/how the format of probt is being set. There are 4 beta parameter probts being set as well, and three of them are also slightly off in the fourth decimal place. (To me, this does not seem worth bothering about, but my statistician does care.)
Below is the proc statement used. Can this be fixed?
proc nlmixed data= serotype_alls;
parms lambda=0.1 alpha=-2 theta=1 beta1=1 beta2=1 beta3=1 beta4=1;
model disease ~ binary(lambda /(1+exp(alpha + theta*group + beta1* assayval1 + beta2* assayval2 + beta3* assayval3 + beta4* assayval4 )));
ods output ParameterEstimates=est_alls;
05-01-2017 10:48 AM
Algorithms get adjusted between software releases.
Are you running on the exact same machine? Same operating system? Same processors? Hardware can also make a difference with internal memory, rounding and math coprocessor results.
Also did you look to see more digits in the value.
You .0527 may have been .052745123 and the .0528 .052750001 (just examples) So what would be the practical significance of a difference of .0000049 or similar in your analysis?
05-08-2017 09:06 AM
While I appreciate your reply, which confirms what I suspected, I cannot say that it is entirely satisfactory.
The operating system and hardward have not changed in the year since this program last ran on SAS v9.2; or at least it hasn't changed in a way that affects any of the other millions of calculations we do every day. So I am confiedent that is not a factor.
As for looking at the unformatted values for comparison, that is part of the problem: nlmixed formats these values (pvalue6.4) in the ods output we are using. If there is a way to change or turn off this format, or otherwise get to the raw values, I have not been able to find it.
So although I can accept your explanation as likely (and we have no choice but to accept the v9.4 output as it is), I still don't know whether the algorithm adjustment was in nlmixed or the pvalue format. The only thing I could find in the documentation that mentioned differences between releases was for pvalue, indicating that there might be small differences if option DECIMALCONV is set to STDIEEE. In our case, the option is set to COMPATIBLE, but in fact changing it does not change this particular output.
But thank you anyway.