I include the proc iml code as follows:
ODS graphics on;
proc pls data=Target.e_diet_bf_scores_morph method=PCR varss details plot=corrload(nfac=3 trace=on);
model exclbf PBf6mth exclFf6mth Sol = &xlist;
output out=pattern_morph1(rename=(scorePred1=Health scorePred2=Junk scorePred3=Mixed)) xscore=scorePred yscore=scoreResp;
run;
ods exclude all;
proc corr data=pattern_morph1; /* pairwise correlation */
var Health Junk Mixed;
with scoreResp1 scoreResp2 scoreResp3;
ods output PearsonCorr = Corr; /* write correlations, p-values, and sample sizes to data set */
run;
ods exclude none
proc iml;
use Corr;
read all var "Variable" into ColNames; /* get names of variables */
read all var (ColNames) into mCorr; /* matrix of correlations */
ProbNames = "P"+ColNames; /* variables for p-values are named PX, PY, PZ, etc */
read all var (ProbNames) into mProb; /* matrix of p-values */
close Corr;
call HeatmapCont(mCorr) xvalues=ColNames yvalues=ColNames
colorramp="ThreeColor" range={-1 1} title="Pairwise Correlation Matrix";
numCols = ncol(mCorr); /* number of variables */
numPairs = numCols*(numCols-1) / 2;
length = 2*nleng(ColNames) + 5; /* max length of new ID variable */
PairNames = j(NumPairs, 1, BlankStr(length));
i = 1;
do row= 2 to numCols; /* construct the pairwise names */
do col = 1 to row-1;
PairNames[i] = strip(ColNames[col]) + " vs. " + strip(ColNames[row]);
i = i + 1;
end;
end;
lowerIdx = loc(row(mCorr) > col(mCorr)); /* indices of lower-triangular elements */
Corr = mCorr[ lowerIdx ];
Prob = mProb[ lowerIdx ];
Significant = choose(Prob > 0.05, "No ", "Yes"); /* use alpha=0.05 signif level */
create CorrPairs var {"PairNames" "Corr" "Prob" "Significant"};
append;
close;
QUIT;
I get a long error message that I can't seem to paste here, but it begins to state that -scoreResp 1 is not in the scope of variables for the dataset? Even though I want to look at correlations between the derived factors and the response variables. Here, I'm not sure if I should use values for the original response or the Y scores?
... View more