BookmarkSubscribeRSS Feed
ronaldo7
Calcite | Level 5

 

I am using the National Survey of Children's Health (NSCH) 2020, 2021, and 2022 datasets for an analysis. 

Essentially, I am trying to use multiple imputation for federal poverty level (FPL) variable. From there, I was trying to construct a multivariate logistic regression model to estimate adjusted odds ratios with 95% confidence intervals and P values. However, when I try to run the proc mianalyze statement, I obtain the following error message:

 

Within-imputation StdErr missing for variable estimate in _Imputation_= 4 in the input DATA= data set.

 

 

Here is my code: 

 

 

data stacked;
set work.nsch20_22;
array fpli{6} fpl_i1-fpl_i6;
do _Imputation_=1 to 6;
fpl_i=fpli{_Imputation_};

if fpl_i < 100 then povcat_i = 1;
if 100<=fpl_i<200 then povcat_i = 2;
if 200<=fpl_i<400 then povcat_i = 3;
if fpl_i>=400 then povcat_i = 4;
output;
end;
run;


proc sort data=stacked;
by _Imputation_;
run;



proc surveylogistic data=stacked;
	strata stratum fipsst; 
	cluster hhid;
	weight fwc20_22;
	by _Imputation_; 
	class AgeCategory Sex_Logistic Race_Logistic BORNUSA_Logistic CURRINS_Logistic 
		YEAR SC_HISPANIC_R HIGRADE_TVIS povcat_i / param=glm;
	model SickleCell_Binary(event='1')=AgeCategory Sex_Logistic SC_HISPANIC_R Race_Logistic 
		povcat_i HIGRADE_TVIS BORNUSA_Logistic CURRINS_Logistic YEAR / link=logit 
	technique=fisher;
ods output parameterestimates = parms ; 
run;



proc sort data=work.parms;
by _imputation_; *NOTE: if I ever add the response variable (SickleCell_Binary) in the BY statement, an error message will appear that the response variable cannot be found in the dataset, so I have been only keeping _imputation_ in the BY statement. Is this the source of the problem/can you help me with this please?;
run;



proc mianalyze data=parms;
modeleffects estimate;
stderr stderr;
ods output parameterestimates=MI_parms;
run;  *NOTE: this is when I receive the error message that the within-imputation StdErr is missing;



data OR;
set MI_parms;
OR=exp(estimate);
lower_or=exp(LCLMean);
upper_or=exp(UCLMean);
keep comparison OR lower_or upper_or;
run;  *NOTE: I have never been able to get to this set of code. However, would this code give me adjusted odds ratios with 95% confidence intervals along with P values??;

 

 

1 REPLY 1
Ksharp
Super User
It looks like you have all the same value for variable "estimate" at _Imputation_= 4 after PROC LOGISTIC.
a.k.a "estimate" 's std=0 .

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 643 views
  • 0 likes
  • 2 in conversation