// More complex example, defining more realistic imputation models // Define models where prior and next state have a time-dependent effect // However, allow fallback to a simpler model in the case of non convergence capture program drop mict_model_gap program define mict_model_gap di "Attempt first gap model" capture mi impute mlogit _mct_state i._mct_next##c._mct_t i._mct_last##c._mct_t, add(1) force augment iterate(40) if (_rc==430) { di as error "NO CONVERGENCE, fitting simplest gap model" mi impute mlogit _mct_state i._mct_next i._mct_last, add(1) force augment } else if _rc { exit _rc } end capture program drop mict_model_initial program define mict_model_initial capture mi impute mlogit _mct_state i._mct_next##c._mct_t, add(1) force augment iterate(40) if (_rc==430) { di as error "NO CONVERGENCE, fitting simplest gap model" mi impute mlogit _mct_state i._mct_next, add(1) force augment } else if _rc { exit _rc } end capture program drop mict_model_terminal program define mict_model_terminal capture mi impute mlogit _mct_state i._mct_last##c._mct_t, add(1) force augment iterate(40) if (_rc==430) { di as error "NO CONVERGENCE, fitting simplest gap model" mi impute mlogit _mct_state i._mct_last, add(1) force augment } else if _rc { exit _rc } end use mvadmar mict_prep state, id(id) mict_impute, nimp(10) save mict_example2, replace