*! PR 27-Dec-93. STB-22: sg26.1 program define _jprfpre /* calc deviance residuals */ local dist `1' local y `2' local eta `3' local mu `4' local r `5' local exp "`6'" if `dist'==0 { /* normal */ replace `mu' = `eta' replace `r' = `y'-`eta' } else if `dist'==1 { /* Bernoulli logit -- needs updating for probit */ replace `mu' = 1/(1+exp(-`eta')) global S_E_vl "`y' $S_E_vl" cap drop `r' lpredict `r', deviance * replace `r' = sign(`y'-`mu') /* * */ *sqrt(cond(`y', -2*log(`mu'), -2*log(1-`mu'))) * replace `r' = (`y'-`mu')/sqrt(`mu'*(1-`mu')) } else if `dist'==2 { /* Poisson */ replace `mu' = exp(`eta') replace `r' = sign(`y'-`mu') /* */ *sqrt(cond(`y'==0, 2*`mu', /* */ 2*(`y'*log(`y'/`mu')-(`y'-`mu')))) * replace `r' = (`y'-`mu')/sqrt(`mu') } if "`exp'"!="" { parse "`exp'", parse("=]") replace `r' = `r'*sqrt(`3') } end