*! version 1.0.0 (STB-33: sg59) program define nbgof version 4.0 local varlist "req ex" local if "opt" local in "opt" parse "`*'" parse "`varlist'", parse(" ") tempvar kant touse y p1 p2 p1sum p2sum preserve qui mark `touse' `if' `in' qui keep if `touse' di "" di _col(13) "Neyman-Barton" di "Variable" _col(12) "Smooth GOF Test" _col(30) "p-value" _col(45) /* */ "U-bar" _col(55) "S-squared" di in gr _dup(9) "-" "+" _dup(54) "-" while "`1'" != "" { qui su `1' local en = _result(1) if _result(5)<0 | _result(6)>1 { qui replace `1' = (`1' - _result(5))/(_result(6) - _result(5)) } qui gen `y' = `1' - .5 qui gen `p1' = 2 * sqrt(3) * `y' qui gen `p2' = sqrt(5) * ((6*`y'^2)-.5) qui gen `p1sum' = sum(`p1') qui gen `p2sum' = sum(`p2') local v1 = (1/sqrt(`en')) * `p1sum'[_N] local v2 = (1/sqrt(`en')) * `p2sum'[_N] local nbgof = `v1'^2 + `v2'^2 local nbgofp = chiprob(2,`nbgof') global S_1 `nbgof' global S_2 `nbgofp' global S_3 `v1' global S_4 `v2' di "`1'" _col(10) in gr "|" _col(12) in ye %6.3f `nbgof' _col(30) /* */ %5.4f `nbgofp' _col(45) %6.3f `v1' _col(55) %6.3f `v2' drop `y' `p1' `p2' `p1sum' `p2sum' mac shift } end