*! Groupwise heteroschedasticity test *! Version 1.1.0 09/10/98 by GI gimpavido@worldbank.org program define gwhet version 5.0 local varlist "required existing max(1)" local options "Index(string)" parse "`*'" /* This creates an index variable 1....n */ if "`index'" == "" { di in re "You did not supply the index variable" exit 198 } unabbrev `index' local index "\$S_1" tempvar idx egen `idx'=group(`index'), missing quietly summ `idx' local max = _result(6) /*H0*/ tempvar res2 rssn capture { gen `res2' = `varlist'*`varlist' gen `rssn' = sum(`res2') } quietly summ `rsn' local s2n = _result(1)*ln(_result(6)/_result(1)) /*H1*/ local s2g "0" local i "1" while `i' <= `max' { tempvar rss`i' capture {gen `rss`i'' = sum(`res2') if `idx' == `i'} quietly sum `rss`i'' local s2`i' = _result(1)*ln(_result(6)/_result(1)) local s2g = `s2g' + `s2`i'' local i = `i' + 1 } /* The LR statistics */ global S_E_LR = `s2n' - `s2g' noi di in gr _n "LR test for groupwise heteroschedasticity" noi di in gr "H0 : " in ye "`varlist'" in gr " is homoschedastic" noi di in gr "H1 : " in ye "`varlist'" in gr " is heteroschedastic" noi di in gr "LR = " in ye %5.3f \$S_E_LR in gr /* */ " Under H0 ~a Chi(" in ye `max' - 1 in gr ") = " /* */ in ye %4.3f chiprob(`max'-1, \$S_E_LR) end