BookmarkSubscribeRSS Feed
Pariz
Fluorite | Level 6

Hi,

 

I have data with two modes or peaks. The first mode I model using a truncated normal distribution, whereas the second one I model using a normal distribution. The model converges fine. However, when I try to replace normal distribution by Weibull or Gamma, the model doesn't seem to get a correct result. Instead of modelling by weibull d'n the second mode, it models by it the first mode, while the second mode is modelled by a truncated normal distribution. Is there a way to somehow force the model to use truncated normal for the first mode and weibull for the second mode, as I only want to replace normal dist'n by Weibull. The code I'm using is:

 

proc fmm data=observations plot=density(bins=56);
model x = / dist=truncnormal(1.2,.);
model +/dist=weibull;


output out=output_file mean (component) var (component) mixweights(component) posterior(component) prob(component) predicted(component) pred(component) loglike(component);
run;

 

Thanks.

1 REPLY 1
Rick_SAS
SAS Super FREQ

You don't mention the sample size. For small data and components whose peaks nearly overlap, you might not have many options. The method just doesn't have enough power to distinguish two components that are close to each other unless the data size is large enough. The two things to try are

(1) use the PARMS option in the MODEL statement to provide guesses for the parameters.

(2) using the PARTIAL= option in the PROC FMM statement.to tell PROCFMM that an observation belongs to particular component

 

For a discussion of these topics, with examples, see "The power of finite mixture models."

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
  • 1 reply
  • 1298 views
  • 0 likes
  • 2 in conversation