- ******************************
- * vuong.ado
- * Judson A. Caskey
- * UCLA
- * 26-Apr-2007
- *
- * Computes Vuong (1989 Econometrica) test
- * of two non-nested regressions as implemented
- * and described in Dechow (1994 Journal of
- * Accounting and Economics)
- *
- ******************************
- cap prog drop vuong
- prog define vuong, rclass
- syntax [anything]
- tempname mod1 mod2 rss1 rss2 rsq1 rsq2 n zstat pval nbad
- tempvar s1 s2 e1 e2 m
- if `"`: word count `anything''"' ~= "2" {
- di as err "You must specify two distinct models"
- exit
- }
- est_expand `"`anything'"', min(1) max(2)
- local `mod1' : word 1 of `r(names)'
- local `mod2' : word 2 of `r(names)'
- if "``mod1''"=="``mod2''" {
- di as err "You must specify two distinct models"
- exit
- }
- quietly estimates restore ``mod1''
- local `rss1'=e(rss)
- local `rsq1'=e(r2)
- quietly _predict `e1' if e(sample), resid
- quietly gen `s1'=e(sample)
- quietly estimates restore ``mod2''
- local `rss2'=e(rss)
- local `rsq2'=e(r2)
- quietly _predict `e2' if e(sample), resid
- quietly gen `s2'=e(sample)
- quietly count if `s1'==1 & `s2'==1 & ~missing(`e1',`e2')
- local `n'=r(N)
- quietly gen `m'=log(``rss1''/``rss2'')/2 + ``n''*((`e1'^2)/``rss1'' - (`e2'^2)/``rss2'')/2 if `s1'==1 & `s2'==1 & ~missing(`e1',`e2')
- quietly reg `m'
- local `zstat'=-sqrt((e(N)-1)/e(N))*_b[_cons]/_se[_cons]
- local `pval'=(1-normal(abs(``zstat'')))*2
- di as result _column(20) " Model 1" _column(35) " Model 2"
- di as result "R-Squared" _column(20) %10.4f ``rsq1'' _column(35) %10.4f ``rsq2''
- di as result ""
- di as result "Vuong Z-Statistic" _column(20) %10.4f ``zstat''
- di as result " p-value" _column(20) %10.4f ``pval''
- return scalar r2_1=``rsq1''
- return scalar r2_2=``rsq2''
- return scalar Z=``zstat''
- return scalar p=``pval''
- quietly count if (`s1'==1 & `s2'==0) | (`s1'==0 & `s2'==1)
- local `nbad'=r(N)
- di as result ""
- if ``nbad''>0 di as err "``nbad'' observations in one model but not the other"
- end


雷达卡



京公网安备 11010802022788号







