Help using Base SAS procedures

proc mixed warning

Accepted Solution Solved
Reply
Contributor
Posts: 35
Accepted Solution

proc mixed warning


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.


Accepted Solutions
Solution
‎12-23-2013 01:55 PM
Contributor
Posts: 35

Re: proc mixed warning

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


All Replies
Super User
Posts: 10,490

Re: proc mixed warning

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.

Respected Advisor
Posts: 2,655

Re: proc mixed warning

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

Contributor
Posts: 35

Re: proc mixed warning

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

Respected Advisor
Posts: 2,655

Re: proc mixed warning

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

Contributor
Posts: 35

Re: proc mixed warning

The sample data looks in the following way.

Inline image 1

Contributor
Posts: 35

Re: proc mixed warning

Steve,

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

Respected Advisor
Posts: 2,655

Re: proc mixed warning

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

Solution
‎12-23-2013 01:55 PM
Contributor
Posts: 35

Re: proc mixed warning

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"

Respected Advisor
Posts: 2,655

Re: proc mixed warning

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

New Contributor
Posts: 2

Re: proc mixed warning

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.

☑ This topic is SOLVED.

Need further help from the community? Please ask a new question.

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