*! version 1.0.0, Marc Jacobs, (STB-9: sqv3.1) program define atrgph version 2.1 if "%_*"=="" {di in bl "After" in ye " LOGPCORG" in bl "are required: dep var & indep var" exit } mac def _varlist "req ex min(2)" mac def _in "opt" parse "%_*" parse "%_varlist", parse(" ") logit %_* cap { qui { cap label drop at_r cap label def at_r o " " cap drop llo cap drop _one cap drop _depvar cap drop _num cap drop _cof cap drop _secof cap drop _wald cap drop _parcor cap drop at_r cap drop teller g _depvar=%_1 g _one=sum(cond(_depvar,1,0)) replace _one = _one[_N] gen _num=[_n-1]+1 #del ; g llo=(_one*(log(_one))) + ((_num[_N]-_one) * (log(_num[_N]-_one))) - (_num[_N] * log(_num[_N])); #del cr gen _cof =. gen _secof =. gen _wald =. gen _parcor=. g at_r =. g teller = _n mac def _i = 0 mac shift noisily di _n(2) noi di in wh "Wald Statistics and Partial Correlations (Atkinson's R)" noi di in gr _n _col(1) "No. Var Wald Prob(Chi) Partial Cor" noisily di in gr _dup(52) "-" while "%_1"!= "" { mac def _i=%_i+1 replace _cof = _b[%_1] in %_i cap test %_1 replace _secof = abs(_b[%_1])/sqrt(_result(6)) in %_i replace _wald = (_cof/_secof)^2 in %_i replace _parcor= sqrt((_wald-2)/(2*abs(llo))) * replace _parcor=-_parcor if (_cof)<0 replace _parcor= 0 if _wald<2 replace at_r = _parcor in %_i lab def at_r %_i "%_1", add #del ; noi di in gr %_i %9.3f _col(6) "%_1" %9.3f in ye _col(14) _wald[%_i] %9.3f _col(24) chiprob(1,_wald[%_i]) %9.3f _col(38) _parcor[%_i]; #del cr mac shift } noi di in gr _dup(52) "-" cap drop llo cap drop _one cap drop _num cap drop _depvar cap drop _cof cap drop _secof cap drop _wald cap drop _parcor } } qui { mac def _f = "%S_FN" save ___temp1, replace replace teller = . if at_r==. lab val teller at_r lab var at_r "Partial Correlation" keep at_r teller drop if at_r == . sort at_r outfile at_r teller using at_r, replace drop _all infile at_r teller: teller using at_r, automatic * Graph the sorted parameters #del ; gr at_r if at_r >0, bar by(teller) shading(1) t1("Partial correlation, Atkinson's r") t2("Model set " %_i " Variables sorted by significance") sav(pc_%_i, replace); #del cr cap drop at_r teller * save at_r%_i, replace use %_f, clear } end