clear all set more off mata mata mlib index sjlog using confa1,replace use hs-cfa describe sjlog close, replace sjlog using confa2,replace cap noi confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9) sjlog close, replace sjlog using confa3,replace confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9), from(ones) confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9), from(iv) confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9), from(smart) sjlog close, replace sjlog using confa5,replace confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9), from(iv) vce(sbentler) nolog sjlog close, replace sjlog using confa6,replace confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9), from(iv) robust nolog sjlog close, replace sjlog using confa7,replace matrix bb=e(b) confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9), from(bb, skip) correlated(x7:x8) sjlog close, replace sjlog using confa8,replace qui confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9), from(bb) vce(sbentler) local T0 = e(lr_u) local r0 = e(df_u) local c0 = e(SBc) qui confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9), from(bb, skip) vce(sbentler) corr(x7:x8) local T1 = e(lr_u) local r1 = e(df_u) local c1 = e(SBc) local DeltaT = (`T0'-`T1')*(`r0'-`r1')/(`r0'*`c0'-`r1'*`c1') di as text "Scaled difference Delta = " as res %6.3f `DeltaT' as text "; Prob [chi2>" as res %6.3f `DeltaT' as text "] = " as res %6.4f chi2tail(`r0'-`r1', `DeltaT') sjlog close, replace sjlog using confa9,replace qui confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9), from(bb, skip) correlated(x7:x8) set seed 1010101 bollenstine, reps(500) confaoptions(iter(20) corr(x7:x8)) sjlog close, replace sjlog using confa10,replace estat fitindices sjlog close, replace sjlog using confa11,replace estat corr estat corr, bound sjlog close, replace sjlog using confa12,replace predict fa1-fa3, reg predict fb1-fb3, bart corr fa1-fb3, cov corr fa1-fb3 sjlog close, replace sjlog using confa13,replace confa (vis: x1 x2 x3) (text: x4 x5 x6) (math: x7 x8 x9), from(ones) unitvar(_all) corr(x7:x8) sjlog close, replace sjlog using confa14,replace set seed 123456 forvalues k=1/9 { gen y`k' = cond(runiform()<0.0`k', ., x`k') } sjlog close, replace sjlog using confa15,replace confa (vis: y1 y2 y3) (text: y4 y5 y6) (math: y7 y8 y9), from(bb) nolog sjlog close, replace sjlog using confa16,replace confa (vis: y1 y2 y3) (text: y4 y5 y6) (math: y7 y8 y9), from(iv) missing difficult sjlog close, replace sjlog using confa17,replace * traits model use libdem80, clear confa (pollib: party broad print civlb) (demrul: leg80 polrt compet effec), vce(sbentler) from(smart) difficult usenames matrix b_t = e(b) preserve * methods model: obtain the data by replacing the variables with their residuals predict f1 f2, bartlett foreach x of varlist party80 broad80 print80 civlb80 { qui replace `x' = `x' - [lambda_`x'_pollib]_cons*f1 } foreach x of varlist leg80 polrt80 compet80 effec80 { qui replace `x' = `x' - [lambda_`x'_demrul]_cons*f2 } confa (sussman: broad print) (gastil: civlb polrt) (banks: leg80 party compet effec), difficult from(smart) usenames iter(20) matrix b_res = e(b) restore sjlog close, replace sjlog using confa18,replace constraint define 201 [phi_pollib_sussman]_cons = 0 constraint define 202 [phi_pollib_gastil]_cons = 0 constraint define 203 [phi_pollib_banks]_cons = 0 constraint define 204 [phi_demrul_sussman]_cons = 0 constraint define 205 [phi_demrul_gastil]_cons = 0 constraint define 206 [phi_demrul_banks]_cons = 0 * initial values: combine the previous results matrix bb2 = (b_t[1,1..19], b_res[1,9..30] ) confa (pollib: party broad print civlb) (demrul: leg80 polrt compet effec) (sussman: broad print) (gastil: civlb polrt) (banks: leg80 party compet effec), constr(201 202 203 204 205 206) from(bb2) usenames difficult vce(sbentler) sjlog close, replace