#The code is to evaluate the cutoff values CFI_e in equivalence testing #corresponding to the conventional cutoff values of CFI=.99, .95, .92, and .90, respectively; #as described in the article #"Confirm Structural Equation Models by Equivalence Testing with Adjusted Fit Indices" #by Yuan, Chan, Marcoulides and Bentler; #needed inputs are degrees of freedom (df), sample size (N), and number of observed variables (p); df=23; N=145; p=9; n=N-1; df_i=p*(p-1)/2; CFI_e99=1-exp( 4.67603-.50827*log(df)+.87087*(df^(1/5))-.59613*((df_i)^(1/5))-1.89602*log(n) + .10190*((log(n))^2)+ .03729*log(df)*log(n) ); #corresponding to R-square=.9836; CFI_e95=1-exp( 4.12132-.46285*log(df)+.52478*(df^(1/5))-.31832*((df_i)^(1/5))-1.74422*log(n) +.13042*((log(n))^2)-.02360*(n^(1/2))+.04215*log(df)*log(n) ); #corresponding to R-square=.9748; CFI_e92=1-exp( 6.31234-.41762*log(df)+.01554*((log(df))^2)-.00563*((log(df_i))^2)-1.30229*log(n) +.19999*((log(n))^2)-2.17429*(n^(1/5))+.05342*log(df)*log(n)-.01520*log(df_i)*log(n) ); #corresponding to R-square=.9724; CFI_e90=1-exp( 5.96633-.40425*log(df)+.01384*((log(df))^2)-.00411*((log(df_i))^2)-1.20242*log(n) +.18763*((log(n))^2)-2.06704*(n^(1/5))+.05245*log(df)*log(n)-.01533*log(df_i)*log(n) ); #corresponding to R-square=.9713; cutoff=cbind(CFI_e90, CFI_e92, CFI_e95, CFI_e99); cutoff_3=round(cutoff,3); print(cutoff); cat('--poor--', cutoff_3[1], '--mediocre--', cutoff_3[2], '--fair--', cutoff_3[3], '--close--', cutoff_3[4], '--excellent--',"\n")