*! Information criteria. v.1.1. by Stas Kolenikov, skolenik@yahoo.com program define icomp, rclass version 6 syntax , [RSS] if "`e(cmd)'"=="" { error 301 } if e(ll)==. { di in red "Cannot retrieve the estimate of likelihood" exit 301 } if "`rss'"=="" { local lackfit = e(ll) } else { local lackfit = -.5*e(N)*log(e(rss)/e(N)) } return scalar AIC=-2*`lackfit'+2*e(df_m) return scalar SBIC=-2*`lackfit'+e(df_m)*log(e(N)) return scalar CAIC=-2*`lackfit'+e(df_m)*(log(e(N))+1) tempname IFIM matrix `IFIM'=e(V) local s=rowsof(`IFIM') return scalar ICOMP=-2*`lackfit'+`s'*log(trace(`IFIM')/`s')-log(det(`IFIM')) di in gre _n " Information criteria" di in green "AIC = " in yellow %8.5f return(AIC) di in green "SBIC = " in yellow %8.5f return(SBIC) di in gre "ICOMP = " in ye %8.5f return(ICOMP) end