Termination due to Floating Point Exception with Proc NLMixed for a count data set

  • Follow


I am trying to fit a count data set to zero-inflated Negative Binomial
model using Proc NLMIXED in SAS 9.2.

My program works well with all datasets except the particular data set
below, from there I got an error message of
=93 ERROR: Termination due to Floating Point Exception=94
My research tells me that this problem is fixed in SAS 9.2.
I am really puzzled now. Your advice is greatly appreciated.

Sincerely, Maryann


data AUTOCNTYIP;
input x Freq;
datalines;
0	1706
1	351
2	408
3	268
4	74
5	5
;;
run;
%Let Var=3DX;
%let Infile=3DAUTOCNTYIP;

PROC SQL; SELECT MAX(&VAR) INTO :MAX FROM &iNFILE;

PROC SQL;SELECT SUM(ADJEXP) INTO :NUMRECORD FROM &INFILE;QUIT;
%PUT NUMRECORD: &NUMRECORD;


%let Xbar=3D0.8150782361;	*mean of Variable X;
%let SS=3D1.3645822422; *Variance of Variable X;

/* Setting Initial Values for parameters*/
DATA P_HAT ;
W=3D0; * When w=3D0, zero-inflated Negative binomial reduces to negative
binomial. This leads to the following 2 moment estimates;
BHAT=3D&XBAR/(&SS-&XBAR); *Moment estimation of parameter b in Negative
Binomial model;
AHAT=3D&XBAR*BHAT;*Moment estimation of parameter a in Negative Binomial
model;
RUN;
DATA _NULL_;
SET P_HAT;
IF _N_=3D1 THEN DO;
CALL SYMPUT('AHAT',LEFT(TRIM(AHAT)));
CALL SYMPUT('BHAT',LEFT(TRIM(BHAT)));
CALL SYMPUT('W',LEFT(TRIM(W)));
END;
RUN;

***********PARAMETER ESTIMATION ZINB*********************;
PROC NLMIxed data=3D&Infile;
     PARMS AHAT=3D&AHAT BHAT=3D&BHAT W=3D&W;
	  IF &VAR=3D0 THEN LNLIKE=3DLOG(W+(1-W)*((BHAT/(1+BHAT))**AHAT));ELSE
   LNLIKE =3DLOG(1-W)+LOG(GAMMA(&Var+AHAT))-LOG(GAMMA(AHAT))-LOG(GAMMA
(&Var+1))
               -(&Var+AHAT)*LOG(1+BHAT)+AHAT*LOG(BHAT);
   MODEL &Var ~ GENERAL(LNLIKE);/* Max Likelihood MODEL */
	REPLICATE Freq;


   ODS OUTPUT PARAMETERESTIMATES=3DPESTIMATE_ZINB;/*OUTPUT PARAMETER
ESTIMATES*/;
   ODS OUTPUT FitStatistics=3DFitStatistics_ZINB;/*OUTPUT PARAMETER
ESTIMATES*/;
RUN;

In addition, the other data sets fit well with the above code. For
example,
data HOSPITALSTAY;
input x Freq;
datalines;
0	3541
1	599
2	176
3	48
4	20
5	12
6	5
7	1
8	4
;;
run;
0
Reply jiangqiyangfang (18) 1/5/2010 11:24:30 AM


0 Replies
928 Views

(page loaded in 0.019 seconds)

Similiar Articles:







7/20/2012 11:53:06 AM


Reply: