Hi I am trying (and struggling) to understand SAS syntax. I wanted to do a permutation test on the Pearsons correlation coefficient, and copied the below code(from the SAS page) into my editor. I thought I had it figured out, but nothing happens, or at least I don't get an output. Can you tell me why? the below code will in my understanding only do the permutation test on teh tobacco and cancer variable. But what if I would like to run the same test with on the correlation between alcohol and Tobacco and again on cancer and alcohol? Can I do that fairly simple? Thanks a lot OPTIONS LINESIZE=95;
DATA test;
INFILE 'C:\Users\XXXXXXXXXXX.PRN' FIRSTOBS=2;
INPUT Cancer Tobacco Alcohol;
PROC PRINT;
RUN;
proc iml;
use test;
read all var "tobacco" into X;
read all var "cancer" into Y;
close;
start CorrCoeff(X, Y, method="Pearson");
return ( corr(X||Y, method)[1,2] ); /* CORR returns a matrix; extract the correlation of the pair */
finish;
/* permutation test for correlation between two variables */
call randseed(12544); /* set a random number seed */
B = 10000; /* total number of permutations */
PCorr = j(B, 1, .); /* allocate vector for Pearson correlations */
PCorrObs = CorrCoeff(X, Y); /* correlation for original data */
PCorr[1] = PCorrObs;
do i = 2 to B;
permY = ranperm(Y)`; /* permute order of Y */
PCorr[i] = CorrCoeff(X, permY); /* correlation between X and permuted Y */
end;
... View more