home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 22
/
CD_ASCQ_22_0695.iso
/
win
/
educ
/
rtkspad
/
rankstat.sp_
/
rankstat
(
.txt
)
Wrap
Microsoft Windows Help File Content
|
1995-05-08
|
23KB
|
384 lines
R-Tek Scratchpad
Version 1.00
TSPadDatad
TPictured
TCommentTextd
TLogFontd
Times New Roman
densed BT
Nonparametric Statistics
nnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
A:50*onesvec(10)
TExpressiond
B:60*onesvec(12)
TCommentTextd
Note that you can freeze the random number generator with a call to
randomize(seed) here. This allows you to regenerate the same random
A and B matrices repeatedly. See below.
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TMatLoopd
TExpressiond
TExpressiond
A[i]:A[i]+rnd(-20.0)
TEndMatLoopd
TCommentTextd
Initially we will start with populations differing in mean.
You should come back, change the mean, change the scatter,
Decide for yourself how discriminating the Wilcoxon test is.
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TMatLoopd
TExpressiond
TExpressiond
B[i]:B[i]+rnd(-20.0)
TEndMatLoopd
TCommentTextd
produce an augmented column
vector M from A and B1
nnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnn]
TExpressiond
TExpressiond
TExpressiond
M:(ATUBT)T
TExpressiond
MR:statrank(M)
TExpressiond
Si:1@rows(A)@MR[i]@
TCommentTextd
The above shows what goes on behind the scenes
of the ranksum calculationI
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnn]
TCommentTextd
Wilcoxon Rank Sum Test
nnnnnnnnnnnnnnnnnnnnnn]
TCommentTextd
sum for A
nnnnnnnnn]
TExpressiond
W:ranksum(A,B)
TExpressiond
A:rows(A)
TExpressiond
B:rows(B)
TCommentTextd
Note the use of literal subscripts A and B
use Alt+D to create themC
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
B+1))/2
TExpressiond
W:\((n
B+1))/12)
THardPageBreakd
TCommentTextd
both matrices must contain 10 elements or more.
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
W:(W-
TCommentTextd
two tail test
nnnnnnnnnnnnn]
TCommentTextd
TExpressiond
a:0.05
TExpressiond
pnorm(
TCommentTextd
compare pnorm to z and decide whether the data suggests that the two
samples A and B come from differing populations. You might want to
freeze the random number generator as mentioned above by seeding it
with randomize. Then you could compare these results to those you would
have obtained had you called ranksum(B, A) instead.
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnz]
TCommentTextd
Mann-Whitney Test
nnnnnnnnnnnnnnnnn]
TCommentTextd
Equivalent to the Wilcoxon rank sum test via:-
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
mannwhitney(A,B)
TExpressiond
B+((n
A+1))/2)-W
TCommentTextd
where the W used here is calculated based on A, ie with ranksum(A, B), not B, AO
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
TExpressiond
U:\((n
B+1))/12)
TCommentTextd
compare
nnnnnnn]
TExpressiond
TExpressiond
U:(U-
TCommentTextd
compare to
nnnnnnnnnn]
TExpressiond
TCommentTextd
Sign Test
nnnnnnnnn]
TExpressiond
ngen:12
TExpressiond
A:50*onesvec(ngen)
TExpressiond
B:60*onesvec(ngen)
TCommentTextd
A and B must be same size vectors!
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TMatLoopd
TExpressiond
TExpressiond
A[i]:A[i]+rnd(-20.0)
TCommentTextd
Initially we will start with populations differing in mean.
You should come back, change the mean, change the scatter,
Decide for yourself how discriminating the tests are.
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
B[i]:B[i]+rnd(-20.0)
TEndMatLoopd
THardPageBreakd
TExpressiond
TExpressiond
TExpressiond
M:AUB
TExpressiond
statrank(M)
TExpressiond
ST:signtest(A,B)
TExpressiond
S:ST[1]
TCommentTextd
number of plus differences betwee the elements of A and B9
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
n:ST[2]
TCommentTextd
number nonzero differences between the elements of A and B:
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
S:n/2
TExpressiond
S:\n/2
TCommentTextd
n must be 10 or more
nnnnnnnnnnnnnnnnnnnn]
TExpressiond
S:(ST[1]-
TCommentTextd
again, for
nnnnnnnnnn]
TExpressiond
a:0.05
TExpressiond
pnorm(
THardPageBreakd
TCommentTextd
Wilcoxon Signed-Rank Test
nnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
SR:signedrank(A,B)
TExpressiond
T:SR[1]
TCommentTextd
sum of signed ranks for the pairs with nonzero differences:
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
n:SR[2]
TCommentTextd
number of nonzero differences between the elements of A and B=
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TCommentTextd
n must be 10 or more
nnnnnnnnnnnnnnnnnnnn]
TExpressiond
TExpressiond
T:\((n*(n+1)*(2*n+1))/6)
TExpressiond
T:(T-
TCommentTextd
Kruskal-Wallis Test
nnnnnnnnnnnnnnnnnnn]
TCommentTextd
similar to Wilcoxon rank-sum test, but applies to more than two samplesH
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
D:58*onesvec(ngen)
TExpressiond
C:55*onesvec(ngen)
TCommentTextd
create two more samples to go with A and B*
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TMatLoopd
TExpressiond
TExpressiond
C[i]:C[i]+rnd(-20.0)
TExpressiond
D[i]:D[i]+rnd(-20.0)
TCommentTextd
Initially we will start with populations differing in mean.
You should come back, change the mean, change the scatter,
Decide for yourself how discriminating the tests are.
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TEndMatLoopd
TExpressiond
M:AUBUCUD
TExpressiond
SR:statrank(M)
TExpressiond
THardPageBreakd
TCommentTextd
Behind the scenes
nnnnnnnnnnnnnnnnn]
TExpressiond
n:rows(SR)*cols(SR)
TExpressiond
K:(12.0/(n*(n+1))*Si:1@cols(SR)@(sum(SR
)^2/rows(SR))@)-3*(n+1)A
TCommentTextd
simpler is:
nnnnnnnnnnn]
TExpressiond
1.0*kruskalwallis(M)
TExpressiond
pchisq(0.95,cols(SR)-1)
TCommentTextd
Note that the built-in kruskalwallis() requires same sized samples. This is only a restriction
of the this function, not the test itself. If your samples are not the same size, proceed as follows:
We will pretend A, B, C, and D are different sizes even though they are not.
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TCommentTextd
create a combined vector from the originals+
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
V:(ATUBTUCTUDT)T
TExpressiond
nItems:M00040001rows(A)@rows(B)@rows(C)@rows(D)@0
TCommentTextd
create a vector of the sizes of the original vectors
in the same order that they were augmented into the
combined vector. Here they are all of size ngen, but
this will not always be the case.
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
1.0*kruskalwallisv(nItems,V)
TCommentTextd
Number of Runs Test
nnnnnnnnnnnnnnnnnnn]
TCommentTextd
Used to discover whether the elements of a sequence are in random order.H
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TCommentTextd
We will analyze the vector V that we just created above for runs. We pass the numruns
function the vector with data and a number that serves to divide the data into two groups.
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TCommentTextd
Returns vector with 4 elements
number of runs >= separator
number of runs < separator
number of vector elements >= separator
number of vector elements < separator
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnzznnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
NR:numruns(V,65)
THardPageBreakd
TCommentTextd
if we refer to the elements >= separator as Heads, then7
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
H:NR[3]
TExpressiond
T:NR[4]
TExpressiond
RH:\((n
T+1)*(n
H-1))/((n
T)^2)*(n
T-1)))>
TExpressiond
RH:(n
T+1))/(n
TNumberFormatDatad
TExpressiond
RH:(NR[1]-
TCommentTextd
The Friedman Test
nnnnnnnnnnnnnnnnn]
TExpressiond
r:1.0*friedman(M)
TCommentTextd
Behind the scenes:
nnnnnnnnnnnnnnnnnn]
TExpressiond
b:rows(M)
TExpressiond
k:cols(M)
TExpressiond
TMatLoopd
TExpressiond
TCommentTextd
loop over the rows of R
nnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
:statrank(R
TEndMatLoopd
TExpressiond
TExpressiond
THardPageBreakd
TExpressiond
r:(12/(b*k*(k+1))*Si:1@k@sum(R
)^2@)-3*b*(k+1)2
TNumberFormatDatad
TCommentTextd
compare to
nnnnnnnnnnn]
TExpressiond
pchisq(0.95,k-1)
TCommentTextd
either k or b must be more than 5!
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn]
TCommentTextd
Spearman's Rank Correlation
nnnnnnnnnnnnnnnnnnnnnnnnnnn]
TCommentTextd
provides a measure of how well two rankings are correlated
It ranges from -1 to 1 with -1 indicating perfect aniticorrelation, 0 no correlation,
and 1 perfect correlation.
nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
B:statrank(B)
TExpressiond
A:statrank(A)
TCommentTextd
There is nothing special
about these list. I just
used statrank() to produce
vectors containing random
rankings from vectors
containing random numbers.
nnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnznnnnnnnnnnnnnnnnnnnnnnnnnn]
TExpressiond
s:rankcorr(A,B)
TPrinterDimensionsd
TSPadInitDatad
TLogFontd
Times New Roman
densed BT
TLogFontd
Arial
TLogFontd
Arial
TLogFontd
Symbol
TLogFontd
Symbol
TNumberFormatDatad
TGraphSetupDatad
TPageSetupDatad
R-Tek Scratchpad Example File RANKSTAT