BookmarkSubscribeRSS Feed
Rover17
Obsidian | Level 7

Hi All,

 

I am trying to use PROC IRT procedure. I am getting the following warning messages. After the following warning messages, I provide my code below. 

 

WARNING: The M step for the EM algorithm fails to converge.
Number of iterations or number of function calls
exceeds limit.
WARNING: The estimation algorithm did not converge.

 

proc irt data=mald.calibration_file_d link=logit itemstat outmodel=mald.initial_parameters_file_d guessprior=(0.2,20)
slopeprior=(1,2) fconv=.01 technique=EM maxiter=1000 maxmiter=1 noad qpoints=11;
group group;
var C9_21 C8_22 C8_23 C8_24 C10_25 C9_26 C10_27 C12_28 C12_29
C13_30 C11_31 C11_32 C12_33 C12_34 C13_35 C12_36 C11_37 C11_38 C11_39
C12_40;
model C9_21 C8_22 C8_23 C8_24 C10_25 C9_26 C10_27 C12_28 C12_29
C13_30 C11_31 C11_32 C12_33 C12_34 C13_35 C12_36 C11_37 C11_38 C11_39
C12_40/resfunc=threep;
run;

Can someone please suggest how to correct my code so that the model converges?

 

Thank you,

Aaron

1 REPLY 1
ballardw
Super User

Without any knowledge of your data it is hard to make a pointed suggestion.

 

A default concept when a limit is exceeded is to see if you can change the limit. Since the warning is the M step you might consider increasing the MAXMITER which from the documentation:

specifies the maximum number of iterations in the maximization step of the EM algorithm. By default, MAXMITER=1.

 

I might try setting it to larger values though I wouldn't start with anything very large.

Other considerations would be things like the convergence criteria. I do see that the documentation states that the FCONV parameter is not used by the EM algorithm. Perhaps you want to use a different convergence criterion.

 

You may also want to consider that making a model converge does not mean that the result is actually good model.

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

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
  • 1 reply
  • 385 views
  • 1 like
  • 2 in conversation