The CORRESP Procedure

Computational Resources



\begin{align*}  n_ r &  = \mr{number \;  of \;  rows \;  in \;  the \;  table} \\ n_ c &  = \mr{number \;  of \;  columns \;  in \;  the \;  table} \\ n &  = \mr{number \;  of \;  observations} \\ v &  = \mr{number \;  of \;  VAR \;  statement \;  variables} \\ t &  = \mr{number \;  of \;  TABLES \;  statement \;  variables} \\ c &  = \max (n_ r,n_ c) \\ d &  = \min (n_ r,n_ c) \\ \end{align*}

For TABLES statement input, more than

\[  32(t+1)+8(\max (2tn,(n_ r+3)(n_ c+3)))  \]

bytes of array space are required.

For VAR statement input, more than

\[  16(v+2)+8(n_ r+3)(n_ c+3)  \]

bytes of array space are required.


The computational resources formulas are underestimates of the amounts of memory needed to handle most problems. If you use a utility data set, and if memory could be used with perfect efficiency, then roughly the stated amount of memory would be needed. In reality, most problems require at least two or three times the minimum.

PROC CORRESP tries to store the raw data (TABLES input) and the contingency table in memory. If there is not enough memory, a utility data set is used, potentially resulting in a large increase in execution time.


The time required to perform the generalized singular value decomposition is roughly proportional to $2cd^2 + 5d^3$. Overall computation time increases with table size at a rate roughly proportional to $(n_ r n_ c)^{\frac{3}{2}}$.