/* Cramer-von Mises test for normality */ /* This program is a GAUSS version of 'cvm.test' */ /* by Juergen Gross in library 'nortest' of R. */ new; cls; x=rndn(100,1); call CVMtest(x); proc CVMtest(x); local n,p,W,Z,pval; if ismiss(x); errorlog "Warning: missing data found."; x=packr(x); endif; n=rows(x); x=sortc(x,1); p=cdfn((x-meanc(x))/stdc(x)); W=1/(12*n)+sumc((p-(2*seqa(1,1,n)-1)/(2*n))^2); Z=W*(1+0.5/n); if Z<0.0275; pval=1-exp(-13.953+775.5*Z-12542.61*Z^2); elseif Z<0.051; pval=1-exp(-5.903+179.546*Z-1515.29*Z^2); elseif Z<0.092; pval=exp(0.886-31.62*Z+10.897*Z^2); else; pval=exp(1.111-34.242*Z+12.832*Z^2); endif; print "stat=" W; print "pval=" pval; retp(W); endp;