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!
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
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
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.