BookmarkSubscribeRSS Feed
alynnlaurie
Calcite | Level 5

Hello everyone,

I'm exploring the experimental Proc FMM procedure, and I've run into an issue that doesn't make sense to me.

I would like to use Proc FMM to model normally distributed biological data that has a lower limit of detection (LLD), where there are many observations at the LLD value.  It would be great to use Proc FMM to find the mixing probabilities for the normal and degenerate distribution at the LLD value.  However, I've found that in Proc FMM, the constant distribution will not mix with the normal or the truncated normal distribution.  The constant distribution works well with the Poisson and Negative Binomial distributions, so I'm not sure why it doesn't work with the normal.  I'm not sure if this is just a functionality that is not available currently, of if I'm missing something.

Here is some example code that demonstrates this issue:

data testing(keep=num); *Randomly generates 1,000 observations from N(1,1);

    do i=1 to 1000;

    num = 1 + 1*rannor(0);

  output;

  end;

run;

data testing2; set testing; *Sets anything below 0 (the example LLD value) to 0;

if num <0 then x=0; else x=num;

run;

proc fmm data=testing2  componentinfo; *Proc FMM Normal distribution mixing with a degenerate distribution at the LLD value, 0;

model x=/ dist=normal;

model  + /dist=constant(0);

run;

Thanks for the help!

3 REPLIES 3
SteveDenham
Jade | Level 19

I ran the code using my current installation (SAS/STAT12.1 TS1M2), and it ran without a problem.  I got a much better fit to the data using a truncnormal(0,.) option in the first model statement.

If it is not running, I suspect that you are on an earlier version, where these problems have been corrected.

Steve Denham

SteveDenham
Jade | Level 19

Well, maybe truncnormal gives a better fit visually.  However, the log likelihood and IC values would point to a normal.

Steve Denham

alynnlaurie
Calcite | Level 5

Thank you for running this, Steve.  I am running Base SAS 9.3 TS1M0.  I will see if my institution has access to the TS1M1 or TS1M2 update for base, and hope that will fix the problem.  It's exciting to hear that it works since I hope to use this to model a variety of data censored by a lower limit of detection.

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 ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 3 replies
  • 1435 views
  • 4 likes
  • 2 in conversation