*! version 8.0.0 30Nov2015 program define myregress8, eclass version 14 syntax varlist(numeric ts fv) [if] [in] [, Robust noCONStant ] marksample touse gettoken depvar indeps : varlist _fv_check_depvar `depvar' tempname zpz xpx xpy xpxi b V tempvar xbhat res res2 quietly matrix accum `zpz' = `varlist' if `touse' , `constant' local N = r(N) local p = colsof(`zpz') matrix `xpx' = `zpz'[2..`p', 2..`p'] matrix `xpy' = `zpz'[2..`p', 1] matrix `xpxi' = syminv(`xpx') local k = `p' - diag0cnt(`xpxi') - 1 matrix `b' = (`xpxi'*`xpy')' quietly matrix score double `xbhat' = `b' if `touse' quietly generate double `res' = (`depvar' - `xbhat') if `touse' quietly generate double `res2' = (`res')^2 if `touse' if "`robust'" == "" { quietly summarize `res2' if `touse' , meanonly local sum = r(sum) local s2 = `sum'/(`N'-(`k')) matrix `V' = `s2'*`xpxi' } else { tempname M quietly matrix accum `M' = `indeps' [iweight=`res2'] /// if `touse' , `constant' matrix `V' = (`N'/(`N'-(`k')))*`xpxi'*`M'*`xpxi' local vce "robust" local vcetype "Robust" } ereturn post `b' `V', esample(`touse') buildfvinfo ereturn scalar N = `N' ereturn scalar rank = `k' ereturn local vce "`vce'" ereturn local vcetype "`vcetype'" ereturn local cmd "myregress8" ereturn display end