|
再给出单一ridit分析:
ods html;
%let group=3;
%let rank=5;
%let col_row=%eval(&group*&rank);
DATA QQTJFX16_3;
row=&rank;
col=&group;
ARRAY num(&rank,&group);
ARRAY cpd(&group);
ARRAY ridit(&group);
ARRAY trow(&rank);
ARRAY tcol(&group);
ARRAY y(&rank);
ARRAY ucpd(&group);
ARRAY uridit(&group);
ARRAY t(&group);
ARRAY stde(&group);
ARRAY lowci(&group);
ARRAY uppci(&group);
ARRAY lowc9(&group);
ARRAY uppc9(&group);
FILE PRINT;
n=0; buf1=0;
buf4=0; buf5=0;
INPUT num1-num&col_row;
DO j=1 TO col;
tcol(j)=0;
DO i=1 TO row;
tcol(j)=tcol(j)+num(i,j);
END;
n=n+tcol(j);
END;
buf3=n;
DO i=1 TO row;
trow(i)=0;
DO j=1 TO col;
trow(i)=trow(i)+num(i,j);
END;
buf4=buf4+trow(i)*trow(i)*trow(i);
buf2=trow(i);
y(i)=buf3-buf1-buf2;
buf3=y(i);
buf1=trow(i);
END;
DO j=1 TO col;
cpd(j)=0;
DO i=1 TO row;
cpd(j)=cpd(j)+num(i,j)*y(i);
END;
ridit(j)=0.5-cpd(j)/(2*tcol(j)*n);
t(j)=tcol(j)*(n+1)/2-cpd(j)/2;
stde(j)=sqrt((n*n*n-buf4)/
(12*n*n*(n-1)*tcol(j)));
ucpd(j)=cpd(j)/sqrt(tcol(j)*
(n-tcol(j))*(n*n*n-buf4)/(3*n*(n-1)));
uridit(j)=(0.5-ridit(j))/
sqrt((n*n*n-buf4)/
(12*n*n*(n-1)*tcol(j)));
buf5=buf5+t(j)*t(j)/tcol(j);
lowci(j)=ridit(j)-1.96*stde(j);
uppci(j)=ridit(j)+1.96*stde(j);
lowci(j)=ROUND(lowci(j), 0.0001);
uppci(j)=ROUND(uppci(j), 0.0001);
lowc9(j)=ridit(j)-2.576*stde(j);
uppc9(j)=ridit(j)+2.576*stde(j);
lowc9(j)=ROUND(lowc9(j), 0.0001);
uppc9(j)=ROUND(uppc9(j), 0.0001);
END;
Hc=(12/(n*(n+1))*buf5-3*(n+1))/
(1-(buf4-n)/(n*(n*n-1)));
prob_Hc=1-PROBCHI(Hc,col-1);
PUT @25 "Kruskal-Wallis's Test"
#3 @14 'Adjusted Chi-Square(Hc)'
@49 'Prob>Hc'
#4 @20 Hc 10.4 @50 prob_Hc 6.4;
PUT #6 @25 'Result of RIDIT Analysis'
#8 @5 'Means of RIDIT' @22 '%95 C.I. of'
@40 '99% C.I. of' @56 "RIDIT's"
#9 @5 ' Values' @22 'RIDIT Values' @40 'RIDIT Values' @56 "U-Values";
DO j=1 TO col;
PUT #(j+10) @7 ridit(j) 7.4 @21
lowci(j) '--' uppci(j)
@39 lowc9(j) '--' uppc9(j) @55
uridit(j) 8.4;
END;
buf1=probit(0.05/2/col);
buf2=-buf1;
buf3=probit(0.05/2);
buf4=-buf3;
PUT #(col+12) @5 "ALPHA=0.05
RIDIT's Critical U-Values"
@45 buf3 7.4 @56 buf4 7.4;
buf1=probit(0.01/2/col);
buf2=-buf1;
buf3=probit(0.01/2);
buf4=-buf3;
PUT #(col+13) @5 "ALPHA=0.01
RIDIT's Critical U-Values"
@45 buf3 7.4 @56 buf4 7.4;
CARDS;
5 7 5
20 10 4
1 5 1
2 7 9
2 1 11
;
RUN;
ods html close;
|