program define sktest2 version 2.1 if "%_*"=="" { di in red "invalid syntax -- see help sktest" exit 198 } mac def _varlist "req ex min(1)" mac def _if "opt" mac def _in "opt" mac def _exp "opt" mac def _options "Quiet" parse "%_*" parse "%_varlist", parse(" ") if "%_quiet"!="" { mac def _q "*" } %_q di _n _col(17) in gr "Skewness/Kurtosis tests for Normality" _n /* */ _col(47) "------- joint -------" _n /* */ " Variable | Pr(Skewness) Pr(Kurtosis)" /* */ " Chi-sq(2) Pr(Chi-sq)" _n /* */ "----------+" _dup(56) "-" while ("%_1"!="") { quietly summarize %_1 %_if %_in %_exp, detail mac def _nsk = _result(14)*sqrt(_result(1))/2.277 mac def _nku = (_result(15)-3)*sqrt(_result(1))/4.81 mac def _c2 = (%_nsk^2 + %_nku^2) mac def _indent = 9 - length("%_1") %_q di in gr _skip(%_indent) "%_1 |" in ye /* */ _col(18) %5.3f 2-2*normprob(abs(%_nsk)) /* */ _col(32) %5.3f 2-2*normprob(abs(%_nku)) /* */ _col(44) %9.2f %_c2 /* */ _col(60) %5.3f chiprob(2,%_c2) mac def sktest "%_c2" mac shift } end