Help using Base SAS procedures

correlations

Accepted Solution Solved
Reply
Frequent Contributor
Frequent Contributor
Posts: 79
Accepted Solution

correlations

I have a correlation matrix

Corrout =

X  Z

X 1 0.2

Z 0.4  1

I would like to compute the mean of this correlation matrix excluding the diagonal terms so for example in this simple case it is  = 0.3

The column/rownames X and Z are not fixed you can have any number of columns and any number of rows and they can be called anything.

I am not  sure how to do this in SAs

Thanks for your help!


Accepted Solutions
Solution
‎02-13-2013 08:56 PM
Respected Advisor
Posts: 4,927

Re: correlations

Assuming your matrix is in a dataset where rows are identified with labels corresponding to variable names :

data matrix;
input label $ X Z;
datalines;
X 1 0.2
Z 0.4  1
;

proc transpose data=matrix out=list;
by label notsorted;
run;

proc sql;
select mean(COL1) as meanCorr

from list where _name_ ne label;
quit;

PG

PG

View solution in original post


All Replies
Solution
‎02-13-2013 08:56 PM
Respected Advisor
Posts: 4,927

Re: correlations

Assuming your matrix is in a dataset where rows are identified with labels corresponding to variable names :

data matrix;
input label $ X Z;
datalines;
X 1 0.2
Z 0.4  1
;

proc transpose data=matrix out=list;
by label notsorted;
run;

proc sql;
select mean(COL1) as meanCorr

from list where _name_ ne label;
quit;

PG

PG
🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 135 views
  • 0 likes
  • 2 in conversation