* PARTIAL RESIDUAL PLOTS FOR LINEAR REGRESSION * Joseph Hilbe STB 11-22-91 program define partres version 2.1 if "%_*"=="" { di in red "invalid syntax - see help partres" exit 198 } mac def _varlist "req ex" mac def _options "* LOWESS" * mac def _in "opt" * mac def _if "opt" parse "%_*" parse "%_varlist", parse(" ") mac def _lhs %_1 mac shift qui gen _i=0 capture { reg %_lhs %_* predict _RESID, resid while "%_1"~="" { mac def _i=%_i+1 gen _fit%_i=_b[%_1]*%_1 gen _PRES%_i=_RESID+_fit%_i mac shift } } if "%_lowess"=="" { _prgrph %_varlist } if "%_lowess"~="" { _prgrphl %_varlist } qui { cap drop _i cap drop _RESID cap drop _fit* cap drop _PRES* } end program define _prgrphl version 2.1 mac def _varlist "req ex min(1)" parse "%_*" parse "%_varlist",parse(" ") mac def _DV=%_1 mac shift mac def _i=0 while "%_1"~= "" { mac def _i=%_i+1 label variable _PRES%_i "Partial Residual of %_1" noisily ksm _PRES%_i %_1, low mac shift } end program define _prgrph version 2.1 mac def _varlist "req ex min(1)" parse "%_*" parse "%_varlist",parse(" ") mac def _DV=%_1 mac shift mac def _i=0 while "%_1"~= "" { mac def _i=%_i+1 label variable _PRES%_i "Partial Residual of %_1" noisily gr _PRES%_i %_1, xlab ylab border c(.l) s(oi) sort mac shift } end