Here's one that has recently popped up for us. Given two nearly identical datasets (I'll get into how close to identical they are down below), we get radically different behavior in two programs that use PROC GLIMMIX to analyze a repeated measures design. The two programs both sort the data prior to analysis, and sort in identical ways (the BY variables are the same and in the same order). The PROC GLIMMIX code for the two differ only in that one explicitly lists variables in the class, lsmeans and random statements, while the other uses macro variables to fill these statements. On resolution of the macro variables, the PROC GLIMMIX code for the two programs is the same. I don't think this difference is critical for reasons given below. Datasets: The data are cardiac measurements such as QT interval. Using PROC COMPARE, the differences in the dependent variable are on the order of 1E-14 (yep, out at the 14th decimal place). What happens: The two programs behave identically, but depending on the dataset used, give radically different "results." For one dataset, the procedure converges, gives all the tests, lsmeans, differences, etc. that we need. For the other dataset, no convergence (but only for some covariance structures), usually throwing the "Failed to improve the objective function" message. What we have done: For the dataset that does not converge, we have gone into the NLOPTIONS and made changes, such as changing the technique to the trust region method, or changing the update option for the quasi-Newton algorithm. Result: You get the same critical values (log likelihood, F values, etc.) as are obtained for the "convergent" dataset. What else we have done: Round the dependent variable to eight decimal places prior to analysis. Result 2: Everything converges, with identical results for both programs and both datasets. Still a third thing we have done: Using the not-quite-the-same datasets, specify starting parameters in a PARMS statement. Nothing exceptionally close to the final values, but different from the (I assume) MIVQUE0 values that GLIMMIX defaults to for starting estimates (which happen to be identical, at least in the .lst file, for the two datasets). Question: What the heck is going on? Has anyone else run into this before? I find it really disturbing that there is this much sensitive dependence on initial estimates, especially when it looks like the differences between the input data is smaller than the machine precision. Anybody have an idea of where to go from here? Steve Denham
... View more