macro autotest rawdata; times B. mconstant B n normcorr i permcorr pvalue mcolumn rawdata nscore nscsave x2 x3 x4 lagraw lagscore lagsave c100 c101 c102 c103 mmatrix M1 default B=1000 plug # create regular lag plot and display c lag 1 rawdata lagraw. plot rawdata*lagraw; title "Raw Data Lag Plot"; symbol. # compute normal scores and store in x1 let n=count(rawdata) nscores rawdata nscore. # create normal scores lag plot and display correlation lag 1 nscore lagscore. Plot nscore*lagscore; title "Normal Scores Lag Plot"; symbol. # save unpermuted normal and lag scores let nscsave = nscore let lagsave = lagscore # compute absolute value normal scores correlation, abnormcorr Correlation nscore lagscore M1. copy M1 x3 - x4. let normcorr = absolute(x4(1)) # compute permutation test pvalue let pvalue = 0 do i=1:B sample n nscore nscore. lag 1 nscore lagscore. correlation nscore lagscore M1. copy M1 x3 - x4. let permcorr = absolute(x4(1)) if permcorr >= normcorr let pvalue = pvalue + 1 endif enddo let pvalue = pvalue/B # output statistics # raw data autocorrelation corr rawdata lagraw; nopvalue. # normal score autocorrelation let nscore = nscsave let lagscore = lagsave corr nscore lagscore; nopvalue. let c100 = " p-value for testing null hypothesis of no autocorrelation: " copy pvalue c101 text c101 c102; significant 4. concatenate c100 c102 c103 write c103; file 'TERMINAL'. endmacro