Showing results for

- Home
- /
- Analytics
- /
- Stat Procs
- /
- Proc MIANALYZE for categorical interaction

Options

- 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** and **locked**.
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 02-27-2018 01:46 PM
(3331 views)

I am having trouble generating pooled effect estimates for an interaction between two categorical variables, using multiple linear regression with robust variance estimation and stabilized inverse probability of treatment weights - essentially a 'multiple informant' model. The code I'm working with is:

```
Proc genmod data=data plots=(dfbetacs);
class studyid predict_1 (ref='0');
model z_bw=predict_1*time race*time bmi*time age*time educat*time smoke*time/noint dist=normal link=identity id=studyid;
repeated subject=studyid/type=ind ecovb;
weight &weight;
by _imputation_;
ods output GEEEmpPEst=emp_est GEERCov=emp_covb
parmInfo=pinfo;
run;
Proc mianalyze parms(classvar=level)=emp_est covb = emp_covb parminfo=gmpinfo mult;
class predict_1*time;
modeleffects predict_1*time;
run;
```

Predict_1 is a 3 level categorical variables (i.e., 1st, 2nd, 3rd tertile), time is a 2 level categorical variable. My model works fine but I'm unable to generate the pooled estimate for predict_1*time at each of the 6 potential levels. However, I am receiving an error message that I've been unable to correct in that SAS doesn't appear to be recognizing the "predict_1*time" as an effect/Parm name:

"ERROR 22-322: Syntax error, expecting one of the following: a name, ;, -."

"ERROR 200-322: The symbol is not recognized and will be ignored."

Any ideas? Please!

1 ACCEPTED SOLUTION

Accepted Solutions

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

Try this:

```
Proc mianalyze parms(classvar=level)=emp_est;
class predict_1;
modeleffects predict_1*time;
run;
```

You won't be able to use the MULT option since you have a CLASS variable. This also means you do not need the COVB= option either.

4 REPLIES 4

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

Use

**class predict_1 time;**

no asterisk.

PG

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

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

Try this:

```
Proc mianalyze parms(classvar=level)=emp_est;
class predict_1;
modeleffects predict_1*time;
run;
```

You won't be able to use the MULT option since you have a CLASS variable. This also means you do not need the COVB= option either.

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

Success!!! Thank you so much!

Secure your spot at the must-attend AI and analytics event of 2024: SAS Innovate 2024! Get ready for a jam-packed agenda featuring workshops, super demos, breakout sessions, roundtables, inspiring keynotes and incredible networking events.

Register by March 1 to snag the Early Bird rate of just $695! Don't miss out on this exclusive offer.

** **

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.