Date: Fri, 5 Aug 2005 13:17:44 -0400
Reply-To: Thomas Soubiran <th.soubiran@GMAIL.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: Thomas Soubiran <th.soubiran@GMAIL.COM>
Subject: Nlmixed is getting on my nerves
Dear Saslisters,
The random statement of Proc Nlmixed is giving me trouble.
I need to analysis a database which traces on the occupation of over 8,000
individuals since they joined the labor force. There is one record per
year. I'd like to run a polytomous logistic regression with a typology of
occupations as dependant variableand individuals at level two.
One of my (numerous) problem is that I cannot get estimates of the random
components or get "funny" error messages.
I've tried several codes such as this one...
proc
nlmixed data=pos2 ;
parms
g1=-3 g12=0
g2=0 g22=0
g3=-3 g32=0
v1=0 v12=0 v13=0 v2=0 v23=0 v3=0 ;
eta1=g1 + g12*age_ +u1;
eta2=g2 + g22*age_ +u2;
eta3=g3 + g32*age_ +u3;
if pro4=1 then p=exp(eta1)/( 1+exp(eta1)+ exp(eta2)+exp(eta3));
else if pro4=2 then p=exp(eta2)/( 1+exp(eta1)+ exp(eta2)+exp(eta3));
else if pro4=3 then p=exp(eta3)/( 1+exp(eta1)+ exp(eta2)+exp(eta3));
else if pro4=4 then p= 1/(1+exp(eta1)+exp(eta2)+exp(eta3));
ll=log(p);
model pro4 ~ general (ll);
random u1 u2 u3 ~normal([0, 0,0],[v1,v12,v13,v2,v23,v3]) subject=ident;
v1=exp(2*LogSdu1);
v2=exp(2*LogSdu2);
v3=exp(2*LogSdu3);
v13=rho1*exp(LogSdu1+LogSdu2);
v23=rho2*exp(LogSdu2+LogSdu3);
run;
...and here is an example of the messages I get :
Random-effects distributional parameter value changed in observation 2. It
must remain constant within subjects.
Or that
Quadrature accuracy of 0.000100 could not be achieved with 61 points. The
achieved accuracy was 1.000000.
And if I chang the number of qpoints then I get (and adding the "noad"
statement):
No valid parameter points were found.
And so on...till I get:
Out of memory.
Now, I've tried with randomly drawn smaller samples but it doesn't change
anything.
And that's when I get anything because sometimes, the computer runs during
hours without yealding anything. And when it does converges, variances
components are not estimated or only some of them and the fixed effects
take strange values.
But, actually, my problem is much wider : even when there's only one
bianry outcome, I can only run models with a random intercept. When I try
to run a random slope model on cross sectional data (with eras as as a
second level), the variance components are not estimated.
Can anybody tell me what's wrong ? Did I specify the variance-covariance
structure properly ? Or is it the data itself or the way I transforms it ?
Many thanks in advance,
Thomas