BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
sampath
Calcite | Level 5


proc mixed data=effd ;

  by efques;

class leg_sort viswin pid;

model efchg = leg_sort viswin  leg_sort*viswin / solution ddfm=satterthwaite;

repeated viswin/subject=pid type=un;

lsmeans leg_sort*viswin/cl alpha=0.05 pdiff;

ods output LSMeans=means;

ods output diffs=diffs;

run;


I have run the above code and I was expecting a data set to get created for means but I have been getting following warning without any output dataset. Could you please let me know what's wrong in my code?


WARNING: Stopped because of infinite likelihood.
NOTE: The above message was for the following BY group:
     Efficacy parameter short name=TOTAREA
WARNING: Output 'diffs' was not created.  Make sure that the output object name, label, or path
        is spelled correctly.  Also, verify that the appropriate procedure options are used to
        produce the requested output object.  For example, verify that the NOPRINT option is not
        used.
WARNING: Output 'LSMeans' was not created.  Make sure that the output object name, label, or path
        is spelled correctly.  Also, verify that the appropriate procedure options are used to
        produce the requested output object.  For example, verify that the NOPRINT option is not
        used.

1 ACCEPTED SOLUTION

Accepted Solutions
sampath
Calcite | Level 5

Thanks Steve, tried everything but in vain, same warning message still bothering me.

1) Also I was using the the following option.

proc mixed = data absolute convf=;


It works fine in the windows sas but not in UNIX, could you please suggest any solution?


2) We initially used "type= cs" which worked fine but I was requested by our statistician to use "stats type= un".


I got the following two warnings "Infinite likelihood and convergence not met"

View solution in original post

10 REPLIES 10
ballardw
Super User

Probably not a code problem but a data problem.

I would look closely at the values of your model variables when the efques variable is TOTAREA.

SteveDenham
Jade | Level 19

Following on to this, you may not have unique values for pid for a given combination.  Try subject=pid(leg_sort).  This would mean that each leg_sort within pid would have one response value for each level of viswin.

Steve Denham

sampath
Calcite | Level 5

Thanks Steve. I tried subject=pid(leg_sort) but in vain. I have been getting the same warning message, not sure what went wrong...

SteveDenham
Jade | Level 19

Time for some diagnostic PROC FREQ.

proc freq data=effd;

tables leg_sort*viswin;

run;

The entries in the cells should be the number of patients at each point.  Check that against your raw data. You have to eliminate any exactly duplicate records, as that is the most common source of the infinite likelihood error.

Steve Denham

sampath
Calcite | Level 5

The sample data looks in the following way.

Inline image 1

sampath
Calcite | Level 5

Steve,

There are no duplicates. I removed the duplicates using nodupkey.

SteveDenham
Jade | Level 19

In a word, bleah.  That takes care of the easy approach.  Back to 's comment--almost certainly a data problem.  So now I pose the following question: How many records, and how many covariance parameters are being estimated.  TYPE=UN means estimating N*(N - 1)/2 parameters, and if you don't have enough data with variation for this many time points, you may run into this problem.  What happens if you fit a (much) simpler (and probably not completely appropriate) variance structure.  You might try:

proc mixed data=effd ;

  by efques;

class leg_sort viswin pid;

model efchg = leg_sort viswin  leg_sort*viswin / solution ddfm=satterthwaite;

repeated viswin/subject=pid type=cs;

lsmeans leg_sort*viswin/cl alpha=0.05 pdiff;

ods output LSMeans=means;

ods output diffs=diffs;

run;

If this throws the same error, then we need to consider whether there is variability at each viswin--if all efchg values are identical (and zero), you can get into trouble with the log likelihood.

Also, just from the name, it looks like efchg is a change score.  You may have better luck fitting the actual ef value, with the ef baseline for each pid as a continuous covariate.

Steve Denham

sampath
Calcite | Level 5

Thanks Steve, tried everything but in vain, same warning message still bothering me.

1) Also I was using the the following option.

proc mixed = data absolute convf=;


It works fine in the windows sas but not in UNIX, could you please suggest any solution?


2) We initially used "type= cs" which worked fine but I was requested by our statistician to use "stats type= un".


I got the following two warnings "Infinite likelihood and convergence not met"

SteveDenham
Jade | Level 19

I really don't understand why you would get different results in windows vs. unix, so that seems like a matter for Tech Support.

As far as the wanting type=un, I can understand "wanting" it, but it seems to me as if there is not enough data to support estimating that many parameters.  One thing you might try is converting over to PROC GLIMMIX so that you could use type=CHOL (cholesky root of the unstructured matrix) to see if that worked any better.  My gut feeling is that it will not, but it is worth trying.

Steve Denham

purpleangel
Calcite | Level 5

I have the same problem, VC, CS  and AR(1) all work well, however, when UN and SP(POM) were employed, waring would be given as  posted on the page, so I think something may have to do with the statistics in these models, but I still have difficuly in understanding  what I can do to make SAS process well when using UN and SP(POM) models. Thank you very much.

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 10 replies
  • 7282 views
  • 7 likes
  • 4 in conversation