*! version 1.1 a 4 August 2009

capture program drop skewt
program define skewt, rclass
version 9
syntax varlist (numeric)[if] [in], [bs saving(string) size(integer 1) reps(integer 100) replace *]
marksample touse 
preserve
keep if `touse'
foreach var of varlist `varlist' { 
capture confirm numeric variable `var'
	if _rc==0 {
		qui sum `var' if `touse', detail
		di ""
		di in gr _col(5)  "`var'- stats from the sample"
		di ""
		di in gr _col(5) "N coefficient  = `=sqrt(r(N))'"
		di in gr _col(5) "S-coefficient  = `=r(mean)/r(sd)'"
		di in gr _col(5) "G-coefficient  = `r(skewness)'"
		di in gr _col(5) "Sample mean    = `r(mean)'"
		di ""
		local ratio = (`=sqrt(r(N))')* ((`=r(mean)/r(sd)') + ((1/3) * (`r(skewness)') * ((`=r(mean)/r(sd)')^2)) + ((1/(6*((`=sqrt(r(N))')^2)))* (`r(skewness)')))
		return scalar ratio_`var'=`ratio'
	}
	else {
		di as input "`var'" as text " is not a numeric variable skewness adjusted t-statistic cannot be calculated."
	}

if "`bs'" == "bs" {
	if "`saving'" != "" {
		local saving `saving'_`var'
		global pot `saving'
	}
	bootstrap r(ratio_`var') if `touse' , saving("`saving'", `replace') reps(`reps') size(`=int(_N/`size')') `options': skewt `var'
	}
}
restore
end