HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

SUGI 2002 Papers - Index

268 papers. Source: SAS Users Group International conference proceedings.

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 "Haven't We Met Somewhere Before?" and Other Useful Lines (of Code) to Get to Know Their Data David Rucker "Know Thy Data". Every programmer will tell you that this should be our motto. As programmers, we see all types of data, in all forms, on all media, from different operating systems, from different customers, and possibly different languages. We may never agree on the approach taken in our code. We may never agree on programming standards. We may never agree on data presentation. Nonetheless, any user of the SAS System will tell you this is what he appreciates most about the product. Surely the one thing we can all agree on (excluding the fact that continuous learning is the foundation of growth) is that you MUST know your data. The first step in this new relationship is to introduce yourself. In this paper, I will discuss several fundamental and possibly some new methods to learn about your data. Most examples provided will be relevant to the pharmaceutical industry in theory; however, these methods are applicable to all types of data proc step, pharmaceutical industry, dictionary tables, proc contents, sample source 5
2 %TREND: A Macro to Produce Maximally Informative Trend Charts with SAS/GRAPH , SAS, and ODS for the Web or Hardcopy LeRoy Bessler,
Francesca Pierri
Graphs accelerate decision-making, numbers assure reliable decision-making. Axis tick-marks and values are no substitute for annotation of trend plot points. The POINTLABEL option on the SYMBOL statement provides PROC GPLOT annotation, but labels may overlay the line. The %TREND macro not only more often provides collision-free annotation, but also supports optional sparse annotation, which is focused, communication- effective annotation of y-values only for start, end, and any intermediate minimum and/or maximum of the trend. For a dense jagged plot, even %TREND may suffer line-label collisions if you need full annotation, rather than sparse. For the web, %TREND provides flyover text for all intermediate points, instead of permanent annotation. Unfortunately, flyover text is non-printable, and "annotates" only one point at a time. For the web, %TREND also supports drill-down to a printable macro- generated table, with the row for the clicked point highlighted macro loop, macro definition, if-then-else, %if-%then-%else, proc step, macro variable, ods pdf source 6
3 %WINDOW: You Can Talk to the Users and They Can Talk Back Michael A. Mace %WINDOW provides an elegant means to gather user criteria for customized or ad hoc reports. Some of the benefits are: only Base SAS is needed (no SAS/AF), there is only one program to write and maintain, and the end-user, mainframe or PC, never has to edit any code. Several examples will demonstrate gathering single and multiple choices per parameter and conditionally gathering criteria macro variable, %if-%then-%else, macro facility, macro definition source 5
4 (Web) Software Development: Best Practices for Developing Enterprise Applications Gregory S. Barnes Nelson,
Danny Grasse
data validation rules, proc sql source 8
5 10 Things Experienced SAS Programmers Don't Know - But Should Douglas Zirbel Many SAS programmers have years of experience, but sometimes only within a narrow set of procedures and techniques. For this paper, numerous SAS professionals were asked for their views. These are their recommendations for an advanced SAS Programmer skill set. The list covers SAS Version 6 as well as Version 8. Base SAS products listed as a part of this are ODS, PROC SQL dictionary tables, DATA STEP, macro language, PROC REPORT. Each topic includes references for further information sas programmer, macro facility, data step, proc report, proc step source 2
6 <XML> at SAS - A More Capable XML Libname Engine Anthony L. Friebel At SAS, we use XML in several different ways. XML finds application as a persistence method in Vertical Applications, a query protocol in Warehouse Administrator software, an output form in SAS ODS software, and a data source in base SAS software. This paper will focus primarily on XML as a data source and the SAS XML LIBNAME Engine, which can be used to convert XML directly to SAS data sets sas syntax, libname engine, proc print, proc step, data step source 4
7 A Better Desktop Than Windows: Using Excel to Organize, View, Launch and Document SAS Programs Ted Conway With the help of a few simple macros provided in this paper, EXCEL can come in handy for any SAS user that's trying to organize, view, launch, and even document large numbers of Windows-based SAS programs that are run on a regular basis excel, sas base source 2
8 A Look at the Development Process for a SAS/IntrNet Application Andrew S. Rosenbaum Many sources of information are available to assist a developer learning the basics of Web development with SAS/INTRNET. However, once the developer becomes proficient with the basics, little information exists of how to put an application together. The SAS/INTRNET developer must know what questions to ask and what choices need to be made in order to construct an efficient and effective SAS/INTRNET application sas base, macro variable, put statement, proc step source 6
9 A Macro for Examining the Consequences of Error Structure Misspecifications John M. Ferron,
Kristine Y. Hogarty,
Melinda Hess,
Jeanine L. Romano
Researchers using mixed linear models often use fit criteria to select among possible covariance structures for their data. Unfortunately, fit criteria do not always lead to the correct specification of the covariance structure, and misspecification can have negative consequences for estimation and inference. A program is presented that allows researchers to explore the sensitivity of Akaike's Information Criterion (AIC) and Schwartz's Bayesian Criterion (SBC) to possible misspecifications. For these potential misspecifications, the program then allows the researcher to examine the bias in the estimation of the variance parameters and the fixed effects, and the Type I error rates for tests of fixed effects. Monte Carlo methods are employed using a SAS macro in which data are generated using SAS/IML and analyzed using PROC MIXED of SAS/STAT covariance, covariance structure, fixed effects, proc step, proc mixed, ar(1), proc calis, longitudinal data, macro definition source 6
10 A Macro to Help with Accurate Output Documentation Bruce Spotts Accurately documenting the program and data library on output as well as the mode of operation is extremely important in order to manage programs and output. To assist with this task I have developed a macro that provides 4 macro variables to be used in titles or footnotes to accurately describe the program, data library, and the mode of operation for SAS programs running on MVS SAS versions 6.09-8.1. This macro is designed to work on MVS but can be modified to run on PC SAS. The macro is provided and the benefits and limitations are discussed macro variable, libname statement, macro call, %if-%then-%else, macro definition source 2
11 A Modular Approach to Portable Programming Michael A. Riddle,
Michael A. Litzsinger
This paper presents SAS programming techniques that allow operating system and project assignments to be made centrally, but still allow portability to another system. Modules generally include anything that can be best defined in a single location, such as LIBNAMEs, TITLEs, FOOTNOTEs, or system options. This paper also details the use of MFILE, in conjunction with MPRINT, to direct executed program statements to a stand-alone output program. MFILE is a relatively unknown system option that was known as RESERVEDB1 in SAS 6.12. The result is a blended method to port code using the output directing capabilities of the MPRINT system option. The resulting SAS program can be stripped of all traces of modularity and underlying macros, and can be executed as a stand-alone program. The combination of these two techniques retains the flexibility of modularity for development and also results in truly portable SAS programs options statement, macro variable source 6
12 A New Method to Estimate the Size of a SAS Data Set Xingshu Zhu,
Shuping Zhang
According to the "Guidance for Industry - Providing Regulatory Submissions in Electronic Format - NDAs" (January 1999), the submitted analysis dataset (SAS transport file) must not exceed 25 MB in size and must not contain more than 62999 records. These requirements make it essential to have a convenient and reliable method to estimate the size of a SAS dataset. There are existing formulas available to be used for estimating the size of a SAS dataset, however, these formulas are all dependent on the operating system. Thus, the codes developed using such formulas are also system dependent, making them inconvenient and unreliable under certain circumstances. We have developed an alternative set of SAS codes to determine the size of a data set. These codes can perform the desired task effectively, and more importantly, they do not depend on the operating system proc contents, proc step, dataset source 3
13 A New User's Journey in Using PROC IMPORT and ODS: An Application in the Electricity Market David L. Wang,
M. Azharul Islam
The Division of Market Monitoring & Assessment of the Public Utilities Commission of Ohio is responsible for monitoring the Ohio electricity market during this development period of deregulation of generation services. This paper describes a process in which data are taken from a Microsoft Access database and how SAS-PC is used to generate the statistics for monitoring the electric market. Additionally, the problems encountered and the lessons learned during this process are highlighted. It has been observed that utilizing PROC IMPORT and ODS gives the user the ability to interface with a host of PC database software and to produce customized results. When we combine these tools with the power of the macro language, we are able to generate a user-friendly program that allows the user to produce the desired output. The audience that the paper is intended for is the beginner user of PROC IMPORT, the SAS Macro language and Output Delivery System (ODS) proc import, proc step, macro facility, excel, macro definition, sample source 3
14 A Preview of SAS/STAT Version 9: Moving in New Directions and Building on Old Favorites Maura E. Stokes,
Bob Rodriguez,
Randy Tobias
Version 9 of SAS/STAT software brings you a vari- ety of new tools for your statistical computing needs. The Power and Sample Size Application (PSS) pro- vides sample size and power computations for a vari- ety of analyses through a web interface. Experimen- tal software in Version 9 moves SAS/STAT in new di- rections, including robust regression, which is sup- ported by the ROBUSTREG procedure, and logis- tic regression for sample survey data, available with the SURVEYLOGISTIC procedure. In response to user requests, a number of procedures have been en- hanced significantly. Conditional logistic regression is available in the LOGISTIC procedure through the new STRATA statement, and scoring of data sets is avail- able through the new SCORE statement. New fea- tures in several other procedures are also discussed source 6
15 A Proportional Odds/Hazards Approach to Analyzing Likert Scale Data Lynette K. Duncan,
James E. Dunn
Linear scoring coupled with parametric regression or ANOVA often is used to analyze responses measured on a Likert scale. Alternatively, we have had success in numerous cases by modeling the same data under relaxed assumptions of the proportional odds model. This is implemented conveniently by PROCEDURE LOGISTIC, where a test of the proportional odds parallelism assumption is displayed automatically. When this test fails, a satisfactory model sometimes results by switching from the default cumulative logit link to use of the complementary log- log link, implemented by option LINK=CLOGLOG. Model fit by means of the log-log link also can be assessed using the CLOGLOG option, after minimal data manipulation. Either link induces the equivalent of a proportional hazards model proc phreg, main effect, estimate, logistic distribution, interaction effect, logistic regression, predictor variable, odds ratio, regression analysis source 5
16 A Quick and Easy Data Dictionary Macro Peter J. Lund proc step, data dictionary, dictionary tables, macro variable, proc sql source 6
17 A Randomization-Test Wrapper for SAS PROCs David L. Cassell SAS/STAT procedures are often used in settings where the underlying model assumptions are not really met. Permutation tests can permit one to assess correct p- values in many of these cases, but too often the total number of permutations is unmanageable. Instead, a randomization test using a random subset of all permutations can be used. This paper demonstrates a flexible, extensible pair of 'wrapper' macros which allow the user to use almost any SAS PROC and get a randomization p-value for the desired test at the back end. The wrapper is a front macro to create the data set of replicates with a randomized dependent variable, and a back macro to process the results of the SAS PROC and compute the p-value according to a randomization test. These bracket the already-written SAS procedure or process, which requires minimal alteration. We demonstrate the wrapper on several SAS procedures, using standard output data sets as well as tables pulled out using ODS permutation test, randomization, proc step, significance level, output delivery system, anova, main effect, ods output, proc glm, f-test, ods listing, proc genmod, response variable, predictor variable, data step, interaction effect, macro definition, %if-%then-%else source 4
18 A SAS Application for Measuring Efficiency and Productivity of Decision Making Units Ali Emrouznejad In the last two decades many authors have developed techniques to measure the efficiency of Decision Making Units in a way consistent with the underlying economic theory of optimization behavior. The model frequently used is Data Envelopment Analysis (DEA) which initially developed by Charnes, Cooper and Rhodes (1978). Using such as efficiency method over two consecutive periods, one can naturally define productivity of Decision Making Units. The aim of this paper is to present the capability of SAS and SAS/OR to implement such models. Therefor, the paper provides SAS code for various productivity measures using optimization procedures such as PROC LP. The code can be used to calculate non-parametric Malmquist Index as a base measure for productivity proc step, linear programming, proc sort source 5
19 A SAS/AF Mainframe/PC File Transfer Application Robert Nelson,
Janet Royalty
Prevention operate on a variety of computing platforms. Most users prefer to use the SAS System for PCs for data analysis. However, many important data sources are located on CDC's MVS mainframe. We have developed a SAS/AF file transfer application as an alternative to other means of accessing SAS data across platforms. Other options could include remotely submitting mainframe jobs from the PC, assigning remote library names from the SAS System for PCs, creating transport files from the PC, or running SAS jobs from the mainframe. This application, which mimics the appearance of other file transfer applications, allows users to easily move SAS data between the mainframe and PC. It utilizes user supplied parameters, including mainframe account data and directory information for both PC and mainframe, to dynamically populate and display lists of SAS data sets and catalogs. Files from either platform can be selected and transferred to the other sas log, sas library source 7
20 A SAS/IML Macro for Computation of Confidence Intervals for Variance Components of Mixed Models Ann M. Hess,
Hari Iyer
The mixed linear model is used in a variety of disciplines. Point and interval estimates for variance components from these models are often required. Confidence intervals for variance components with superior coverage properties than those afforded by the application of the Satterthwaite method may be computed using the methods discussed in the book "Confidence Intervals for Variance Components" by Burdick and Graybill [1]. To facilitate these calculations, we have written a SAS/IML macro that will compute these confidence intervals for any balanced mixed effects saturated ANOVA model involving five or fewer factors. User input to the SAS/IML macro is the actual data set along with a matrix indicating whether each factor is fixed or random and the nesting/crossing configuration among the factors confidence interval, proc mixed, anova, proc step, covariance source 4
21 A Scorecard Approach to Improving Data Quality Phil Nousak,
Robert W. Phelps
An ever-increasing number of strategic and tactical business decisions are being made from analyzing data gathered in Data Warehouses and Data Marts. Bad decisions, poorly performing predictive models and monetary losses result when data quality is not monitored. What you think you know about your organization, your customers, or your suppliers may be distorted by undependable data. Data quality cannot be improved independently of the source or the context in which these data are used. Technology-only approaches are not sufficient to provide sustained data quality improvements. The road to data quality improvement involves several factors. These include a technical understanding of the source and data gathering processes. It also includes the establishment of a reporting process to monitor changes in data quality as well as people with well-defined roles, responsibilities, and authority to develop a culture that supports data quality improvement data cleaning, data validation rules, raw data, trend analysis source 9
22 A Secure Online Data Validation &Collection System for HEDIS Survey Data Christopher A. Roper The National Committee for Quality Assurance (NCQA) collects and reports performance and customer satisfaction survey data on managed-care organizations. The health plans (or their data processing vendors), submit this information to NCQA as part of the accreditation process. In the past, data was collected via 3 ½- inch floppy diskettes. One critical component of the data collection process was the validation of the data files. These data files were required to adhere to strict rules concerning file layout and data interdependencies. It was very common for a data file to be submitted to NCQA, rejected by the NCQA data validation process, and returned to the sender for correction. With thousands of files to collect and validate, the task of tracking and processing these diskettes was unwieldy. NCQA devised a system using base SAS (with Macro language and SCL), a little ASP code and Microsoft SQL Server data cleaning, dataset, proc sql, proc means, macro loop, lookup, macro variable, quality assurance, macro definition, sql server source 9
23 A Utility Program for Checking SAS Log Files Carey G. Smoak Validating a SAS program can be a tedious task, especially when you have to check hundreds and possibly thousands of lines of code in a SAS log file. CHECKLOG is a utility program that is designed to assist you in this task of checking SAS log files. The CHECKLOG program scans one or more SAS log file(s) for: 1) serious errors, 2) errors which may or may not be serious (e.g., warning messages and SAS notes), 3) the number of observations and variables in a data set, and 4) whether or not the program completed execution. You can then print out the output from CHECKLOG and see in one printout all of the possible errors in the SAS log file(s). Reviewing the CHECKLOG output is much easier than going through hundreds and possibly thousands of lines of a SAS log file by yourself in order to find all of the errors. This program was developed on a VMS computer and works with both version 6.12 and 8.2 of SAS sas log, note source 2
24 A Version Control Kluge for SAS Programs - Using SAS! Tim P. Williams Programming with the SAS Software language presents technical challenges similar to those experienced in other languages such as Java, C++, or Visual Basic. This is especially true when a widely distributed programming team collaborates on code development. To ensure the success of a project, the team requires effective communication and the ability to implement a version control system to protect their work. Version control of SAS programs is mentioned in SAS online discussion groups at regular intervals, often with no resolution other than the purchase of expensive and proprietary software. Intended for an intermediate to advanced audience, this paper describes the implementation of a version control system for SAS programs using the SAS language itself macro variable, data cleaning, error message source 6
25 A Very Powerful Resource for SAS Users Worldwide JoAnn R. Matthews SAS-L is an electronic mail discussion group that was developed to allow SAS/GE2 users worldwide the potential to communicate with some the best and most powerful SAS users in the world virtually instantaneously via sas programming, sas programmer source 2
26 A Visual Introduction to SQL Joins Kirk Paul Lafler Real systems rarely store all their data in one large table. To do so would require maintaining several duplicate copies of the same values and could threaten the integrity of the data. Instead, IT departments everywhere almost always divide their data among several different tables. Because of this, a method is needed to simultaneously access two or more tables to help answer the interesting questions about our data. This paper visually illustrates how a join process works and then shows how an SQL query is constructed so some or all of the specified tables contents can be brought together where statement, proc sql, proc step source 3
27 Accessing Microsoft Excel and Microsoft Access Through the Use of a Simple Libname Statement Kee Lee With the help of the SAS Access, ODBC, and OLEDB, using MICROSOFT EXCEL Spreadsheet, MICROSOFT ACCESS data table, ORACLE data table and many other types of data that are ODBC/OLEDB compliant has never been easier. Among other methods, you can use the LIBNAME statement to assign a libref to the external data. Once a libref is successfully assigned, you can use the data as you use the native SAS data set in the DATA STEP and many SAS procedures. You can even use SAS/ASSIST to access different kinds of external data by pointing and clicking. For people who need to integrate and distribute data to and from different types of external data, this feature certainly can alleviate a lot of pain. This paper focuses on access MICROSOFT EXCEL and MICROSOFT ACCESS data. Let's see how it works… To do this, I use PC with NT or Window 2000, SAS/BASE product and SAS/ACCESS for PCs. Proper ODBC drivers for different types of external data are installed. This is for SAS beginners and above excel, libname statement, name range list, proc print, proc step, dataset source 2
28 Accessing the Version 9 OLAP Server from Java Tammy L. Gagliano,
Jeff Diamond
Significant development resources have been put into the area of OLAP data access with performance and scalability being two of the most influential factors considered when designing the Version 9 architecture. The Version 9 SAS OLAP Server uses the SAS Scalable Architecture to achieve these results. Along with a much improved back-end for creating, storing, and accessing your multidimensional data, a new set of Java-based model and viewer classes have also been developed to exploit this new functionality from both applet and JSP/servlet-based web applications. This paper will focus on those front-end components - the Java classes you can use to web enable your OLAP applications in Version 9. These Java components will be released as experimental with Version 3 of AppDev Studio , and the details are subject to change. A greatly expanded version of this paper will be made available on the web by SUGI. It will contain details on all the topics outlined here business intelligence, bar chart source 1
29 Advanced Macro Topics Steven J. First The SAS macro language continues to be an integral part of the SAS system, and can be a wonderful tool or an overcomplicated solution. This paper will be of interest to macro users that would like to more fully understand the macro system. This paper will discuss the following topics: 1. Macro data structures and timing 2. Local and Global referencing environments 3. Quoting 4. Macro and DATA STEP functions and call routines 5. Debugging and tracing techniques 6. Autocall facilities 7. Design considerations 8. Alternatives to SAS macros 9. Changes and enhancements with Version 7 and 8 macro variable, proc step, proc print, macro definition, data step, macro put, macro loop, macro facility source 8
30 Advanced Tips and Techniques with PROC MEANS Andrew H. Karp proc step, proc means, dataset, class variable, output, numeric variable, character variable, sas output source 7
31 Algorithmic Answers for a Dance School Dilemma Wendy B. Dickinson This project provided a SAS solution to a unique and recurring need for both summary student information and billing capability under varying scenarios encountered by an educational entity. The Dance School provides instruction for a variety of performing arts modalities, including ballet, jazz, tap, and modern dance. The two major objectives were: (1) to enhance the ability to track and summarize student information, and (2) to accurately and timely calculate a pricing summary for each student. An algorithmic decision tree was constructed to address these needs, Utilizing the decision tree, SAS version 8 code was developed to produce the desired output. The six algorithmic factors included: (1) type of class (ballet, jazz, tap, modern); (2) number of siblings, (3) number of classes taken per week; (4) pricing schedule per class (progressive volume discount, family discount); (5) type of registration (individual, family); and (6) quarterly term of instruction (1-4) proc hpsplit, variable source 5
32 All Things to All People: A User-defined Report in SAS/AF Aileen D. Bennett You have built a SAS/AF application to maintain metadata on the survey data you process. The metadata are in a set of SAS data sets which can be joined with each other on various keys, much like a relational database. The users can add, delete, and browse the data. They also want to produce reports. There are some pre- defined reports, but they also want a user-defined report which can have any data from any of the data sets. They want the capability to choose data sets, specify a WHERE clause for each one, choose variables and a sort order, and store the report definition. You have to program the report to join the data sets properly and inform the user if he selected an unworkable combination of data sets. How? Use SCL lists and work from the data set relationship diagram create table, where statement, proc step, proc sort, proc sql source 6
33 An Application of ODS TAGSETs Jack Hamilton ODS TAGSETS provide a greater level of control over the output created by the Output Delivery System than can be easily obtained by modifying existing templates. This paper gives an example of the use of TAGSETS in a SAS/INTRNET application, but the ideas presented are applicable to non-web use as well excel, proc step, proc template, proc report, sample, output delivery system source 6
34 An Explicit Functional Form Specification Approach to Estimate the Area under a Receiver Operating Characteristic (ROC) Curve Paul W. Stober,
Shi-Tao Yeh
The Receiver Operating Characteristic (ROC) curve is a curve presented in a probability scale graph and is used to judge the discrimination ability of various statistical roc curve, logistic distribution, macro definition, proc step, proc nlin source 6
35 An Introduction to PROC SQL Steven J. First,
Katie Minten Ronk
PROC SQL is a powerful Base SAS 7 Procedure that combines the functionality of DATA and PROC steps into a single step. PROC SQL can sort, summarize, subset, join (merge), and concatenate datasets, create new variables, and print the results or create a new table or view all in one step! PROC SQL can be used to retrieve, update, and report on information from SAS data sets or other database products. This paper will concentrate on SQL's syntax and how to access information from existing SAS data sets. Some of the topics covered in this brief introduction include: Write SQL code using various styles of the SELECT statement. Dynamically create new variables on the SELECT statement. Use CASE/WHEN clauses for conditionally processing the data. Joining data from two or more data sets (like a MERGE!). Concatenating query results together proc sql, proc step, group by, order by source 11
36 An Introduction to SAS PROC SQL Timothy J. Harrington This paper introduces SAS users with at least a basic understanding of SAS data sets to the SAS SQL Procedure. The subjects discussed are (1) extracting specific data items and observations from data sets and views (2) creating and organizing new tables and views (3) creating and grouping summary statistics (4) joining two or more data tables (5) assigning data to SAS Macro variables (6) comparing and contrasting PROC SQL with the SAS DATA STEP and other SAS Procedures. Creating output and new tables The SQL Procedure is a SAS Procedure, but uses the ANSI standards. This procedure begins with the declaration PROC SQL; and ends with a QUIT; statement (not RUN;). In between these two declarations SQL code may be used. SQL code obeys the rules of the SAS system regarding maximum lengths of variable names, reserved words, and the use of the semi colon as the line delimiter. The simplest and most commonly used SQL statement is SELECT, which is used to extract data from a table proc sql, proc step, create table, order by, where statement, macro variable, group by, data merging, select, dataset, sas output source 6
37 An Useful Chart to Display Adverse Event Occurrences in Clinical Trials Chuanchieh Hsu,
Zhongwei Zhou,
James M. Hardin
Adverse events (AE) are always important safety issues in clinical trials. It is often an interesting as well as difficult issue for a researcher to determine how best to view a particular AEs in terms of frequency and the time when they occur after randomization across a group of patients or a group of patients compared to another group. A simple and informative graphic to assist the researchers in visualizing and understanding the mechanism of a particular AE is desirable. This paper illustrates how to use SAS/BASE, SAS Macro, and SAS/GRAPH to generate such an AE chart, one that shows the time each AE occurs and, more importantly, the severity of each corresponding AE over the duration of a clinical trial. Summaries of AE counts are also presented in the graph. Keywords: Adverse event, severity, graphical visualization, clinical trials adverse events, proc step, macro definition, clinical trial source 4
38 Analysis of Complex Sample Survey Data Using the SURVEYMEANS and SURVEYREG Procedures and Macro Coding Patricia A. Berglund The paper presents the defining characteristics of complex sample surveys and demonstrates the use of PROC SURVEYMEANS, PROC SURVEYREG, and SAS macro coding to correctly analyze these data. Means, Linear regression, and Logistic regression are programmed and run assuming a simple random sample and a complex sample design. The analytic techniques presented can be used on any operating system and are intended for an intermediate level audience. Keywords: complex sample survey data; PROC SURVEYREG, PROC SURVEYMEANS, macro language; adjusted variance estimates; simple random samples sample, proc step, proc calis, random sampling, logistic distribution, regression analysis, logistic regression, proc surveyreg, proc logistic, proc surveymeans, proc reg, response variable, macro facility source 5
39 Analyze the Stock Market Using the SAS System Luis F. Soriano Financial Managers, Analysts, and Investors need to find the better opportunities of investment on a huge global market where every day it's more difficult to understand the behavior and tendencies of the economy. The access and organization of information is crucial for the financial sector in order to have fundamental elements that will help Financial Manager, Analysts, and Investors to understand market behavior and how well decisions are taken. This paper explains in a very general manner how the SAS System could be used to manage stock market and financial data in an organization giving a few examples of this. The paper contains examples of the data warehouse process from the access to the data to the presentation of valuable information to analysts using stock market data and explaining how to accomplish some of these goals with SAS programs. In some of the examples, it's explained the SAS modules or products that are used including some characteristics of them relational database, data cleaning source 6
40 Analyzing Discrete Choice Data on Monadic Cards Jay Wu Although Discrete Choice Modeling typically involves multiple choice CARDS, monadic CARDS may add insights into [1] assessing market demands under current or most likely scenarios; [2] calibrating forecasts based on regular choice CARDS; [3] providing a quick store shelf simulation in addition to regular choice CARDS. We present a real life example to show how utilities can be estimated from a single monadic card and analyzed with the same rigor as the regular choice CARDS proc step, proc phreg, sample, proc freq source 7
41 Anyone Can Learn PROC TABULATE Lauren E. Haworth proc tabulate, proc step, ods html, excel source 9
42 Applied Geostatistics with JMP Andy Mauromoustakos,
Kevin C. Thompson
proc nlin, contour plot source
43 Ask DSS ... Using HTML, JavaScript, htmSQL, and SAS to Create Dynamic Web Applications Karen L. Wyland The Decision Support Systems web site promises to deliver information on demand. How do you do that? More specifically, how do you meet the requests of many users who span all levels of the organization and need different levels of data? How do you optimize the user experience that is dialing over a 28.8 modem? "Ask DSS", partially modeled after "Ask Jeeves" is one such application. All users choose from a prearranged set of questions. Each question has several pull-down boxes to let users tailor it for their particular inquiry. We term this a "predefined where clause with variable values." It's easily maintained because each question has its own SAS program called from the SAS/INTRNET broker. Macro code manages the dynamic decision making of which user and what data, and JavaScript within the web page manages the questions submitted and the necessary parameters to pass proc sql, sample, order by source 6
44 Automating the Building of 2nd and 3rd Order Interactions and the Construction of Hierarchical Logistic Regression Models Mazen Abdellatif,
Robert G. Anderson,
Domenic J. Reda
We have developed a SAS [1] macro to automate the building of selected second and third order interaction terms of dichotomous variables and the process of the hierarchical backward elimination method in PROC LOGISTIC [2] to build several logistic regression models. The macro creates needed interaction effects, includes them in the data set, and performs the hierarchical backward elimination method until a final logistic regression model is reached. The macro was developed on Release 6.12 TS045 of the SAS system running on ALPHASERVER Model 1200 5/533 4MB. A system option of LS=132 is required to accurately read and extract needed components from PROC LOGISTIC output logistic distribution, main effect, proc logistic, proc step, interaction effect, regression analysis, logistic regression, backward selection, dataset source 4
45 Autotrader.com: from Chevette to Corvette Jenine Eason,
Jerry Johannesen,
Lars Olufsen,
Jeff Chang,
Brad Goldman
AutoTrader.com has been extremely successful in applying SAS to manage and report voluminous business information since April 1999. Since receiving the Enterprise Computing Award at SUGI 25, there have been many overwhelming successes as well as a few bumps in the road. This paper will review the challenges and solutions that the development team at AutoTrader.com dealt with while successfully rolling out their project. For example, understanding the dot.com reporting pitfalls - what appeared to be straightforward reporting was revealed to be treacherous and vague. Forecasting storage capacities became a never-ending challenge. Creating timely reporting for the user seemed easily deliverable - but as the site grew and our audience became more sophisticated, needs changed…quickly. Autotrader.com successfully rose to each new level. This presentation will layout the map for collecting data from multiple sources so that our clients had one reporting source dataset, proc step, business intelligence, data mart, filename statement, data step, ods html, output delivery system, macro definition source 10
46 Avoiding Entanglements: Migrating Applications to the Web Eric C. Brinsfield After many years of developing SAS/AF applications, most of us find our selves facing or ponder ing conversions to Web-based SAS applications. Before beg inning the pro cess, we need to ask ourselves a series of important questions. For example, is the end result worth the cost of migration? Or, should we convert the entire application or just parts of it or should we just start over? And, what tools should we use in the new Web-based software? In this paper, I will di scuss many of the issues that we should take into consideration when prepar ing for and p lanning a migration from a fat-client application to a thin-client browser application. I will present specific case studies that illustrate successful migration paths phase iii, sql server, proc sql, data warehouse source 5
47 Balanced Scorecards: The Integration Point between Enterprise Information and Performance Monitoring Donald J. Henderson,
Gary Young,
Ralph Mittl
A key challenge facing the pharmaceutical industry today is that strategies are rapidly evolving, but the tools for measuring and implementing those strategies have not kept pace. A number of pharmaceutical companies are exploring the use of a Balanced Scorecard as the backbone of integrated performance analysis in order to achieve the corporate vision. But defining an appropriate set of metrics and then making sense of enterprise-wide data to evaluate key performance indicators can be huge stumbling blocks. In order to overcome these stumbling blocks an pharmaceutical industry, customer satisfaction source 7
48 Battle of the Titans: REPORT vs. TABULATE Daniel E. Bruns,
Ray Pass
Are you in a quandary about whether to use PROC REPORT or PROC TABULATE for a certain report? Are you unsure which one will give you the control and flexibility to produce the report the way YOU want it to look? If you have these and other questions about the pros and cons of REPORT and TABULATE, this presentation is for you! We will discuss, using actual examples, the strengths (and even a few weaknesses) of two of the most powerful reporting procedures in the SAS System, thus providing with you the wisdom to help you make that sometimes difficult decision of which procedure to use to get the report you really want and need proc step, proc report, proc tabulate, proc means source 2
49 Beyond HTML: Using the SAS System Version 8.2 with XML Frederick E. Pratter output delivery system, ods html, libname engine, dataset source 4
50 Building and Using Macro Libraries Arthur L. Carpenter While many users take advantage of the SAS Macro Language, few take full advantage of its capabilities to build and maintain libraries of macros. Management of large numbers of macros can be problematic. Names and locations must be remembered, changes must be managed, duplication and variations of individual macros must be monitored, and efficiency issues must be taken into consideration. These problems come even more to the forefront when macros are shared among programmers - especially in a networked environment. Macro libraries allow you to control and manage the proliferation of your macros. Libraries can consist of a formal use of the %INCLUDE statement, a group of programs defining macros that can be automatically called, or even collections of macros that were previously compiled and then stored. Macro libraries are extremely useful, and not really all that complicated. If you are not currently using them as part of your macro programming efforts, read on! macro definition, stored macro, autocall macro, options statement source 7
51 Bulletproofing Your SAS Results Vanessa C. Hayden We've all been thrown by questions like these: "Why doesn't this report foot with the one you gave me before?" and "Can you just quickly duplicate this old analysis but with one change?" In a fast-paced environment, it can be difficult to meet changing business needs but also produce internally consistent results. This talk presents tips and tools using SAS /Ge2 software that can help reduce the effort it takes to update your code, while also bulletproofing the results. Simply creating macro-driven titles that automatically reflect dates and changes in data definitions can save you hours of grief reconciling numbers later. SAS code will be presented at a beginner level, but all SAS users may benefit from the organizational ideas macro variable, sample, &variable, proc step, sample size, symbol table, macro definition, stored macro, proc print, sas log, flag variable, mprint, symbolgen, call symput, missing value, proc sql, date variable, macro function source 6
52 Can't Relate? A Primer on Using SAS with Your Relational Database Garth W. Helf SAS Software excels at analyzing huge amounts of data. Relational database software (commonly called a Database Management System, or DBMS), such as DB2, Oracle, or Teradata, excels at storing and managing huge amounts of data. This paper, intended for beginning to intermediate SAS users, describes several tools available in the SAS/ACCESS Software for Relational Databases product for moving data between SAS and your DBMS. First, we explore some ways to submit queries to your DBMS and return the result to a SAS data set, including the SQL Procedure Pass-Through Facility and the new SAS/ACCESS LIBNAME Statement that lets you associate DBMS tables to SAS libraries, then retrieve data from your DBMS transparently from any DATA STEP or procedure proc sql, dataset, proc step, libname statement, where statement, create table, macro variable, %if-%then-%else, macro loop, macro definition, relational database, options statement, keep statement, subsetting if, proc append, proc print source 10
53 Clinical Trial Online - Running SAS on the Web without SAS/IntrNet Quan Ren During clinical trial, it is very important for the project management to have the most recent updated clinical trial information. The best solution is dynamic access to clinical trial data: dynamic data management and dynamic data analysis. SAS System a lmost became a standard programming language in clinical data analysis. With the development in Internet, people have been exploring every technical possibility to use SAS System to manage and analyze clinical trial data dynamically through Internet. SAS/INTRNET software has provided an option to use SAS System through Internet. However, there is an additional cost. This paper will present another way to use SAS System through Internet without SAS/INTRNET. An experimental example - Clinical Trial Online will be presented. Through Clinical Trial Online , the following technique will be demonstrated: 1. Remote data entry, data browsing and data editing through Internet. 2. Running SAS programs remotely and bringing the adverse events, clinical trial, proc means, data science, survival analysis, anova, vital signs source 7
54 Combining Pattern-matching and File I/O Functions: A SAS Macro to Generate A Unique Variable Name List Michael P. Bramley When a large number of variables in numerous datasets must be processed in different ways depending upon their names or labels, implementing a macro that returns a variable list based on patterns makes sense. It turns out that mimicking the basic SAS variable list operators is not too hard and provides an opportunity to add those features that the author wishes SAS Institute had implemented. In addition to pattern-matching in the SAS System, this paper illustrates the SAS programming techniques of how to use the %SYSFUNC macro function and how to interrogate the contents of a dataset. This paper does not assume any advanced SAS MACRO knowledge on the part of the reader. Finally, this paper combines the above techniques into a macro function that utilizes the SAS pattern-matching capabilities to return a unique variable list based on user-specified criteria variable list, macro function source 5
55 Communicating the Results of Predictive Models to Non-technical Audiences Andrew H. Karp Many statisticians, business analysts and other quantitative analysts are required to present the results of their modeling efforts to non-quantitatively trained decision-makers, or to decision-makers whose level of statistical training may be very limited. In the predictive modeling realm, where very sophisticated statistical tools such as logistic regression, neural networks and Chi-Square Automatic Interaction Detection (CHAID) are commonly employed, the knowledge gap between the provider and consumer of the analysis can become quite wide. When this occurs, the fruits of the analysis may go un- or under- utilized. This paper discusses several ways that the logistic distribution, proc step, proc logistic, gain chart, odds ratio, predictor variable, logistic regression, data mining, estimate, regression analysis source 4
56 Comparing Macros to Arrays to Simple Code for Input Statements: A Visual Display for the Novice SAS Programmer Lara K. Jungvig As a novice SAS programmer, I was thrown for a (%DO) loop by macros. I was not comfortable using macros until the day I was faced with an option: create and read in over 200 new variables by typing out all of their variable names or write several lines of code to do it for me. The decision was quick, and I have embraced macros ever since. In this paper, I present the code that I used for this task, side by side with a simple input statement and an array. The visual display demonstrates different techniques that may be used for the same task. I hope the novice programmer sees that different techniques, although intimidating at first sight, can be a timesaving tools that take some of the drudgery out of writing programs input statement, macro facility, macro variable, macro definition source 3
57 Computing Indices of Item Congruence for Test Development Validity Assessments Ronna C. Turner,
Sean W. Mulvenon,
Shawn P. Thomas,
Richard Balkin
The following provides a macro for test developers to assess content validity using the index of item-objective congruence measure (Rovinelli & Hambleton, 1977). The target audience for this information focuses on researchers and practitioners involved with the development of measurement instruments. The fields of expertise could range from higher education to business and government. SAS/IML is used to provide the classical unidimensional measure developed by Rovinelli and Hambleton (1977). This measure is limited to items that are measuring a single construct or a specific composite of constructs. In modern test theory, it is common to develop items that have multiple assessment targets. Thus, a macro of a newly developed index for evaluating items that measure multiple objectives or combinations of constructs is also provided in the paper macro definition, proc step source 5
58 Connecting the SAS System to the Web: A Hands-on Introduction to SAS/IntrNet Application Dispatcher Vincent L. Timbers There are several methods for accessing the SAS System through the Web to provide Web-enabled information- delivery solutions. The Application Dispatcher is a SAS System server that executes SAS programs from a Web browser, which is easily implemented by those with knowledge of the SAS DATA STEP and Procedures. This makes it a good method for moving existing SAS programs to the Web. This paper will provide a hands-on introduction, including setup of the Application Dispatcher and the development of Web pages and SAS programs that connect the SAS System to the Web. 1 output delivery system, macro variable source 8
59 Constructing and Publishing Wafer Maps on the World Wide Web Using Version 8 of the SAS System Scott Lacey,
David J. Meade
Wafer maps have become one of the most useful proc gmap, proc step, output delivery system source 6
60 Creating a Web-based Application Utilizing JSP and SAS JAVA BEAN Lori L. Sipe,
Qing Chen
LabOne, Inc. began a new venture with a large life insurance client to case manage the life insurance applicants from beginning to end. The challenge was to allow the client access to the individual applicant information and status as they moved through the system. As the volume of data grew the existing method of delivery became cumbersome and inadequate. This paper describes a web-based application that was developed using JAVA SERVER PAGES (JSP) and SAS JAVA BEANS connected to AS data sets. This system provides daily updates to a base table and then allows internal and external users to view data and to query large SAS data sets. The users can access data based on broad company parameters or narrow the scope of the search based on personal information, and can view data or export data to MS EXCEL spreadsheet. This application is created utilizing a UNIX operating system and is intended for users at the intermediate level dataset, data cleaning source 6
61 Creating Custom Excel Workbooks from Base SAS with Dynamic Data Exchange: A Complete Walkthrough Koen Vyverman If you find yourself besieged by hordes of business users and analysts, all clamoring for SAS output in nicely formatted EXCEL workbooks, then you'll need to go beyond what PROC EXPORT offers … Dynamic Data Exchange (DDE) will do the job for you. DDE is a communica tion protocol that lets pc-based applications talk to each other. In particular, DDE allows a SAS session to take control of the Exc el application, and perform manipulation of cells, spreadsheets and entire workbooks just as if you were doing so manually. The pu rpose of this workshop is to provide a complete walkthrough for building good-looking EXCEL workbooks from scratch, all from within Base SAS code. As you run the provided sample code and observe what it accomplishes, you'll learn how to create, rename and move spreads heets, fill them with SAS data, apply EXCEL formatting to selected cells, change fonts and colors, center titles, enter EXCEL formulas , specify header and footer, and much more excel, data step, xls, dataset, sysdate9, macro variable, put statement, date variable, format statement, macro definition source 9
62 Creating Efficient SQL - Four Steps to a Quick Query Paul D. Sherman Schema Query Language is a very flexible, general grammar for fetching and processing large amounts of data directly at the database level. Given this flexibility, there are many ways of achieving the same result. Some approaches yield terribly poor database performance especially when simple processing steps are overlooked. Most notable are incorrect uses of the ORDER BY and DISTINCT statements, whose often desired results almost always lead to sub-optimal database behavior. It is instructive to think about any "table", which are named in the FROM clause, as just another type of "object" in an object- oriented sense. Tables consist of one or more fields or columns, each having well defined types, and when related or joined to each other hold references between themselves. An SQL statement is thus nothing more than an object model diagram of sorts. In that regard, I recommend the following sequence of four simple steps when building any SQL query statement proc sql, inner join, group by, create table, where statement, key, order by, cpu time, proc step source 5
63 Creating Maps in SAS/GRAPH Jeffery D. Gilbert Integrating maps in SAS/GRAPH and customized annotations presents many challenges, particularly when working with the placement of annotations on maps. This can be very tricky, and can require many iterations of trial and error to get it right. This paper will provide fundamentals on creating maps using the PROC GMAP procedure, and also give an character variable, proc gmap, dataset, numeric variable, proc step source 7
64 Customizing the SAS/MDDB Report Viewer Phil Rhodes macro variable, variable list source 3
65 Data Cleaning 101 Ronald P. Cody proc step, proc univariate, standard deviation, numeric variable, missing value, proc print, proc freq, character variable, put statement, outlier, dataset, macro variable, sas output, proc means, set statement, where statement, adverse events, data cleaning, if-then-else, data step, proc format, proc sort, verify, box plot source 10
66 Data Entry Using SAS - A Discussion of Various Possibilities Barbara G. Schneider dataset, sas enterprise guide, date variable, data science source
67 Data Mining in Quality Improvement Bing Deng neural network, network optimization, regression analysis source 4
68 Data Quality - The Fuel that Drives the Business Engine Tony Fisher In today's information age companies will live and die by information. This information is the fuel that drives the business engine. As more and more data is collected, the reality of a multi- channel world that includes e-commerce, direct sales, call centers and existing systems sets in. Bad data is affecting companies at an alarming rate and the dilemma is clear: how can a company ensure that it is getting the most out of every application, every system and every database to maximize the use of corporate data throughout the enterprise? In the end, the companies with the most complete, accurate and reliable information will gain and retain market share. Recognizing that you have a data quality problem is just the start. The real question is how to fix the problem. In this session you will learn how to determine if incomplete, inaccurate and unreliable data is affecting your business data cleaning, business intelligence, data validation rules, data integration source 5
69 Data Socket Adapters Sigurd W. Hermansen Inspired by the idea of "… data sockets located in practically every room…" (as advertised on the Web site of the Department Physics of the University of Glasgow), this brief peek into the future gives those who can't stand to wait for it a preview of emerging data delivery technologies. In the first scene an Oracle equivalent of the Cable Guy asks, "Where's your premises distribution system outlet?" I shrug helplessly, so he pushes my desk away from the wall and exposes what appears to be an ordinary data socket. "That's the baby," he says. "Now what kind of adapter do you need for that employee dimension of your data warehouse?" I have no idea what he is talking about, but I don't want to spoil the plot for you. You'll have to show up and spend fifty minutes away from the Wild Toad Ride to hear the rest. To appreciate it you will have to know enough SAS to know that this isn't it. Yet proc sql, proc import, create view, proc step source 5
70 DATA Step Essentials Neil H. Howard The D ATA step is the most powerful tool in the SAS system. Understanding the internals of DATA STEP processing, what is happening and why, is crucial in mastering code an output. Concepts you should understand: ƒ what is the Logical Program Data Vector (LPDV or PDV), ƒ what are automatic SAS variables and how are they used, ƒ what is the SAS Supervisor, ƒ why it's important to understand the internals of DATA STEP processing, ƒ what happens at program compile time, ƒ what's actually happening at execution time, ƒ how are variable attributes captured and stored. By understanding DATA STEP processing, you can debug your programs and interpret your results with confidence. This paper focuses on techniques that capitalize on the power of the DATA STEP and working with (and around) the default actions proc step, proc format, missing value, dataset, lookup, put statement, numeric variable, proc print, sas log, update statement, automatic variable, if-then-else, length statement, proc sort source 11
71 DATA Step vs. PROC SQL: What's a Neophyte to Do? Craig Dickstein,
Ray Pass
"What's all the buzz about PROC SQL? I am just now beginning to understand the power of the DATA STEP within the SAS System and I am being told that it can all be done bigger and better in the SQL procedure. Do I have to use it? Should I use it? When and where is the appropriate use for PROC SQL?" For the beginner/novice SAS programmer, this paper will answer the above questions and attempt to demystify the must use, should use, and nice to use aspects of the DATA STEP as it compares and contrasts with Structured Query Language (SQL). General efficiencies of machine resources and programmer resources, as well as the proficiencies of the programmer, as choice criteria need to be considered. Business functions/needs and technology standards may also play a role as they apply to developing data management routines. Primary data management tasks to be considered are: creating, inputting, sub-setting, merging, transforming, and sorting proc sql, proc step, sas base, create table, dataset, order by, group by, inner join, proc sort, set statement, data governance, relational database, by group processing, right join, sas programmer, select source 9
72 Data Warehousing - What's It All About? Learning to Walk in Seven League Boots Steve Morton Data warehousing has been going on for several years now; it is widely done, but not always well done. So what's it all about anyway? It is widely agreed that successful data warehouses are built in manageable steps, incrementally - and in today's business climate any long-term project is doomed if it can't deliver business value along the way. However, if you are new to data warehousing how do you know what are the right steps to take when starting that journey? And what are the landmarks along the way? By learning from others' experiences - good and bad - we can all benefit, with more success in our projects. Even the experienced practitioner will often find useful tips from someone else's successes data validation rules, data warehouse, data mart source 7
73 Data Warehousing for the Enterprise Gary Mehler Data warehousing is performed by many organizations to provide the information to support their query and reporting as well as more advanced analytic requirements. While many small to mid- size implementations can accomplish this using standard data manipulation environments like base produ cts of the SAS /Gd2 System, larger organizations may find that long-term support and maintenance of complex projects, multi-user design and development requirements, and a wide breadth of information sources make this difficult to manage. This paper discusses issues that arise in large enterprises and ways to avoid general classes of problems in the area of scalability data warehouse, data standard, data wrangling, data cleaning source 8
74 Data Warehousing in the Modern World: A Case Study Revisited Mary K. Tucker Exploiting the SAS System's end-to-end solutions for delivering integrated data reporting and data mining tools offers many challenges and rewards. In 1999, after developing mainframe applications for many years, I began a new journey: data warehousing in a SAS Client Server environment. Now some three years later, I will share selected theories and practical applications as a data systems integrator in the real world. SAS-users and non-users alike will find something of interest as we explore the answers to the following questions. What does computing in the modern world look like? What does it take to survive the digital revolution? (And is surviving enough?) What are the key principles for building and delivering successful data warehousing applications? data mining, raw data, data validation rules, data warehouse, data transformation source 8
75 Designing Web Applications: Lessons from SAS User Interface Analysts Todd Barlow Web application user interfaces combine aspects of non-Web GUI design and Web site design. Through iterative usability testing, SAS user interface analysts have developed standard design and interaction patterns for analytical Web applications source 8
76 Detecting Anomalies in Your Data Using Benford's Law Curtis A. Smith Analyzing large amounts of data looking for anomalies can be a disheartening task. You need techniques that will allow you to quickly assess the data in ways that will highlight potential anomalies while keeping you from chasing the wind. Benford's Law is one such technique. Using Benford's Law and the SAS System you can quickly identify one or more first digit patterns in numeric variables that defy statistical averages. Within this paper, the author will present SAS code that will enable you to quickly and easily find anomalies in the data you analyze. The SAS code will include the DATA STEP, the MERGE statement, and the FREQ, REPORT, and GPLOT procedures. The author will also present some findings from the data he analyzes. The technique presented is powerful, yet easy to understand and use numeric variable, proc gplot, proc freq source 6
77 Developing and Maintaining a Tips Database: A Practical Approach to Programming Standards, Style Sheets and Peer Reviews Dianne Louise Rhodes When a new job starts, or a new manager takes over a project, the programming team is faced with a new culture. Often, this means that they are asked to adhere to a yet another set of programming standards, use style sheets, and are subject to peer reviews. This process is usually short lived, because of the lack of a practical approach to applying standards and enforcement. This paper goes through a step by step process of developing programming standards, classifying them and entering them into a database. This database can then be used to develop style sheets and check lists for peer review and testing. Through peer reviews and in preparation for them, programmers learn good programming practices quality control, stress testing source 5
78 Developing Master/Detail Applications Using Form &Table Viewers Bernd E. Imken where statement, dataset source
79 Discriminant Analysis, A Powerful Classification Technique in Data Mining George C. J. Fernandez Data mining is a collection of analytical techniques used to uncover new trends and patterns in massive databases. These data mining techniques stress visualization to thoroughly study the structure of data and to check the validity of the statistical model fit which leads to proactive decision making. Discriminant analysis is one of the data mining techniques used to discriminate a single classification variable using multiple attributes. Discriminant analysis also assigns observations to one of the pre-defined groups based on the knowledge of the multi-attributes. When the distribution within each group is multivariate normal, a parametric method can be used to develop a discriminant function using a generalized squared distance measure. The classification criterion is derived based on either the individual within-group covariance matrices or the pooled covariance matrix that also takes into account the prior probabilities of the classes discriminant analysis, posterior probability, macro definition, data cleaning, sample, covariance, validation set, correlation, prior probability, scatter plot, outlier, data mining, data science, mahalanobis distance, sample size, proc sgplot, sas output, training set, regression analysis, proc princomp source 9
80 DISTRESS and PATCH: SCL to Support Remote Applications Derek P. Morgan With the growth of the Internet and increased availability of high-speed broadband connections, it is easier to support remote applications built with the SAS System. By using the electronic mail interface built into the SAS System, support can be provided to remote users much more rapidly. The two SCL modules to be covered in this paper demonstrate how we improved the effectiveness of the application maintenance team with regards to bugs, and provided a way to send routine application messages automatically from within the application sas log, proc printto source 4
81 Don't Be a Slave to Your SAS Programs Marje Fecht,
Larry Stewart
Do you spend a lot of time updating your programs to adjust inclusion criteria? Do your programs run forever while you patiently wait? This beginning tutorial focuses on maintenance - free, efficient coding techniques so that you can spend your work time being more productive! Topics include: ƒ macro coding techniques ƒ efficient programming tips ƒ code reduction tricks ƒ maintenance-free programming suggestions proc step, proc sort source 2
82 Dynamic Data Matching in Clinical Trial Research Zaizai Lu,
David Shen
This paper introduces a macro we created. The adverse events, vital signs, clinical trial, macro definition, proc step, macro loop, proc sort, %if-%then-%else source 4
83 Dynamic Data Retrieval Using SAS/IntrNet Mary A. Bednarski,
Karen A. Clark,
Elizabeth M. Hornbeck,
Mae O. Gordon
Our poster will demonstrate dynamic retrieval of clinical trial data via the web using SAS/INTRNET software. We use hyperlinks to remotely invoke SAS as well as to create macro variables for accessing observations in SAS datasets. The data is sent back to the user's browser in a format that resembles a case report form. We accomplish this through background images and SAS/GRAPH. We also discuss the security measures that we have implemented macro variable, proc step, output delivery system, dataset, proc template, macro definition, %if-%then-%else source 6
84 Easy Access to Public Health Data Colorado Health Information Dataset (CoHID) Huiyun Xiang The Colorado Health Information Dataset (CoHID) was developed by SAS company, local and state public health agencies in Colorado to provide Colorado communities with easy access to local-level health data. This queriable system allows users to access community-specific information on a variety of health outcomes, conditions and health risk behaviors. Using SAS IntrNet and other SAS web tools, CoHID allows remote users to query a variety of health-related databases such as birth and death records, population estimates, and Behavioral Risk Factor Surveillance System to help determine the health status of a neighborhood, community, county or region in Colorado. Other datasets will be added in the near future. Like other new adventures, the development of CoHID met many challenges data warehouse, data science source 3
85 Empowering Better Decisions with the Use of Metadata Michele Ryals Is your company using metadata? Are you aware of the advantages metadata can bring to your organization? If you are not, you should be. As your business grows, so does the data contained within. Metadata is becoming more essential than ever for those who wish to stay ahead of their data, and thus, ahead of their competition. Speed is of essence and metadata is the driver. This paper will give you a better understanding of what metadata is and how it can help you answer the where, how and why about your data. Metadata acts as a key enabler for intelligence and gives you information critical to succeed in understanding and managing your data. The result is the best possible utilization of your data resources data lineage, proc contents source 4
86 Energizing End Users with a Slice of SAS and a Cup of Java Randy Curnutt,
Michael J. Pell,
John M. LaBore
Many corporate information systems have evolved to integrate a diverse mixture of hardware platforms. Although commonplace, the mainframe has been joined by a plethora of UNIX and NT servers as well as an army of personal computers often connected by Local Area Networks (LAN) or Wide Area Networks (WAN). Further, software tools in this environment are diverse. Users now wish to analyze their mainframe data with PC and UNIX tools in addition to using mainframe tools. It is often necessary to migrate data to new platforms because some tools require local data access. Users may become intimidated and stymied by the prospect of finding an easy and reliable method for moving mainframe data to remote platforms. We explore how the flexibility of SAS system architecture, combined with Java programming capabilities, provides instant access in an easy-to- use tool for point-and-click data migration and conversion (OS/390 SAS, DB2 views, Oracle views) to a PC or UNIX/NT servers proc step, dataset, proc printto, sas log, create table, macro definition, proc sql, data cleaning source 10
87 Enhancements to SAS/GRAPH in V9 Himesh Patel proc step, missing value source
88 Enterprise-wide Deployment of Windows SAS Using SAS Installation Technologies Jeff House,
Mark W. Cates,
Ken Larsen Mauree E. Chew
This paper is intended for administrators who are responsible for deploying SAS software throughout a large en terprise on the Windows platform. The discussion addresses Version 9 Windows SAS installation tools and their use in distributed deployment to a large number of machines within the enterprise sas administrator, management reporting source 10
89 Exploiting SAS/AF Software from a Web Client Scott Leslie,
Tammy L. Gagliano
Version 8 SAS/AF software provides a convenient way to access the power of SAS by allowing the creation of object oriented classes. The value of these SCL classes can be greatly expanded by making use of them from a web client. This allows the reuse of existing SCL code and AF programmer knowledge. This paper will highlight the benefits of using AF from a web client and discuss how AppDev Studio facilitates the process of creating the web client. A live demo will show the steps involved in developing the SCL classes, using the resulting Java interfaces, and creating the web client. A greatly expanded version of this paper will be made available on the web by SUGI. It will contain details on all the topics outlined here. You can find the final version of this paper under the Reference link on the AppDev Studio Developer's Site (http://www.sas.com/rnd/appdev) source 2
90 Exporting Large SAS Data Sets to MVS External Files in a Production Setting Helen-Jean Talbott Sometimes external files provide the easiest method to exchange data. Our Credit Policy department relies heavily upon SAS software for data management, analysis, and reporting. Frequently we need to export data from our SAS data sets to MVS external files in order to send data to another company that does not have SAS capabilities. SAS FILE and PUT statements work very well for creating external files, but our files are large (more than 300 variables). We want to avoid writing specific code for each variable and we need to implement a solution in production that is flexible for handling SAS files where variables change frequently. This paper shows how PROC CONTENTS and the macro language can simplify this task. The end product is an external fixed-format MVS file containing all the variables from the SAS data set, written in alphabetical order, along with supporting documentation showing the final file structure flat file, dataset, file statement, proc contents, put statement, macro variable, proc step source 4
91 Fast and Easy Ways to Annoy a SAS Programmer: A Statistician's Revenge! Richard M. Mitchell This paper gives a perspective from the statistician's point of view and discusses how a statistician may "make or break" a relation ship with a SAS progra mmer ba sed on the effectiveness of how analysis plans are presented and implemented. When we last met, statisticians were scurrying around in an attempt to destroy all copies of "Fast and Easy Ways to Annoy a Statistician" before their programmers could absorb any of the helpful tips provided in the paper. A memorable conference attendee best summarized her annoyance by saying strongly, "OUR STATISTICIANS DO NOT LIKE BEING ANNOYED!" Now statisticians may seek their revenge by coming up with their own plan to wreck havoc on the life of the very programmers who thought that those fast and easy tips were cute and humorous regression analysis, sample, proc step, response variable, sas programmer, proc logistic, sas log, predictor variable, logistic distribution, class variable, interval variable, error message, odds ratio, proc reg, proc freq source 10
92 Fast and Easy Ways to Annoy a Statistician: The Sharing and Presentation of Data Between a SAS Programmer and a Statistician Richard M. Mitchell Although even the best novice SAS programmers may adapt quickly to their work environments, it often takes many years of hard work and millions of lines of SAS code before one may fully understand some of the best and most effective ways to annoy a statistician. When one is having a bad day, or is just plain bored, it is often fun to generate abundant amounts of output where statisticians are forced to sift through page after page for their precious analysis results. It is also amusing to provide as little amount of output and documentation as possible to help clarify discrepancies or oddities of the data for which one knows the statistician will surely question at some point down the road. This paper discusses how a SAS programmer may "make or break" a relationship with a statistician based on the effectiveness of what data are shared and how data are presented proc step, missing value, sas log, sas programmer, proc logistic, regression analysis, odds ratio, logistic distribution, proc freq, proc print, label statement, sas output, sample, proc univariate, frequency analysis, interval variable, logistic regression, response variable, covariance, normality test, proc contents, outlier source 10
93 Fast and Easy Ways to Check Your Work: Using PROC MEANS to Confirm Continuous Variable Categorizations Richard M. Mitchell The purpose of this paper is to present a process where a SAS programmer may utilize PROC MEANS to check one's work after taking a continuous variable and creating a new variable with discrete categories. While variable coding may often appear to be simple enough not to warrant extensive checking of a program, the integration of such an approach into standard checking procedures can not only help ease the mind of the SAS programmer, but also help provide proof to the requestor that a task has been done correctly. This process is also beneficial in identifying potential outliers of data and in serving as a test to confirm just how good a set of specifications are for a given variable. By taking advantage of basic procedures such as PROC MEANS, one can avoid making the same variable categorization mistakes that have tripped up even the best of programmers proc step, interval variable, proc means, outlier source 2
94 Feeding Data _NULL_ to the Lions: Bringing ODS MARKUP under the Big Top with Adobe Acrobat 5 Forms Thomas Kunselman Creating customized reports using Data _NULL_ has always been a tedious process of counting columns and adjusting put statements. With the addition of ODS MARKUP in SAS Version 8.2, it is now possible to use a WYSIWIG editor such as MS Word or Adobe PageMaker to lay out your SAS reports and use PROC PRINT to generate them. This is done by converting the WYSIWIG document to an Acrobat Form and filling in the form with a PROC PRINT and ODS MARKUP using a customized tagset to create the Adobe Form Data File (FDF). Among the advantages of using an Acrobat Form are eliminating clerical layout tasks for programmers, no truncated data: the values in a text field can automatically shrink to fit in the field size, forms data can be modified and updates submitted back to a Web server, and best of all professional looking output consistent with other ODS destinations. This paper is intended as an exploration of the synergistic possibilities between SAS and Adobe Acrobat Forms proc step, proc print source 4
95 Finally - An Easy Way to Compare Two SAS Files! Douglas Zirbel This SAS macro compares two SAS datasets. It produces a differences report which is easy to understand. It does this very simply and it works with either SAS6 or SAS8 sample, proc contents source 5
96 From Data Warehouse to Reports Warehouse Gady Kotler Bank Tefachot, Israel's largest mortgage bank is using SAS for it's entire financial reporting, branch analysis and risk management for many years. SAS v8 has been installed on the bank's UNIX server during 2000 and immediately has created a need for Web reporting in all branches around the country. The Data warehouse team from EIS Ltd. has built a unique solution called SIGMA/Web that maintains a Reports Warehouse. Users can view reports generated periodically using SAS ODS and to send, via a web browser interface, requests for the SAS Unix server to be processed on-line. Each user can publish a SAS report to be viewed by other members under certain security limitations. A SAS published report can be enhanced by up-loading a WORD or EXCEL documents or other web formats. These documents along with the SAS reports, formulates a complete publication that is cataloged under Sigma/Web SAS application stored procedure, ods html, excel source 4
97 From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe This paper is a case study of how SAS products were used to automate the creation of a report. The original version of the report was created in EXCEL. Data were taken from three separate SAS programs and entered by hand into the spreadsheet. The layout was not a standard format that could be readily replicated from a SAS procedure. The conversion process involved the creation of a data mart using SAS Data Warehouse Administrator. Warehouse Administrator was also used to summarize the data into a summary dataset. The SAS Output Delivery System was then used to create an HTML document containing the desired information. Finally, the data warehouse scheduler was used in conjunction with Windows NT to automate the loading, summarization, and output processes. A new report is created every Sunday morning and placed on the university intranet without any human intervention. An interactive version is available for the user to create a customized version of the report excel, output delivery system source 6
98 From the Tactical to the Strategic: Transforming Data Into Knowledge for Use in an Enterprise Performance Management System Aiman M. Zeid Many organizations struggle with "data overload" from a multitude of different transactional systems. However, very few organizations have the appropriate "integrated strategic" information needed to successfully measure strategic direction. The focus of this paper is to demonstrate how SAS' business solutions can enable organizations to turn transactional data into useful and strategic information. Once empowered, this knowledge can be used to make strategic decisions and develop an Enterprise Performance Management (EPM) solution. The paper will accomplish this goal be demonstrating how SAS Human Capital Management, SAS Strategic Performance Management and SAS Financial Management Solutions can turn tactical HR and financial transactional data into an EPM solution data warehouse, sas base source 7
99 Fun with Timelines: Doing More with SAS/GRAPH PROC GPLOT Barbara B. Okerson SAS PROC GPLOT is designed as a tool for the plotting and visualization of data values. The built-in flexibility of the procedure, together with the ease of combining output with the SAS Annotate facility also makes it a g ood tool for creating a variety of timelines. Timelines are an essential part of process completion and process evaluation whether in the public, private, academic or government sector. Included in this paper are four examples of different types of timelines as well as the code used to create these examples. All examples were developed with version 8.1 of SAS under the Windows 98 operating system proc step, proc gplot, production run source 4
100 Generating Randomization Schedules Using SAS Programming Chunqin Deng,
Julia C. Graz
Randomization as a method of experimental control has been extensively used in clinical trials. Generating the randomization schedule has been an essential part of some trials. We discuss how to use SAS programming and SAS PROC PLAN to generate the randomization schedule. The issues related to randomization are also discussed. Case studies are used to illustrate the use of SAS programming and SAS PROC PLAN in generating randomization schedules. Keyword: Randomization Schedule, Clinical Trial, randomization, proc step, clinical trial, sas programming, sample size, sample, ranuni source 6
101 Getting Started with SAS/AF Software Steven A. Wilson This workshop will be an introductory guide to the development of interactive computer systems using Frame technology in the SAS System Version 8. This paper is intended for both current applications developers as well as SAS System programmers who wish to learn how to begin developing GUI applications using Frames in SAS/AF. In this workshop we will examine the basics of Frame technology, including the Applications Development environment, SAS/AF components and their properties, and ways to add system functionality by using the SAS Component Language (SCL). At the end of this workshop you will have a simple SAS/AF application which you can use as a starting point for building your own SAS/AF applications proc step, proc print source 10
102 Graphical Presentation of Survival Analysis Joanne C. Zhou Survival analysis and graphical presentation of the survival analysis survival analysis, proc step, macro variable, proc greplay source 4
103 Graphing Them Together: Overlaying Plots with Macros and SAS/GRAPH Lawrence W. Altmayer SAS/GRAPH is a powerful tool for creating plots of series of data. When we want to plot more than one series of data on a set of axes, using multiple symbol statements allows us to do this. This paper demonstrates a way of using macros to concatenate several data sets into one and prepare it for the overlay, since SAS/GRAPH can only read one per plot. We then use macros to specify the symbols to use, and macro looping to generate the actual statements. The paper also gives details on titling. Finally, we discuss how to use the symbol statement to specify the size and type of symbol, which may not be as straightforward as it seems macro variable, proc gplot, proc step, macro loop source 2
104 Guide to Extract/Download Multiple Databases from Mainframe Tapes to PC Using PC SAS Fereydoun Foroudian (HEADER 1) You received a request to extract/download multiple databases on to a PC from mainframe tapes to do an analysis. Now how do you proceed, especially if you wish to avoid submitting many jobs and multiple logins to the mainframe? SAS PC has build in functions: PROC UPLOAD and Download, which can be used in addition to macros to transfer multiple databases between PC and Mainframe, but how about databases that exists on tape? Using SAS PC you can submit a collection of JCL jobs to query and extract data from tapes and use PROC DOWNLOAD to download databases onto your PC and continue with your analysis proc step, macro variable, proc upload, proc download, macro definition source 2
105 Hashing Rehashed Paul M. Dorfman,
Gregg P. Snell
You know hashing works-and fast! You've been to the presentations, even read the papers. But you still have not tried any hashing techniques. Why? Is it because you had a hard time understanding all those hkeys, collisions, and prime modulo thingies? Well, you're not alone. Fortunately, just as you do not need to be an auto mechanic to learn how to drive, you do not need to be a mathematician to learn how to use hashing. This paper is a re-packaging of the direct addressing, key-indexing and hashing concepts presented by one of the authors at previous SUGIs. The proofs of the algorithms and rational for the logic are accepted as previously presented, and we now focus, instead, on how to apply the methods, not why they work. Simple examples are presented with code and graphics. (There is a reason why picture books are easier to read!) Our goal is to help you understand how these concepts work and show you how to use them yourself missing value, do loop, hashing function source 9
106 Have a Strange DATE? Create your own INFORMAT to Deal with Her Venky Chakravarthy Whatever the title may lead you to believe, this is a serious discussion of dates that are strange to the SAS Software. You will read about date values that cannot be readily produced with the supplied date FORMATS and some that are not recognized by the supplied date INFORMATS. Enhancements to the date FORMATS enable you to customize dates in several ways. While these enhancements are welcomed, there are some limitations when it comes to inputting date values. Date INFORMATS, which are the tools for converting to SAS date values, are lagging behind in comparison. This paper deals with date values that are out of the range of current SAS date FORMATS/INFORMATS and suggests ways to output/input such values. The bulk of the discussion, however, focuses on how to INPUT such date values and how to create your own INFORMAT to do so date variable, sysdate9, proc format, proc step, data step source 5
107 High Energy SAS - Managing the SAS Community in a Large Corporation Mark L. Jordan,
James M. Alessio
It is a challenge to oversee the installation, maintenance, training, and user support of any large software package in a rapidly growing organization. This paper will share the opportunities, bumps, and triumphs of administering SAS in a corporation that has seen its SAS user community grow from 50 to more than 800 in just three years credit card, logistic distribution source 5
108 How Complex Can Complex Survey Analysis Be with SAS? Jeffrey M. Gossett,
Pippa M. Simpson,
James G. Parker
Introduction: In version 7.0, SAS included routines for analyzing complex survey data with the SURVEYMEANS and SURVEYREG procedures. These additions are welcome since SAS is the program of choice for many analysts and avoiding purchasing and learning other programs is preferable. However the SAS routines, which use Taylor linearization for estimating variances, are limited in their capabilities. There are several survey data sets, particularly government public release data, which include replicate weights. For these studies it is possible to extend the standard procedures using DATA STEP programming to calculate better variance estimates. Aim: To show that SAS can be used for complex survey data sets that have replication weights, particularly for balanced repeated replication (BRR) and jackknife type II (JK2). Specifically to show that it is possible to use SAS to calculate properly weighted variance estimates for summary statistics such as the mean, and median using JK2 estimates sample, proc calis source 5
109 How ODS Simplified Our Web-based Clinical Trial Reports Julie A. Inglish The Output Delivery System (ODS) capability available with version 8.0 and 8.2 of the SAS system has simplified and accelerated the means by which data visualization can be achieved for our clinical trial studies. We have produced a battery of SAS generated Web-base graphics and reports for our national multi-site clinical studies. The Kaiser Permanente Center for Health Research Coordinating Center makes extensive use of base SAS, SAS Graph, SAS/STAT, SAS Macro language and the new ODS capability. These reports are stored in HTML or PDF format on a secured server (password protected) that is accessed via the Internet by the studies physicians, clinical and research scientists, study coordinators, clinical and research staff proc step, proc sort, clinical trial, proc freq source 3
110 How to Access VSAM FILE with SAS/AF and Base SAS Claude Rhéaume,
Gilles Turgeon
The purpose of this paper is to illustrate some techniques to process VSAM files with SAS. Topics covered are : /Gd8/G20Reading records with sequential and keyed direct access by exact key, approximate key or generic key. /Gd8/G20Effective use of INFILE statement options and related automatic variables. /Gd8/G20Adding, updating and erasing records. /Gd8/G20Using Data set views to access VSAM files in an interactive SAS/AF application input statement, batch processing source 6
111 How to Incorporate Old SAS Data into a New DATA Step, or "What is S-M-U?" Andrew T. Kuligowski S-M-U. Some people will see these three letters and immediately think of the abbreviation for a private university and associated football team in Texas. Others might treat them as a three-letter word, and recall a whimsical cartoon character created by Al Capp many years ago. However, in the world of the dataset, libname statement, set statement source 9
112 How to Link Records Matching on at Least m Out of n Identifying Keys Xinyu Ji This paper discusses how to link records matching on at least m out of n identifying keys. That can be easily done by first using the SQL procedure to retrieve all the pairs that match on at least m identifying keys. However the processing time of Cartesian Product joins by PROC SQL may be prohibitively long for a sizable medical treatment data set. An alternative approach is introduced, which requires more programming efforts, but less processing time proc step, proc sql, cpu time, proc sort, create table, record linkage, macro variable, macro definition, sample, proc format source 5
113 How to Use SAS for Logistic Regression with Correlated Data Oliver Kuss Many study designs in applied sciences give rise to correlated data. For example, subjects are followed over time, are repeatedly treated under different experimental conditions, or are observed in logical units (e.g. clinics, families, litters). Statistical methods for regression analysis for this kind of data with continuous responses are quite established and the SAS system offers a variety of procedures (GLM procedure, MIXED procedure) for analysis. For discrete responses, however, we have to face a greater mathematical complexity and statistical analysis is not that straightforward any longer. We show the different options that the SAS system offers for the analysis of binary responses with correlated data (GENMOD procedure, %GLIMMIX, %NLINMIX, NLMIXED procedure, PHREG/LOGISTIC procedure and Meta-Analytic methods), investigate their statistical properties, and illustrate them by an example of a multicenter study logistic distribution, logistic regression, regression analysis, proc mixed, likelihood function, proc logistic source 5
114 Identifying Plant Species: A Botanical Analysis Using PROC DISCRIM Robert G. Downer,
Philip E. Hyatt
The genus Carex (Cyperaceae) causes headaches for professional botanists. The visual similarity of these plants often proc discrim, proc step, discriminant analysis, sample, correlation, logistic distribution, data cleaning, regression analysis source 4
115 IDW - The Next Generation Data Warehouse Larry D. Bramblett Data Warehouse systems collect, clean and manage mission critical information. Using statistical and targeted intelligence, they provide the business community with needed information and filter out unwanted data. SAS provides the software to make Data Warehouses come to life. Seems like everything is known about Data Warehouse development so much so that Data Warehouse systems are no longer considered an 'Emerging Technology". Does that mean that everything about Data Warehousing has been done? This paper will take another look at Data Warehouse system design and what is needed to support the next generation of information platforms business intelligence, data mining, data validation rules source 5
116 Individual Growth Analysis Using PROC MIXED Maribeth H. Johnson Individual growth models are designed for exploring longitudinal data on individuals over time. PROC MIXED allows the growth parameters for each individual to be examined as random effects in the model. Individual-level covariates can be entered into the model as fixed effects to determine their impact on the dependent variable alone and in interaction with the growth parameters. The structure of the variance-covariance matrix of the repeated measurements can also be examined and entered into the model. A model building exercise will be demonstrated using up to eight systolic blood pressure measurements of youths aged 7-22 proc mixed, covariance, correlation, fixed effects, group by, estimate, covariance structure, longitudinal data, proc step, likelihood function, proc freq source 7
117 Inform and Influence with Image and Data: Communication-effective Web Design for ODS, SAS, and SAS/GRAPH LeRoy Bessler SAS/GRAPH has long been rich, and becomes progressively richer, in features. With these features comes the need to apply the technology in the most communication-effective manner. ODS (Output Delivery System) comes with the need to assure that the tabular data presentation options of grids and backgrounds that are now possible are indeed used for communication, not simply decoration. Color can be an obstacle to communication, or an enhancement. The same is true of fonts and 3D. You may not be aware of issues of color combinations, color blindness, or browser-safe colors for the web. Or realize there are certain fonts expressly designed for readability on the web. Or have noticed that 3D graphs can deceive or obscure. Or have considered that a scrollable multiple-image web page can lead to viewer distraction, and is a nuisance when you want to print only one image bar chart, proc step, sample source 6
118 Innovative Use of Web Application Technologies to Build a New SAS Analytical Solution Mark Lumsden,
David Ostiguy
In setting out to develop a new SAS analytic solution with a Web- based user interface, we wanted to deliver a user experience that would be superior to that of typical Web application UIs, and approach the levels of ease of use and interactivity associated with installed applications. This paper describes the object- oriented dynamic HTML techniques that were employed to develop componentry that makes this possible in the SAS Process Intelligence solution source 10
119 Introducing the SAS Business Intelligence Platform Rob Stephens The SAS Business Intelligence Platform is a suite of software services, components, and practices for building intelligent enterprise information delivery applications that exploit the analytic and presentation power of the SAS System. The design of the SAS Business Intelligence Platform is a set of Java application programming interfaces that run outside of the traditional SAS server. This Java-based foundation and infrastructure provides powerful, easy-to-use Business Intelligence (BI) applications and custom development capabilities for the Web business intelligence, api source 1
120 Introduction to AppDev Studio Version 3.0 Rich Main AppDev Studio Version 3.0 will be shipping soon. AppDev Studio provides a single interface for the development of thin-client and power-client business intelligence applications. It is the first suite of application development products tailored specifically for developing information delivery applications. It draws upon the proven strengths of SAS software, including an open architecture for developing solutions on every major web standard on both the server and the client side. This presentation will highlight many of the enhancements that have been made to this release of the software. Live demonstrations of the new features to be delivered in AppDev Studio 3.0 will be provided. An expanded version of this paper will be made available on the web by SUGI. You can find the final version of this paper under the Reference link on the AppDev Studio Developer's Site (http://www.sas.com/rnd/appdev ) business intelligence, jdbc source 1
121 Is It Harder for a Pharmaceutical Company to Move from SAS V6.12 to V8.2 Than It Is to Qualify for the World Cup? Gary R. Kennedy This paper will discuss the experiences of a pharmaceutical company during the validation of their SAS environment. The validation takes place as part of the migration from SAS V6.12 to V8.2. However, the discussion on the validation process could apply to any upgrade between SAS versions. The current regulatory requirements will be discussed and the degree of validation necessary for SAS and the hardware it resides on. The members of the project team and their role in the validation process will be covered and a general overview of the documents required. The areas that should be considered for testing are summarized. And finally, the importance of training the users and the format of this training will be debated. As a break from the world of validation, during my presentation I will also present some quotes which will highlight the difficulties in qualifying for the football world cup. These quotes are not included in this paper data cleaning, pharmaceutical industry source 4
122 JMP Density Ellipses for Pharmaceutical Analysis Charles E. Shipp,
Kirk Paul Lafler
JMP is a data discovery tool used in both (1) the exploratory phase and (2) the analysis phase, of experimental and theoretical work. The density ellipse shows the extent of data, the center of mass, the least squares fit line, and the degree of correlation between a selected dependent variable and a selected independent variable. When superimposed, the ellipses of similar variables for different classes show and contrast their sameness and differences. The example used is pharmaceutical dummy data in the area of cancer research predictor variable, response variable, correlation, class variable, proc sgplot source 5
123 Keeping Form Data from Falling into the Bit Bucket with webAF Heather E. DeMartino All companies have forms that are used every day, whether they are used to make requests such as creation of user ids, restoration of archived data, loading of tapes, or scheduling of production jobs, or to report issues or submit questions. Often these are paper or email forms, which require a large amount of human intervention and may lead to human errors. Face it, we are all human and we all make mistakes. Paper forms get lost, email forms get inadvertently deleted, and progress updates are not properly communicated to the requester. What is the solution? Web based forms on the company intranet dataset, proc sql, proc step, data cleaning, select source 5
124 Large-scale System Development in Base SAS Craig K. Ray A system may be defined as a series of programs designed to run repetitively in a production environment. Generally, systems of programs perform many functions and are maintained over time. It is accepted practice that the development of large systems should follow a development 'life-cycle.' The life-cycle includes processes for initial design and construction of the system, followed by an iteration of new requirements and modifications of the code. This paper primarily discusses how to design, structure and test SAS code to support the full software life-cycle. The resulting approach demonstrates how to structure completely separate production and testing environments that enable the programmer to develop and test new functionality without impacting production jobs in the process. This presentation is structured as a 'how-to' for system development and is targeted to all levels of SAS programmers who are responsible for applications development sample, macro definition, macro variable, macro facility source 7
125 Let SAS Build Your Dynamic Web Site from the Data! Jennifer R. Sinodis,
Mark Moran
In today's environment, the web has become the best channel to view meaningful information. Let SAS do the work and produce your web output straight from the data! It can do most of the work involved in creating great looking, maintenance-free, dynamic web pages for your users. This paper will show how to use Version 8 SAS/BASE to build static HTML output to your web site with HTML formatting macros and ODS (Output Delivery System) and how to use SAS/ IntrNetTM t o create output dynamically from your web site. It will also introduce JavaScript code and show how SAS/BASE can produce JavaScript to generate drop-down menu options built directly from your data to access static HTML output, or create dynamic HTML. For the purpose of this paper most of the SAS programs shown are simplified. The paper illustrates SAS/BASE macro code, HTML, ODS, JavaScript and SAS/ IntrNet code. This paper assumes an experienced/advanced knowledge of SAS/BASE Version 8 and some knowledge of HTML source 6
126 Let Summary Sum and Tabulate Format Marianne L. Whitlock Occasionally you want a report formatted the way SAS PROC TABULATE formats data, but you want special rows or columns and a special layout, which are difficult or impossible to do directly with TABULATE. A solution is to use PROC proc step, proc means, proc tabulate source 3
127 Library and File Management: Building a Dynamic Application Arthur L. Carpenter,
Richard O. Smith
In order for a SAS application to be dynamic, it must be able to automatically find the programs that make it work and the data that it is to work against. It must know where to write its output and where to store any new data sets that it creates. More importantly it must do these things without intervention on the part of the user. Even more importantly the application must not confuse the components of one project or task with those of another. The structure and organization of the libraries and directories is central to this ability. Dynamic applications are written to be portable across projects and a key component of the application must necessarily be the structure and location of appropriate files and libraries. While many different styles of organization are possible, a high degree of organization is required. Of course you will need to know what type and how much structure is required for your projects macro variable, macro definition, stored macro, autocall macro source 8
128 Longitudinal Data Techniques: Looking Across Observations Ronald P. Cody proc step, proc freq, by group processing, longitudinal data, lag function, set statement, retain source 4
129 Macro for Restoring SAS Transport Files Yefim Gershteyn SAS provides two basic ways to create a SAS transport file: using either the CPORT, or COPY procedures. Accordingly, PROC CIMPORT and PROC COPY are used to restore the file on the target host. Without prior knowledge of which procedure was used to create the transport file, the programmer may apply the wrong procedure to restore it, which will result in an error message and the necessity of re-writing the program. Also, if PROC COPY was used, format catalogs can only be transported in the form of SAS data sets. In this case, an additional piece of code is needed to create a respective format catalog on the target host. A macro is presented, which restores a SAS transport file without prior knowledge of how this file was created. If the macro detects that PROC COPY was used, it attempts to create a format catalog, if a data set with format descriptions exists in the restored data files proc step, proc copy, proc cport, proc cimport, macro variable source 3
130 Macro Functions: How to Make Them - How to Use Them Arthur L. Carpenter The SAS macro language includes a number of macro functions, such as %UPCASE, %QSCAN, and %SUBSTR. In addition a number of Autocall macros, such as %LEFT, %TRIM, and %VERIFY, are also supplied that act like macro functions. Macro functions are especially useful as programming tools, because the function call is replaced directly by the result of the call. Many macro programmers are unaware that they too can write useful macro functions. Fortunately macro functions are not difficult to program. Not difficult, that is, if you know the simple techniques required to turn a macro into a macro function. This paper shows you how to create a macro function, the statements that you must avoid, and the technique used to "pass" the macro function, macro variable, macro call, macro definition, macro facility, symbol table, %if-%then-%else source 5
131 Macros for Model Building, Summarizing, and Displaying Results of Stepwise Logistic Regressions Lori S. Parsons When performing a stepwise logistic regression with PROC LOGISTIC, analysts often want to print only the results of the final model, not the full selection procedure. Beginning with SAS 7.0, the Output Delivery System (ODS) provides users with a method to print a subset of the default output. There is also additional information about the stepwise model that cannot be obtained directly from ODS code, such as the full list of independent variables allowed to enter the model and the number of excluded cases. This information is important to include with the results output. A graphical representation of the model, such as a plot of the Odds Ratios and Confidence Intervals, is also helpful in summarizing the final model. When logistic regression models are built in a hierarchical manner, it becomes important, and far more efficient, to organize the model building code logistic distribution, proc step, logistic regression, proc logistic, predictor variable, regression analysis, macro variable, odds ratio, confidence interval, proc contents, output delivery system, response variable, missing value, out=, stepwise selection, ods output source 6
132 Macros: Data Listings with Power Daphne E. Ewing Displaying a variety of data in a consistent manner can be tedious and frustrating. Making adjustments to these displays, such as adding/moving/removing columns, can be time consuming and just as frustrating. This paper will show the user how to set up macros which work together to make data listings consistent, easy to follow, and easy to modify. I will define several SAS macros, show how they interact with each other and the data, and give examples of input and output. Given these macros, I will also show how to modify displays easily macro variable, %if-%then-%else, put statement, macro definition, proc print, adverse events source 6
133 Making SAS Dates from All Your Character Dates ... No Pixie Dust Required Jeanina M. Worden Within a clinical database, the need to capture exactly what is on a document (partial dates, "12DEC2000", or "Unknown" as a comment) requires the field attribute for all dates to be set as character. However, the client will typically request the final datasets to include an additional SAS formatted, numeric date field for these dates. Though not a difficult task, using INPUT and a SAS format, it can be a VERY time consuming one. Given that when doing billable work the old saying is true, "time is money", there is a need to decrease programming time by decreasing repetitive tasks. Here lies a perfect opportunity to put a macro to work. The macro discussed here, developed with V6.12, creates corresponding numeric SAS date fields for all the character date fields within a database. Using the SQL dictionary table COLUMNS, the date variables are identified by specifying LIKE '%DATE%'. Then CALL SYMPUT statements create variables for use within the macro macro variable, dictionary tables, proc sql, sysdate9, macro definition source 2
134 Making the Most of Version 8 Features Marje Fecht Are you using version 8 the same way you used version 6? If you aren't taking advantage of the new language and interface features, this Hands-On workshop is for you. Topics include: ƒ language enhancements such as long name support and new formats and functions ƒ procedure enhancements ƒ extensive Output capabilities ƒ data Set enhancements. This overview of major new features will help you understand, and select other topics to explore. This workshop is beneficial for all SAS users who are getting started with Version 8.1 or 8.2 sas programmer, sample source 1
135 Making Variables Less Variable: Standardizing SAS Data Sets William C. Murphy The new data arrives and its similar to dozens of SAS data sets you processed in the past. So you can save time and effort by recycling old programs to do the analysis and generate reports. But the new data set has different variable names than those used in previous studies. In order to use the previously generated programs, you use PROC DATASETS or a DATA STEP to resolve the variable naming differences. But then another data set arrives for a similar study with yet another different set of variable names. Again you use PROC DATASETS or a DATA STEP to resolve the differences. Then another data set arrives and … (How many names can they think of for the same variable?!). Enough! A simple macro using a PROC FSEDIT window can be used to review each new data set and enforce a standard naming convention. Furthermore using a PROC FORMAT lookup table, the macro can make suggestions at what the variable names should be and what variables should or shouldn't be included in the data set proc step, proc format, macro variable source 4
136 Making Your SAS/IntrNet Application Fault Tolerant Glen A. Keer,
Charles A. Biggs,
Sarah L. Mitchell
An overview of a SAS/INTRNET System's Architecture with redundancy and flexibility built in for fault tolerance along with ease of growth potential. Software: Windows 2000, SAS/INTRNET, SAS/SHARE, SAS/ACCESS and Base SAS Software Version 8.2, IIS 5.0, Application Center 2000, HTML, JAVA Script, ASP and other various web tools macro variable, macro loop source 3
137 Many-to-Many Merging Using the SAS Macro Facility Jonathan D. Mahnken One-to-many merging by an identifying (ID) variable is a useful feature for database management. However, in certain situations, a many-to-many merge may be needed; in other words, there are repeated observations for some of the ID variables in both data sets being merged. The many-to-many merge can be done through a series of DATA steps after first dividing one of the data sets into multiple sub-sets such that all of the ID variables are unique within these new sub-sets. The problem with this method is that the programmer must count (PROC FREQ) the maximum number of times any one ID value may appear in a data set, and this information must then be written into the program doing the merge. This introduces more possibility for errors, especially when the original data sets are updated or changed macro variable, macro facility, merge statement source 6
138 Maximizing Productivity by Automating Frequent Tasks Robert Ellsworth When working in a multi-tier environment, reduced productivity can result from the repetitive and time- consuming details required to submit, view, schedule, and access jobs and files. In an effort to improve productivity, the details, steps, and work flow were built into a SAS system that handles everyday tasks. The result is a system that supports a one, two, and three tiered environment, and enables users to produce proc sql, proc step, create table source 2
139 MDDBs, HOLAP, Override Methods, SCL: What Worked and Did Not Work for the Review of Census 2000 Data Richard A. Denby,
Lori A. Guido
The Housing and Household Economic Statistics Division (HHES) of the United States (U.S.) Census Bureau was responsible for developing an interactive system for the review of the Census 2000 long form data. The system had to incorporate data on a flow basis, display detail data on the screen in less than 10 seconds, handle more than forty million observations contained in more than 400 files, and be developed in a short time. The system that was developed uses a client-server sas consultant, sas base source 4
140 Merging Flat Files Directly Robert R. Patten Typically, pulling data together from various flat file sources requires the following steps: 1. read each source into a separate SAS dataset; 2. sort, if necessary; 3. merge these datasets into a single dataset. Eliminating the need to create intermediate SAS datasets, especially when dealing with large multiple flat files, can reduce run times substantially. As an example, I have applied this technique in a job that runs in a production environment on a weekly basis. The job, which previously ran in eighteen hours now runs in under six hours! Merging flat files requires that these files be sorted into some common key value. This is not as tight a restriction as it first appears. External data often is stored in some key value order. Many times we have some control over this order. Also, you could sort the files prior to processing do loop, flat file, data step, input statement, dataset, _eof_ source 4
141 Migrating a Publicly Available Web Database to a SAS Solution: Building Multidimensional Databases (MDDBs) Teresa L. Grimes,
Heidi L. Clark
AppDev Studio 2.0 software, SAS/EIS software, and SAS/MDDB Server software are being used in a Microsoft Windows NT operating system environment to redesign WebCASPAR, a publicly available database of higher education statistics. The data is being stored in multidimensional data sets (MDDBs) and the interface is being created using SAS webAF software. This paper discusses issues encountered with SAS/EIS software, PROC MDDB, and SAS/MDDB Server when building MDDBs for the migration of WebCASPAR to a SAS Online Analytical Processing (OLAP) solution: Data structure considerations before building the MDDBs. How many MDDBs should be built? Migrating metadata from Microsoft SQL Server database tables. * Comparison and contrast of the methods that may be employed to create MDDBs. The intended audience is beginning to intermediate SAS/EIS software and SAS/MDDB Server software users proc step, proc format, proc sql, sql server, dataset, macro definition source 3
142 Mining Web Server Logs: Tracking Users and Building Sessions Don Koch,
John C. Brocklebank,
Richard Roach
Much has been written about the limited usefulness of web server logs for mining of transactional and click-stream data. The truth is that web server logs are extremely useful for mining Electronic Commerce (e-commerce) as well as non e-commerce web sites. Server logs, when combined with minor, non-intrusive, site instrumentation can provide tremendous insights into how effectively your electronic channel is meeting its business needs. User tracking and session building are fundamental to all web- mining activities. Although using web server logs for this purpose can be a challenge it is not impossible. This paper will discuss how to track user activity and build sessions from web server logs. We will focus on data preparation and will not discuss web- mining techniques . Audience should be familiar with web technology unique key, isp source 4
143 More Than Just Value: A Look Into Depths of PROC FORMAT Peter J. Lund It doesn't take long for even novice SAS programmers to get their feet wet with PROC FORMAT. It usually consists of a VALUE statement to recode a race or gender variable, or assign a state name to an abbreviation. It might have even been real fancy and used ranges to collapse ages into groups. All too often that's as far as the use of PROC FORMAT goes, which is a shame because there's a lot of power at your fingertips if you dig a little deeper. This paper covers some of the lesser-used aspects of PROC FORMAT, including the PICTURE statement, CNTLIN/CNTLOUT datasets, nested formats, multi-level (overlapping range) formats, and permanent formats and the FMTSEARCH option. There are some things that are new to Version 8, others that just seem to be some of those undiscovered gems, and a few "gotchas" to be aware of. A basic knowledge of PROC FORMAT and VALUE/INVALUE statements are assumed proc format, proc step, char., format statement, sample, date variable, proc sql source 10
144 Mouse-Clicking Your Way to Viewing and Manipulating Data with Version 8 SAS Terry Fain,
Cyndie B. Gareleck
Version 8 of the SAS System offers several powerful ways to view and interactively manipulate data. This paper will focus on four such proc step, where statement, sas base, dataset, proc sort source 6
145 Neural Networks and Genetic Algorithms as Tools for Forecasting Demand in Consumer Durables Jerry Nickelsburg,
Paul D. McNelis
This paper attempts to make the tools of neural networks and genetic algorithms accessible, ''user-friendly'', and operational, for the broader population of economists, analysts, and financial professionals, who see to become more efficient in forecasting market conditions. The particular market chosen for the analysis is that of automobiles in the United States. Selecting a consumer durable allows for a demonstration of the power of temporal linkages in neural network forecasting. Our empirical focus in this paper is the automobile market. This market is well developed and there is a wealth of research on the theoretical foundations and the empirical behavior of the market. Since the work of Chow(1960) demonstrating that it is one of the more stable consumer durable markets, empirical analysis has focused on improving the aggregate and disaggregated market forecasting with traditional time series and pooled time series cross sectional methodologies, McCarthy(1996) neural network, sample, interest rate, time series analysis, regression analysis, network optimization, residual, degrees of freedom source 6
146 New SAS V8 Tricks for Old SAS V6 Dogs: Tips from the Command Line Louise S. Hadden For those of us who can remember running SAS programs on punch CARDS (and even for those who can't!), the new capabilities of SAS V8 can seem overwhelming at times. This paper will present a few "tricks" to make the transition from PROC PRINT to ODS a little smoother, by taking advantage of the nice, juicy bones that the SAS Institute has tossed us. These techniques, unless specifically noted as unique to a particular system, can be used with SAS V8 in any operating environment, including Red Hat LINUX, Windows and AIX/UNIX (and presumably other UNIX versions) cpu time, proc step, proc surveymeans, output delivery system, options statement, red hat source 5
147 No Task Before Its Time: Schedule Your Jobs with Robot Code Charles vanWynbergen SAS/GE2 is a flexible, robust and highly portable language. These characteristics make SAS well suited for rapid report and application development in an ad hoc environment. Often these rapid solutions evolve into pseudo-production processes, which are manually executed on a monthly, weekly or daily basis. In a true production environment, jobs such as these could easily be scheduled for execution. However, in an ad hoc environment, scheduling facilities are not always available, and even when present, relatively few SAS users possess the required expertise or authority to utilize these tools. Commercial, shareware and freeware scheduling products are available for local platforms, but they offer an incomplete solution with limited options for customization. This paper describes techniques that can be used to schedule and execute virtually any job, on any platform, at any time sample, proc step source 6
148 ODS Markup: The Power of Choice and Change Eric A. Gebhart When it comes to markup languages, there are lots of choices. If you are keeping up with the web, you might say XML is your choice. XML alone is full of choices. But XML is just the latest craze. There are lots of other markup languages out there. Using the ODS MARKUP output destination the ability to create these types of output are within your grasp proc template, proc step, output delivery system, put statement, ods html source 10
149 ODS Meets SAS/IntrNet Susan J. Slaughter,
Sy J. Truong,
Lora D. Delwiche
ods html, proc step, proc tabulate, proc freq, class variable, dataset, sas base, macro variable, proc template source
150 Off and Running with Arrays in SAS Stephen A. Keelan Often we look at our newly completed SAS program and think … there must be a better way. If your programs have many repetitious lines of code, calculating and re-calculating the same thing, or if you need to rotate or transpose data … Arrays may be for you. This tutorial will focus on introducing you to Arrays, understanding what they are and how to add them to your SAS programs. This tutorial will use Base SAS and is appropriate for beginner and intermediate SAS programmers array, do loop, character variable, if-then-else, numeric variable, set statement, rating factor, proc step source 7
151 Offer Optimization - Optimizing Cross-sell and Up-sell Opportunities in Banking Andrew G. Storey,
Marc-David Cohen
The banking industry regularly mounts campaigns to improve customer value by offering new products to existing customers. This approach gained momentum as a result of the increasing availability of customer data and improved analysis capabilities through data mining. Even with these improvements the problem of efficiently using resources to maximize the return on marketing investment (ROMI) is a challenge. This problem is compounded because of increased capability to send multiple campaigns through several distribution channels over multiple time periods. The combination of alternatives creates a complicated array of possible actions. This paper presents a software solution that focuses on answering the questions of what products to offer to each customer in a way that maximizes the value of contact with the customer and the ROMI distribution channel, data validation rules, capacity planning, sample source 7
152 Online Docs and Help: Tips for Old Dogs and New Pups Michael D. Rhoads,
Deb Cassidy
Who says you can't teach an old dog new tricks? Are you an "old dog" that is at a loss without your paper manual? Are you a "new pup" that is just totally overwhelmed? This presentation covers some helpful tips that the authors learned while trying to get used to reaching for the mouse instead of the bookshelf when they needed to look up something. Both SAS OnlineDoc and SAS System Help will be covered. One question that will be discussed - why do you need both? proc step, missing value, proc tabulate, sas base source 9
153 Optimizing SAS Version 8 in a Windows Environment - from the User Interface to Automated Document Production Roger D. Muller The Microsoft Windows and the SAS version 8 environments have been fine-tuned to work harmoniously with each other and provide for efficient program development and quality report writing experience by taking advantage of features that each product provides. Project organization is provided by a common file structure across projects. The structure provides for SAS code, SAS output, SAS data sets, and collateral files such as E- mail, Microsoft's Powerpoint , EXCEL, Access and Word files, graphic files, etc. on a project-by-project basis. The structure optimizes the utilization of the SAS Explorer. Output from SAS is moved in a semi-automated technique to Microsoft Office documents and enhanced and indexed by VBA macros. High quality graphics from SAS/GRAPH are placed in Office documents as EMF (enhanced metafiles). The ODS facility in SAS is used for creating RTF files that are incorporated in Microsoft Word while PROC PRINTTO is used to prepare text files proc step, proc printto, txt, dataset source 6
154 Optional and Multi-select Parameters with SAS/IntrNet Craig S. Austin When building SAS Applications to be deployed to the web with SAS/INTRNET, it's often desirable or even necessary to allow optional parameters. When selected, those parameters are passed to a SAS program via macro variables through the SAS/INTRNET Broker Common Gateway Interface (CGI). If the SAS program tries to reference a macro variable that was not passed through the CGI, the SAS program may end with an error. This paper will discuss the use of a SAS Macro developed primarily for dealing with optional parameters. The macro also includes functionality for efficiently dealing with multi-select parameters. Both macro code and proper use of the macro will be demonstrated. This paper is intended for SAS/INTRNET developers of all skill levels who have not already found a simple solution for these common problems macro variable, sas log, where statement, %if-%then-%else, macro loop source 4
155 OS/390 DASD I/O Drill Down Computer Performance Chart Using ODS SAS/GRAPH & MXG Software Neal Musitano Jr. This paper displays a user example of an OS/390 Drill Down computer performance chart. The chart was output directly from a SAS/GRAPH batch job to the OS/390 Webserver. A test MXG Computer Performance Database was used for input data. The Drill Down SAS/GRAPH chart displayed was produced on an OS/390 system using SAS/GRAPH Version 8.2 with the Output Delivery System - ODS and the SAS/GRAPH GIF driver. The WEB GIFS and HTML reports are updated daily on the mainframe intranet Webserver for viewing via a WEB browser. OS/390 mainframe computer performance data is collected using IBM System Management Facilities (SMF) and Resource Measurement Facility (RMF) data. The raw SMF/RMF data is processed with MXG and SAS software into an easily usable SAS format proc print, proc step source 5
156 Output Delivery Goes Web Kirk Paul Lafler In an age of Internet frenzy, output delivery is experiencing incredible interest around the globe. The explosion of Internet technologies, especially electronic delivery of data, is on the rise. As digital commerce forces fundamental changes in the nature of business, IT is at the center of these changes. Many organizations are moving toward a customer self-service center model, where information access will be key to survival. As the growth and popularity of the Web surges to unprecedented levels, SAS users are beginning to look for ways to transform basic monospace output into an electronic world of glitz and color. This advanced tutorial will show attendees how to convert tired and old output listings into beautiful Web pages, combine output results, create PDF output, change Web page labels, build drill-down Web applications, and perform a variety of output customizations ods html, sas output, proc univariate, file statement, output delivery system, ods pdf, proc step source 7
157 Output Generating System - A Tool for Creating Tables and Listings in Word Jay Zhou The Output Generating System (OGS) is a collection of 10 SAS macros used to produce tables, listings, and their shells directly as Word table documents. A central concept in OGS is to link macros together to perform separate but inter-related tasks based on the layout and attributes of five sections (page header, title, column header, table body, and footnote) of a page. The user utilizes these macros like building blocks to produce customized tables and listings excel, macro definition source 5
158 Passing the Buck David H. Johnson A recent customer project involved selecting records from a DB2 data mart. The data mart was unavailable for many months. This meant early development of the SAS application was done on the Windows platform. SAS tables were modelled on the anticipated data mart structure. Those tables satisfied the early system testing requirements for the AF application that formed the User Front End. The AF application was object based, and the data interface objects worked effectively in the LAN environment. On the mainframe environment however, the different architecture meant some additional design flexibility was needed. The application libraries included macro libraries that were customised for each Operating System (O/S). The application code then transparently accessed those objects. This allowed the application to be migrated from the Windows development platform to the MVS production platform. This paper explores the strategy used in designing and implementing the object libraries data mart, dataset, where statement, proc sql, format statement, variable, missing value, filtering, data cleaning, proc step, data step, macro definition source 7
159 Passing Values to a Remote Multi-process SAS/CONNECT Session John E. Bentley SAS Software Version 8 supports parallel processing on symmetrical multiprocessor (SMP) systems. Part of SAS/CONNECT, Multi-Process Connect (MP CONNECT) exploits multiple processors on a host system by a process similar to the RSUBMIT/ENDRSUBMIT approach to remote compute services. Within a single program, it allows the user to start multiple independent SAS sessions on each processor on the system, submit code to each of those remote sessions, and then gather the results back into the originating SAS session. Although conceptually clear, a major sticking point can be how to pass macro values between the independent sessions. This paper introduces parallel processing and MP CONNECT and presents one solution to the problem of passing values between sessions. Disclaimer: The views and opinions expressed here are those of the author and not those of Wachovia Bank mp connect, parallel processing source 4
160 Performing Logistic Regression on Survey Data with the New SURVEYLOGISTIC Procedure Anthony B. An Categorical outcomes such as binary, ordinal, and nominal responses occur often in survey research. Logistic regression investigates the relationship be- tween such categorical response variables and a set of explanatory variables. The LOGISTIC procedure can be used to perform a logistic analysis for data from a random sample. However, this approach is not valid if the data come from other sample designs, such as complex survey designs with stratification, clustering, and/or unequal weighting. In these cases, specialized techniques must be applied in order to produce the appropriate estimates and standard er- rors. The SURVEYLOGISTIC procedure, experimental in SAS/STAT , Version 9.0, brings logistic regression for survey data to the SAS System and delivers much of the functionality of the LOGISTIC procedure. This pa- per describes the methodological approach and ap- plications for this new software sample, proc step, logistic distribution, proc surveylogistic, logistic regression, regression analysis, proc logistic, predictor variable, odds ratio, response variable, likelihood function, maximum likelihood estimation, proc surveyreg, sample weight source 9
161 Physicians Web Portal to Enterprise Information Ahmed S. Rahman,
Rosa Cabanela,
Priscilla Van Grevenhof
Physicians and administrators have little hope of responding appropriately to the challenges of the health care market without data to support decision making. Desired, for Mayo Clinic's Primary Care Practice, was to have the ability to access and integrate data from many platforms in many formats from the Enterprise and bring this information to the desktop in a robust interactive display. The solution was delivery of the data to the web through an interface using Java with access to Online Analytical Processing (OLAP) tools for summarization, graphical display and reporting. Communicating major trends, assisting in planning and management, visually displaying alerts in summary data and surfacing individual patient information are all possible through an easy-to-use web application. To really understand what the summarized data represents, the physicians must be able to drill down, download and explore their own detail data access control, data visualization source 5
162 Powerful Techniques for Data Processing Using Formats Timothy M. Muir This paper demonstrates the creation formats and techniques to use them when processing large files where statement, pdv source 4
163 Predicting Customer Churn in the Telecommunications Industry - An Application of Survival Analysis Modeling Using SAS Junxiang Lu Conventional statistical methods (e.g. logistics regression, decision tree, and etc.) are very successful in predicting customer churn. However, these methods could hardly predict when customers will churn, or how long the customers will stay with. The goal of this study is to apply survival analysis techniques to predict customer churn by using data from a telecommunications company. This study will help telecommunications companies understand customer churn risk and customer churn hazard in a timing manner by predicting which customer will churn and when they will churn. The findings from this study are helpful for telecommunications companies to optimize their customer retention and/or treatment resources in their churn reduction efforts churn, survival analysis, hazard function, proc step, data cleaning, validation set, proc phreg, survival function, missing value, gain chart, proc lifereg, sample, nominal variable, regression analysis, likelihood function, outlier source 6
164 PROC FORMAT in Action Jack N. Shoemaker The PROC FORMAT subsystem provides an efficient and compact way to store all sorts of facts and data for data-driven applications. This paper will focus on PROC FORMAT in action. That is, building user-defined formats from existing tables and using PROC FORMAT in conjunction with other SAS procedures like proc step, proc format source 6
165 PROC REPORT: Doin' It in STYLE! Ray Pass,
Sandy McNeill
The advent of the SAS Output Delivery System (ODS to its friends) has turned SAS reports from machine- generated, black & white monospace bores into people- produced, productive and reader-friendly information displays. One of the main principles underlying ODS is the use of Table and Style definitions (also known as Table and Style templates). Most procedures have a standard output layout structure and rely on their Table and Style definitions to govern the cosmetic or stylistic appearance of their tables. Certain procedures (REPORT, TABULATE, etc), however, by the very nature of their complete structural customizability, do not rely on fixed external table definitions. For these procedures, stylistic customizations are performed through the use of the STYLE option, an ODS concept which is integrated into the heart of the procedures' syntax. This presentation will demonstrate the use of STYLEs in the REPORT procedure proc report, proc step, output delivery system, if-then-else, ods html, ods listing, cpu time, format statement, user-defined format source 10
166 Programming Tricks for Reducing Storage and Work Space Curtis A. Smith dataset, work library, proc sort, cpu time, where statement, proc step, sas log, proc means, libname statement, proc delete source
167 Proper Architecture Considerations for DW Implementations Frank Nauta Data warehousing is performed by many organizations to provide the information to support decision-making in their enterprise. While many companies build warehouses or data marts for their needs with many different tools, even with base SAS , most find the ongoing and diversity of requirements placed on the warehouse design and its systems to be too overwhelming. The key issue is that anyone can build a warehouse or data mart with any tool, the first time. However, managing this 'creation' over time is the problem. This stems from issues such as: long-term support and maintenance of complex projects, multi-user design and development requirements, and a wide breadth of information sources, which change constantly. This paper discusses the proper architecture for building, managing and deploying warehouses in large enterprises or lines of business within an enterprise over time data mart, sas base source 2
168 Pushing the Envelope: SAS System Considerations for Solaris/UNIX in a Threaded, 64-Bit Environment Maureen E. Chew With the release of 64 bit support in the SAS system, we investigate the issues and implications of having a large application address space; what can take advantage of 64-bit support, what are the benefits, tradeoffs, and multi-user considerations from a system resource perspective. The target audience is SAS users concerned with overall application performance or UNIX systems managers who primarily support SAS application users. The work was done on Solaris but is generally relevant to SAS applications running on any UNIX platform proc step, cpu time source 8
169 Quick Results in PROC REPORT Sandra D. Schlotzhauer,
J. Meimei Ma,
Maria Ilieva
What tools do you use to generate reports or listings? PROC PRINT, PROC TABULATE, or DATA _NULL_? Perhaps it is time to check out the flexibility and features of PROC REPORT. An easy way to begin is to follow the "80/20" rule by using the interactive REPORT windows to get a head start on the syntax and options. After quickly creating a program for the essential parts of a report, you will have time left over to consider enhancements that may require more complex features. This beginning tutorial provides examples that you can follow to learn the steps involved in building reports interactively. The intent is to provide a starting point for making better use of PROC REPORT, not to present an proc report, proc step, proc means, class variable, ods html, adverse events, proc tabulate source 10
170 Quick Results with the Output Delivery System Sunil Kumar Gupta SAS's new Output Delivery System (ODS) opens a whole new world of options in generating quality, detailed presentation output. ODS enables the creation of various new file types including Rich Text Format (RTF), PDF, PostScript, HTML and SAS data sets. SAS users can take advantage of ODS features to easily convert existing SAS code into these new file types. By having a selection of styles available to choose from, SAS users can control the report's overall color scheme, font and size. This paper introduces the concepts necessary to understand and apply the basic features of SAS's ODS. Issues in defining and selecting output destinations, selecting output objects and creating output files will be discussed. The focus is on the creation of various types of output files through step-by-step examples file statement, output delivery system source 8
171 Reading From Alternate Sources: What To Do When The Input Is Not a Flat File Michael L. Davis Most SAS programmers are comfortable creating applications when the input is in a SAS data set or flat file on the same computer. However, what do you do when your data is to be accessed from a web page or TCP socket? Can you read data on another computer accessible via FTP without first transporting the file? How do y ou read a SAS catalog entry? What if the data is from a device connected to your computer via an RS-232 interface? How about reading database files as if they were SAS data sets. This presentation will illustrate SAS software features to handle these and other data input situations. Special attention will be paid to new features introduced with Versions 7 and 8, such as the SAS/ACCESS LIBNAME engines. FTP Access Method Most who have been usi ng SAS software for an extended period are comfortable writing programs that use flat files as input. But the level of comfort often drops rapidly when the input source is not on the local drives or mapped network drives filename statement, dataset, txt, catalog, catalog entry, sas base, libname engine, libname statement, flat file source 10
172 Redesigning Experiments with Polychotomous Logistic Regression: A Power Computation Application Charles M. Vaughan,
Serge Guzy
Power and sample size calculations for experiments modeled with binary logistic regression are becoming more common, and are even available as freeware (e.g. Ralph O'Brien's UnifyPow application). Somewhat less common, if not altogether absent, is software that allows power analysis for multinomial logistic regression models. Using the algorithm introduced below, it is now possible to compute powers and sample sizes for arbitrary multinomial (ordinal) logistic regression models. In particular, this application has been designed to allow investigators to explore subsets of data from previous studies that will, in turn, allow them to design or redesign experiments with optimal power. This algorithm requires SAS/BASE , SAS/STAT and SAS/IML. The algorithm currently runs on PC SAS, but may run on any platform. Finally, a heuristic will be presented for the general programmer. A knowledge of random number generation is helpful proc freq, logistic regression, fisher exact test, sample, logistic distribution, exact test, regression analysis, predictor variable, sample size, ordinal logistic regression, estimate, phase iii, response variable, covariance source 6
173 Regulatory Review of Animal Carcinogenicity Studies Using SAS/IntrNet Ted J. Guo,
Feng Zhou
This software tool, WebCarcin is created using SAS/INTRNET (v. 1.2, running Windows 95), to overcome the limitations of a currently used SAS/AF application, Carcin 1 in the regulatory review of animal carcinogenicity at FDA. With the help of this tool, statisticians can coordinate review strategies with reviewing pharmacologists, analyze sponsor-submitted data, and share statistical results with the review team. This tool, with its data- managing capabilities, significantly reduces time and efforts in data manipulations, hence improving the efficiency of the regulatory review adam dataset, dataset source 4
174 Report Creation Used Data _NULL_ Caroline C. Bahler,
Eric C. Brinsfield
Reports and tables can be created using PROC REPORT, PROC PRINT and other procedures. However, there are times when the STANDARD procedure output cannot meet the report requirements. In those cases, reports creation using the DATA _NULL_ step is the solution. The objective of this paper is to discuss the techniques used to create a data _NULL_ report put statement, proc step, file statement, filename statement, output delivery system, proc template, proc format, ods html source 7
175 Report Macro - A Tool to Generate Flexible Summary Reports Diane E. Foose When creating output, you can not always anticipate the number of columns needed in your summary tabulation or that each page of the report may vary on the number of columns used. This may cause you to program many variations of the same style of report for each slightly different output. This paper will present the concept of using a SAS macro as an easy-to-use solution to this problem. Considerations for how to use this strategy for reporting your data will be discussed. An implementation of this concept, with examples, will also be presented sample, proc report, macro call, proc step source 6
176 Rev Up Your Spreadsheets With Some V8 Power Peter W. Eberhardt excel, sas library source 9
177 Robust Regression and Outlier Detection with the ROBUSTREG Procedure Colin Chen Robust regression is an important tool for analyz- ing data that are contaminated with outliers. It can be used to detect outliers and to provide re- sistant (stable) results in the presence of outliers. This paper introduces the ROBUSTREG procedure, which is experimental in SAS/STAT Version 9. The ROBUSTREG procedure implements the most com- monly used robust regression techniques. These include M estimation (Huber, 1973), LTS estima- tion (Rousseeuw, 1984), S estimation (Rousseeuw and Y ohai, 1984), and MM estimation (Y ohai, 1987). The paper will provide an overview of robust re- gression methods, describe the syntax of PROC ROBUSTREG, and illustrate the use of the procedure to fit regression models and display outliers and lever- age points. This paper will also discuss scalability of the ROBUSTREG procedure for applications in data cleansing and data mining proc robustreg, outlier, proc step, estimate, regression analysis, response variable, anova, model training, robust estimator, normal distribution, proc genmod, proc glm, proc reg source 13
178 Run All Your SAS Programs in One Program: Automatically Lingyun Chen,
Steven A. Gilbert
After SAS programs have been developed in an interactive computer environment, running them together in batch can save time and avoid errors. This paper describes how to use SAS to create a .BAT file that automatically lists and runs all SAS programs in a specified directory. A macro is presented that extends this procedure to an unlimited number of directories. The codes included in this paper were tested using SAS V6.12 on the Windows 98 operating system quality control, txt, clinical trial source 2
179 SAS Accessing DB2 Data: a Performance Victory Away Henri Theuwissen,
Nancy Croonen
Many MVS applications require data that is stored in DB2 tables. In the past a common statement was: "Do as much as possible, as close as possible to the source data to get the best performance" or "execute as much as possible in DB2". This paper covers the exploitation of DB2 data. Based on real life projects, tips and guidelines are discussed on how to get the best performance in your SAS job. Tests on production environments often give surprising results: Combining DB2 data can be faster in SAS than combining it in DB2. Consolidating data in SAS, using the SUMMARY procedure is often much faster than using the SQL GROUP BY clause in DB2. When DB2 data must be combined with non-DB2 data it is even not possible to execute the jobs in DB2 proc sql, where statement, dataset, libname engine, create table, cpu time, macro variable, proc step, data merging, data mart, sas log, set statement, proc means, group by, sas function source 9
180 SAS Cluster Disk Management: Using SAS to Manage Virtual Disks on a Cluster of File Servers Haftan M. Eckholdt,
Ezra C. Benun
Using SAS to manage low cost virtual drives on clusters of file servers is very simple and enables researchers to approach larger more complex problems. We will discuss methods for using SAS for: (1) managing very large virtual drives in file server clusters, (2) random and symmetric file naming, file seeking, file mapping, and management on these virtual drives, (3) visual and quantitative assessments of cluster usage and file distribution, and (4) provide crude versions of RAID backup redundancy. These methods allow research groups to acquire very large storage capacity at extremely low costs macro definition, proc step, macro loop, proc freq source 5
181 SAS Implementation of Nonparametric Smoothing and Lack-of-Fit Based on Smoothers George F. von Borries,
Jeffrey D. Hart
A user-friendly program in SAS rs is proposed to perform many nonparametric smoothing and test- ing procedures. The nonparametric part of the pro- gram consists of resources already available on SAS and the testing part will consist of lack-of- fitt e s t s based on smoothing ideas that will be continuously updated. Four main procedures are described for the testing part of the program: tests of a linear model based on a ratio of quadratic forms and on prob- ability bands, the "order selection" test of fito fa linear model, and a test of fit of a nonlinear regres- sion model. The user-friendly characteristic of this program requires basic knowledge of the SAS System using the SAS Macro language as the base for imple- mentation with modules SAS/STAT rs,S A S / I M Lrs, and SAS/GRAPH rs bootstrap, regression analysis, null hypothesis, macro facility, sample, macro definition, proc reg, proc nlin source 5
182 SAS Macro Design Issues H. Ian Whitlock Two questions motivated this paper. The first came more than twenty years ago at the end of my first programming course when the professor asked, "You now know how to write programs, but do you know when it is appropriate to write a program?" For SAS macro the question might be rephrased. What kind of SAS problem is appropriate to macro? Or when should the solution involve macro code? The second came from SAS-L in September 2001, "What sources discuss how to develop clear and good macro code?" There have been many Beginning Tutorials on macro, and many of the examples in them may illustrate some of the principles that these questions hint at, but I do not know of any source that concentrates on the principles macro variable, macro facility source 9
183 SAS Macros to Help Relieve Common Program Documentation Pain Chris S. Hord,
Jay Zhou
It is a longstanding practice to provide a few lines of documentation at the beginning of each program to document author's name, date, program purpose, etc. Unfortunately, there are often no guidelines to specify the provision of such documentation, and no recognition of the potential of this data resource to support valuable tracking and status reports of programming activities. To help relieve common program documentation pain, we developed a simple, automated method for programmers to incorporate program header documentation into each program, and use that data to produce descriptive reports about their programs. A standard header documentation template collects author's name, date created, program description, etc., to simplify documentation data entry and facilitate retrieval of this data for reports. A pair of SAS macros inserts the header documentation template into the program and produces reports based on the header documentation data macro call, macro definition, anova, excel, main effect, sas log, %macro parameters source 9
184 SAS Meets Big Iron: High Performance Computing in SAS Analytical Procedures Robert A. Cohen,
Trevor Kearney
Version 9 targets the heavy-duty analytic procedures in SAS for high performance computing enhance- ments. These enhancements encompass both al- gorithmic improvements and modifications to exploit multiprocessor hardware. This paper provides a sur- vey of this development and the performance gains obtained in several procedures in SAS/STAT and Enterprise Miner . Some general scalability issues are discussed and their practical implications in pro- viding high performance scalable implementations in the following SAS facilities are addressed: linear regression analysis of variance local regression robust regression * logistic regression source 9
185 SAS Software-to-Web Configuration: from Scratch to Final Products Haiping Luo This paper walks the reader step by step through the whole process of SAS/INTRNET configuration and SAS-to-Web application development. The process includes installing and configuring SAS/INTRNET service, preparing SAS programs to interact with various data sources and to deliver data and graphical output to the Web, and developing Web interface to receive interactive SAS output. The walk-through uses a healthcare application as a sample to demonstrate the process. The configuration is applicable to a Windows network environment. The data source formats include text, EXCEL, and Access database. The reader needs to have basic knowledge of Windows platform, local area networks, base SAS, databases, internet and HTML to implement the process sample, macro variable, sas base, output delivery system, %if-%then-%else, macro loop, excel, dataset, sas log, by group processing, macro definition source 6
186 SAS Solutions and Emerging Technologies: An Oxymoron or Intuitively Obvious? You Decide Donald J. Henderson output delivery system, proc step source
187 SAS Tools for Meta-analysis Robert M. Hamer,
Pippa M. Simpson
This paper discusses meta-analysis, enumerates the circumstances under which it might or might not be appropriate, and mentions some SAS tools which can be used for meta- analysis proc mixed, sample, sample size, clinical trial, odds ratio, effect size, null hypothesis, standard deviation, regression analysis, confidence interval, logistic regression, proc means, response variable, logistic distribution, proc step, anova source 6
188 SAS User Documentation: Web Page Design Made Easy Bruce F. Gilsen,
Scott Hoenig
character functions, sample source 10
189 SAS with Style: Creating Your Own ODS Style Template Lauren E. Haworth sample, proc step, proc template, output delivery system, ods pdf, ods html, proc freq source 10
190 SAS/AF : It's Not What It Used to Be! Soora Wi SAS/AF Version 8 is a powerful application development tool that allows you to create a graphic user interface (GUI) to transform information into knowledge. This paper will introduce you, the first-time SAS/AF (Version 8, Windows NT) user, application developer concepts to create GUI's for the non-SAS user, allowing them to "point and click" to view, query and print reports. This paper also provides steps to create an actual application. Throughout this paper, key SAS/AF terms such as frame, components, attributes and SCL will be introduced proc step, proc means, dataset, sample source 4
191 SAS/CONNECT Simply Stated James C. Stokes Have you ever wondered how or why you might use SAS/CONNECT? In the world of computing today, we are faced with the challenge of processing data on a multitude of platforms. Many of us are faced with the reality of having to process data on two or more platforms. By utilizing SAS/CONNECT , we can easily take advantage of the strengths of the various platforms we have at our disposal. This paper will explore what is necessary to run SAS/CONNECT , demonstrate how to move data between platforms (Data Transfer Services), how to process jobs remotely (Remote Compute Services), and how to process remote SAS datasets locally (Remote Library Services). This paper is introductory in its nature and is designed to help users get started with SAS/CONNECT proc step, proc contents source 2
192 Save Time Today Using SAS Views Robert S. Ray In this time of exploding data volumes, your old friend the SAS/GE2 data view can be more important than ever as a tool to reduce total job I/O and, thereby, total time. Views can be created in SAS with either SQL or the DATA STEP and used singly or in combination. SAS data views can be used as one might use Unix 'pipes' to chain multiple data manipulation stages together without intervening I/O. Judicious use of this established technology can cut execution real-time significantly and bring your critical jobs back into their time windows. Additionally, this paper will briefly discuss the new "pipes" feature of the multi-process (MP) SAS/CONNECT /Ge2 product proc sql, proc step, order by, cpu time, set statement, mp connect, proc sort, dataset source 4
193 Secret Tools of the Ad Hoc Programmer Robert A. Burnham,
Bill Marble,
Kathryn Sabadosa
Adhoc programmers are often deluged with hundreds of requests for a variety of reports in different formats: the head of sales needs an MS EXCEL spreadsheet with updated figures by the end of the day, and marketing needs a report of high value customers for a mailing. To survive in this world of critical response time and accuracy, adhoc programmers need to develop a library of tested and efficient code. This paper is targeted at the experienced programmer who is looking to try some proven approaches to adhoc programming. There are two tools critical to adhoc programming: autosource macros and the Output Delivery System (ODS). Autosource macros allow SAS programmers to define code that is stored in a central library and included when required by a program, thus enabling users to easily access complex business logic in their programs. ODS, often used for web development, is a powerful tool for generating professional looking reports and tables in MS EXCEL and MS Word proc print, proc step, excel, sas programmer, output delivery system, macro definition, macro conditional source 4
194 Seeing Graphical Representations Clearly to Avoid Eye Strain James D. Gilbert The display of multiple-group graphs, side-by-side, for fast and easy deciphering, has in the past provided a difficult task. Traditionally, there were two methods of analyzing large amounts of data both with limitations. The first, group processing, end-users were forced to look across many pages of graphs, searching for and comparing like data points. The second, custom templates and PROC GREPLAY, demands more intensive programming resources and the end-user still has to compare graphs on different axis. Using data manipulation techniques enables the data to be presented as a multiple-group graph displayed in a side-by-side format create table, proc sql, proc step source 4
195 Seeing Red: Tips for Debugging the SAS DATA Step Michael J. Yee Debugging SAS software programs is a fact of life. Rarely does even the most talented SAS programmer create an error-free piece of code the first time. Understanding how SAS processes the DATA STEP and how that processing is presented in the SAS LOG is crucial to efficient debugging of SAS code. Several analytical techniques can reduce the frustration involved with debugging. Stepwise block submission of code can systematically locate hard to find program errors. Use of the RUN CANCEL statement can evaluate the DATA STEP for syntactic errors without actually reading the input data set. Data subsets can uncover functional SAS issues that arise because specific data elements cannot be evaluated properly by syntactically correct code. The line and column indicators in the SAS log can flag regions of code where errors are located. DATA STEP techniques such as the PUT statement can help identify run time changes in data values sas log, missing value, put statement, sas programmer, cpu time, data step source 4
196 Self Serve Census Data for Neighborhoods and Other Custom Aggregations: A SAS/IntrNet Application Larry Hoyle In the past, obtaining Census statistics for aggregates of Census blocks was a somewhat tedious task, which required the involvement of someone skilled in Census Geography and programming, or a GIS package. The Web application described in this paper allows users to define and name their own collection of counties, census tracts, block groups and blocks. They are then able to display standard Summary File Profiles for the aggregated area. For example, the XYZ Neighborhood Association might want Census statistics for the neighborhood as a whole. Someone from the association could pick the blocks comprising the neighborhood, save the selection as "XYZ", and then select which sets of tabulations to display. He or she could return to the site later and select other tables to display for create table, proc step, proc sql source 6
197 SEM for Health, Business, and Education Diana D. Suhr Structural Equation Modeling (SEM) is a comprehensive statistical approach to testing hypotheses about relations among observed and latent variables (measured variables and unmeasured constructs) (Hoyle, 1995). SEM takes a confirmatory rather than an exploratory approach, specifies intervariable relations a priori, and estimates measurement errors explicity (Suhr, 1999). The purpose of this paper is to provide an introduction to the SEM statistical approach with examples from health, business, and education fields. SAS code (PROC CALIS), diagrams, and results will be discussed. In the health field, a path analysis investigates the prediction of self-perceived illness with effects of exercise participation, self-perceived fitness, stressful life experiences, and hardiness for promoting stress resistance (Kline, 1998; Roth, Wiebe, Fillingim, & Shay, 1989) estimate, latent variable, covariance, proc calis, regression analysis, proc step, correlation, sample, missing value, proc reg, response variable, residual, predictor variable source 8
198 Show Your Graphs and Tables at Their Best on the Web with ODS Francesca Pierri,
LeRoy Bessler
proc step, proc print, output delivery system, proc template, macro variable, bar chart, ods html, proc gmap, macro loop, proc sort, macro definition, %if-%then-%else source
199 Simplifying SAS Security Derek P. Morgan,
Michael A. Province
An increased emphasis on the security of data within the organization has led to the use of the security built into the SAS System. The encryption and passwording of the datasets used for this project was relatively easy to accomplish. However, day-to-day uses of this data range from analysis to data entry to ad hoc query. How do we allow all the different users access without hard coding the passwords, or forcing them to continually type in passwords? By using macro variables to carry the passwords. The Method Creating a SAS system table with the built in security is easy. There are three levels of password protection: read, write, and alter. You can employ one, two, or all three on any given dataset. In addition, you can encrypt a dataset with the simple dataset option ENCRYPT=YES. The datasets for this project are encrypted, and use all three levels of passwords macro variable, proc step, dataset source 5
200 Some Uses (and Handy Abuses) of PROC TRANSPOSE Ralph W. Leighton proc step, proc transpose, proc print, dataset, character variable, format statement, calendar year, development year, paid loss, transposing, raw data, missing value, numeric variable, comma., development age, variable, macro loop source 10
201 Sounds Like a Good Idea, But What's the ROI? Justifying Your Project and Getting It Approved John E. Bentley Too many good ideas for using SAS Software remain just that: good ideas that are never implemented. Why? Getting an idea approved and funded as a project largely depends on showing that it has real value, and most organizations select projects based on ROI-Return on Investment. ROI is the net profit that a project generates in the form of either additional revenue or reduced expenses. This paper will introduce SAS users to some financial concepts related ROI and suggest how to write a Project Justification Document. The goal is to provide some insight and suggestions on how to get a project approved. Disclaimer: The views and opinions expressed here are those of the author and not his employer. The Gravy Train is Over The days of easy money for IT projects are over, if you were lucky enough to enjoy them. The business cycle has turned down and the bottom line focus has returned source 6
202 SPAN SPAN AWAY! Creating One Unique Record for Overlapping Admissions and Discharges from Multiple Inpatient Hospital Stays Shabnam Mehra,
Robyn Spittle,
Becky Larsen,
Diane Haynes,
Kathy Dailey
The Policy and Services Research Data Center (PSRDC) in the Department of Mental Health Law & Policy at The Louis de la Parte Florida Mental Health Institute performs research with a variety of secondary mental health datasets. The data format is often manipulated to accommodate our research objectives. One example of this manipulation is "span coding" using SAS . This code is specifically designed to transform overlapping inpatient hospital stays into one unique record by means of the admission and discharge dates. The techniques in this paper apply to health care agencies and the pharmaceutical industry but may easily be applied to other disciplines. Obtaining a unique record for inpatient hospital stays using multiple admission and discharge dates can be easily accomplished by using IF..THEN..ELSE..DO statements with retain statements. It is a simple and swift method to manipulate secondary data to a desirable format for answering research questions date variable, retain source 3
203 Splitting a Large SAS Data Set John R. Gerlach,
Simant Misra
Imagine that you have a very large SAS data set that you must split into smaller, more manageable, data sets. Typically, you would write a DATA STEP that employs IF / THEN / ELSE logic, along with the respective OUTPUT statements, each designating the appropriate smaller data sets. Of course, in order to partition the input data set into smaller data sets having similar cardinality (# observations), you must know how many observations there are in the input data set, then write the logic, accordingly. But, such a DATA STEP might be tedious to write. This paper explains the %split macro that writes the DATA STEP automatically to produce the desired smaller data sets if-then-else, _n_ source 2
204 Stop Madly Merging: PROC PRINT to the Rescue! Catherine A. Lindsey Merging multiple datasets correctly can be a formidable challenge to an inexperienced SAS/BASE user. How will you determine if the merge was succ essful? Do all the records match up as was intended? One of the most useful, underutilized tools in SAS to help answer these and other merging questions is PROC PRINT. PROC PRINT can be most beneficial when multiple datasets need to be merged, such as for a large study or project with several linked forms, each recorded in a separate dataset. By creating an indicator variable (variables of the same value given to every observation in each specific dataset) for each form to be merged, PROC PRINT can be used to uncover incomplete merges. In some cases, what may first seem to be a merging error may not be an error at all. If, for example, one of the original forms (before merging) was missing all information for one or more observations, then the indicator variable corresponding to that form will be missing after the merge proc print, binary variable, proc step, missing value source 2
205 Strategic Procurement: The SAS Solution for Supplier Relationship Management Fritz Lehman The SAS Solution for supplier relationship management (SRM) is a Web- based application designed to help procurement professionals understand how corporate money is being spent and how suppliers are being used. A ranking component enables procurement staff to rank suppliers based on any set of available metrics. An optimization component computes an optimized supplier portfolio. Users can also perform ad hoc queries against the SRM warehouse. This paper will identify the goals of strategic procurement and illustrate how the SAS Solution for SRM enables procurement professionals to achieve them. The Internet has changed the way people work. More and more SAS solutions and applications are Internet based. Attention will be given in this paper to the technology used in implementing this Web-based solution proc sql, where statement source 6
206 Summarizing Data with Base SAS PROCs Deborah B. Buck Base SAS provides a number of procedures designed to aid the SAS user in developing data summary reports. These procedures include MEANS, UNIVARIATE, FREQ, REPORT and TABULATE. Additionally, PROC FORMAT is also available to modify the appearance of data values or combine values into desired categories within PROCs without changing actual data values or creating new variables. This presentation explores various common types of summary reports and what factors you should consider in deciding which procedure is best suited to your reporting needs. It is not meant to be a detailed tutorial on PROC STEP programming code for all of these procedures, but rather a guide on how to decide which procedures fits the requirements for a given report proc step, proc print, proc report, sas base, proc format, proc freq, proc tabulate, if-then-else, proc means source 8
207 Table Look-up Using Techniques Other Than the Matched Merge DATA Step Sandra Lynn Aker proc step, proc sql, proc sort, automatic variable, proc format, put statement, where statement source 6
208 Table Look-up: Techniques Beyond the Obvious Henri Theuwissen,
Nancy Croonen
Table lookup operations are often the most time consuming part of many SAS programs. In this paper we will combine two SAS data sets by using the value of a specific variable to locate information in an auxiliary or lookup SAS data set and add it to information from the primary SAS data set. Base SAS software offers a broad range of techniques to perform table lookup operations. Do you use the most obvious technique or do you evaluate multiple techniques and determine which technique is the most efficient way to perform the lookup? dataset, proc sql, macro variable, set statement, call execute, sas log, options statement, put statement, where statement, if-then-else, subsetting if, lookup, proc format, inner join, data merging, &variable, proc step, error message, select, cpu time source 9
209 TAGSET You're It! Using ODS MARKUP to Create Pre-filled HTML Form Tags Thomas Kunselman ODS MARKUP is an addition to the Output Delivery System starting with SAS Version 8.2. MARKUP generates markup language output from TAGSETS shipped with SAS or user defined TAGSETS created with PROC TEMPLATE. This paper describes a subset of the PROC TEMPLATE code used to generate HTML form tags containing pre-filled data output from PROC PRINT. Example SAS code with PROC PRINT and the ODS statement are also provided to demonstrate how to use ODS MARKUP. The resulting HTML form tags can be inserted into an existing ODS HTML output stream destined for a file or sent to _webout for use with the SAS/INTRNET application dispatcher. These two examples provide a brief ods html, proc step, macro variable, proc print, proc template source 5
210 Taking Advantage of Missing Values in PROC SQL Ya Huang PROC SQL provides many numerical summary functions, such as SUM, MEAN, MAX, MIN etc. Most summary functions do not count missing values. I consider it a good feature, because it makes 'Comparison Between Observations' possible. In other words, it makes 'Longitudinal Data Processing' using PROC SQL possible proc sql, proc step, missing value, by group processing, where statement, group by source 3
211 Techniques for SAS Enabling Microsoft Office in a Cross-Platform Environment Vincent DelGobbo With the ubiquity of the Microsoft Office suite of products, you often need to use SAS data and analytical results in the Office products EXCEL or Word. But transferring data from SAS to the Office applications can be difficult when the SAS System is installed on a non-Windows platform, such as OpenVMS, UNIX or OS/390. This paper provides techniques for integrating the analytic processing power of the SAS system, irrespective of platform, with Microsoft EXCEL and Word. The use of the Output Delivery System (ODS) is also discussed excel, sample, ods html, output delivery system, ods rtf, ods listing, proc step, ods csv source 8
212 Telecommuting: the Good, the Bad and the Ugly Nancy K. Patton Doesn't the thought of telecommuting sound GREAT? You wouldn't have to get up so early; you wouldn't have to sit in traffic -what advantages! You wouldn't have to worry about being late for work, because you'd Always Be At Work. Does telecommuting still sound so good? There are some wonderful benefits for telecommuting and remote workers, but there are some disadvantages as well. The isolated environment for remote employees is not for everyone. One must consider the telephone lines, connectivity to corporate systems (and speed of access), FAX machines, copy machines, and technical support. On the days you work from home how do you get phone calls? Can you forward your office phone, or do you have to give out your home phone number? Before putting the bumper sticker: "Telecommuters are at home now" on your car, consider the pros and cons. This presentation will give you some of the issues to consider and questions to bring back to your employer source 2
213 The Benefits of Data Warehousing for an Insurance Company Wolfgang Hofbauer German property and casualty (P&C) insurance companies have faced dramatic new challenges: intensified competition (such as price reduction and high-risk underwriting) has caused losses, especially in car insurance. Volatile stock markets have intensi- fied the problems. To react to the situation, Mannheimer had to find an improved basis for decision-making. We had to make key facts and figures available, anytime and anyplace. However, like most financial services companies, Mannheimer has a variety of transactional systems with large stores of data that cannot readily be analyzed without great effort. Our approach was to establish a group wide database which inte- grated all data of our business lines. The biggest challenge was consolidating the data; therefore, it was vital to have a powerful data management solution with SAS/WAREHOUSE Administrator data mart, life insurance, fact table, flat file, insurer, property and casualty, dimension table, loss ratio, sas base source 6
214 The Differences in Developing an Interactive Review System in SAS 6.12 OLAP and in SAS 8.2 HOLAP Lori A. Guido,
Richard A. Denby
The Housing and Household Economic Statistics Division (HHES) of the United States (U.S.) Census Bureau evaluated different SAS technologies to find ones best suited for the development of an interactive system to review the Census 2000 long form data. Two systems using the same data but different technologies were built. The systems that were evaluated access data stored on centralized, large-scale Unix servers running Sun SOLARIS 2.8 and the data are accessed through personal computers (PCs) running Windows 95. All the systems use multidimensional databases (MDDBs), and display the same data, but each system uses distinct SAS technologies. The first system uses a client-server approach, SAS v6.12 and the MDDB report object in SAS/EIS to create more than 2,548 commonly used reports dataset, report year source 3
215 The Heuristic Program John R. Gerlach Most data analysis problems require more time and effort than usually allotted. Consequently, the highly overrated "quick and dirty" solution often fails when implemented under real conditions. Because of typical demanding circumstances, it is a good idea to develop a proc freq, missing value source 4
216 The Joy of Table-driven Information Delivery Systems Jonathon Hagerman This paper will describe how we employed a data driven approach to generate the HTML pages in our information delivery system programmatically. It was not only possible to create an information delivery system surfacing information to users via browser technology without a single-stored HyperText Mark-up Language (HTML) page; it was, in fact, desirable. Programmatically creating these pages enabled us to get out of the HTML page maintenance business and also enabled the business users to deal with the most up-to-date information to make their decisions. This paper will describe to an intermediate to advanced SAS programmer, the discoveries we made about information delivery systems and how we were able to create our information delivery system model using this information. Once this model was in place, with all of the required tables, programs, macros, and so forth, it was possible to create the next information delivery system in one week data step, sas programmer source 4
217 The Knowledge Warehouse: The Next Step Beyond the Data Warehouse Anthony M. Dymond Retaining and applying knowledge enables an organization to know what to do, how to do it, and when to do it, empowering it to succeed in competitive situations. Data warehouses store data and can be a source of knowledge but do not store knowledge directly. However, knowledge in the sense of procedures, best practices, business rules, expert knowledge, facts within context, and processed data can be retained in logical structures accessible by computers. This paper describes the techniques and tools for building a knowledge warehouse and compares these to the data warehouse construction model. The data warehouse "extract, transform, load" (ETL) process has a parallel in the knowledge warehouse. The knowledge warehouse also has logical structures to store knowledge that are analogous to the system of tables that implement data storage in the data warehouse data warehouse, data validation rules, data mining, dimension table, fact table source 8
218 The Simplicity and Power of the TABULATE Procedure Daniel E. Bruns When I first started using SAS in a university environment in 1972, I was very excited about how much SAS could help me. As I learned more and moved to the real world of the employeed I needed more flexibility in my reporting - PROC PRINT had some and PROC MEANS and FREQ had basically none. And SUMMARY needed too much DATA STEP manipulation. What I needed was a marriage of all these with the flexibility to control what I wanted where and how! Thank the Gods for PROC TABULATE!! I was able to produce reports from massive amounts of data in practically any way I needed! The power of being able to simply rearrange a few variable names and change the complete look of the report was great. But then I also found a few things that were not so simple-like percentages proc step, proc tabulate, sas base, label statement, proc freq source 7
219 The Web Data Entry System: Methods for Web Development and SAS Data Management Paul A. Thompson,
Sarah Littlewood,
Avril J. Adelman
Processing data using theSAS/IntrNet system requires working withSAS ,HTML,a n dJavaScript code simultaneously. The Web Data Entry System (WDES) is a macro-based system which develops web page systems and manages the web-oriented data handling process. The system simplifies and speeds development by usingSAS macros to very quickly process a modifiedHTML file, producing a processedHTML file, theSAS dataset, and the code to process the interaction between the two. The system simplifies and speeds management of transactions using a comprehensive system ofSAS macros. TheWDES uses a metadata strategy, processes the finalHTML file and uses theSASresolve function to simplify modification of files. This approach is currently supporting two multi-site clinical trials in which the Division of Biostatistics, Washington University, serves as the data center dataset, proc contents source 6
220 Three Views on Consulting: A Panel Discussion Ted Fish,
William W. Viergever,
Debbie Tinsley
There are many reasons that people become and continue to be consultants. There are also many different approaches to consulting. This panel will look at consulting from three different points of view. One panelist works on-site for clients and uses several different agencies to find positions. Another panelist works off-site in his own office. The other panelist works from home part-time and goes into the consulting company office part- time. The pros and cons of different approaches will be discussed. There will also be an opportunity to ask the panel questions about consulting business intelligence, data warehouse source 5
221 Tips and Tricks for Easier Reporting Larry Stewart,
Marje Fecht
This Hands-On workshop focuses on report writing issues you may have encountered, and solutions to make your programming life easier. It introduces features that ƒ enable you to better control the order of class variables in tabular reports ƒ utilize user-defined formats, and PROC FORMAT options to control ordering in reports ƒ take advantage of the MULTILABEL option to avoid creating additional variables ƒ produce Microsoft EXCEL spreadsheet results, using easy-to- code SAS statements. Additional Tips are shared to make your reporting easier! excel, proc step source 1
222 Tips for Manipulating Data Marge Scerbo As a beginning SAS programmer, you could be easily overwhelmed with the sheer size of the language. It is not easy to learn the best way to complete a task, if a best way actually exists. Does one method actually work better than another does? For example: When working with a large number of variables, does it really make a difference to DROP or KEEP variables? If so, is one better than the other? What is a DATA STEP statement? And what is a data set option? Are they the same? * What is the best way to subset the data, IF or proc step, if-then-else, keep statement, proc append, drop statement, numeric variable, where statement, character variable source 9
223 Tips, Downloads, Samples, and Training - Discover the Service &Support Web Site Renee Harper You have your stack of trusted SAS manuals and you've loaded the new documentation CD, but you still have questions, still need answers. Where do you look next? Try the SAS Web site. In the last few years, SAS has stepped up its award-winning customer support with the creation of the Service & Support Web site, where an abundance of information awaits you, from updated usage information to technical papers to online registration for training. The Web site is always available to provide the latest information and services that will broaden your SAS knowledge and complement traditional information sources sample, note source 4
224 To Err Is Human; to Debug, Divine Roger Staum This tutorial describes four types of programming errors and how you can recognize them. It also discusses four approaches to handling errors: deter, detect, deflect, and debug missing value, proc step, error message, proc print, put statement, macro variable, input statement, numeric variable, proc sql, options statement, merge statement, by group processing, character variable, error, sas log, macro facility source 11
225 To Neural or Not to Neural? - This Is the Question Leon L. Fedenczuk Adding new lines of business and new services for existing customers is particularly important in deregulated telecommunication industry. Attracting new services to existing customers often translates into happier customers, increased retention of profitable customers, and competitive advantage. Identification of the most profitable customers (who are the most probable buyers of additional or new services) calls for computer based systems that are based on data mining solutions. This paper compares solutions from neural networks to solutions from logistic regression, discriminant analysis, and decision tree analysis for cross selling predictions. This comparison deals with the statistical accuracy of predictions, ability for business interpretation, and the practical implementation of computer systems that can perform outlined ta sks neural network, logistic distribution, proc hpsplit, logistic regression, regression analysis, network optimization, data mining, discriminant analysis, proc freq, nominal variable, feature selection, sample source 6
226 To ODS RTF and Beyond David Shannon The ability to send output to Microsoft Word was the most commonly requested function during the development of the Output Delivery System. Since version 8.1 ODS RTF has been formally available. The Rich Text Format (RTF) specification is a method of encoding formatted text and graphics which is read by Microsoft Word and several other text editors. So now that we have the ability to send output to Word, how can we apply it? What are the advantages over traditional fixed space output? How can we go beyond the documentation to extract some of Microsoft Word's features? This paper will address these questions demonstrating how to define and apply generic appearance to a project and consider the advantages of RTF output to both the programmer and end user. Furthermore it will be shown how to go beyond the documentation by embedding RTF codes to enhance your reports. Finally this paper addresses some practical considerations when generating and distributing RTF files output delivery system, ods rtf, proc step, proc report, adverse events source 8
227 Tools for Sharing SAS Macros Over the Internet Xiao Chen,
Michael N. Mitchell
In this paper, we introduce a set of SAS macro programs for automating the process of downloading and documenting SAS macro programs over the Internet. We also describe a standard mechanism for organizing and documenting SAS macros on an Internet server macro definition, sample source 4
228 Transforming Single-Record Spreadsheet Data into Multiple Observations Glenda A. Garner Generating SAS datasets from ASCII files is a simple task. Generating datasets from spreadsheet style data is also easily accomplished in SAS. However, the task becomes much more difficult when dealing with a mixed format of data variables with a varying number of input lines per record. One such example was the conversion process of biomechanical gait data into SAS datasets in the ADAPT study(Arthritis, Diet, and Activity Promotion Trial). This poster will address implementing advanced features of the INPUTstatement input statement, pointer control source 2
229 Tree-based Models: Identification of Influential Factors under Condition of Instability Pavel Brusilovskiy,
Yillian Yuan
The objective of the paper is to determine an overall import ance of inputs in a series of runs of SAS Enterprise Miner Tree node under condition of instability of tree-based models. We discuss simple and practical four step iterative approach of dealing with instability: derive a Pareto- optimal set of trees; test hypothesis for concordance of the selected inputs that corresponds to tree- based models in the Pareto set; if the hypothesis of concordance is accepted, form overall importance of the union of selected inputs, otherwise try to narrow Pareto set, or add new runs, and go to step one. The importance could be m easured on nominal, ordinal or interval scales. Testing for concordance is performed by SAS macros MAGREE and INTRACC. The application of this proc hpsplit, data mining, feature selection, intraclass correlation, seed, macro definition, correlation, regression analysis, data cleaning source 6
230 Trees, Neural Nets, PLS, I-Optimal Designs and other New JMP Version 5 Novelties Cathy Maahs-Fladung Version 5 of JMP software for Macintosh and Windows is just emerging this spring, and this presentation covers the new features source 7
231 Tuning WebHound 4.0 and SAS 8.2 for Enterprise Windows Systems James Lebak Windows is SAS' largest and fastest growing platform. Windows 2000 Advanced Server and Windows 2000 Datacenter, coupled with advances in microprocessor and system design, now provide mainframe-class performance and scalability and many SAS users will consider using large Windows systems to deploy their SAS applications. The new "Windows mainframes" also offer new features and benefits such as clustering, fail-over, hard-partitioning, processor affinity and more features that were previously unavailable on Windows platforms. But, how do you optimize SAS applications to take full advantage of these new high-end Windows systems? This paper details the specific system tuning activities performed for WebHound 4.0 and SAS 8.2 on the Unisys ES7000 running Windows 2000 Datacenter. Testing recently performed in Cary, NC resulted in recommended system and application configuration changes to achieve maximum performance and scalability for WebHound 4.0 parallel processing, cpu time source 5
232 U.S. Census Bureau Goes OLAP Hung X. Phan,
Lori A. Guido,
Richard A. Denby
This paper describes a technique used to build an Online Analytical Processing (OLAP) system that was developed at the U.S. Census Bureau to be used for the review of Census 2000 long form (sample) data. The system uses the multidimensional database (MDDB) report object in SAS/EIS to create 74 commonly used reports categorized by subject, demographic characteristics and geography to allow users to review the data. These reports are presummarized, which enables the users to quickly retrieve multiple levels of aggregate data through a multidimensional view. The system also uses Hybrid On-Line Analytical Processing (HOLAP) techniques to build a "proxy" HOLAP cube. Through the use of the proxy cube, the system registers data from the 50 states and the District of Columbia (D.C.) uses the same 74 reports to review the data for all states. Without utilizing the "proxy" HOLAP cube technology, one would have to build reports for each state or 3,774 reports sample, proc step source 6
233 Unit-of-Analysis Programming Vanessa C. Hayden There are many possible ways to organize your data, but some ways are more amenable to end-reporting and analysis than others. A common tendency is to simply denormalize clinical data to the lowest level and build reports from there. Not only is this inefficient, but the logic is harder to trace and can lead to programming bugs. Building data at the unit of analysis level will help you avoid these common pitfalls and inefficiencies. This paper will overview basic database structures, simple denormalization, and alternate ways of aggregating and storing your data, based on the unit of analysis. It will demonstrate how such a design facilitates reporting and analysis, and stands up to scrutiny. This paper is oriented towards anyone who works with data, regardless of SAS software experience. Examples will be presented using SAS software code, but the concepts apply regardless of the specific data management tool used key, clinical trial, sample, proc sql, lookup, data standard, proc step, missing value, proc sort, clinical research, dataset, demographics table, sample size, clinical data, data science source 6
234 Up and Out: Where We're Going with Scalability in SAS Version 9 Cheryl Doninger This paper gives an overview of the ways that SAS is addressing performance through scalability in SAS Version 9. Scalability features have been implemented in many areas of SAS Version 9 to allow your applications to scale up and scale out. These include: Multi-Process (MP) CONNECT, the Scalable Performance Data Engine (SPDE engine), certain SAS/ACCESS/Ge2 engines, several scalable SAS procedures, the Scalable Performance Data (SPD) Server/Ge2, the Open Metadata Server, and * the Online Analytical Processing (OLAP) Server. The purpose of this paper is to describe each of these areas at a high level and explain how they can be used independently or in conjunction to maximize performance mp connect, proc step, sas base, libname statement, proc sort, data step, parallel processing source 8
235 Use of the ROC Curve and the Bootstrap in Comparing Weighted Logistic Regression Models David Izrael,
Annabella Battaglia,
David C. Hoaglin,
Michael P. Battaglia
In analyzing data from a survey, researchers often need to compare the effectiveness of several logistic regression models. The receiver operating characteristic curve offers one way to measure effectiveness of prediction, by calculating the area under the curve (AUC). We present a bootstrap, sample, logistic regression, proc calis, logistic distribution, macro variable, roc curve, proc step, regression analysis, survey weight, standard deviation, proc logistic, macro loop, predictor variable, macro definition, macro put, %if-%then-%else, sample weight source 6
236 Use Your Website to Document Your Website Karen L. Wyland You've developed and put into production a great website using the SAS/INTRNET technologies. You may now be considering tackling the job of documenting your website applications and processes. Have you considered using the very same tools you're using to produce your website to create a website for your development/maintenance personnel? Decision Support Systems (DSS) at Sodexho makes extensive use of the SAS/INTRNET technologies to keep their development team informed. Several reasons led us to create a developer's website. We're a small team and work on individual tasks. We need to keep current on the status of our projects or "done-bys". We also need to document the procedural tasks we each perform so we have a "turn-over" document ready at all times. It's not always possible for our team to connect to the remote server since we require secure shell access. A website using only a browser interface is perfect for our "anytime, anywhere" needs batch job, sample, sas batch, data step, macro variable, proc sql source 6
237 User-Interface Tool Choice and Audit Trail Tool Choice for a SAS Based Data Entry/Verify System for Clinical Trials Data Barry R. Cohen A double-key data entry/verify system for pharmaceutical clinical trials data was previously developed using SAS/AF and SAS Component Language (SCL) software. The application has operated successfully for se veral years. Now, new federal regulations require that an audit trail be maintained on the creation and modification of all electronic records in volved in clinical trials research. Thus, an audit trail was added to the e xisting system. Two different aspects of this application de velopment project are discussed. (1) Issues that surround the choice of a de velopment tool for the graphical user interface of a client-server appli cation in a SAS-ba sed environment, where SAS progra ms and data are processed on the ser ver side. Three tool choices (SAS/AF, AppDev Studio , and Visual Basic) are evaluated across several performance factors. (2) The new, nati ve data set audit trail facility available in the SAS System, and why it was not the best approach for our project sas base, audit trail, dataset, clinical trial, logistic distribution, clinical data source 6
238 Using a Trapezoidal Rule for the Area under a Curve Calculation Shi-Tao Yeh The trapezoidal rule is a numerical integration method to be used to approximate the integral or the area under a curve. The integration of [a, b] from a functional form is divided into n equal pieces, called a trapezoid. Each subinterval is approximated by the integrand of a constant value. This paper provides three SAS /Ge2 macros to perform the area under a curve (AUC) calculation by the trapezoidal rule. The first macro allows you to select the number of subintervals from a continuous smooth curve and then performs the area under the curve calculation. The second macro allows you to select the accuracy level of the approximation and then performs the necessary iterations to achieve the required accuracy level of approximation. The third macro is for discrete points of ( x, y ) and performs the area calculation. The SAS products used in this paper are base SAS , and SAS/S TAT/Ge2, with no limitation of operating systems macro definition, auc source 4
239 Using Dynamic Data Exchange to Export Your SAS Data to MS Excel - Against All ODS, Part I Koen Vyverman Of all the different ways in which the SAS System allows data export into a Microsoft EXCEL spreadsheet, Dynamic Data Exchange (DDE) is the only technique providing total control over the EXCEL output. As is often the case however, this high level of control come s at a price ... The DDE formalism can appear quite daunting at times, even downright obscure! The purpose of this paper, liberally sprinkled wi th recy- clable Working Code, is to provide a detailed walkthrough of how to programmatically create and customize an EXCEL workbook co n- taining SAS data. More or less in order of decreasing obviousness, we will cover the following specific topics: firing up EXCEL from within a SAS session; loading and saving an EXCEL workbook; inserting SAS data into a given worksheet; formatting a range of spreadsheet cells; adding an EXCEL macro sheet to a workbook; renaming a worksheet; finding out the names of existing worksheets in an EXCEL workb ook excel, data step, macro definition, xls, macro variable, filename statement, sample, sas base, character variable, conditional do loop source 10
240 Using Java, SAS and XML to Integrate Handheld Data Acquisition with Data-management Web Services Scott E. Chapal Java data governance, data cleaning source 6
241 Using ODS and the Macro Facility to Construct Color Charts and Scales for SAS Software Applications Perry Watts proc report, macro variable, proc step, macro definition, output delivery system source
242 Using PROC REPORT to Produce Tables with Cumulative Totals and Row Differences David D. Chapman PROC REPORT is a tool for tabulating and reporting the contents of SAS data sets. PROC REPORT's strength is its ability to create table columns, modify individual cell values, and use information from different rows of the report. This flexibility allows users to create tables that show cumulative totals and row differences. Cumulative totals are used to report values such as the number of responses year-to-date, percent of a total for all periods to date, and cumulative distribution functions. Row differences show changes between row. Two PROC REPORT features that allow this are the COMPUTE block, and the distinction that PROC REPORT makes between report and data variables. This paper discusses how PROC REPORT builds a report, COMPUTE blocks, and what report and data variables are and how they work. The code to produce one and two level tables containing both cumulative row totals and row differences are shown with explanatory comments proc report, proc step, data step source 6
243 Using SAS Data to Drive Microsoft Office Darren Key,
David Shamlin
Microsoft Office provides tools for integrating its suite of programs with other vendors' data sources. There are a variety of ways to do this using various ActiveX components and VBA scripting techniques. While the number of choices available can add to the complexity of creating a customized solution, the basics of integrating with SAS data sources can be simplified with some basic code patterns for migrating data and reports between Microsoft Office and SAS. We will outline basic patterns for importing SAS data into Microsoft Office documents as well as exporting data back to SAS. The paper gives implementations of these patterns in the form of Visual Basic code that can be customized for site-specific usage scenarios. We will demonstrate the application of these techniques to tasks involving the migration of data between SAS data sets and Microsoft Office and Outlook applications advanced sas, structured data source 8
244 Using SAS Enterprise Miner for Data Quality Monitoring in the Veterans Health Administration's External Peer Review Program James H. Forsythe In support of the Veterans Health Administration's External Peer Review Program (EPRP) the West Virginia Medical Institute performed over 350,000 medical record reviews during FY 2001. Over 100 highly trained abstractors (QICs) conduct record reviews in a variety of settings that include 170 VHA hospitals and more than 500 outpatient clinics. To help assure the quality of the medical record abstractions, WVMI monitors abstractor performance and the validity and reliability of the medical record data. WVMI employs a scientifically rigorous multi-method approach for assessing data quality and (of note), uses SAS Enterprise Miner for improving the precision and accuracy of assessing the abstracted data. This paper describes the use of SAS EM and how applying the software has aided WVMI in determining the source of unexpected or "anomalous" abstractions. These advancements greatly strengthen the "bottom line" value of third party abstractions for assessing clinical performance cluster analysis, neural network, data cleaning, response variable, training set, validation set, predictor variable, feature selection, network optimization, regression analysis, forward selection, data mining, proc hpsplit, discriminant analysis, logistic regression, logistic distribution, sample source 5
245 Using SAS Graphics Capabilities to Display Air Quality Data Debbie Miller SAS software is used to create detailed charts showing air quality data. These charts will be used by state air quality specialists to develop plans to comply with new air quality regulations. SAS/GRAPH procedures are used to generate the charts. This paper highlights the use of the Annotate facility to add annotations unique to each chart that greatly enhance the amount of information that can be conveyed. This facility allows you to automatically place annotations on each graph with respect to other chart elements such as bar height and x-axis location. Instructions for creating the annotations are stored in a data set and referenced later in a SAS/GRAPH procedure such as the GCHART procedure. This paper is intended for intermediate and advanced SAS users who are familiar with SAS/GRAPH. There is no limitation with respect to operating system sample, bar chart, seasonality source 5
246 Using SAS in a Distributed Computing Environment Christopher J. Smith The Platform LSF software is a software solution which allows organizations to take advantage of their distributed computing resources. By aggregating these resources into a "virtual supercomputer", the LSF software can be used in conjunction with SAS software to provide various benefits to users of the computing environment. Benefits include: quicker time to solution by enabling the use of distributed processors and by controlling access to limited computer resources, a single user interface to heterogeneous computer systems, centralized resource provisioning using queue priorities and job preemption, and a reliable job scheduling environment enabled by calendar-based and inter-job dependencies. An example of how to apply distributed computing principles to SAS software processing will be discussed in the context of web server log analysis using the SAS Institute Webhound software distributed processing, job scheduling source 5
247 Using SAS Macros to Create Automated Excel Reports Containing Tables, Charts and Graphs Tugluke Abdurazak EXCEL reports are always welcomed by the client because they are user-friendly, easy to access and easy to design. Therefore, many clients request reports to be created as EXCEL files with pre-designed formats. In most cases, the EXCEL report templates contain tables, charts, graphs or even pictures. Usually, an EXCEL report is created by using the output from SAS software, a SAS program outputs the result either as ASCII output or as an EXCEL file, programmers or other project staff cut, paste or type in the result to the pre-designed EXCEL report. This usually becomes a very time consuming and tedious process especially when the content of the reports is complex and when reports need to be created repeatedly. This program attempted to automate the process so that SAS analytical results are automatically output to the pre-defined EXCEL templates. Because the report had to be created repeatedly, the automation process saved a lot of time and money excel, dataset source 6
248 Using SAS ODS to Create Adobe PDFs from SAS/GRAPH Output Patrick M. McGown Adobe PDF files have become a standard for presenting information across a variety of platforms and are especially useful for downloading reports from websites. This paper examines the use of the SAS Output Delivery System (ODS) for creating Adobe Portable Document Format (PDF) files from SAS/GRAPH output. This will include single and multi-page PDF files from single and multiple SAS/GRAPH procedures as well as including output from other SAS procedures. This paper will also examine the impact of ODS styles on SAS/GRAPH output as well as how to label the output for the PDF bookmark feature. This paper utilizes the production version of the SAS ODS PDF feature provided in SAS V8.2 ods pdf, output delivery system source 4
249 Using SAS ODS to Enhance Clinical Data Summaries: Meeting eSub Guidelines Steven Light,
Paul M. Gilbert
SAS programmers in the pharmaceuticals industry are aware that the Food and Drug Administration (FDA) has raised the bar for presentation of summary tables and listings used as part of electronic submissions (eSub). Guidelines for font selection, font size, and margins have made traditional text file output somewhat more challenging to work with. Fortunately for us, the new guidelines have coincided with the SAS Institute's implementation of the Output Delivery System (ODS), which provides the ability to both greatly enhance the appearance of tabular output and to meet the FDA's eSub guidelines. This presentation will provide an introduction to use of ODS in generating tabular reports using ODS (to RTF and PDF destinations) with a focus on the eSub guidelines and the advantages of using ODS over listing-mode output pharmaceutical industry, sas programmer source 6
250 Using SAS to Perform Robust I-Sample Analysis of Means Type Randomization Tests for Variances for Unbalanced Designs Peter S. Wludyka,
Ping Sa
A SAS macro for performing an Analysis of Means (ANOM) type randomization test for testing the equality of I variances when the samples are of different sizes (an unbalanced design) is presented. Robust tests are required when sampling from non- normal populations. Randomization techniques for testing statistical hypotheses can be used when parametric tests that require normality are inappropriate. Suppose that I independent samples have been collected. Randomization tests are based on shuffles or rearrangements of the (combined) sample. Putting each of the I samples "in a bowl" forms the combined sample. Drawing samples "from the bowl" forms a shuffle. Shuffles can be made with replacement (bootstrap shuffling) or without replacement (permutation shuffling). The tests that are presented here offer two advantages. They are robust to non- normality and they allow the user to graphically present the results via a decision chart similar to a Shewhart control chart sample, randomization, permutation test, sample size, proc step, proc print, standard deviation, bootstrap source 7
251 Using SAS/AF Software and ODS for Reporting and Analysis Thiru Satchi,
Edgar L. Mounib
proc step, proc report, proc tabulate, macro variable source
252 Using Styles and Templates to Customize SAS ODS Output Sunil Kumar Gupta SAS's new Output Delivery System (ODS) feature enables the creation of various new file types including Rich Text Format (RTF), PostScript and HTML. The standard default style used to control the output is generally well organized and sufficient for most purposes. When the default SAS ODS output report will no longer suffice, SAS users can take advantage of ODS advanced features to customize the output report with styles and templates. By having greater control over the report details such as color, font, size, justification, order and labels, the format and quality of the report will be enhanced. This paper introduces the concepts necessary to understand and apply the advanced features of SAS's ODS. Issues in defining and selecting output destinations, selecting output objects and creating customized output files will be discussed. The focus is on the creation of custom styles and templates with PROC TEMPLATE for visually appealing output ods rtf, output delivery system source 10
253 Using the Contents of PROC CONTENTS to Perform Multiple Operations Across a SAS Data Library Subrahmanyam Pilli,
Luai R. Alzoubi,
Kent Nassen
Have you ever wanted to process all data sets within a library but didn't want to use multiple DATA STEP statements that add cumbersome code to programs? What would you do when new data sets are added? With custom macros you would have to get the n a m eo ft h ed a t as e t ,a d dt h ec o d et op r o c e s st h ed a t a (remembering to type the name correctly), and then validate this "new" code. What if you could do all these steps in one simple to use and understand macro and not have to add new code, not have to remember what a data set was named or worry about how many new data sets were being added? Things like subsetting data sets or performing data manipulation on any number of data sets become as easy as submitting code. You can even include certain data sets and exclude others. The ability to do any of the above is discussed in this paper proc step, macro definition source 3
254 Using the FILEVAR= Option for Input and Output Derek P. Morgan The problem of handling multiple flat or ASCII files with the SAS System has been one that has been solved many times with macros. However, there is an easier way, one that saves resources, time, and programmer frustration. The FILEVAR= option on the infile statement takes care of switching among multiple ASCII files, and it works for both input and output. Working from production examples, this short paper will explain how to use it, and the advantages over traditional macro methods of handling this problem. Old-time SAS System programmers like me used to use macros to handle multiple files for input or output. We'd read one file, create a SAS System data table, append it to the master template, and process the next file in the same fashion. The file name information would be stored in a macro variable, and the macro variable would change with each iteration of the loop. While this does have its place, you are no longer forced to do it this way infile statement, input statement, dataset, end= option, output, flat file, conditional do loop source 4
255 Using the Magical Keyword 'INTO:' in PROC SQL Thiru Satchi "INTO:" host-variable in PROC SQL is a powerful tool. It simplifies programming code while minimizing the risk of typographical errors. SQL INTO: creates one or more macro variables, based on the results of a SELECT statement. This macro variable(s) reflects a list of values that can then be used to manipulate data in both DATA and PROC steps. The usefulness of SQL INTO: will be demonstrated by analyzing a large medical claims database. Keywords: INTO:, host-variable, macro, SQL proc sql, macro put, macro variable, proc step, insurance claims, sample source 7
256 Using Visual Basic to Customize a Set of SAS Reports Kevin McGowan This paper describes a software system using and SAS and Visual Basic to run a series of SAS reports that can be customized at run time. The system uses a Visual Basic front end program to collect data from the user to customize reports as they are run. The system allows the user to easily select many different parameters to be used to create a report without changing a single line of the SAS code in each report. This system reduces the likelihood of errors that come from manually editing many SAS programs every time they need to be run. The system also routes the report output files to project specific network directories so they can be stored in a standard format macro variable, sas programming, %if-%then-%else source 5
257 V9 OLAP - An Architectural Overview Duane E. Ressler What's new in V9 SAS/GE2 OLAP Server software? Just about everything. Completely rewritten for Version 9, SAS OLAP Server software uses the SAS scalable architecture to support high performance scalable multidimensional analysis. Our experience with HOLAP and Access Control has been integrated into a completely new package designed as a multi- user, scalable server component that natively supports industry standards such as OLE DB for OLAP and the MDX query language. That means that open clients can access OLAP information quickly and easily. A basic knowledge of the internals of this new implementation can be helpful in getting the best performance out of SAS OLAP Server software by designing the cubes and sizing the hardware to support growing data sources data standard, parallel processing source 5
258 Visualizing Patterns with Scrollable Web Graphics Eric C. Brinsfield,
Caroline C. Bahler
By combining the power of SAS with the visual clarity of HTML tables, you can create scrollable Web graphics that illuminate your data. Although advanced analytical methods can be used to detect patterns or anomalies in data, some users prefer to or need to visually scan the raw data directly. This paper discusses a technique used to present spectral data with color graphics over the Web. The scrollable charts are both fast and easy to use and to implement. The method uses base SAS, SAS/INTRNET, SAS/ACCESS, HTML, JavaScript, and Microsoft's Active Server Pages (ASP) with VBScript and ADO. We will demonstrate one proven implementation of using this approach and propose additional uses and applications, such as scrollable comparative histograms sql server, proc sql, if-then-else, sample source 4
259 Web Enabling Your Graphs with HTML, ActiveX, and Java Using SAS/GRAPH and the Output Delivery System Curtis A. Smith Using the SAS/GRAPH procedures and the Output Delivery System (ODS) you can output your graphs to web enabled HTML files. Using the flexibility of ODS, you can include the graphs as static GIF or JPEG files, or create interactive, customizable graphs for web distribution using ActiveX controls or Java applets. This is really cool stuff. I could not believe my eyes the first time I saw it in action. In this paper I will lead you through the ODS code statements and options under SAS version 8 for MS-Windows needed to turn plain SAS/GRAPH procedure output into something dazzling. No need to be a SAS/GRAPH wizard to learn this stuff... I was not. Just wrap your existing SAS/GRAPH code with a few ODS statements, options, and a few other tweaks, and your HTML customers will not believe their eyes! proc freq, scatter plot, numeric variable, ods html source 6
260 Web Implementation of Environmental Decision-making Software Rachel A. Baker,
Anthony T. Baker
Monitoring groundwater contamination is of great concern at operational sites in the United States Department of Energy (DOE) complex. The Aqueous Waste Software Application (AWSA) is a SAS software application created and implemented at the Savannah River Site that has enabled more effective groundwater sampling decisions and reduced long-term monitoring costs. Specifically, AWSA provides a decision support tool for the issue of purge water containerization during the groundwater sampling process, convenient access to groundwater data in the Site's environmental database, and an enterprise-wide distribution system for summary reports of groundwater data. This paper discusses the reasons for and the benefits from the transformation of AWSA from a SAS/AF software application on an Alpha cluster to a SAS/INTRNET software application on a Web server ftp, batch job source 3
261 Web-based Tracking of the WA State Medicaid Caseload Peter J. Lund,
Dave Bendemire
put statement, bar chart, proc step, file statement, macro variable source 10
262 Web-enabling a Client/Server OLAP Application Using SAS/IntrNet Software's MDDB Report Viewer Mary Federico Katz,
Bob V. Roo
SAS/INTRNET's MDDB Report Viewer (MRV) enables users to obtain multidimensional reports and graphs via their web browsers. We chose to web-enable an existing client/server OLAP application using the MRV because of the appropriate fit, the expected quick conversion time, and the additional functionality provided. During the development effort we realized that we needed to customize the MRV in order to replicate an important feature of the client/server application. We also wished to alter the default appearance of the MRV. Qualex Consulting Services, Inc. provided the technical expertise in the development of these MRV enhancements macro variable, insurer source 6
263 What Does the Style Definition Look Like? Wei Cheng The SAS Output Delivery System (ODS) has a number of built-in output style definitions. ODS also provides tools to create your own custom-defined style definitions. This paper presents a SAS program to generate output in HTML, PDF, and RTF file format with a "Table of Contents" linking to each available style definition. Some advanced ODS techniques including PROC TEMPLATE, ODS statements and options, PROC REPORT, and SAS macro facility are used and covered file statement, output delivery system, proc step, ods output, macro definition source 5
264 What's in a Name: Describing SAS File Types Randall Cates,
Bob Tremblay
Are you confused by the different types of SAS files in your libraries? Need a scorecard? If a file has the type .SAS7BDAT that's a SAS dataset, right? So how is a type .SAS7BVEW different? Or is it different? If you can send a SAS dataset (.SAS7bdat) to another SAS programmer, why can't you do the same with a .SAS7BVEW? What's a MDDB? An Item Store file? There are a number of different types of SAS files available to the SAS programmer. The SAS dataset is the most familiar, but many programmers also use SAS Views, SAS Catalogs, But each one stores something different. You can possibly find many if not all file types in your company's SAS libraries. This paper will review for the beginning SAS programmer all the different file types, how to use them to best effect, and will present some ideas for better file management. First we will discuss each different file type, starting with the SAS dataset, and talk about what it stores, and how you can access and use it source 8
265 What's New in the Output Delivery System, Version 9 Sandy McNeill Along with every new version of SAS, the ODS developers work hard to bring you new features. So what's new with Version 9? A new destination called MARKUP along with something called markup definitions (aka TAGSETS) will become production. This new destination allows configurability of your markup output. Another new destination (also available as a PROC) that will be production for Version 9 is the DOCUMENT. If you've ever wanted to the ability to run your procedures once and then go back and pick and choose which pieces you want or how you would like them rendered, then this is for you. In addition to these new destinations, RTF has some new features and functionality -- options for Page X of Y, decimal alignment, and cell indention are a few of the highlighted features proc step, output delivery system, ods rtf, proc template, proc print, footnote statement, proc report, excel source 10
266 What's Your _TYPE_? How to Find the CLASS You Want in PROC SUMMARY Frank A. Ferriola When using the CLASS statement in your PROC SUMMARY, SAS will calculate every possible combination of the CLASS variables. By understanding the way SAS summarizes, you can find a simple way to determine which summaries you really want to keep and eliminating the others proc means, proc step, class variable source 4
267 While You Were Sleeping - Scheduling SAS Jobs to Run Automatically Faron Kincheloe If you are tired of running the same jobs over and over again, this paper is for you. The Windows operating system is often viewed as strictly interactive in that a job is expected to run immediately when it is submitted. However, there are several options for scheduling SAS jobs to run at a later time and on a repetitive basis. This paper will discuss how to use these options and how they differ according to the Windows version being used. Scheduling from within Data Warehouse Administrator will also be discussed. This part of the discussion is also relevant to the Unix environment; however, the primary focus of the discussion will be within the Windows operating system. By using one of the scheduling options discussed, you will no longer have to remember to submit a job at the proper time or get up in the middle of the night to start your jobs. Let Windows take care of all that for you, while you are sleeping job scheduling, catalog source 6
268 Your Shingle in SAS/GRAPH David H. Johnson SAS/GRAPH software is a very powerful tool you can use in deploying images and graphical representations of data. This paper explores the use of the SAS/GRAPH product in Versions 6.12 and 8.2 to develop icons for a web page and graphical symbols for other publishing. The most complex of these is the company 'Pecten'. The Pecten is the corporate symbol you see on the company's letterhead, their packaging or at the entry to the company's premises (whether the virtual premises of their website, or their actual building). We will look at ways of drawing this image from within the SAS system. By using the SAS System, we give ourselves substantial power to calculate positions and colour gradients that would otherwise rely on a steady hand and the forgiving nature of our image editor. It also makes it possible to generate a group of images, and make a global change to them by some simple changes to the source SAS programs data step, proc step source 6

Back to Conf go 2003 go 2001

This site serves as a convenient hosting location and does not work as a publisher. All copyrights belong to their respective owners.

The information on this site is provided for general reference purposes only. Whilst every effort is made to ensure that the site is up to date and accurate, no warrant, nor any responsibility or liability for, the accuracy or completeness of the content or for any loss which may arise from reliance on information contained in this site is provided. Links to other sites are provided for your convenience but no responsibility or liability for the content of those sites or of any external site which links to this site is accepted. References to any specific commercial product, process, service, or corporation are also for information only, and do not constitute endorsement, recommendation or favoring.

SAS is a registered trademark of SAS Institute Inc. SAS, Statistical Analysis System, and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.