A COMPREHENSIVE SOFTWARE PACKAGE FOR SURVEY DATA ANALYSIS

The development of a survey data analysis software package that is flexible enough to meet the needs of survey statisticians, as well as research scientists not necessarily schooled in survey sampling, is underway at the Research Triangle Institute. The system was designed to provide significant enhancements to RTI's existing software package, SUDAAN. The new SUDAAN system is written in the C language and provides greater efficiency and portability. The software development strategy consists of developing and debugging stand alone statistical procedures on an IBM PC with expanded capacity. The procedures are then implemented in two additional computing environments, VAX/VMS and IBM/0S. Variance estimation options and data analysis techniques not previously available in the RTI software package are among the many modifications incorporated into the new SUDAAN system. The purpose of this paper is to describe the design and development of this system. INTRODUCTION Scientists at the Research Triangle Institute have been involved in designing, developing, and maintaining software systems for the analysis of survey data for the past 17 years. Recently, RTI has been under contract to the Public Health Service (PHS) to develop a comprehensive software package that meets the needs of statistical analysts at the National Center for Health Statistics (NCHS) and PHS. In particular, this package must be flexible enough to handle most of the statistical designs used by these agencies. For this purpose, we have embarked on the task of developing a system that incorporates many of the features of RTI's existing survey data analysis system but also includes significant enhancements. The purpose of this paper is to describe in detail the design and development of this comprehensive software package. The immediate ojective of the SUDAAN system design was to develop a series of procedures capable of performing statistical data analysis for complex sample surveys. The ultimate objective was to have a system that could aid in the design and evaluation of new statistical techniques. RTI's existing software system consists of a series of procedures that produce statistical analyses in the form of weighted cross-tabulations, generalized ratio estimators, and linear and logistic regressions. All of the procedures were constructed using a unified set of FORTRAN subroutines that execute in the SAS computing environment on an IBM mainframe. In the course of developing a new system, we went through the process of rethinking our current design. Four goals emerged: The system design for the comprehensive survey data analysis software, SUDAAN, evolved with these goals in mind. The first goal is being met by writing the new software entirely in the C programming language and testing simultaneously on several systems. Compilers for the C language are available on a variety of operating systems. The initial programs are currently executing under the TURBO C compiler on an IBM personal computer, the SVC compiler on a 68020, and under the UNIX operating system on a GOULD computer. Versions are also being tested on the VAX/VMS and IBM/VS. The second goal is being met by building checks into the system to assure that definitions of objects are meaningful and computations are feasible. We have implemented numerically stable procedures for the accumulation of sums of squares and cross products and for matrix operations, including matrix inversion. For achieving the third goal of improved efficiency, special care has been taken in the design to isolate tasks that are repeated numerous times, such as a numerical calculation on each variable of each record. These sections of code are optimized to the extent possible without using assembly language. Some of the optimizing algorithms include processing of sparse matrices and vectors, replacement of multiplication by table lookup with addition, elimination of repetitive (in the loop) "if" tests by constructing separate do loops, and many others. An important product of the SUDAAN design effort has been the creation of a high level statistical programming language. The SUDAAN language has been developed to provide the statistician/programmer with easy access to the software package, thus accomplishing the fourth goal listed above. Statistical procedures are currently being written in the SUDAAN language. Once they are finalized, some parts may be converted to C programs to maximize computing efficiency. The SUDAAN design allows for four types of user interface as depicted in Figure I. The general user will be able to access the system through user friendly procedures. Ultimately the procedures will be available through a statistical system, such as SAS, but the current design consists of stand-alone procedures that interface with a standard ASCII file format. The more sophisticated user can write SUDAAN programs for computations not available in the procedure library. This access feature is particularly well suited for testing modifications to existing procedures, such as the calculation of an alternative test statistic. A C programmer can access the system directly through C callable functions. The key features of the SUDAAN system are described in detail in the following sections. RTI SURVEY DATA ANALYSIS PROCEDURES Portability Reliability/numerical accuracy Computational efficiency Ease of modification/enhancement. BACKGROUND The collaboration of statisticians and