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.
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"
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.
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
Thanks Steve. I tried subject=pid(leg_sort) but in vain. I have been getting the same warning message, not sure what went wrong...
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
The sample data looks in the following way.
Steve,
There are no duplicates. I removed the duplicates using nodupkey.
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
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"
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
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.
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.
Select SAS Training centers are offering in-person courses. View upcoming courses for: