hi, users, I Am using a SAS university edition I want to do the correlation analysis of genotype and phenotype for each trait I am using,
I used the script as follows
*USE DATA FROM ONLY ONE ENVIRONMENT FOR THIS EXAMPLE!;
data sen3evr; set sen3evr; if env = 98;proc print;
*first, estimate variance components for each trait separately to compare to multivariate analysis below;
%macro varcomp(trait);
proc mixed data = work.sen3evr;
class rep id;
model &trait = ;
random rep id;
*also check effect of setting reps fixed on other variance components;
proc mixed data = work.sen3evr;
class rep id;
model &trait = rep;
random id;
run;
%mend;
%varcomp(vsp);
%varcomp(vsb);
%varcomp(pm);
%varcomp(cm);
%varcomp(pbvdif);
run;
*restructure data set for multivariate reml analysis;
data three; length trait $ 5; set sen3evr;
trait = "vsp"; y = vsp; output;
trait = "vsb"; y = vsb; output;
trait = "pm"; y = pm; output;
trait = "cm"; y = pm; output;
trait = "pbvdif"; y = pm; output;
drop vsp vsb pm cm pbvdif;
* analyze variables pair-wise;
%macro corr(trait1, trait2);
data traits; set three; if trait = "&trait1" or trait = "&trait2";
proc mixed asycov data = traits;
class trait rep id;
model y = rep(trait);
random trait/subject = id type = un;
repeated trait/ sub = rep*id type = un;
ods output covparms = estmat; ods output asycov = covmat;
run;
proc iml;
use estmat; read all into e;
use covmat; read all into cov;
run;
* Note that SAS introduces an extra first column into the covariance matrix which must be removed;
C = cov(|1:nrow(cov), 2:ncol(cov)|);
* Obtain genotypic and phenotypic covariance and variance components;
CovG = e(|2,1|);
VG1 = e(|1,1|);
VG2 = e(|3,1|);
CovP = CovG + e(|5,1|);
VP1 = VG1 + e(|4,1|);
VP2 = VG2 + e(|6,1|);
* Create a module called "correl" that will estimate genotypic and phenotypic correlations
and their standard errors;
start correl(C, CovG, VG1, VG2, CovP, VP1, VP2, RG, RP, SERG, SERP);
RG = CovG/sqrt(VG1*VG2);
*Make the derivative vector for rg, note that the order of the rows and columns of the variance
covariance matrix is VG1, CovG, VG2, VError1, CovError, VError2;
dg = (-1/(2*VG1))//(1/CovG)//(-1/(2*VG2))//0//0//0;
varrg = (RG**2)*dg`*C*dg; serg = sqrt(varrg);
RP = CovP/sqrt(VP1*VP2);
*Make the derivate vector for rp;
d1p = -1/(2*VP1);
d2p = 1/CovP;
d3p = -1/(2*VP2);
dp= d1p//d2p//d3p//d1p//d2p//d3p;
varrp = (RP**2)*dp`*C*dp; serp = sqrt(varrp);
finish correl;
call correl(C, CovG, VG1, VG2, CovP, VP1, VP2, RG, RP, SERG, SERP);
print "Genotypic Correlation Between &trait1 and &trait2";
print RG serg;
print "Phenotypic Correlation Between &trait1 and &trait2";
print RP serp;
quit; run;
%mend;
%corr(vsp,vsb);
%corr(vsp,pm);
%corr(vsp,cm);
%corr(vsp,pbvdif);
%corr(vsb,pm);
%corr(vsb,cm);
%corr(vsb,pbvdif);
%corr(pm,cm);
%corr(pm,pbvdif);
%corr(cm,pbvdif);
run;
I am getting the error as ods output was not created and the matrix has not set to value, the log file is as below. I hope I have explained clearly, please help me out of this, I also used ods on ods off and ods listing.... still not working even in SAS Desktop version
1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
NOTE: ODS statements in the SAS Studio environment may disable some output features.
73
74 *USE DATA FROM ONLY ONE ENVIRONMENT FOR THIS EXAMPLE!;
75 data sen3evr; set sen3evr; if env = 98;
NOTE: There were 1200 observations read from the data set WORK.SEN3EVR.
NOTE: The data set WORK.SEN3EVR has 1200 observations and 8 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.02 seconds
75 ! proc print;
76 *first, estimate variance components for each trait separately to compare to multivariate analysis below;
77 %macro varcomp(trait);
78 proc mixed data = work.sen3evr;
79 class rep id;
80 model &trait = ;
81 random rep id;
82 *also check effect of setting reps fixed on other variance components;
83 proc mixed data = work.sen3evr;
84 class rep id;
85 model &trait = rep;
86 random id;
87 run;
88 %mend;
89 %varcomp(vsp);
NOTE: There were 1200 observations read from the data set WORK.SEN3EVR.
NOTE: PROCEDURE PRINT used (Total process time):
real time 6.63 seconds
cpu time 6.52 seconds
NOTE: 2 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 1.15 seconds
cpu time 0.39 seconds
NOTE: 2 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.62 seconds
cpu time 0.37 seconds
90 %varcomp(vsb);
NOTE: 2 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: Estimated G matrix is not positive definite.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.32 seconds
cpu time 0.33 seconds
NOTE: 2 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.38 seconds
cpu time 0.35 seconds
91 %varcomp(pm);
NOTE: 109 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.39 seconds
cpu time 0.37 seconds
NOTE: 109 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.37 seconds
cpu time 0.37 seconds
92 %varcomp(cm);
NOTE: 109 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.42 seconds
cpu time 0.42 seconds
NOTE: 109 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.39 seconds
cpu time 0.36 seconds
93 %varcomp(pbvdif);
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.37 seconds
cpu time 0.35 seconds
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.39 seconds
cpu time 0.38 seconds
94 run;
95 *restructure data set for multivariate reml analysis;
96 data three; length trait $ 5; set sen3evr;
97 trait = "vsp"; y = vsp; output;
98 trait = "vsb"; y = vsb; output;
99 trait = "pm"; y = pm; output;
100 trait = "cm"; y = pm; output;
101 trait = "pbvdif"; y = pm; output;
102 drop vsp vsb pm cm pbvdif;
103 * analyze variables pair-wise;
104 %macro corr(trait1, trait2);
105 data traits; set three; if trait = "&trait1" or trait = "&trait2";
106 proc mixed asycov data = traits;
107 class trait rep id;
108 model y = rep(trait);
109 random trait/subject = id type = un;
110 repeated trait/ sub = rep*id type = un;
111 ods output covparms = estmat; ods output asycov = covmat;
112 run;
113 proc iml;
114 use estmat; read all into e;
115 use covmat; read all into cov;
116 run;
117 * Note that SAS introduces an extra first column into the covariance matrix which must be removed;
118 C = cov(|1:nrow(cov), 2:ncol(cov)|);
119 * Obtain genotypic and phenotypic covariance and variance components;
120 CovG = e(|2,1|);
121 VG1 = e(|1,1|);
122 VG2 = e(|3,1|);
123 CovP = CovG + e(|5,1|);
124 VP1 = VG1 + e(|4,1|);
125 VP2 = VG2 + e(|6,1|);
126 * Create a module called "correl" that will estimate genotypic and phenotypic correlations
127 and their standard errors;
128 start correl(C, CovG, VG1, VG2, CovP, VP1, VP2, RG, RP, SERG, SERP);
129 RG = CovG/sqrt(VG1*VG2);
130 *Make the derivative vector for rg, note that the order of the rows and columns of the variance
131 covariance matrix is VG1, CovG, VG2, VError1, CovError, VError2;
132 dg = (-1/(2*VG1))//(1/CovG)//(-1/(2*VG2))//0//0//0;
133 varrg = (RG**2)*dg`*C*dg; serg = sqrt(varrg);
134 RP = CovP/sqrt(VP1*VP2);
135 *Make the derivate vector for rp;
136 d1p = -1/(2*VP1);
137 d2p = 1/CovP;
138 d3p = -1/(2*VP2);
139 dp= d1p//d2p//d3p//d1p//d2p//d3p;
140 varrp = (RP**2)*dp`*C*dp; serp = sqrt(varrp);
141 finish correl;
142 call correl(C, CovG, VG1, VG2, CovP, VP1, VP2, RG, RP, SERG, SERP);
143 print "Genotypic Correlation Between &trait1 and &trait2";
144 print RG serg;
145 print "Phenotypic Correlation Between &trait1 and &trait2";
146 print RP serp;
147 quit; run;
148 %mend;
149 %corr(vsp,vsb);
NOTE: There were 1200 observations read from the data set WORK.SEN3EVR.
NOTE: The data set WORK.THREE has 6000 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.02 seconds
NOTE: 4 observations are not included because of missing values.
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
WARNING: Output 'covparms' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.39 seconds
cpu time 0.25 seconds
NOTE: IML Ready
ERROR: File WORK.ESTMAT.DATA does not exist.
statement : USE at line 149 column 1
ERROR: No data set is currently open for input.
statement : READ at line 149 column 1
ERROR: File WORK.COVMAT.DATA does not exist.
statement : USE at line 149 column 1
ERROR: No data set is currently open for input.
statement : READ at line 149 column 1
NOTE: Module MAIN is undefined in IML; cannot be RUN.
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 149 column 1
operands : cov, _TEM1002, *LIT1002, _TEM1003
cov 0 row 0 col (type ?, size 0)
_TEM1002 1 row 2 cols (numeric)
1 0
*LIT1002 1 row 1 col (numeric)
2
_TEM1003 1 row 1 col (numeric)
0
statement : ASSIGN at line 149 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 149 column 1
operands : e, *LIT1003, *LIT1004
e 0 row 0 col (type ?, size 0)
*LIT1003 1 row 1 col (numeric)
2
*LIT1004 1 row 1 col (numeric)
1
statement : ASSIGN at line 149 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 149 column 1
operands : e, *LIT1005, *LIT1006
e 0 row 0 col (type ?, size 0)
*LIT1005 1 row 1 col (numeric)
1
*LIT1006 1 row 1 col (numeric)
1
statement : ASSIGN at line 149 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 149 column 1
operands : e, *LIT1007, *LIT1008
e 0 row 0 col (type ?, size 0)
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 149 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 149 column 1
operands : e, *LIT1009, *LIT1010
e 0 row 0 col (type ?, size 0)
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 149 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 149 column 1
operands : e, *LIT1011, *LIT1012
e 0 row 0 col (type ?, size 0)
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 149 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 149 column 1
operands : e, *LIT1013, *LIT1014
e 0 row 0 col (type ?, size 0)
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 149 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 149 column 1
operands : VG1, VG2
VG1 0 row 0 col (type ?, size 0)
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 149 column 1
traceback : module CORREL at line 149 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 149 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 149 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.21 seconds
cpu time 0.03 seconds
150 %corr(vsp,pm);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.01 seconds
NOTE: 111 observations are not included because of missing values.
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
WARNING: Output 'covparms' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.26 seconds
cpu time 0.25 seconds
NOTE: IML Ready
ERROR: File WORK.ESTMAT.DATA does not exist.
statement : USE at line 150 column 1
ERROR: No data set is currently open for input.
statement : READ at line 150 column 1
ERROR: File WORK.COVMAT.DATA does not exist.
statement : USE at line 150 column 1
ERROR: No data set is currently open for input.
statement : READ at line 150 column 1
NOTE: Module MAIN is undefined in IML; cannot be RUN.
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 150 column 1
operands : cov, _TEM1002, *LIT1002, _TEM1003
cov 0 row 0 col (type ?, size 0)
_TEM1002 1 row 2 cols (numeric)
1 0
*LIT1002 1 row 1 col (numeric)
2
_TEM1003 1 row 1 col (numeric)
0
statement : ASSIGN at line 150 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 150 column 1
operands : e, *LIT1003, *LIT1004
e 0 row 0 col (type ?, size 0)
*LIT1003 1 row 1 col (numeric)
2
*LIT1004 1 row 1 col (numeric)
1
statement : ASSIGN at line 150 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 150 column 1
operands : e, *LIT1005, *LIT1006
e 0 row 0 col (type ?, size 0)
*LIT1005 1 row 1 col (numeric)
1
*LIT1006 1 row 1 col (numeric)
1
statement : ASSIGN at line 150 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 150 column 1
operands : e, *LIT1007, *LIT1008
e 0 row 0 col (type ?, size 0)
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 150 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 150 column 1
operands : e, *LIT1009, *LIT1010
e 0 row 0 col (type ?, size 0)
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 150 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 150 column 1
operands : e, *LIT1011, *LIT1012
e 0 row 0 col (type ?, size 0)
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 150 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 150 column 1
operands : e, *LIT1013, *LIT1014
e 0 row 0 col (type ?, size 0)
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 150 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 150 column 1
operands : VG1, VG2
VG1 0 row 0 col (type ?, size 0)
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 150 column 1
traceback : module CORREL at line 150 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 150 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 150 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.04 seconds
cpu time 0.04 seconds
151 %corr(vsp,cm);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: 111 observations are not included because of missing values.
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
WARNING: Output 'covparms' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.25 seconds
cpu time 0.25 seconds
NOTE: IML Ready
ERROR: File WORK.ESTMAT.DATA does not exist.
statement : USE at line 151 column 1
ERROR: No data set is currently open for input.
statement : READ at line 151 column 1
ERROR: File WORK.COVMAT.DATA does not exist.
statement : USE at line 151 column 1
ERROR: No data set is currently open for input.
statement : READ at line 151 column 1
NOTE: Module MAIN is undefined in IML; cannot be RUN.
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 151 column 1
operands : cov, _TEM1002, *LIT1002, _TEM1003
cov 0 row 0 col (type ?, size 0)
_TEM1002 1 row 2 cols (numeric)
1 0
*LIT1002 1 row 1 col (numeric)
2
_TEM1003 1 row 1 col (numeric)
0
statement : ASSIGN at line 151 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 151 column 1
operands : e, *LIT1003, *LIT1004
e 0 row 0 col (type ?, size 0)
*LIT1003 1 row 1 col (numeric)
2
*LIT1004 1 row 1 col (numeric)
1
statement : ASSIGN at line 151 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 151 column 1
operands : e, *LIT1005, *LIT1006
e 0 row 0 col (type ?, size 0)
*LIT1005 1 row 1 col (numeric)
1
*LIT1006 1 row 1 col (numeric)
1
statement : ASSIGN at line 151 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 151 column 1
operands : e, *LIT1007, *LIT1008
e 0 row 0 col (type ?, size 0)
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 151 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 151 column 1
operands : e, *LIT1009, *LIT1010
e 0 row 0 col (type ?, size 0)
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 151 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 151 column 1
operands : e, *LIT1011, *LIT1012
e 0 row 0 col (type ?, size 0)
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 151 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 151 column 1
operands : e, *LIT1013, *LIT1014
e 0 row 0 col (type ?, size 0)
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 151 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 151 column 1
operands : VG1, VG2
VG1 0 row 0 col (type ?, size 0)
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 151 column 1
traceback : module CORREL at line 151 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 151 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 151 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.02 seconds
cpu time 0.03 seconds
152 %corr(vsp,pbvdif);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 1200 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: 2 observations are not included because of missing values.
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
WARNING: Output 'covparms' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.21 seconds
cpu time 0.20 seconds
NOTE: IML Ready
ERROR: File WORK.ESTMAT.DATA does not exist.
statement : USE at line 152 column 1
ERROR: No data set is currently open for input.
statement : READ at line 152 column 1
ERROR: File WORK.COVMAT.DATA does not exist.
statement : USE at line 152 column 1
ERROR: No data set is currently open for input.
statement : READ at line 152 column 1
NOTE: Module MAIN is undefined in IML; cannot be RUN.
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 152 column 1
operands : cov, _TEM1002, *LIT1002, _TEM1003
cov 0 row 0 col (type ?, size 0)
_TEM1002 1 row 2 cols (numeric)
1 0
*LIT1002 1 row 1 col (numeric)
2
_TEM1003 1 row 1 col (numeric)
0
statement : ASSIGN at line 152 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 152 column 1
operands : e, *LIT1003, *LIT1004
e 0 row 0 col (type ?, size 0)
*LIT1003 1 row 1 col (numeric)
2
*LIT1004 1 row 1 col (numeric)
1
statement : ASSIGN at line 152 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 152 column 1
operands : e, *LIT1005, *LIT1006
e 0 row 0 col (type ?, size 0)
*LIT1005 1 row 1 col (numeric)
1
*LIT1006 1 row 1 col (numeric)
1
statement : ASSIGN at line 152 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 152 column 1
operands : e, *LIT1007, *LIT1008
e 0 row 0 col (type ?, size 0)
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 152 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 152 column 1
operands : e, *LIT1009, *LIT1010
e 0 row 0 col (type ?, size 0)
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 152 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 152 column 1
operands : e, *LIT1011, *LIT1012
e 0 row 0 col (type ?, size 0)
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 152 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 152 column 1
operands : e, *LIT1013, *LIT1014
e 0 row 0 col (type ?, size 0)
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 152 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 152 column 1
operands : VG1, VG2
VG1 0 row 0 col (type ?, size 0)
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 152 column 1
traceback : module CORREL at line 152 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 152 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 152 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.03 seconds
cpu time 0.03 seconds
153 %corr(vsb,pm);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.02 seconds
NOTE: 111 observations are not included because of missing values.
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
WARNING: Output 'covparms' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.23 seconds
cpu time 0.23 seconds
NOTE: IML Ready
ERROR: File WORK.ESTMAT.DATA does not exist.
statement : USE at line 153 column 1
ERROR: No data set is currently open for input.
statement : READ at line 153 column 1
ERROR: File WORK.COVMAT.DATA does not exist.
statement : USE at line 153 column 1
ERROR: No data set is currently open for input.
statement : READ at line 153 column 1
NOTE: Module MAIN is undefined in IML; cannot be RUN.
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 153 column 1
operands : cov, _TEM1002, *LIT1002, _TEM1003
cov 0 row 0 col (type ?, size 0)
_TEM1002 1 row 2 cols (numeric)
1 0
*LIT1002 1 row 1 col (numeric)
2
_TEM1003 1 row 1 col (numeric)
0
statement : ASSIGN at line 153 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 153 column 1
operands : e, *LIT1003, *LIT1004
e 0 row 0 col (type ?, size 0)
*LIT1003 1 row 1 col (numeric)
2
*LIT1004 1 row 1 col (numeric)
1
statement : ASSIGN at line 153 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 153 column 1
operands : e, *LIT1005, *LIT1006
e 0 row 0 col (type ?, size 0)
*LIT1005 1 row 1 col (numeric)
1
*LIT1006 1 row 1 col (numeric)
1
statement : ASSIGN at line 153 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 153 column 1
operands : e, *LIT1007, *LIT1008
e 0 row 0 col (type ?, size 0)
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 153 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 153 column 1
operands : e, *LIT1009, *LIT1010
e 0 row 0 col (type ?, size 0)
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 153 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 153 column 1
operands : e, *LIT1011, *LIT1012
e 0 row 0 col (type ?, size 0)
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 153 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 153 column 1
operands : e, *LIT1013, *LIT1014
e 0 row 0 col (type ?, size 0)
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 153 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 153 column 1
operands : VG1, VG2
VG1 0 row 0 col (type ?, size 0)
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 153 column 1
traceback : module CORREL at line 153 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 153 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 153 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.02 seconds
cpu time 0.02 seconds
154 %corr(vsb,cm);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: 111 observations are not included because of missing values.
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
WARNING: Output 'covparms' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.26 seconds
cpu time 0.25 seconds
NOTE: IML Ready
ERROR: File WORK.ESTMAT.DATA does not exist.
statement : USE at line 154 column 1
ERROR: No data set is currently open for input.
statement : READ at line 154 column 1
ERROR: File WORK.COVMAT.DATA does not exist.
statement : USE at line 154 column 1
ERROR: No data set is currently open for input.
statement : READ at line 154 column 1
NOTE: Module MAIN is undefined in IML; cannot be RUN.
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 154 column 1
operands : cov, _TEM1002, *LIT1002, _TEM1003
cov 0 row 0 col (type ?, size 0)
_TEM1002 1 row 2 cols (numeric)
1 0
*LIT1002 1 row 1 col (numeric)
2
_TEM1003 1 row 1 col (numeric)
0
statement : ASSIGN at line 154 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 154 column 1
operands : e, *LIT1003, *LIT1004
e 0 row 0 col (type ?, size 0)
*LIT1003 1 row 1 col (numeric)
2
*LIT1004 1 row 1 col (numeric)
1
statement : ASSIGN at line 154 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 154 column 1
operands : e, *LIT1005, *LIT1006
e 0 row 0 col (type ?, size 0)
*LIT1005 1 row 1 col (numeric)
1
*LIT1006 1 row 1 col (numeric)
1
statement : ASSIGN at line 154 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 154 column 1
operands : e, *LIT1007, *LIT1008
e 0 row 0 col (type ?, size 0)
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 154 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 154 column 1
operands : e, *LIT1009, *LIT1010
e 0 row 0 col (type ?, size 0)
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 154 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 154 column 1
operands : e, *LIT1011, *LIT1012
e 0 row 0 col (type ?, size 0)
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 154 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 154 column 1
operands : e, *LIT1013, *LIT1014
e 0 row 0 col (type ?, size 0)
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 154 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 154 column 1
operands : VG1, VG2
VG1 0 row 0 col (type ?, size 0)
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 154 column 1
traceback : module CORREL at line 154 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 154 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 154 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.03 seconds
cpu time 0.04 seconds
155 %corr(vsb,pbvdif);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 1200 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: 2 observations are not included because of missing values.
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
WARNING: Output 'covparms' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.25 seconds
cpu time 0.21 seconds
NOTE: IML Ready
ERROR: File WORK.ESTMAT.DATA does not exist.
statement : USE at line 155 column 1
ERROR: No data set is currently open for input.
statement : READ at line 155 column 1
ERROR: File WORK.COVMAT.DATA does not exist.
statement : USE at line 155 column 1
ERROR: No data set is currently open for input.
statement : READ at line 155 column 1
NOTE: Module MAIN is undefined in IML; cannot be RUN.
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 155 column 1
operands : cov, _TEM1002, *LIT1002, _TEM1003
cov 0 row 0 col (type ?, size 0)
_TEM1002 1 row 2 cols (numeric)
1 0
*LIT1002 1 row 1 col (numeric)
2
_TEM1003 1 row 1 col (numeric)
0
statement : ASSIGN at line 155 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 155 column 1
operands : e, *LIT1003, *LIT1004
e 0 row 0 col (type ?, size 0)
*LIT1003 1 row 1 col (numeric)
2
*LIT1004 1 row 1 col (numeric)
1
statement : ASSIGN at line 155 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 155 column 1
operands : e, *LIT1005, *LIT1006
e 0 row 0 col (type ?, size 0)
*LIT1005 1 row 1 col (numeric)
1
*LIT1006 1 row 1 col (numeric)
1
statement : ASSIGN at line 155 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 155 column 1
operands : e, *LIT1007, *LIT1008
e 0 row 0 col (type ?, size 0)
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 155 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 155 column 1
operands : e, *LIT1009, *LIT1010
e 0 row 0 col (type ?, size 0)
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 155 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 155 column 1
operands : e, *LIT1011, *LIT1012
e 0 row 0 col (type ?, size 0)
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 155 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 155 column 1
operands : e, *LIT1013, *LIT1014
e 0 row 0 col (type ?, size 0)
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 155 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 155 column 1
operands : VG1, VG2
VG1 0 row 0 col (type ?, size 0)
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 155 column 1
traceback : module CORREL at line 155 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 155 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 155 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.03 seconds
cpu time 0.03 seconds
156 %corr(pm,cm);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
NOTE: 218 observations are not included because of missing values.
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
WARNING: Output 'covparms' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.27 seconds
cpu time 0.24 seconds
NOTE: IML Ready
ERROR: File WORK.ESTMAT.DATA does not exist.
statement : USE at line 156 column 1
ERROR: No data set is currently open for input.
statement : READ at line 156 column 1
ERROR: File WORK.COVMAT.DATA does not exist.
statement : USE at line 156 column 1
ERROR: No data set is currently open for input.
statement : READ at line 156 column 1
NOTE: Module MAIN is undefined in IML; cannot be RUN.
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 156 column 1
operands : cov, _TEM1002, *LIT1002, _TEM1003
cov 0 row 0 col (type ?, size 0)
_TEM1002 1 row 2 cols (numeric)
1 0
*LIT1002 1 row 1 col (numeric)
2
_TEM1003 1 row 1 col (numeric)
0
statement : ASSIGN at line 156 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 156 column 1
operands : e, *LIT1003, *LIT1004
e 0 row 0 col (type ?, size 0)
*LIT1003 1 row 1 col (numeric)
2
*LIT1004 1 row 1 col (numeric)
1
statement : ASSIGN at line 156 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 156 column 1
operands : e, *LIT1005, *LIT1006
e 0 row 0 col (type ?, size 0)
*LIT1005 1 row 1 col (numeric)
1
*LIT1006 1 row 1 col (numeric)
1
statement : ASSIGN at line 156 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 156 column 1
operands : e, *LIT1007, *LIT1008
e 0 row 0 col (type ?, size 0)
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 156 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 156 column 1
operands : e, *LIT1009, *LIT1010
e 0 row 0 col (type ?, size 0)
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 156 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 156 column 1
operands : e, *LIT1011, *LIT1012
e 0 row 0 col (type ?, size 0)
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 156 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 156 column 1
operands : e, *LIT1013, *LIT1014
e 0 row 0 col (type ?, size 0)
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 156 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 156 column 1
operands : VG1, VG2
VG1 0 row 0 col (type ?, size 0)
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 156 column 1
traceback : module CORREL at line 156 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 156 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 156 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.02 seconds
cpu time 0.02 seconds
157 %corr(pm,pbvdif);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 1200 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
NOTE: 109 observations are not included because of missing values.
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
WARNING: Output 'covparms' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.21 seconds
cpu time 0.20 seconds
NOTE: IML Ready
ERROR: File WORK.ESTMAT.DATA does not exist.
statement : USE at line 157 column 1
ERROR: No data set is currently open for input.
statement : READ at line 157 column 1
ERROR: File WORK.COVMAT.DATA does not exist.
statement : USE at line 157 column 1
ERROR: No data set is currently open for input.
statement : READ at line 157 column 1
NOTE: Module MAIN is undefined in IML; cannot be RUN.
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 157 column 1
operands : cov, _TEM1002, *LIT1002, _TEM1003
cov 0 row 0 col (type ?, size 0)
_TEM1002 1 row 2 cols (numeric)
1 0
*LIT1002 1 row 1 col (numeric)
2
_TEM1003 1 row 1 col (numeric)
0
statement : ASSIGN at line 157 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 157 column 1
operands : e, *LIT1003, *LIT1004
e 0 row 0 col (type ?, size 0)
*LIT1003 1 row 1 col (numeric)
2
*LIT1004 1 row 1 col (numeric)
1
statement : ASSIGN at line 157 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 157 column 1
operands : e, *LIT1005, *LIT1006
e 0 row 0 col (type ?, size 0)
*LIT1005 1 row 1 col (numeric)
1
*LIT1006 1 row 1 col (numeric)
1
statement : ASSIGN at line 157 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 157 column 1
operands : e, *LIT1007, *LIT1008
e 0 row 0 col (type ?, size 0)
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 157 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 157 column 1
operands : e, *LIT1009, *LIT1010
e 0 row 0 col (type ?, size 0)
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 157 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 157 column 1
operands : e, *LIT1011, *LIT1012
e 0 row 0 col (type ?, size 0)
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 157 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 157 column 1
operands : e, *LIT1013, *LIT1014
e 0 row 0 col (type ?, size 0)
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 157 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 157 column 1
operands : VG1, VG2
VG1 0 row 0 col (type ?, size 0)
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 157 column 1
traceback : module CORREL at line 157 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 157 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 157 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.03 seconds
cpu time 0.03 seconds
158 %corr(cm,pbvdif);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 1200 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.01 seconds
NOTE: 109 observations are not included because of missing values.
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
WARNING: Output 'covparms' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.19 seconds
cpu time 0.18 seconds
NOTE: IML Ready
ERROR: File WORK.ESTMAT.DATA does not exist.
statement : USE at line 158 column 1
ERROR: No data set is currently open for input.
statement : READ at line 158 column 1
ERROR: File WORK.COVMAT.DATA does not exist.
statement : USE at line 158 column 1
ERROR: No data set is currently open for input.
statement : READ at line 158 column 1
NOTE: Module MAIN is undefined in IML; cannot be RUN.
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 158 column 1
operands : cov, _TEM1002, *LIT1002, _TEM1003
cov 0 row 0 col (type ?, size 0)
_TEM1002 1 row 2 cols (numeric)
1 0
*LIT1002 1 row 1 col (numeric)
2
_TEM1003 1 row 1 col (numeric)
0
statement : ASSIGN at line 158 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 158 column 1
operands : e, *LIT1003, *LIT1004
e 0 row 0 col (type ?, size 0)
*LIT1003 1 row 1 col (numeric)
2
*LIT1004 1 row 1 col (numeric)
1
statement : ASSIGN at line 158 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 158 column 1
operands : e, *LIT1005, *LIT1006
e 0 row 0 col (type ?, size 0)
*LIT1005 1 row 1 col (numeric)
1
*LIT1006 1 row 1 col (numeric)
1
statement : ASSIGN at line 158 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 158 column 1
operands : e, *LIT1007, *LIT1008
e 0 row 0 col (type ?, size 0)
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 158 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 158 column 1
operands : e, *LIT1009, *LIT1010
e 0 row 0 col (type ?, size 0)
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 158 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 158 column 1
operands : e, *LIT1011, *LIT1012
e 0 row 0 col (type ?, size 0)
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 158 column 1
ERROR: (execution) Matrix has not been set to a value.
operation : (| at line 158 column 1
operands : e, *LIT1013, *LIT1014
e 0 row 0 col (type ?, size 0)
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 158 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 158 column 1
operands : VG1, VG2
VG1 0 row 0 col (type ?, size 0)
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 158 column 1
traceback : module CORREL at line 158 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 158 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 158 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.02 seconds
cpu time 0.03 seconds
159 run;
160
161
162 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
174
Welcome to SAS and to the Communities.
A mistake that new uers sometimes make is trying to embed code into a macro before it is completely debugged. A good development strategy is to use a macro only after the code is working well in all circumstances.
In this program, I think the source of your problem is the model does not fit the data, as evidenced by the NOTE
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
"Iteration 0" means that the procedure can't even begin the process of trying to solve for the parameter estimates.
As stated in Kiernan, Tao, and Gibbs (2012, p/. 10-11), this note appears because "PROC MIXED requires that you have one observation per repeated effect per subject. This note occurs when your point for that particular subject."
Welcome to SAS and to the Communities.
A mistake that new uers sometimes make is trying to embed code into a macro before it is completely debugged. A good development strategy is to use a macro only after the code is working well in all circumstances.
In this program, I think the source of your problem is the model does not fit the data, as evidenced by the NOTE
NOTE: An infinite likelihood is assumed in iteration 0 because of a nonpositive definite estimated R matrix for Rep*ID 2 A441-5.
"Iteration 0" means that the procedure can't even begin the process of trying to solve for the parameter estimates.
As stated in Kiernan, Tao, and Gibbs (2012, p/. 10-11), this note appears because "PROC MIXED requires that you have one observation per repeated effect per subject. This note occurs when your point for that particular subject."
Thanks a lot Mr.Rick I appreciate you for the quick response which helped me and I have another error about the invalid subscript/subscript out of range. the sas code is as below and the log is
1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
NOTE: ODS statements in the SAS Studio environment may disable some output features.
73
74 *USE DATA FROM ONLY ONE ENVIRONMENT FOR THIS EXAMPLE!;
75 data evr3; set evr3; if env = 98;
NOTE: There were 1200 observations read from the data set WORK.EVR3.
NOTE: The data set WORK.EVR3 has 1200 observations and 8 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
75 ! proc print;
76 *first, estimate variance components for each trait separately to compare to multivariate analysis below;
77 %macro varcomp(trait);
78 proc mixed data = work.evr3;
79 class rep id;
80 model &trait = ;
81 random rep id;
82 *also check effect of setting reps fixed on other variance components;
83 proc mixed data = work.evr3;
84 class rep id;
85 model &trait = rep;
86 random id;
87 run;
88 %mend;
89 %varcomp(vsp);
NOTE: There were 1200 observations read from the data set WORK.EVR3.
NOTE: PROCEDURE PRINT used (Total process time):
real time 6.23 seconds
cpu time 6.20 seconds
NOTE: 2 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.39 seconds
cpu time 0.39 seconds
NOTE: 2 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.39 seconds
cpu time 0.37 seconds
90 %varcomp(vsb);
NOTE: 2 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: Estimated G matrix is not positive definite.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.35 seconds
cpu time 0.35 seconds
NOTE: 2 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.37 seconds
cpu time 0.36 seconds
91 %varcomp(pm);
NOTE: 109 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.42 seconds
cpu time 0.41 seconds
NOTE: 109 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.41 seconds
cpu time 0.42 seconds
92 %varcomp(cm);
NOTE: 109 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.42 seconds
cpu time 0.42 seconds
NOTE: 109 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.36 seconds
cpu time 0.36 seconds
93 %varcomp(pbvdif);
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.36 seconds
cpu time 0.35 seconds
NOTE: Convergence criteria met.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.34 seconds
cpu time 0.34 seconds
94 run;
95 *restructure data set for multivariate reml analysis;
96 data three; length trait $ 5; set evr3;
97 trait = "vsp"; y = vsp; output;
98 trait = "vsb"; y = vsb; output;
99 trait = "pm"; y = pm; output;
100 trait = "cm"; y = pm; output;
101 trait = "pbvdif"; y = pm; output;
102 drop vsp vsb pm cm pbvdif;
103 * analyze variables pair-wise;
104 %macro corr(trait1, trait2);
105 data traits; set three; if trait = "&trait1" or trait = "&trait2";
106 proc mixed asycov data = traits;
107 class trait rep id;
108 model y = rep(trait);
109 random trait/subject = id type = un;
110 repeated trait/ sub = rep*id type = un;
111 ods output covparms = estmat; ods output asycov = covmat;
112 run;
113 proc iml;
114 use estmat; read all into e;
115 use covmat; read all into cov;
116 * Note that SAS introduces an extra first column into the covariance matrix which must be removed;
117 C = cov(|1:nrow(cov), 2:ncol(cov)|);
118 * Obtain genotypic and phenotypic covariance and variance components;
119 CovG = e(|2,1|);
120 VG1 = e(|1,1|);
121 VG2 = e(|3,1|);
122 CovP = CovG + e(|5,1|);
123 VP1 = VG1 + e(|4,1|);
124 VP2 = VG2 + e(|6,1|);
125 * Create a module called "correl" that will estimate genotypic and phenotypic correlations
126 and their standard errors;
127 start correl(C, CovG, VG1, VG2, CovP, VP1, VP2, RG, RP, SERG, SERP);
128 RG = CovG/sqrt(VG1*VG2);
129 *Make the derivative vector for rg, note that the order of the rows and columns of the variance
130 covariance matrix is VG1, CovG, VG2, VError1, CovError, VError2;
131 dg = (-1/(2*VG1))//(1/CovG)//(-1/(2*VG2))//0//0//0;
132 varrg = (RG**2)*dg`*C*dg; serg = sqrt(varrg);
133 RP = CovP/sqrt(VP1*VP2);
134 *Make the derivate vector for rp;
135 d1p = -1/(2*VP1);
136 d2p = 1/CovP;
137 d3p = -1/(2*VP2);
138 dp= d1p//d2p//d3p//d1p//d2p//d3p;
139 varrp = (RP**2)*dp`*C*dp; serp = sqrt(varrp);
140 finish correl;
141 call correl(C, CovG, VG1, VG2, CovP, VP1, VP2, RG, RP, SERG, SERP);
142 print "Genotypic Correlation Between &trait1 and &trait2";
143 print RG serg;
144 print "Phenotypic Correlation Between &trait1 and &trait2";
145 print RP serp;
146 quit; run;
147 %mend;
148
149
150 %corr(vsp,vsb);
NOTE: There were 1200 observations read from the data set WORK.EVR3.
NOTE: The data set WORK.THREE has 6000 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.01 seconds
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: 4 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: The data set WORK.COVMAT has 6 observations and 8 variables.
NOTE: The data set WORK.ESTMAT has 6 observations and 3 variables.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.61 seconds
cpu time 0.61 seconds
NOTE: IML Ready
NOTE: Module CORREL defined.
NOTE: Exiting IML.
NOTE: PROCEDURE IML used (Total process time):
real time 0.05 seconds
cpu time 0.04 seconds
151 %corr(vsp,pm);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.02 seconds
NOTE: 111 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: Estimated G matrix is not positive definite.
NOTE: The data set WORK.COVMAT has 6 observations and 8 variables.
NOTE: The data set WORK.ESTMAT has 6 observations and 3 variables.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.66 seconds
cpu time 0.66 seconds
NOTE: IML Ready
NOTE: Module CORREL defined.
NOTE: Exiting IML.
NOTE: PROCEDURE IML used (Total process time):
real time 0.06 seconds
cpu time 0.06 seconds
152 %corr(vsp,cm);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
NOTE: 111 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: Estimated G matrix is not positive definite.
NOTE: The data set WORK.COVMAT has 6 observations and 8 variables.
NOTE: The data set WORK.ESTMAT has 6 observations and 3 variables.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.66 seconds
cpu time 0.65 seconds
NOTE: IML Ready
NOTE: Module CORREL defined.
NOTE: Exiting IML.
NOTE: PROCEDURE IML used (Total process time):
real time 0.04 seconds
cpu time 0.05 seconds
153 %corr(vsp,pbvdif);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 1200 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
NOTE: 2 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: The data set WORK.COVMAT has 2 observations and 4 variables.
NOTE: The data set WORK.ESTMAT has 2 observations and 3 variables.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.37 seconds
cpu time 0.37 seconds
NOTE: IML Ready
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 153 column 1
operands : e, *LIT1007, *LIT1008
e 2 rows 1 col (numeric)
1.127912
0.5761443
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 153 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 153 column 1
operands : e, *LIT1009, *LIT1010
e 2 rows 1 col (numeric)
1.127912
0.5761443
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 153 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 153 column 1
operands : e, *LIT1011, *LIT1012
e 2 rows 1 col (numeric)
1.127912
0.5761443
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 153 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 153 column 1
operands : e, *LIT1013, *LIT1014
e 2 rows 1 col (numeric)
1.127912
0.5761443
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 153 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 153 column 1
operands : VG1, VG2
VG1 1 row 1 col (numeric)
1.127912
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 153 column 1
traceback : module CORREL at line 153 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 153 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 153 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.03 seconds
cpu time 0.03 seconds
154 %corr(vsb,pm);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.01 seconds
NOTE: 111 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: The data set WORK.COVMAT has 6 observations and 8 variables.
NOTE: The data set WORK.ESTMAT has 6 observations and 3 variables.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.67 seconds
cpu time 0.67 seconds
NOTE: IML Ready
NOTE: Module CORREL defined.
NOTE: Exiting IML.
NOTE: PROCEDURE IML used (Total process time):
real time 0.04 seconds
cpu time 0.05 seconds
155 %corr(vsb,cm);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: 111 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: The data set WORK.COVMAT has 6 observations and 8 variables.
NOTE: The data set WORK.ESTMAT has 6 observations and 3 variables.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.69 seconds
cpu time 0.67 seconds
NOTE: IML Ready
NOTE: Module CORREL defined.
NOTE: Exiting IML.
NOTE: PROCEDURE IML used (Total process time):
real time 0.04 seconds
cpu time 0.05 seconds
156 %corr(vsb,pbvdif);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 1200 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.01 seconds
NOTE: 2 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: The data set WORK.COVMAT has 2 observations and 4 variables.
NOTE: The data set WORK.ESTMAT has 2 observations and 3 variables.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.36 seconds
cpu time 0.35 seconds
NOTE: IML Ready
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 156 column 1
operands : e, *LIT1007, *LIT1008
e 2 rows 1 col (numeric)
0.5658762
0.6261904
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 156 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 156 column 1
operands : e, *LIT1009, *LIT1010
e 2 rows 1 col (numeric)
0.5658762
0.6261904
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 156 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 156 column 1
operands : e, *LIT1011, *LIT1012
e 2 rows 1 col (numeric)
0.5658762
0.6261904
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 156 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 156 column 1
operands : e, *LIT1013, *LIT1014
e 2 rows 1 col (numeric)
0.5658762
0.6261904
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 156 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 156 column 1
operands : VG1, VG2
VG1 1 row 1 col (numeric)
0.5658762
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 156 column 1
traceback : module CORREL at line 156 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 156 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 156 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.03 seconds
cpu time 0.03 seconds
157 %corr(pm,cm);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 2400 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.01 seconds
cpu time 0.01 seconds
NOTE: 218 observations are not included because of missing values.
WARNING: Did not converge.
NOTE: The data set WORK.ESTMAT has 6 observations and 3 variables.
WARNING: Output 'asycov' was not created. Make sure that the output object name, label, or path is spelled correctly. Also,
verify that the appropriate procedure options are used to produce the requested output object. For example, verify that
the NOPRINT option is not used.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.38 seconds
cpu time 0.37 seconds
NOTE: IML Ready
NOTE: Module CORREL defined.
ERROR: (execution) Matrices do not conform to the operation.
operation : * at line 157 column 1
operands : _TEM1003, C
_TEM1003 1 row 6 cols (numeric)
-0.02214 0.0442803 -0.02214 0 0 0
C 2 rows 2 cols (numeric)
0.0031178 -0.000328
-0.000328 0.0009848
statement : ASSIGN at line 157 column 1
traceback : module CORREL at line 157 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix SERG has not been set to a value.
statement : PRINT at line 157 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 157 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.03 seconds
cpu time 0.03 seconds
158 %corr(pm,pbvdif);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 1200 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.02 seconds
NOTE: 109 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: The data set WORK.COVMAT has 2 observations and 4 variables.
NOTE: The data set WORK.ESTMAT has 2 observations and 3 variables.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.36 seconds
cpu time 0.35 seconds
NOTE: IML Ready
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 158 column 1
operands : e, *LIT1007, *LIT1008
e 2 rows 1 col (numeric)
23.260417
39.329231
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 158 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 158 column 1
operands : e, *LIT1009, *LIT1010
e 2 rows 1 col (numeric)
23.260417
39.329231
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 158 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 158 column 1
operands : e, *LIT1011, *LIT1012
e 2 rows 1 col (numeric)
23.260417
39.329231
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 158 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 158 column 1
operands : e, *LIT1013, *LIT1014
e 2 rows 1 col (numeric)
23.260417
39.329231
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 158 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 158 column 1
operands : VG1, VG2
VG1 1 row 1 col (numeric)
23.260417
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 158 column 1
traceback : module CORREL at line 158 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 158 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 158 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.02 seconds
cpu time 0.04 seconds
159 %corr(cm,pbvdif);
NOTE: There were 6000 observations read from the data set WORK.THREE.
NOTE: The data set WORK.TRAITS has 1200 observations and 5 variables.
NOTE: DATA statement used (Total process time):
real time 0.00 seconds
cpu time 0.00 seconds
NOTE: 109 observations are not included because of missing values.
NOTE: Convergence criteria met.
NOTE: The data set WORK.COVMAT has 2 observations and 4 variables.
NOTE: The data set WORK.ESTMAT has 2 observations and 3 variables.
NOTE: PROCEDURE MIXED used (Total process time):
real time 0.39 seconds
cpu time 0.37 seconds
NOTE: IML Ready
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 159 column 1
operands : e, *LIT1007, *LIT1008
e 2 rows 1 col (numeric)
23.260417
39.329231
*LIT1007 1 row 1 col (numeric)
3
*LIT1008 1 row 1 col (numeric)
1
statement : ASSIGN at line 159 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 159 column 1
operands : e, *LIT1009, *LIT1010
e 2 rows 1 col (numeric)
23.260417
39.329231
*LIT1009 1 row 1 col (numeric)
5
*LIT1010 1 row 1 col (numeric)
1
statement : ASSIGN at line 159 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 159 column 1
operands : e, *LIT1011, *LIT1012
e 2 rows 1 col (numeric)
23.260417
39.329231
*LIT1011 1 row 1 col (numeric)
4
*LIT1012 1 row 1 col (numeric)
1
statement : ASSIGN at line 159 column 1
ERROR: (execution) Invalid subscript or subscript out of range.
operation : (| at line 159 column 1
operands : e, *LIT1013, *LIT1014
e 2 rows 1 col (numeric)
23.260417
39.329231
*LIT1013 1 row 1 col (numeric)
6
*LIT1014 1 row 1 col (numeric)
1
statement : ASSIGN at line 159 column 1
NOTE: Module CORREL defined.
ERROR: (execution) Matrix has not been set to a value.
operation : * at line 159 column 1
operands : VG1, VG2
VG1 1 row 1 col (numeric)
23.260417
VG2 0 row 0 col (type ?, size 0)
statement : ASSIGN at line 159 column 1
traceback : module CORREL at line 159 column 1
NOTE: Paused in module CORREL.
ERROR: Matrix RG has not been set to a value.
statement : PRINT at line 159 column 1
ERROR: Matrix RP has not been set to a value.
statement : PRINT at line 159 column 1
NOTE: Exiting IML.
NOTE: The SAS System stopped processing this step because of errors.
NOTE: PROCEDURE IML used (Total process time):
real time 0.02 seconds
cpu time 0.03 seconds
160 run;
161
162
163 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
175
script:- *USE DATA FROM ONLY ONE ENVIRONMENT FOR THIS EXAMPLE!;
data evr3; set evr3; if env = 98;proc print;
*first, estimate variance components for each trait separately to compare to multivariate analysis below;
%macro varcomp(trait);
proc mixed data = work.evr3;
class rep id;
model &trait = ;
random rep id;
*also check effect of setting reps fixed on other variance components;
proc mixed data = work.evr3;
class rep id;
model &trait = rep;
random id;
run;
%mend;
%varcomp(vsp);
%varcomp(vsb);
%varcomp(pm);
%varcomp(cm);
%varcomp(pbvdif);
run;
*restructure data set for multivariate reml analysis;
data three; length trait $ 5; set evr3;
trait = "vsp"; y = vsp; output;
trait = "vsb"; y = vsb; output;
trait = "pm"; y = pm; output;
trait = "cm"; y = pm; output;
trait = "pbvdif"; y = pm; output;
drop vsp vsb pm cm pbvdif;
* analyze variables pair-wise;
%macro corr(trait1, trait2);
data traits; set three; if trait = "&trait1" or trait = "&trait2";
proc mixed asycov data = traits;
class trait rep id;
model y = rep(trait);
random trait/subject = id type = un;
repeated trait/ sub = rep*id type = un;
ods output covparms = estmat; ods output asycov = covmat;
run;
proc iml;
use estmat; read all into e;
use covmat; read all into cov;
* Note that SAS introduces an extra first column into the covariance matrix which must be removed;
C = cov(|1:nrow(cov), 2:ncol(cov)|);
* Obtain genotypic and phenotypic covariance and variance components;
CovG = e(|2,1|);
VG1 = e(|1,1|);
VG2 = e(|3,1|);
CovP = CovG + e(|5,1|);
VP1 = VG1 + e(|4,1|);
VP2 = VG2 + e(|6,1|);
* Create a module called "correl" that will estimate genotypic and phenotypic correlations
and their standard errors;
start correl(C, CovG, VG1, VG2, CovP, VP1, VP2, RG, RP, SERG, SERP);
RG = CovG/sqrt(VG1*VG2);
*Make the derivative vector for rg, note that the order of the rows and columns of the variance
covariance matrix is VG1, CovG, VG2, VError1, CovError, VError2;
dg = (-1/(2*VG1))//(1/CovG)//(-1/(2*VG2))//0//0//0;
varrg = (RG**2)*dg`*C*dg; serg = sqrt(varrg);
RP = CovP/sqrt(VP1*VP2);
*Make the derivate vector for rp;
d1p = -1/(2*VP1);
d2p = 1/CovP;
d3p = -1/(2*VP2);
dp= d1p//d2p//d3p//d1p//d2p//d3p;
varrp = (RP**2)*dp`*C*dp; serp = sqrt(varrp);
finish correl;
call correl(C, CovG, VG1, VG2, CovP, VP1, VP2, RG, RP, SERG, SERP);
print "Genotypic Correlation Between &trait1 and &trait2";
print RG serg;
print "Phenotypic Correlation Between &trait1 and &trait2";
print RP serp;
quit; run;
%mend;
%corr(vsp,vsb);
%corr(vsp,pm);
%corr(vsp,cm);
%corr(vsp,pbvdif);
%corr(vsb,pm);
%corr(vsb,cm);
%corr(vsb,pbvdif);
%corr(pm,cm);
%corr(pm,pbvdif);
%corr(cm,pbvdif);
run;
The (first) error message says that the error occurs during the macro call %corr(vsp,pbvdif);
In that call, the expression e[3,1] has a problem because e (which was created from the estmat data set) has only 2 rows.
I have two further comments:
1. Change the matrix subscript expressions e(|1,1|), e(|2,1|), e(|3,1|), etc to use square brackets e[1,1], e[2,1], e[3,1],... That old syntax hasn't been used in 40 years.
2, Debug the program outside of the macro. Do not use a macro unless the program runs correctly on all datas.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.