Hi,
I am running on a 64-bit version of SAS 9.4 from a remote system. I received these error messages:
ERROR: Invalid Operation.
ERROR: Termination due to Floating Point Exception
when trying to run the code below in 1000 simulation and after about 50 run.
proc nlmixed data=analysis_&sim ;
parms a0=0 a1=0 a2=0 b0=0 b1=0 b2=0 tau=0 sigma=1 sigma1=1 sigma2=1 nu=1;
bounds sigma>0, sigma1>0, sigma2>0, nu>0;
eta_zero_m=a0+a1*x1+a2*x2+z1;
p_zero_m=exp(eta_zero_m)/(1+exp(eta_zero_m)); /* probability y > 0 */
eta_cont_m=b0+x1*b1+b2*x2+z2;
mu_cont_m=exp(eta_cont_m);
delta_cont=eta_cont_m - (sigma**2/2);
mu_cont_p=exp(delta_cont);
if y=0 then ll=log(p_zero_m);
else ll=log(1-p_zero_m)+log(y)*(mu_cont_p*(1+nu)-1)-(mu_cont_p*(1+nu)+nu+2)*log(1+y) lgamma(mu_cont_p*(1+nu))
-lgamma(nu+2)+lgamma(mu_cont_p*(1+nu)+nu+2);
model y~general(ll);
random z1 z2 ~ normal([0,0],[sigma1**2,tau*sigma1*sigma2,sigma2**2])
subject=idnum;
ods output ParameterEstimates=estTT_&sim ConvergenceStatus=ConvergTT_&sim FitStatistics=FitTT_∼
run;
data matrix_TT;
set estTT_:;
output;
data conv_TT;
set ConvergTT_:;
output;
data fit_TT;
set FitTT_:;
output;
run;
I would open a ticket with SAS Tech Support for this one. You can reach them through email (support@sas.com) or through the web (support.sas.com). Better to use those methods than the phone for a complicated problem like this ...
You can use
%PUT &=SIM;
inside the macro loop so that you can find out which simulated data set is failing. Then you can use a WHERE clause to examine the data and try to run the PROC NLMIXED code just on that subset.
One possibility is that either eta_zero_m or eta_cont_m is too large (greater than 709) so that EXP() overflows.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.