Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Home
- /
- Analytics
- /
- Stat Procs
- /
- PROC FMM: Order of Components

- RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

☑ This topic is **solved**.
Need further help from the community? Please
sign in and ask a **new** question.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Posted 06-01-2024 12:14 PM
(313 views)

Hello,

I am running a simulation study using PROC FMM for a two-component mixture model. When I compare the parameter estimates to the underlying simulated values, I want to ensure that what is called "Component 1" in one iteration of the simulation is consistent with "Component 1" across other iterations of the simulation (e.g., Component 1 is always the mixture with a larger intercept), so that components are comparable across iterations.

I have reviewed the documentation for the RESTRICT statement, and see that it says it can be used "to impose order conditions on the parameters in a model" but I can't quite figure out how to implement this. The current code to implement my mixture model using PROC FMM is shown below. I appreciate any suggestions for ordering the components. Thank you.

proc fmm data=sim55.scenario55_sim_data_events; where iteration = 1; model log_outc_yrs = age_dx_centered / cl dist=normal k = 2 equate=scale; probmodel pdl1_perc_norm / noint cl; weight iptw_ipcw_trim97; run;

1 ACCEPTED SOLUTION

Accepted Solutions

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

If I understand your question, I believe you are referring to a phenomenon known as "label switching." The FMM documentation for the PARTIAL= option states:

*In a model in which label switching is a problem, you can sometimes avoid switching by assigning**just a few observations to categories. For example, in a three-component model, switching might be**prevented if you assign the observation that has the smallest response value to the first component and**the observation that has the largest response value to the last component.*

Alternatively, you can try to post-process the labels by looking at the ParameterEstimates table. If the Intercept1 term is greater than the Intercept2 term, then switch the labels for the parameters and for the mixing probability.

I don't think you want to use the RESTRICT statement. That will impose constraints on the parameters for the first and second components, but it does not affect which components are assigned as first and second.

2 REPLIES 2

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

If I understand your question, I believe you are referring to a phenomenon known as "label switching." The FMM documentation for the PARTIAL= option states:

*In a model in which label switching is a problem, you can sometimes avoid switching by assigning**just a few observations to categories. For example, in a three-component model, switching might be**prevented if you assign the observation that has the smallest response value to the first component and**the observation that has the largest response value to the last component.*

Alternatively, you can try to post-process the labels by looking at the ParameterEstimates table. If the Intercept1 term is greater than the Intercept2 term, then switch the labels for the parameters and for the mixing probability.

I don't think you want to use the RESTRICT statement. That will impose constraints on the parameters for the first and second components, but it does not affect which components are assigned as first and second.

- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. **Registration is now open through August 30th**. Visit the SAS Hackathon homepage.

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.