/* Example 3.4.2-----Shapiro-Wilk Test */ /* p=1, n=50, k=25; alpha=5% */ libname sriv '/u/mengd/sasuser/ssm'; proc iml; x={1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 1.5 1.6 1.4 1.1 1.2 1.5 1.3 1.4 1.7 1.5 1.7 1.5 1.0 1.7 1.9 1.6 1.6 1.5 1.4 1.6 1.6 1.5 1.5 1.4 1.5 1.2 1.3 1.4 1.3 1.5 1.3 1.3 1.3 1.6 1.9 1.4 1.6 1.4 1.5 1.4}`; create sriv.petal from x ; append from x; quit; proc iml; sort sriv.petal by col1; use sriv.petal; read all into x; xb=J(1,50,1/50)*x; vsq=(x-xb)`*(x-xb); /*a from Table A.10 */ a={ 0.3751 0.2574 0.2260 0.2032 0.1847 0.1691 0.1554 0.1430 0.1317 0.1212 0.1113 0.1020 0.0932 0.0846 0.0764 0.0685 0.0608 0.0532 0.0459 0.0386 0.0314 0.0244 0.0174 0.0104 0.0035}`; n=50; k=25; b=0; do i=1 to k; b=b+(-a[i,]*(x[n-i+1,]-x[i,])); w=b**2/vsq; end; print w ; quit; W WA 0.9560115 0.947 Since W > Wa, accept H