* !arpois.ado version 4.1.0 September 1998 STB-46 sts13 * Aurelio Tobias (IMIM) & Mike Campbell (University of Sheffield) * Poisson regression allowing for autocorrelation and overdispersion * (Schwartz et al. J Epidemiol Comminity Health 1996) program define arpois version 5.0 local weight "aweight fweight iweight pweight" local varlist "req ex min(2)" local if "opt" local in "opt" local options "ar(int 0) delete prev *" parse "`*'" parse "`varlist'", parse (" ") macro drop S_1 if "`delete'"=="delete" { cap drop _rho* cap drop _z } if "`prev'"=="prev" { poisson `varlist' `if' `in' } else { qui poisson `varlist' `if' `in' } matrix XX=get(_b) local n=$S_E_mdf+1 global N=$S_E_mdf+1 local i=1 while `i'<`n' { global X`i'=XX[1,`i'] local i=`i'+1 } global X0=XX[1,`n'] local i=2 local j=1 while `i'<=`n' { local v`j' : word `i' of `varlist' local xvarl "`xvarl' `v`j''" global VX`j' "`v`j''" local i=`i'+1 local j=`j'+1 } tempvar eta ey resid sigma qui { local y="$S_E_depv" predict `eta' gen `ey'=exp(`eta') gen `resid'=(`y'-`ey')/`ey' gen _z=`eta'+`resid' gen `sigma'=1/sqrt(`ey') local i=1 global nar=`ar' while `i'<=$nar { tempvar resid`i' sigma`i' gen `resid`i''=`resid'[_n-`i'] gen `sigma`i''=`sigma'[_n-`i'] gen _rho`i'=`resid`i'' *gen _rho`i'=(`sigma'*`resid`i'')/`sigma`i'' local arlist "`arlist' _rho`i'" global RX`i' "_rho`i'" local i=`i'+1 } local i=1 while `i'<=$nar { global R`i'=0.001 local i=`i'+1 } } display in gre "log-linear autoregressive model " `ar' " order" display nl aphea _z `xvarl' `arlist' `if' `in' [aw=`ey'] end