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 ?
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;
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;
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!
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!
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!
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.