I programmed a likelihood function with 465 unknowns and trying to maximize log-likelihood using this sub-routine. As the number of unknowns are large, the sub-routine throws a note "I/O required temporary file to be open" and "Initial allocation of symbol space exhausted. You may specify SYMSIZE = option on PROC IML statement to increase its allocation for more efficiency". As suggested by the sub-routine, I increased the symsize to 30000 (max limit), still it throws the same error. I guess this happens as the symbol space is exhausted. Could anyone tell me how to resolve this and suggest an alternative so that I can estimate unknowns. Many thanks. Bhaskar
Hi..just to know if my program working or not, I reduced the number of unknowns to 58 so that the sub-routine doesnt run out of symbol space. This idea worked avoiding symbol space problem but only one iteration happened and the "ABSGCONV" satisfied leaving the final solution at initial values. Would any one of you know the reason for this. That would be of great help. Thanks - Bhaskar
As for the premature convergence for the 58 variable case, you probably need to check over your termination criteria. In the IML doc, go to
SAS Products->SAS/IML User's Guide->Nonlinear Optimization Examples->Details->Termination Criteria. There are several possible criteria that you can use to determine when to stop iterating the solver, and my guess is that the default gradient-based termination criteria is too loose for your particular problem. If you can't figure it out, work with SAS Technical Support. You can send your code to them if necessary for a specific diagnosis.
Thanks Joe, I have not set any termination criteria and left default. However, I take your point of discussing with SAS technical support. In which whom should I contact and how. If you could let me know that would be great. Thanks, Bhaskar
You might try setting the SAS MEMSIZE= configuration option to MAX, as this limits how much you can request for the SYMSIZE option in proc iml. I'm not sure what the default is on your machine, but it might be worth a try. I also suggest you check with SAS Technical support, as they have direct access to the SAS developer, if they get stumped.