BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
halladje
Fluorite | Level 6

Hello!

 

I am trying to pool my effect estimates across my imputed datasets using a 3-level logistic regression using GLIMMIX. However, only my class variable effect estimates are saving. 

 

Here is my current code:

 

proc glimmix data=lpa method=rspl noclprint;
class idschl jclass mhserv (Ref=first) class_mem (ref=first) female(ref=first) black (ref=first)
esa (ref=first) other (Ref=first);
model mhserv=class_mem female age esa black other assets/CL dist=binary link=logit solution ddfm=bw;
by _imputation_;
random intercept/ type=un subject=idschl;
random intercept/Type=un subject=jclass (idschl);
ods output solutionf=imputeout;
run;
quit;

 

**THESE RUN PROPERLY**


PROC DATASETS NOLIST NODETAILS;
CONTENTS DATA=imputeout ;
RUN;

**THS DATASET ONLY CONTAINS EFFECT ESTIMATES THAT APPEARED IN THE CLASS LINE**


proc mianalyze parms=a_mvn;
class idschl jclass mhserv class_mem female black
esa other;
modeleffects intercept class_mem female age esa black other assets;
STDERR class_mem;
run;

 

**THIS DOESN'T WORK BECAUSE EFFECT ESTIMATES FOR assets and age ARE NOT SAVED**

 

Thanks in advance! 

1 ACCEPTED SOLUTION

Accepted Solutions
SAS_Rob
SAS Employee

When you use a PARMS= data set for input, you should not use the STDERR statement.  All you need is the MODEFFECTS statement.

View solution in original post

9 REPLIES 9
SAS_Rob
SAS Employee

It would be helpful to see the LOG messages you get from the two procedures as well as a snippet of the output from GLIMMIX that shows the parameters.

halladje
Fluorite | Level 6

Hi Rob, 

 

These are the variables saved in imputeout. As you can see, no continuous variable parameters are saved so therefore there is nothing to pool on the subsequent command. 

 

13AlphaNum8BEST6. 
10DFNum8BEST5. 
2EffectChar9  
8EstimateNum8D8.4 
14LowerNum8D8.4 
12ProbtNum8PVALUE6.4Pr > |t|
9StdErrNum8D8.4Standard Error
15UpperNum8D8.4 
1_imputation_Num8  
5blackNum8BEST. 
3class_memNum8BEST. 
6esaNum8BEST. 
4femaleNum8BEST. 
7otherNum8BEST. 
11tValueNum87.2t Value
SAS_Rob
SAS Employee

It seems you are right, but figuring out why without the GLIMMIX output and LOG containing all the code would be practically impossible.

halladje
Fluorite | Level 6

See attached for the log output from the "by _imputation_" run. 

 

Let me know your thoughts! Thanks so much. 

SAS_Rob
SAS Employee
I see a WARNING message that the table SolutionF was not created. Proc GLIMMIX does not have a table with that name the way MIXED does. Instead you should be using the ParameterEstimates table. Try changing that and see if the problem goes away. If not, then please post the entire LOG that includes the MIANALYZE part as well.
halladje
Fluorite | Level 6

I have been having the same issues with ParameterEstimates as well. See attached. I did my imputation in BLIMP - an external 3-level multi-level imputation software - so the actual MI was not done in SAS. However, I renamed the imputation variable the same as the SAS default and it is producing accurate estimates in the stratified analyses. 

 

Thanks again, I really appreciate your time. 

halladje
Fluorite | Level 6

I realized I had some errors in the last code. See attached for an updated. Same issue but I figured out what is going on (just not how to fix it). The results of my imputation are saving for each variable but where each variable and each imputation is listed as an observation. The headings/variable labels are related to the classes (to indicate the coding for that effect estimate), followed by the estimate, standard error, degrees of freedom, etc. So the continuous effects are being saved but as an observation and not as a heading. 

blimp output.png

SAS_Rob
SAS Employee

When you use a PARMS= data set for input, you should not use the STDERR statement.  All you need is the MODEFFECTS statement.

halladje
Fluorite | Level 6

Great! That worked thank you so much. 

 

Jillian 

Ready to join fellow brilliant minds for the SAS Hackathon?

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!
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
  • 9 replies
  • 2324 views
  • 0 likes
  • 2 in conversation