I want to add constraints to a gsem model. I have multiply imputed data and I want to first pool results across the multiply imputed datasets, and then re-run the model for each imputed dataset, constraining the model parameters to be equal to the pooled results. In case of interest, I am doing this to get an overall Likelihood Ratio test statistic (see here).
For some reason, so far, Stata only adds some specified constraints to the model but not others. Does anyone know why please? Code with some annotation below.
Code:
// Missing Data from: https://stats.idre.ucla.edu/stata/seminars/mi_in_stata_pt1_new/ use https://stats.idre.ucla.edu/wp-content/uploads/2017/05/hsb2_mar.dta, clear mi set flong mi register imputed female write read math prog science mi impute chained /// (logit) female (mlogit) prog (regress) write read math science = socst, /// add(10) rseed (53421) // Overall model mi estimate, cmdok post: gsem (write <- i.ses read) (ses <- read, mlogit), /// group(female) ginvariant(none) // Loops through estimated parameters and makes them into constraints. matrix b=e(b) local vars: colfullnames b constraint drop _all foreach var of local vars{ local i=`i'+1 constraint `i' _b[`var'] = `=_b[`var']' } constraint dir // Re-runs model with constraints added. mi unset, asis numlist "1(1)9" gsem (write <- i.ses read) (ses <- read, mlogit), /// group(female) ginvariant(none) constraints(`r(numlist)') if _mi_m==1 // Some but not all constraints successful applied
Liam
0 Response to Constraints does not work in gsem
Post a Comment