'This code was written specifically for my Applied Economics Letters paper on the CUSUM test. Paul Turner (November 2011) create u 1 200 rndseed 100 scalar k = 2 scalar t = 200 scalar break = 1 scalar breakpoint = 0.5 scalar beta = 20 scalar repl = 10000 vector(repl) fails vector(repl) fails2 vector(t) ub1 vector(t) lb1 vector(t) ub2 vector(t) lb2 scalar c0 = 0.12944 scalar a = 0.948 for !iter = 1 to repl statusline Iteration !iter rndseed 100+!iter series x = @qnorm(rnd) rndseed 200+!iter series u = @qnorm(rnd) if break =1 then smpl 1 0+t*breakpoint series y = 0.5*x+u smpl 0+t*breakpoint+1 0+t y =beta*x+u endif if break = 0 then smpl 1 0+t series y = 0.5*x+u endif smpl 1 0+t smpl 1 0+t equation eq1.ls y x scalar ser = @se eq1.rls(r,s) vector(t) w vector(t) w2 vector(t) cs1 vector(t) cs2 for !i = 1 to t w(!i) = r_res(!i)/ser next scalar sumw=0 for !i = 2 to t sumw = sumw+w(!i) cs1(!i) = sumw next for !i = 2 to t ub1(!i) =a*(t-k)^0.5*(1-2*k/(t-k))+2*a*(t-k)^0.5/(t-k)*!i lb1(!i) = -a*(t-k)^0.5*(1+2*k/(t-k))-2*a*(t-k)^0.5/(t-k)*!i next for !i = 1 to t w2(!i) = (r_res(!i)/ser)^2 next scalar sum2w = 0 for !i = k to t sum2w = sum2w+w2(!i) cs2(!i) = sum2w next for !i =k to t cs2(!i) = cs2(!i)/sum2w next for !i = k to t ub2(!i) = c0+(!i-k)/(t-k) lb2(!i) = -c0+(!i-k)/(t-k) next scalar fail=0 for !i = 2 to t if cs1(!i)ub1(!i) then fail = 1 endif next fails(!iter) = fail scalar fail=0 for !i = k to t if cs2(!i)ub2(!i) then fail = 1 endif next fails2(!iter) = fail next scalar sum1 = 0 scalar sum2 = 0 for !i =1 to repl sum1 = sum1+fails(!i) sum2 = sum2+fails2(!i) next if @isobject("results")=1 then delete results endif table results setcolwidth(results,1,25) setcell(results,1,1, "Number of replications = ") setcell(results,1,2,repl,"r", 5.1) setcell(results,3,1,"CUSUM test") setcell(results,4,1,"CUSUMSQ test") setcell(results,3,2,100*sum1/repl,"r",5.2) setcell(results,4,2,100*sum2/repl,"r",5.2) mtos(cs1,cs1s) mtos(lb1,lb1s) mtos(ub1,ub1s) mtos(cs2,cs2s) mtos(lb2,lb2s) mtos(ub2,ub2s)