BookmarkSubscribeRSS Feed
☑ This topic is solved. Need further help from the community? Please sign in and ask a new question.
Diels_O
Obsidian | Level 7

Here's the code's run, And using PROC MIANALYZE don't get the p value, and the SD is larger than any individual outcome

proc MI data = ITT1 seed = 128 nimpute = 10 out = aftermi;
class score90day IVT group;
fcs logistic(score90day = age baseline_covriate onset_to_randomization group score30day);
var score90day group age baseline_covriate  onset_to_randomization score30day;
run;
proc print data = aftermi;
run;
data aftermi;
set aftermi;
if score90day = 0 then score90day_0to1 = 1;
else if score90day = 1 then score90day_0to1 = 1;
else score90day_0to1 = 0;
run;
/*modified Poisson Regression*/
proc genmod data = aftermi;
by _Imputation_;
class enroll_order group(desc) score90day_0to1(desc) IVT/PARAM = GLM;
model score90day = group onset_to_randomization baseline_covriate  age/ dist = poisson link = log covb corrb;
ods output GEEEmpPEst=gmparms parminfo=gmpinfo Covb=gmcovb;
repeated subject = enroll_order/type = un modelse;
estimate "beta" group 1 -1/exp;
ods output Estimates=est_ds(where=(index(label,'Exp')=1));
lsmeans group/diff exp cl;
run;
proc sort data=est_ds;
by label _imputation_;
run;
proc mianalyze data=est_ds;
by label;
modeleffects LBetaEstimate;
stderr stderr;
run;


And I get the result like this for each generated dataset

 

This is the estimated result

 

when using the PROC MIANALYZE for LbetaEstimate;

I found that the Std Error seems to be larger than any Std Error in each dataset of the 10 generated. And I couldn't get the P value, can any Proffessor help me ?

 

 

 

 


 

1 ACCEPTED SOLUTION

Accepted Solutions
SAS_Rob
SAS Employee

In the Parameter Estimates table output from Proc MIANALYZE, the last column is the p-value for testing that the estimate=0 (in your case it is very small, i.e. less than .0001).  If you want the actual value then you would either need to format the output by modifying the template (cumbersome) or saving the table to a SAS dataset and then applying a FORMAT.

proc mianalyze data=est_ds;
by label;
modeleffects LBetaEstimate;
stderr stderr;

ods output ParameterEstimates=parms;

run;

proc print data=parms;

format Probt 10.8;

run;

 

The combined standard error will almost always be larger than any of the standard errors for the single estimates by design.  Part of what makes multiple imputation appealing and a good tool to reduce bias is the fact that it introduces variability across the imputations and not just within the imputations.  In other words, the variance for the estimates includes two factors--the within imputation variance and the between imputation variance.  The formulas in the documentation are informative in that regard.

SAS Help Center: Combining Inferences from Imputed Data Sets


run;

View solution in original post

3 REPLIES 3
SAS_Rob
SAS Employee

In the Parameter Estimates table output from Proc MIANALYZE, the last column is the p-value for testing that the estimate=0 (in your case it is very small, i.e. less than .0001).  If you want the actual value then you would either need to format the output by modifying the template (cumbersome) or saving the table to a SAS dataset and then applying a FORMAT.

proc mianalyze data=est_ds;
by label;
modeleffects LBetaEstimate;
stderr stderr;

ods output ParameterEstimates=parms;

run;

proc print data=parms;

format Probt 10.8;

run;

 

The combined standard error will almost always be larger than any of the standard errors for the single estimates by design.  Part of what makes multiple imputation appealing and a good tool to reduce bias is the fact that it introduces variability across the imputations and not just within the imputations.  In other words, the variance for the estimates includes two factors--the within imputation variance and the between imputation variance.  The formulas in the documentation are informative in that regard.

SAS Help Center: Combining Inferences from Imputed Data Sets


run;

Diels_O
Obsidian | Level 7

Thank you Rob, since the the last column is the p-value for testing that the estimate=0, How can I get the p value that for the model effect of variable "group"? How shoud I get the P>Chisq?

Thank you!

Diels_O
Obsidian | Level 7

Thank Dr. Rob, I have find it out; I will just use the estimate result rather than the result with exp function; After the PROC MIANALYZE just calculate the EXP value, many thanks to you!

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
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
  • 807 views
  • 0 likes
  • 2 in conversation