Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
The LOGISTIC Procedure

Exact Conditional Analysis: Computational Resources

PROC LOGISTIC uses a relatively fast and efficient algorithm for the exact analyses (Hirji, Mehta, and Patel 1987; Hirji 1992). This recently developed algorithm, together with improvements in computer power, makes it feasible to perform exact computations for data sets where previously only asymptotic methods could be applied, and for data sets where maximum likelihood methods fail to converge. Nevertheless, many problems require a prohibitive amount of time and memory for exact computations, depending on the speed and memory available on your computer. For such problems, consider whether exact methods are really necessary. Stokes, Davis, and Koch (2000) suggest looking at exact p-values when the sample size is small and the approximate p-values from the unconditional analysis are less than 0.10.

A formula does not exist that can predict the amount of time and memory necessary to generate the exact conditional distributions for a particular problem. The time and memory required depends on several factors, including the total sample size, the number of parameters of interest, the number of nuisance parameters, and the order in which the parameters are processed. At any time while PROC LOGISTIC is deriving the distributions, you can terminate the computations by pressing the system interrupt key sequence (refer to the SAS Companion for your system) and choosing to stop computations. If you run out of memory, refer to the SAS Companion for your system to see how to allocate more.

You can use the MAXTIME= option in the EXACTOPTIONS option to limit the total amount of time PROC LOGISTIC uses to derive all of the exact distributions. If PROC LOGISTIC does not finish within that time, the procedure terminates. If you need to derive several distributions, it may be more feasible to request one distribution at a time.

You can monitor the progress of the procedure by submitting your program with the STATUSTIME= option in the EXACTOPTIONS option. If the procedure is too slow, you can try reordering the variables in the MODEL statement or reparameterizing your classification variables (Hirji, Mehta, and Patel 1987). This may help since processing large covariate values first enables the infeasibility criteria to reject paths earlier in the algorithm; for example, a continuous variable clustered around a few values may reject paths earlier than a more uniformly distributed covariate (refer to Derr (2000) for an illustration of how the algorithm works for a simple data set). PROC LOGISTIC attempts to speed up computations by first combining observations with the same covariate values, then sorting the dummy variables for the class variables you are conditioning on followed by the continuous variables being conditioned on, in order of their appearance in the MODEL statement. Each variable Xi is sorted based on the weights xijwj, where i indexes the variable and j indexes the observation; for example, if \sum_{j}1_{\{x_{ij}\gt\}}x_{ij}w_{j} \gt \sum_{j}1_{\{x_{ij}\lt\}}| x_{ij}| w_{j},then the positive values of xij are sorted in descending order followed by the negative values in ascending order followed by the zeros.

Chapter Contents
Chapter Contents
Previous
Previous
Next
Next
Top
Top

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.