Skip to main content
1 of 3

Validity of setting Singular=1 in proc GLM Contrast statement (SAS)

I am running a proc GLM in SAS with specific contrasts, one of which is included in the code below. With the following code, all my contrasts are always unestimable:

proc    GLM data=my_data;
Class   A   B   C;  
Model   norm_counts = A|B C(B) A*C(B);
Random  C(B) A*C(B) / test;
Contrast 'Female.Obp50Pos - Female.Obp50Neg' A*B -1 0 1 0 0 0 0 0;
run;

However, when I use the Contrast statement's singular option to tune the estimability checking, I can make the contrast estimable - but only if I set it to exactly 1 (see below).

proc    GLM data=my_data;
class   A   B   C;  
model   norm_counts = A|B C(B) A*C(B);
random  C(B) A*C(B) / test;
contrast 'Female.Obp50Pos - Female.Obp50Neg' A*B -1 0 1 0 0 0 0 0 / singular=1;
run;

Since the default is singular=10^-4, setting it to 1 seems like a mere hack to coerce SAS to give a p-value for my contrast but is likely to be meaningless. However, this is a mere hunch.

Is setting singular=1 valid to make an otherwise unestimable contrast estimable?