BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
hdg
Obsidian | Level 7 hdg
Obsidian | Level 7

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!

1 ACCEPTED SOLUTION

Accepted Solutions
PGStats
Opal | Level 21

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

1 REPLY 1
PGStats
Opal | Level 21

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
What is Bayesian Analysis?

Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

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