It is not clear to me how the ddfm of containment (defalt of ddfm) is computed. The SAS manual said it's computed by "n-rank(XZ)". However, the matrix multiplication is not valid most of the time.