*! version 1.1.0 22apr2003 (SJ3-2: st0039) program define xtserial, rclass version 8.0 syntax varlist [if] [in], [ Output ] marksample touse qui tsset local ivar "`r(panelvar)'" if "`ivar'" == "" { di as err "panel variable not specified" exit 498 } local tvar "`r(timevar)'" if "`tvar'" == "" { di as err "time variable not specified" exit 498 } if "`output'" == "" { local qui quietly } `qui' regress d.(`varlist') if `touse', nocons cluster(`ivar') tempname df_r F df p corr tempvar res qui predict double `res' if `touse', residuals qui regress `res' l.`res' if `touse', nocons cluster(`ivar') qui test l.`res' == -.5 scalar `corr' = _b[l.`res'] scalar `df_r' = r(df_r) scalar `F' = r(F) scalar `df' = r(df) scalar `p' = r(p) di di as txt "Wooldridge test for autocorrelation in panel data" di as txt "H0: no first-order autocorrelation" di as txt _col(5) "F(" %3.0f `df' "," %8.0f `df_r' ") = " /// as res %10.3f `F' di as txt _col(12) "Prob > F = " as res %11.4f `p' ret scalar corr = `corr' ret scalar df_r = `df_r' ret scalar F = `F' ret scalar df = `df' ret scalar p = `p' end