HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

SUGI 2004 Papers - Index

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

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 %ARRAY: Construction and Usage of Arrays of Macro Variables Ronald J. Fehd The SAS R(cid:13) software DATA STEP statement array V (3) $ V1-V3 ('A' 'B' 'C'); produces three character variables named V1, V2, and V3 with corresponding initial values, 'A', 'B', and 'C' and a function, dim(V) which returns a value of 3. Programmers can write simple macro tools for use in larger macro procedures. These tools can duplicate SAS software DATA STEP constructions that the programmer is comfortable using and make reading and comprehension easier. The macro statement %Array(V,A B C) produces three macro variables, V1, V2, and V3, with corresponding values: A, B, and C and macro variable Dim V with the value 3. These variables can then be used in the macro iterative loop statement %Do I = 1 %to &Dim V.; This paper examines the SAS DATA STEP array statement and discusses the issues in constructing and using arrays of macro variables. The macro Array takes parameters of either a list of elements or a data set. Macro Array is a basic utility used in two other macros that address analysis of multiple-response data. See [3], [4] macro variable, macro facility, array, data step, macro loop, proc step source 7
2 (In)Formats (In)Decently Exposed Harry Droogendyk If you've pulled data into SAS or pushed it out the other end you have used SAS informats and formats, really. Didn't hurt a bit did it? There's nothing to be afraid of, formats are really quite helpful little beasts. If you've been intimidated or confused by SAS formats, come along for a revealing ride as the shadowy side of data formatting is decently exposed. Learn how many data conversion and presentation issues are easily handled, whether the data be dates, times, numbers or strings. Don't avert your eyes, discover the power, efficiency and freedom of SAS formats, you'll never be the same data step, date variable, sysdate9, proc print, put statement, char., format statement, e., input statement source 13
3 8 Characteristics of a Successful Data Warehouse Martin Brown Most organizations are well aware that a solid data warehouse serves as the foundation from which to build meaningful business and analytical intelligence. Unfortunately the gulf that exists between being aware of the need and actually building a data warehouse seems too large to cross. Instead of building a data warehouse, many organizations build their analytical solutions from spreadsheets and query tools. There is a better way. This paper servers as a roadmap from which to bridge the gap between concept and reality. Included are brief discussions in the following areas: The executive sponsor The project team The business The data model The metadata Extract, transform, and load (ETL)Q Marketing and change management The users Once complete, the data warehouse allows organizations to unleash the power of their data in the form of analytical intelligence. It is at this point that they can begin to achieve a true competitive advantage data warehouse, data cleaning source 6
4 9.1 Steps to Success with SAS 9.1 on Solaris 9 Maureen E. Chew business intelligence, data mining source 14
5 A Complex Query within SAS/IntrNet John Ranson,
Wai Ming Chan
Application developers and analysts know that the more complex the query the more likely for inconsistent and varied results. This reporting application was built to give one version of the truth. The application improves report generation turn around time and provides a user-friendly interface to retrieve data of interest for further statistical analysis, regardless of the users level of SAS and SQL expertise. The user is able to trace originality of the data through an audit trail. This paper presents a web application using SAS/INTRNET that allows clients to extract health and other related data. The application shows the built-in functionality that provides the flexibility in complex subsetting and dynamic groupings of diseases. The power of the application lies in the integration of the reference codebooks (International Coding of Diseases) to facilitate data retrieval. Diagrams and flow charts will be presented to give the audience an understanding of the data repository and the logic that has been built into the application where statement, lookup source 10
6 A Day in the Life of an Analytical Warehouse Julian Anderson,
Gregory S. Barnes Nelson,
Jeff Wright
market risk, raw data, data mart, operational data store, enterprise risk, sas risk engine source 16
7 A Format to Make the _Type_ Field of PROC MEANS Easier to Interpret Matt Pettis proc step, class variable, proc means source 6
8 A Format Viewer for the SAS Explorer Randy D. Herbison This paper will explain how to build a simple format viewer and integrate it with the SAS Explorer. It will cover the minimum requirements of a format viewer, the Base SAS and SAS/AF tools used to build it, and how each part is constructed. This paper is suitable for beginning to advanced level SAS users dataset, proc format, proc step, sas log, sas base, error message source 13
9 A Group Scatter Plot with Clustering Xiaoli Hu In pharmacokinetic studies, abnormally high values of maximum plasma concentration Cmax of a drug observed in some individuals may cause concern as to potential safety issues. In a clinical program where many different formulations containing the same drug are tested in different studies, it is useful to be able to visually examine individual Cmax values across different formulations/studies. This paper provides the SAS codes to create such a graphic in rich text format (RTF) where the data for each formulation observed across studies are shown as separate clusters macro variable, proc step, scatter plot source 7
10 A Guide to Understanding Web Application Development Corey Benson,
Robert Girardin
You have been asked by your manager to port a legacy, fat-client application to the web. There are so many directions you can take in completing this project. It is hard to know where to start and what technologies to use. The main focus of this paper is to introduce you to server-side Java. We will answer questions like: What is server-side Java technology? What are servlets, JavaServer Pages and custom tags? What are the benefits of using server-side Java technology? What is the Model-View-Controller(MVC) architecture? What is the Struts framework? What are the benefits of using webAF for Web application development? * How do you customize the look of your web application? These topics will be covered while also highlighting how SAS AppDev StudioTM 3.0 makes it easier for you to build web applications that are lightweight, easy to manage and instantly connect to SAS software data cleaning, business intelligence source 18
11 A Hiker's Guide to Web Development Steve James Building web applications using SAS/INTRNET Application Dispatcher is a lot like hiking. At first, it is hard. You struggle getting used to your equipment and the new terrain. Then it gets easy as you settle into a pace you like and get into a rhythm. Then it gets hard again as you tire and have to make that final push towards the finish. However, once you get there you can sit back, relax and enjoy the rewards of your efforts. If all that is true, then how should you do it? What can you expect along the way? What kind of equipment do you need and whom should you take with you? This paper is a trail guide for developing web applications with Application Dispatcher and describes the process, pitfalls and practical issues that you can expect to encounter. Specific topics that are covered include system analysis and design, learning Application Dispatcher, coding issues, usability, security, and final deployment. This paper is designed for users at all skill levels working on all operating systems proc step, data validation rules, data cleaning, dataset, excel source 13
12 A Lightweight HTML Codebook Generator for Clinical Trial Data Lei Zhang A codebook is a set of technical documents about the datasets collected for a particular purpose. It is the metadata, or information about the data. Clinical trial data are often complicated and highly interrelated, a well-organized dynamic codebook for them, therefore, is of vital importance to both clinical SAS programmers and statisticians who need explore and utilize clinical datasets for comprehension and communication. In this paper I first introduce the concept and structure of the HTML codebook model specially designed for clinical datasets, and then present a software generator called Datamapper that can automatically create HTML codebooks from SAS datasets with the HTML templates derived from the conceptual model. The Datamapper, implemented with SAS ODBC, HTML templates and Java technologies, requires minimum user inputs and configuration in the SAS System. The HTML codebook (also called datamap) it generated allows clinical SAS programmers, statisticians, or any other users to interactively access essential piece of information about clinical data objects and navigate over them like a web surfer clinical trial, clinical data, sas programmer, libname statement, clinical sas, statistical programmer, dictionary tables, missing value, dataset, sample, proc step source 11
13 A Macro for Reading Multiple Text Files Debbie Miller Most of us have to exchange data at some time or another with others who do not use the SAS System, and therefore cannot use or send SAS data sets. Importing data files that are not in SAS format into SAS and compiling them for processing can be a time-consuming process. This is particularly so if the files are numerous and are not identical in format. SAS has many powerful tools that can help you to automate this process. This paper presents one simple solution for reading multiple plain text files that have differing numbers of variables using base SAS and the macro facility. This paper is intended for users of all skill levels txt, macro variable, dataset, infile statement, input statement source 5
14 A New Strategy of Model Building in SAS PROC LOGISTIC with Automatic Variable Selection, Validation, Shrinkage, and Model Averaging Ernest S. Shtatland,
Ken Kleinman,
Emily M. Cain
This paper is a further development of our work presented at SUGI'26 and SUGI'28 in which we proposed an approach to model building for prediction based on the combination of stepwise logistic regression, information criteria, and the best subset selection. The approach inherited some strong features of the three components mentioned above, in particular it helped to avoid the agonizing process of choosing the "right" critical p-value in stepwise regression. At the same time automatic selection procedures are often criticized severely for instability and bias in regression coefficients estimates, their standard errors and confidence intervals. To avoid these disadvantages we propose to use some validation, shrinkage and averaging techniques. Note that these techniques are still not incorporated in SAS PROC LOGISTIC. Meanwhile, variants of the techniques suggested in our presentation are based on the standard PROC LOGISTIC output. Together, they make a new robust model building strategy data cleaning, regression analysis, logistic distribution, bootstrap, proc logistic, proc step, logistic regression, sample, best subsets, feature selection, stepwise selection, proc phreg, sample size, macro definition, confidence interval, likelihood function, proc princomp source 11
15 A Practical Approach to Transferring Data from Microsoft Excel to SAS in Pharmaceutical Research Hong Qi The need to transfer data from MS EXCEL into SAS is frequently encountered in pharmaceutical research. Multiple approaches could be taken in the data transfer, such as IMPORT WIZARD, SAS/ACCESS, ODBC, DDE and DBMS/COPY. However, these methods may not handle the data transfer correctly or efficiently, especially when data format inconsistencies are present or multiple EXCEL sheets are involved. This paper proposes a practical, user-friendly macro solution to this problem that provides many flexible features in the data transfer process. In analyzing the components of the macro's design, this paper also demonstrates how to incorporate the principles of accuracy, efficiency and convenience in the transfer of data from EXCEL to SAS. Finally, a real example is used to illustrate how the macro's features are applied in practice excel, dataset, macro call, sas log, data cleaning source 8
16 A Recipe for Success: Migrating SAS/AF Applications to the Web Using SAS, HTML, and JavaScript Koen Vyverman The Internet is a widespread information network that has reformed organizational structures and transformed business strategies. Given the predominance of cross-platform, global clientele and the ever-increasing need to deliver information, it serves great value for organizations to exploit web technologies. SAS programmers can adapt to these modern technologies by retooling their applications to provide clients with more accessible, user-friendly web-based solutions. Specifically, by drawing on various web programming techniques, a developer can seamlessly rework a SAS/AF program into an application that functions via the Internet. As a follow-up to "A Pinch of SAS, a Fraction of HTML, and a Touch of JavaScript Serve Up a Grand Recipe," published in the SUGI 28 proceedings, this paper will elaborate on the subject of web migration by discussing how programmers can go about modernizing their existing SAS/AF applications using SAS, HTML, and JavaScript while still preserving the underlying SCL code that make up these programs. Adapting these SAS/AF applications to the Internet allows organizations to maintain legacy programs and remain up to date with current trends in the ever-changing world of the Information Age ods html, macro variable source 10
17 A SAS Database Search Engine Gives Everyone the Power to Know Eugene Yeh This application finds the matches to a search parameter that you specify from the contents of all SAS data sets in multiple file directories. The application appears similar to an internet search engine, therefore it is practical for everyone to use. After you enter a search parameter and click the "GO" button, a summary of the search results is displayed in an HTML or RTF file. The file displays the names of all directories, data sets, variables, and observations that contain a match to the search parameter. Clicking on any data set name hyperlinks you to either the source data set that contains a match or to a newly created data set. This new data set is a subset of the source data set, retaining only observations that contain a match to the search parameter. Advanced features can explicitly include or exclude data sets and variables by name, search for formatted values, and save search parameters. A SAS database search engine makes "the power to know" available in less time and effort, to more people, thus increasing overall productivity within any organization. This paper reviews the capabilities of this application, some common uses for it, and the programming techniques implemented excel, where statement, raw data, dataset, label statement, proc report, proc step source 11
18 A SAS Macro for Generating Randomization Lists in Clinical Trials Using Permuted Blocks Randomization Mazen Abdellatif We developed a SAS [1] macro to standardize and streamline the generation of randomization lists for treatment assignment in randomized clinical trials using permuted blocks randomization. The macro uses the CALL RANUNI [2] function and PROC PLAN [3] to generate such lists. It prompts the user for a set of parameters that define the trial's randomization scheme specifications and another set of parameters that control the macro execution. The design of this macro along with sample output generated for a hypothetical randomized clinical trial will be presented. The macro was developed using SAS Proprietary Software Release 8.2 (TS2M0) running on ALPHASERVER Model 1200 5/533 4MB Serial Number 80000000 and executed on the OpenVMS 7.3-1 platform, using eXcursion Server randomization, treatment arm, macro variable, flat file, sample, proc step, clinical trial source 12
19 A SAS Macro to Count Consecutive Days Pingping Zhang Patient diary data is becoming increasingly important in many indications. This paper describes the macro that counts the number of consecutive days among a set of dates. If a number is supplied, say n, then in the resultant data set, we will see subsets of consecutive days with their respective first and last dates listed for each subject if the number of consecutive days is n or bigger date variable, lag function source 5
20 A SAS Program Computes the Crude, Stratified and Mantel-Haenszel Odds Ratio for Case-Control Study Analysis of Nx2xK Tables Ilene K. Brill,
Fabio Barbone
For the analysis of epidemiologic case-control studies, a SAS macro program was constructed to compute estimates of the exposure odds ratio (OR) (ratio of exposed to unexposed cases divided by the ratio of exposed to unexposed noncases) beyond the standard 2x2 table. For each exposure level compared to the referent zero exposure level, the program calculates crude ORs, stratified ORs based on all possible combinations of confounders and the Mantel- Haenszel estimator of the OR adjusted for confounding. In epidemiology confounding, defined as the mixing of the effect of another factor (the confounder) associated with both the outcome and the exposure, is a major threat to validity. The program accommodates varying number of confounders and levels for each confounder, one response variable with two levels (case/control) and one exposure with varying number of levels. The user designates as arguments to the macro: temporary input data set name, name prefix for the confounders PREFIX1-PREFIXn, outcome and exposure variable names, number of exposure levels and the variable name for the weights assigned to the frequency values. The epidemiology instructor preferred using these methods of computing ORs over logistic regression to lead students to a better understanding of the relation among the contributing variables proc freq, confidence interval, macro call, response variable, proc step, macro definition, regression analysis source 10
21 A Second Look at SAS Macro Design Issues H. Ian Whitlock At SUGI 27 the author presented a paper "SAS Macro Design Issues" as a Beginning Tutorial. The use of names and parameters were emphasized because it was presented as a Beginning Tutorial. This tutorial assumes that you have written some macros, made macro decisions with %IF and done looping with %DO statements, but you are still teachable, i.e. bad habits are not so deeply ingrained that there is nothing more you can learn about macro. 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?" The material discussed was developed under Windows, but is appropriate to all operating systems macro variable, macro definition, dataset, macro loop, where statement, proc step, macro put, output, %if-%then-%else, proc sql, macro quoting function, numeric variable, macro function source 19
22 A Stand-Alone SAS Annotate System for Figure Generation Brian P. Fairfield-Carter Much of the work in developing output-generating tools involves striking a balance between encapsulation (the process of creating generalized instructions) and flexibility. In some cases a paradox seems to exist, where the more functionality you build into a system, the less usable it becomes, simply because of the inflexibility associated with greater encapsulation, and because of the prohibitive knowledge base required for correct usage. Because of this, we continue to see data _NULL_ - based output drivers despite the advent of PROC REPORT and ODS. This paper offers something analogous to data _NULL_ on the SAS/GRAPH side - a simple stand-alone Annotate system as an alternative to PROCs GCHART and GPLOT. Based on very simple components - namely Annotate functions and variables and some generalized relationships in the scaling and placement of graphical features, this system captures a fair amount of functionality in a few lines of code, but preserves flexibility in that the Annotate datasets produced can be edited with the simplest of DATA STEP programs. As a secondary objective, this paper also introduces the use of the Windows Scripting Host as a means of automating the production of word-processor-ready documents from SAS/GRAPH output data step, proc step, macro loop, %if-%then-%else, macro definition, sample, bar chart, create table, macro call, txt, proc sql, line chart, macro function, histogram, macro variable source 13
23 A System to Calculate Market Value-at-Risk using Oracle George Rezek SAS/IML is used with Base SAS and Oracle to produce a system to calculate value at risk with the flexibility to reflect changes in the database in the calculation and reporting. Value at risk is calculated using Monte Carlo simulation. The overall process is covered and aspects of the calculation are highlighted. Finally, the impact of the results on the Enterprise are outlined interest rate, confidence interval, standard deviation, covariance, interest rate risk, correlation, proc transpose, proc step source 11
24 A-P-P Advanced Data Management Functions Peter Crawford,
Paul M. Dorfman
APP functions is an (unofficial) collective abbreviation for the SAS functions ADDR, PEEK, PEEKC, the CALL POKE routine, and their so-called LONG 64-bit counterparts - SAS tools designed to directly read from and write to the physical memory in the DATA STEP and SQL Procedure. APP functions have long been a dark SAS horse. Firstly, the examples of APP usage in SAS documentation boil down to a few tidbits in a technical report, all intended for system programming tasks, with no hint how the functions could be used in plain data management SAS programming. Secondly, the note about the CALL POKE routine in the SAS documentation is so threatening in tone that many folk may have decided to avoid the potentially precarious route altogether. However, nothing can stand on the way of a curious SAS programmer daring to take a closer look; and it turns out that APP functions are very simple and useful tools! They can be used to explore how things "really work", make code more concise, implement "en masse" (group) data moves, and, oftentimes, significantly improve execution efficiency. The authors have been exploring the APP world since 1998, occasionally letting the SAS-L community to peek at their findings. This tutorial is the first time we dare to present the results in a systematic way. Welcome to the APP world! You are in for a few surprises numeric variable, character variable, sas programmer, temporary array, proc sql, length statement, data governance, variable list, dataset source 20
25 Advanced Programming Techniques for Working with Color in SAS Software Perry Watts Programming issues associated with color are defined by "going under the hood" of the SUGI 28 paper entitled Working with RGB and HLS Color Coding Systems in SAS Software. Since colors are expressed as hexadecimals in SAS, the numbering system is reviewed at the outset. Next HEX formats are described along with a core set of V8 conversion macros. The core macros use the HEX formats to recast color codes in different numbering and color systems. For completeness, the SAS-supplied Version 9 color utility macros that are similar to the V8 core macros are also described. An effort is made to simplify source code that is described in the paper. For example, lists of macro variables representing individual colors in a chart can be replaced by a single format in Version 8.2 that is invoked from a DEFINE statement in PROC REPORT. The procedure is exercised in ODS with output to an HTML file. Similarly, the Annotate %BAR macro that works with color constants inside a macro is transformed to the %_BAR macro that manipulates color variables directly within a DATA STEP. Besides showing how source code can be simplified, another goal of the paper is to extend programming concepts for color to issues that confront the BASE SAS programmer. For example, the discussion of the hexadecimal numbering system is generalized to show how hexadecimals show up in all types of applications. Similarly the color conversion macros bring up more general issues related to scope in the SAS macro language, and the discussion about colors as constant literals is extended to include data set assignments in the OUTPUT statement. Finally the versatility of the macro function is demonstrated by nesting V8 core macro calls and by using them as labels in a format macro variable, proc report, proc step, macro function, select, output, autocall macro, macro call, sample, data step, by group processing, macro facility, macro definition source 19
26 All The News That's Fit to Aggregate: A SAS Based RSS Newsreader Ted Conway RSS (Really Simple Syndication) is an XML-based standard that describes a simple framework for publishing headlines and links on the web. It's widely used not only by major web sites, like CNN and the New York Times, but also by millions of individual bloggers. With an RSS Newsreader, you can easily and quickly gather headlines from your favorite web sites into one place, allowing you to scan a lot of different sources quickly. This paper shows how a SAS program can use the URL and XML access methods to collect RSS content from multiple web sites and present it in an easy-to-read format on a single web page. It may be of interest to anyone who uses SAS LE or Base SAS on the PC platform macro definition, flat file source 5
27 An Animated Guide: The Logic of Hypothesis Testing and ANOVA Russell M. Lavery This presentation will show how easy it is to understand statistical reasoning when the examples are familiar to the listener. In the first section of this paper illustrates the logic, and subtleties, of hypothesis testing. The second section of this paper shows the logic, and many subtleties, of ANOVA anova, hypothesis testing, p-value, type i error, sample, f-test source 11
28 An Approach to Record-Linkage Using Propensity Score Paul D. Frederick Traditional uses of propensity score involve bias reduction in matching a treatment with a non-randomized control group. The propensity score controls for patient demographics and other background covariates while producing a single scalar summary variable. Distance or nearest available matching between the case and the control group is then performed based on the single score with comparative ease. The same scoring method but different matching techniques are proposed as an approach to record linkage between two or more mock datasets. Each dataset is comprised of shared and unshared patient records, and the datasets lack a common single patient identifier. Common multiple key identifiers are used as the covariate vector in the SAS/STAT LOGISTIC procedure, which generates the single score representing the propensity of existing in one dataset relative to the other. The propensity score can then be match-merged to link records belonging to the same patient as defined by the independent fields. A simplified illustration is provided, and a discussion of this technique of record linkage is accompanied by considerations in deployment, including weaknesses, strengths and practical implications propensity score, logistic distribution, logistic regression, proc logistic, proc step, imputation source 13
29 An Introduction to Matching and Its Application Using the SAS System Jayawant N. Mandrekar,
Sumithra J. Mandrekar
When is a matching study done? How much matching is appropriate? These are but a few routine questions for clinical investigators, epidemiologists and biostatisticians who deal with matched case control or cohort studies. Clearly, this is a multidimensional problem. The decision on what is an ideal matching, i.e., 1:1, 1:2, 1:3 and so on, may sometimes involve the number of variables that should be matched on but often times is primarily based on an investigators experience. We propose to give a gentle introduction to matching covering some of the broad issues and scenarios where matching is appropriate, and summarizing the existing literature along with a discussion of their relative strengths and limitations. We will overview some of the existing SAS macros developed within our institution for matching studies, illustrating their usage with a real life data set. Further, analyses will be illustrated using existing procedures in SAS . In conclusion, we will discuss advantages and disadvantages pertaining to matching based on sample size, and cost considerations conditional logistic regression, logistic regression, logistic distribution, regression analysis, likelihood function, predictor variable, sample, hazard ratio, distance measure, macro call, odds ratio, proc phreg, proc step source 9
30 An Introduction to ODS for Statistical Graphics in SAS 9.1 Robert N. Rodriguez In SAS 9.1, over two dozen SAS/STAT and SAS/ETS procedures have been modified to use an experimen- tal extension to the Output Delivery System (ODS) that enables them to create statistical graphics as auto- matically as tables are currently created. This extension, referred to as ODS for Statistical Graphics (ODS Graphics for short), provides commonly used displays, including scatter plots, histograms, box-and-whisker plots, and contour plots, in ODS output. Many ODS features for tables, such as destination statements, apply equally to graphics. ODS styles control the appearance and consistency of all graphs, whereas ODS templates control the layout and details of individual graphs. This paper introduces statistical users and other SAS programmers to ODS Graphics. Examples illustrate basic functionality, which requires minimal syntax, and typical graph management tasks. Familiarity with ODS for tables is assumed output delivery system, graph template language, ods graphics, qq plot, proc step, proc mixed, scatter plot, proc sgplot, histogram, logistic distribution, regression analysis, box plot, proc template, proc reg, proc ucm source 28
31 An Introduction to Perl Regular Expressions in SAS 9 Ronald P. Cody prxparse, prxmatch, substr function, prxposn, sysrc source 17
32 An Introduction to Regular Expressions with Examples from Clinical Data Richard F. Pless Programmers frequently encounter problems when data are collected in "free text" fields. This situation may result from ill- conceived data collection methods or possibly the realization that comment fields contain valuable information. In either case, this loosely structured data may contain valuable insights if it can be converted into a usable format. This paper discusses how to use the new Perl regular expression functions available in SAS Version 9 for cleaning text fields and extracting information. Elementary regular expression syntax will be covered as will the functions PRXPARSE, PRXMATCH, PRXCHANGE, and PRXPOSN. Examples from clinical data will be used prxparse, sample, adverse events, prxposn, character variable source 9
33 An Introduction to SAS Function-ality Deb Cassidy A major advantage of SAS over some other languages is the vast number of built-in functions that make it very easy to do a task. In SAS 9, there are over 450 such functions. This presentation will include an overview of the structure of functions, some examples of commonly used functions and some pitfalls that often trip a new user. You'll also learn where to go to learn even more about the available functions and what they do. So, if you want to learn a quick way to add fields that might have missing values, extract part of a text field or just get an idea of what else you can do with functions, then this presentation is for you missing value, sysdate9, call symput, error message, macro variable, character functions, macro function source 13
34 An Introduction to SAS/SHARE, By Example Lawrence W. Altmayer SAS/SHARE software is a useful tool for allowing several users to simultaneously access and edit the same data set at the same time in their individual SAS(cid:147) sessions. Without this software, data sets are only available for simultane- ous use if the data set is set to browse mode in the properties window of a SAS frame application. With the software, if the data set properties are set to an edit mode, different users can simultaneously edit different rows of the same table at the same time. This paper gives an introduction to using SAS/SHARE to access and edit a variation of the HOUSES SAS data set in a small SAS/AF(cid:147) application to be used by several users at the same time. We demonstrate how to start and stop a SAS/SHARE server, and assign a LIBNAME to the server. We also show how the application works while different us- ers are simultaneously editing the data. From the software viewpoint, we touch on the requirement for having the server name in the /etc/services file. Finally, we look at SAS/SHARE macros as a way to condense code libname statement, dataset, proc step, autocall macro, macro call, options statement, data step source 11
35 Architecting AppDev Studio Based Web Applications with Object Oriented Methodologies Aimee Basile,
Dave Hayden
SAS AppDev Studio 2.0 provides SAS custom tags to enable quick and easy creation of JavaServer Pages (JSP) to access SAS data. However, extensive reliance on these tags limits an application's functional and architectural options. Fortunately, SAS AppDev Studio provides the Java classes behind these tags, allowing developers to leverage the full power of Java and object oriented methodologies such as component re -use and abstraction, design patterns, and functional encapsulation. We will present a comprehensive, component based architecture for dev eloping web based applications with SAS AppDev Studio. Key elements of the architecture that will be discussed include: JavaBeans , Servlets, and the Model-View-Control design pattern. Intended Audience: AppDev Studio users and SAS users of all levels with an interest in object oriented programming access control, by group processing source 8
36 Architectural Views on Building an Actuarial System with SAS/Warehouse Administrator Dominic Roy,
Alain Baillargeon
SAS/WAREHOUSE Administrator is an advanced code generation tool used in building data warehouses. In our project, the tool was used in order to support and document the development of a large actuarial system. This paper discusses the architecture of the system, the ways and means to solve the problems and the traps and pitfalls of such an approach data warehouse, sas base, data validation rules, audit trail, dataset, business intelligence source 10
37 Array Tutorial (2) $ Beginning Intermediate; Marge Scerbo Arrays are powerful tools, but may prove intimidating to new users. This tutorial presents the basics of array statements and provides insight into usage. Arrays are SAS DATA STEP statements that allow clever programmers to do a great deal of work with little code. Arrays process identified variables as a group rather than individually, therefore saving both machine and programmer time. This paper should help lower the attendee's anxiety level when using arrays do loop, data step, missing value, array, numeric variable, proc step source 12
38 Ask This Old Newsgroup: Using SAS-L Effectively Howard L. Schreier SAS-L is a worldwide online community of SAS software users. Participants discuss various aspects of SAS and help one another solve SAS-related problems. This paper offers a number of suggestions, primarily directed at those asking questions on SAS-L. Following these suggestions may make questions clearer and easier to analyze, thus increasing the chances that prompt, appropriate, and useful responses will follow by group processing, missing value, proc step source 11
39 Assessing Model Fit and Finding a Fit Model Margaret L. Bogle,
Rajiv Goel,
Robert M. Hamer,
Chan-Hee Jo,
Eric Siegel,
Pippa M. Simpson
Often linear regression is used to explore the relationship of variables to an outcome. R2 is usually defined as the proportion of variance of the response that is predictable from (that can be explained by) the independent (regressor) variables. When the R2 is low there are two possible conclusions. The first is that there is little relationship of the independent variables to the dependent variable. The other is that the model fit is poor. This may be due to some outliers. It may be due to an incorrect form of the independent variables. It may also be due to the incorrect assumption about the errors; the errors may not be normally distributed or indeed the independent variables may not truly be fixed and have measurement error of there own. In fact the low R2 may be due to a combination of the above aspects. Assessing the cause of poor fit and remedying it is the topic of this paper. We will look at situations where the fit is poor but dispensing with outliers or adjusting the form of the independents improves the fit. We will talk of transformations possible and how to choose them. We will show how output of SAS procedures can guide the user in this process. We will also examine how to decide if the errors satisfy normality and if they do not what error function might be suitable. For example, we will take nutrition data where the error function can be taken to be a gamma function and show how PROC GENMOD may be used. The objective of this paper is to show that there are many situations where using the wide range of procedures available for general linear models can pay off outlier, proc step, response variable, proc reg, regression analysis, predictor variable, proc genmod, residual, likelihood function, proc princomp, proc glm, normal distribution, class variable, interval variable, gamma distribution, maximum likelihood estimation, sample, proc robustreg source 17
40 Assessing SAS Skill Level During the Interviewing Process Jenine Eason proc step, sas programmer, sas programming, proc format, sas function, proc sql source 11
41 Automated Distribution of SAS Results Jacques Page This paper highlights the programmable aspects of SAS results distribution using electronic mail facilities. It provides a clear understanding of all options, statements and commands for that purpose. Also provided are means for accessing data from your Outlook or Notes address books filename statement, file statement, put statement, proc step, options statement, proc sql source 11
42 Automated Testing and Real-time Event Management: An Enterprise Notification System Gregory S. Barnes Nelson,
Danny Grasse,
Jeff Wright
Data manipulation is a delicate activity, particularly when complex operations are performed on massive amounts of information. Accuracy of results-the forte of the SAS System-is critical for interpreting, forecasting, and decision-making. In addition, when iterative steps are required before data can be utilized, the opportunity for lost or incorrect data, including the possibility of premature processes halting, increases. As time and technology advance, the less likely we will possess prescient knowledge of myriad variables that can affect the algorithms in an enterprise-wide system. However, we can be prepared to manage problems in a timely manner. Event management is a proactive way to identify, track, and resolve these issues. This paper discusses a specific design to monitor the conditions SAS programs encounter. It explores the concepts of automated tests through assertions, events and their attributes, event status management, and automatic notification of events to interested parties. These concepts are presented from the perspective of the SAS programmer and the systems analyst sysrc, data validation rules source 13
43 Automatic Logon to Mainframe and Transfer SAS Data Sets Prasad S. Ravi Loging on to mainframe from PC is usually a tedious process. Tools can be developed to simplify the loging on process, one such tool is demonstrated in this paper which can be easily applied to other platforms. This paper also demonstrates an easier method of transferring SAS data sets from mainframe to PC using a SAS/CONNECT procedure dataset, proc download, macro facility, proc step, macro definition source 8
44 Backing Up File Systems with Hierarchical Structures Using SAS/CONNECT Fagen Xie,
Wansu Chen
SAS programmers routinely backup data files between local and remote systems to avoid loss of data. People also back up data files regularly from development systems where files are purged periodically. However, SAS procedures UPLOAD and DOWNLOAD do not easily handle situations where data and program files are stored in a hierarchical structure. This paper introduced a recursive technique to transfer files and directories stored in a hierarchical structure between a local host and a remote host by extending the use of UPLOAD and DOWNLOAD procedures in SAS/CONNECT software. This technique applies to all operating systems. Also, the concept of calling a macro recursively within a macro can be easily applied to other circumstances dataset, data step, sample, proc download, macro variable source 10
45 Balancing Data Quality Against Time and Money Constraints Susan B. Long,
Linda Roberge,
Jeff Lamicela,
Mummoorthy Murugesan
Data quality is vital. Decisions made and actions taken based on incorrect data have the potential for disaster. While you can't afford NOT to clean your data, you never have the necessary resources to ensure that your data are truly clean. Therein lies the paradox. How do you balance these two competing needs - ensuring data quality but within a limited time frame and on a limited budget? At the Transactional Records Access Clearinghouse (TRAC), a research center at Syracuse University, we have been engaged in the quality-versus-resources struggle since 1989. We hope that the practical lessons we've learned along the way and the SAS tools we've developed in the process can be used as a guide for others data cleaning, data mining, where statement, proc step, macro variable source 18
46 Basic SAS PROCedures for Generating Quick Results Kirk Paul Lafler As an IT professional, saving time is critical. So is delivering timely and quality looking reports to management, end users, and customers. The SAS System provides numerous "canned" PROCedures for generating quick results to take care of both... and more. Attendees will learn how basic SAS PROCedures such as SORT, PRINT, SQL, and FORMS are used to create detail reports; how CHART, FREQ, MEANS, PLOT, and UNIVARIATE are used to summarize and create graphical, tabular, or statistical output; how SORT and DATASETS are used to manipulate one or more columns of data and manage data libraries; and several useful techniques including how to inform the SAS System which data set to use as input to a procedure, how to subset data using a WHERE statement (or WHERE= clause), and how to perform BY-group processing to separate data into groups of like information proc step, proc means, numeric variable, libname statement, proc freq, proc sort, proc univariate source 17
47 Bayesian Model Averaging Using SAS Software Melissa Whitney,
Ngo Long
The flexibility of the mixed-model framework in SAS is well-suited for a wide variety of statistical modeling applications. Smoothing methods that use penalized splines can be employed using generalized linear mixed-effects models. These models allow researchers to relax the strict linearity assumption required for traditional regression while simultaneously modeling other relationships of interest. For this paper, data on daily mortality, weather and seasonal variables, and average daily air pollution (PM10) levels in Chicago were used to create log-linear models to predict total daily mortality. To allow for nonparametric adjustments for weather and seasonal variables, random- effects penalized splines were included in a generalized linear mixed-effects model using SAS. In order to estimate a PM10-mortality dose-response curve, expected daily mortality counts were modeled as a function of PM10 using truncated linear fixed-effects splines with set numbers and locations of knots. All possible models in this pre-specified family of models were then averaged (weighted by posterior probabilities computed based on the model's BIC) to estimate a final dose-response curve. This technique results in a model-averaged dose-response relationship that incorporates model uncertainty with respect to both location and number of knots while allowing for non-parametric adjustment of continuous covariates such as weather and seasonality posterior probability, degrees of freedom, proc mixed, regression analysis, proc gam, likelihood function, maximum likelihood estimation, poisson distribution, proc step, restricted maximum likelihood source 9
48 Behind the Scenes at SAS-L F. Joseph Kelley random number generation, input statement source 11
49 Bells and Whistles for One-Line Text Box to Create a Smarter Where Clause Ted J. Guo SAS/INTRNET-application developers are familiar with adding one or more one-line text boxes into the web pages of their design. When a SAS or HSQL program answers a call from the web page, it receives and processes the contents in the text box. Problems arise when the text box serves as a where clause: A simple typo is likely to result in an unintended and disappointing outcome. In addition, while filling in a text box as a where clause to construct a data subset, for instance, one might pause and wonder about the correct spelling of the name of a particular variable or the correct value of a selected variable. To provide the user a better control of the accuracy while working with the text box as part of a where clause, this paper introduces a practical solution to improve the quality and efficiency. Programming techniques in Application Dispatcher, htmSQL, and JavaScript are tied together to do the trick. Sample SAS and htmSQL programs are provided to the interested user allowing for testing and implementation. Major portions of these sample programs can be inserted into the user's SAS programs or htmSQL programs with only minor changes. Key words: SAS/INTRNET, htmSQL, Application Dispatcher, JavaScript where statement, macro definition, proc sql, sample source 13
50 Better Clay Builds Better Bricks: Some Simple Suggestions to Writing Professional Macros Michael P. Bramley Interested in taking your SAS macros to a new level? This tongue-in-check article describes a collection of tips, techniques, and macro functions that represent the author's unorthodox approach to software: it should never be provided on an "AS IS" basis. The offerings in this article range from the basic of knowing exactly what the user expects and wants to the more esoteric, yet highly useful, principle of providing cogent feedback and error messages. This article promotes an integrated philosophy of professionalism for SAS system designers and programmers. This article's target audience is anyone who has, does, or ever will, design or write a macro. Regardless of how basic or omniscient the macro's function or the final task to be accomplished, this author believes that the following principles will result in improved code and happier users macro variable, libname statement, macro function, dataset, symbol table, sysrc, options statement, variable list, %if-%then-%else, footnote statement, if-then-else, macro parameter, sas function, sas programmer, proc sql, macro definition source 11
51 Bootstrap 101: Obtain Robust Confidence Intervals for Any Statistic Dave P. Miller For almost any statistic of interest, SAS/STAT PROCs generally contain options for obtaining a confidence interval. Some PROCs even provide multiple computational methods for estimating the standard errors and confidence intervals. In almost every case, however, the accuracy of the confidence intervals depends on parametric assumptions. In such cases, bootstrap methods may be used to obtain a more robust non-parametric estimate of the confidence intervals. Bootstrap samples are very easy to generate using SAS software; however, it is a very computationally intensive method. In particular, the method is easy to apply in its most basic form even if you are not already familiar with bootstrap methods, as long as you are not already stretching the capabilities of your CPU and disk space. The rationale for the bootstrap and the basics for interpreting the confidence intervals are explained through an example. The most efficient way to program and compute bootstrap confidence intervals depends in part on the size of the data set and the power of one's computer. Two different approaches are suggested depending on the limitations of ones data set and computing environment bootstrap, confidence interval, sample, proc step, proc calis, macro definition source 8
52 Bring the Data Warehouse to the Office with SAS Integration Technologies Peter W. Eberhardt No matter how sophisticated you're your data warehousing solution may be you will still get the question "Can I have that in EXCEL?" The Microsoft Office suite is ubiquitous in most large organizations these days. And regardless of how and where the enterprise intelligence computing goes on, the suite of Office products needs to be able integrate with this enterprise intelligence, or the time and energy you spend on ensuring data quality can be quickly lost with a sloppy cut and paste into EXCEL or WORD. With the release of SAS Integration Technologies the unrivalled analytical and business intelligence capabilities of SAS can now be delivered to the desktop using the Microsoft Office suite. This paper will introduce some components of SAS Integration Technologies, and then show how to use these components to integrate SAS into Microsoft Office Products without the need for SAS on the user's computer. There are few SAS programmers and/or analysts who have not heard the refrain 'Can I have that in an EXCEL spreadsheet?'. And, once provided, the additional and inevitable refrain 'Can you run it again with this one change?'. If you have SAS/ACCESS for PC File Formats, generating the spreadsheets is not too big an issue, assuming you have time to make the change and run the programme. And if you do not have SAS/ACCESS for PC File formats, then you have yet another layer of conversion, additional time, and of course the window of opportunity for errors to creep in. And if the results are required in a MS Word compatible format or a MS Access compatible format there are yet other problems you may face. Many people turned to Dynamic Data Exchange (DDE) to try to alleviate these problems. In this paper I will introduce a more robust set of tools aimed at sharing data between SAS and non-SAS applications - SAS Integration Technologies; but first, lets look at some alternatives to exporting data from SAS to MS Office excel, macro variable source 11
53 Building a More Robust SAS Application David A. Scocca When you develop a SAS/AF application, you have to be ready to handle the worst. Files may be unavailable, users may provide unexpected input, or a change in configuration may catch you unaware-your program needs to behave properly under any circumstances. SAS Component Language now provides facilities for handling exceptions and for trapping run-time errors which allow you to make your applications much more robust. This paper discusses how to use these tools to make your application impervious to the slings and arrows of fate exception handling, sysrc, dataset source 6
54 Building a Purchasing Data Warehouse for SRM from Disparate Procurement Systems Zeph G. Stemle SAS Supplier Relationship Management (SRM) solution offers organizations the tools to analyze and manage purchasing information. This spend information is traditionally stored in procurement systems. SRM requires the data to be consolidated and summarized in a data warehouse. Therefore, the procurement information must be gathered from the various sources and housed in a common data warehouse. Many organizations have multiple divisions resulting in multiple procurement systems. These systems often use different technologies, post the data at different times in a month, and store data in a variety of formats. Additionally, not all systems store the same information. For instance, one system may store purchase facts in U.S. Dollars and another in Euros. This presents an interesting challenge. This paper discusses a solution for gathering procurement data from several disparate sources and storing it in a common data warehouse on a Win2000 server. The solution is fully automated and utilizes SAS Warehouse Administrator flat file, dataset, data warehouse, input statement, proc import, proc step source 10
55 Building an Intelligent Marketing Database System: A Case Study in the Value of Customer Knowledge Jeffrey Howard,
Phillip Birdine
Over the past decade, many companies have found the general success of data warehousing and marketing database initiatives, and their relative value difficult to quantify. This presentation suggests that the quantification of the value of a database initiative should be based on two primary metrics: (1) increased efficiency and productivity from eliminating labor-intensive data extraction, manipulation and analytical processes and (2) incremental revenue opportunities created through the generation of customer knowledge. By detailing a case study of a marketing database project within a consumer finance company, issues of design, development, implementation, utilization, and value will be explored source 2
56 Building an Online Entry Form with WebAF (and a Little Java) Frederick E. Pratter The AppDev Studio software suite from SAS is a comprehensive set of tools for developing web applications. This paper is intended as a quick introduction to WebAF, the SAS IDE (Integrated Development Environment) for building dynamic web content based on SAS data. Once an initial system configuration has been established, it is possible to provide dynamic access to SAS datasets in real-time for thin clients that do not have any SAS software available. This is accomplished using the JavaServer Pages technology from Sun Microsystems, along with some server-side SAS resources dataset, sample source 20
57 Building and Using User Defined Formats Arthur L. Carpenter Formats are powerful tools within the SAS System. They can be used to change how information is brought into SAS, how it is displayed, and can even be used to reshape the data itself. The Base SAS product comes with a great many predefined formats and it is even possible for you to create your own specialized formats. This paper will very briefly review the use of formats in general and will then cover a number of aspects dealing with user generated formats. Since formats themselves have a number of uses that are not at first apparent to the new user, we will also look at some of the broader application of formats. Topics include; building formats from data sets, using picture formats, transformations using formats, value translations, and using formats to perform table look-ups proc format, proc step source 12
58 Business Views of Building an Actuarial System Using SAS/Warehouse Administrator Dominic Roy,
Josée Genois
SAS/WAREHOUSE Administrator is an advanced code generation tool used in building data warehouses. In this project, the tool was used in order to support and document the development of a large actuarial system. This paper discusses the business decision process that led to the selection of this software product as well as the problems that were encountered and the results of the implementation data warehouse, data cleaning, business intelligence, dataset source 9
59 Case Studies in Time Series II: Periodic Behavior and Related Topics David A. Dickey proc freq, time series analysis, regression analysis, proc step, covariance, binary variable, proc reg, seasonality, residual source 17
60 CATALOGER: Updated for SAS 9 Michael Gilman,
Alan D. Leach
Cataloger, written entirely in SAS, is an indispensable tool for any SAS developer working with SAS catalogs and data sets. With Cataloger, SAS developers can easily view, compare, and manipulate catalog entries, search catalog entries and create publication-quality documentation - just to name few of the myriad of features that existed in previous versions. Cataloger has been updated and enhanced for version 9 of SAS with major new features. For example, using Cataloger s easy point and click interface, developers can compare the properties of two SAS data sets and review and set many aspects of SAS data sets such as variable order, indexes and passwords. In addition, the Catalog Documentation Manager has been enhanced and expanded to provide additional ODS destinations for complete documentation of SAS catalogs. Also, the side-by-side comparison logic has been improved with the integration of Difference Detective catalog entry, dataset, catalog source 10
61 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 almost 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 results back to users' Internet browser. 3. Building menu driven system to give users the option to analyze the data interactively through Internet clinical trial, adverse events, survival analysis, proc means, data science, anova, vital signs, clinical data source 16
62 Colonoscopy for the SAS Programmer William C. Murphy In order to maintain good program health, the colon should be used often and well in the SAS program. Although the colon is one of the most powerful and useful symbol operators available to the programmer, some of its features are rarely found in typical SAS code. In particular, its prefixing power, along with programming conventions, can produce smaller and more easily understood code. This, in turn, means fewer errors in the program and less typing for the programmer. Not only can you KEEP, DROP, or FORMAT variables quickly with the use of colons but you can readily SAVE or DELETE data sets. The colon prefix ability can be used in DATA steps, as well as in macro programs and PROCs. The colon can be employed in managing temporary variables, formatting similar variables, dealing with unknown numbers of variables, and cleaning up after macro execution proc step, proc sql source 5
63 Communication-Effective Use of Color for Web Pages, Graphs, Tables, Maps, Text, and Print LeRoy Bessler Though it includes information and coding specific to SAS, SAS/GRAPH, and ODS, this paper is also a software-independent guide to using color to communicate, rather than decorate. Color does more than merely add visual excitement to your output. Some visual communication situations require color- the human eye can reliably distinguish only five shades of gray (actually, five shades of any one color). The commonest form of color blindness cannot distinguish red from green-yet red, yellow, and green is (unnecessarily) the most popular form of color-coding for information, the so-called "Traffic Lighting". Furthermore, it is not uncommon to encounter nearly unreadable black text on a medium-to- dark blue background, or even yellow on white. There is a best color system for web publishing, and a small safe subset of that 16.7-million-color palette. And there is a most-convenient-to-use color system for print-only publishing. Color swatches can be generated with just a few SAS statements, and sample charts for evaluating text-background color combinations are not much more difficult. For high-volume samples, macro-based color design tools are also provided. This paper was created with SAS 8.2. The intended audience is all levels of SAS users, and users of any other software that creates color output sample, proc step, macro loop, output delivery system, macro definition, proc print, sas output, %if-%then-%else source 21
64 Comparing the Desired Variable Definitions with the Actual Data Sets across Multiple Studies Shane L. Hornibrook The flexibility of the SAS System offers a variety of methods by which programmers can compare data across studies to ensure that the datasets and variables meet quality assurance standards. In industry where quality control (QC) is paramount, analysts must choose data comparison methods which provide the most reliable comparisons. Precise programming of datasets to meet FDA and client approval is of the utmost importance in the pharmaceutical industry. To meet that challenge programmers must perform QC on many different levels. When provided with data definition documents, a programmer must be able to quickly and efficiently compare the specifications to the datasets across multiple studies, and prepare a methodology for categorizing and scoring the differences between specifications and datasets. This is especially paramount for Contract Research Organizations (CROs) where programming efforts for multiple studies with the same client are running concurrently. Deviations from specifications must be adequately documented and adjusted as needed dataset, proc step, character variable, excel source 7
65 Complementing SAS with Perl: Updating, Creating, Running and Checking SAS Code Marcelo Coca-Perraillon,
Matthew P. Lambert
This paper describes a way to complement the SAS macro system using Perl. SAS macros can save a considerable amount of typing since they can generate SAS code. Perl can save even more tedious, repetitive typing and clicking since it can generate macro statements. Suppose, for example, that one needs to create reports and statistical analyses for many experimental protocols. Although the original SAS program uses macros, one still needs to define several macro parameters and variables before running each report. The variables and parameters contain dates, titles, output paths, conditions for data steps, and so on. Further, there are three other constraints. First, the code must be flexible and easy to update. Second, a SAS code file for each report needs to be saved in order to perform further analyses and debugging. Finally, one has to import parts of the SAS output into another application. A short Perl script not only can accomplish all these tasks simultaneously, but it can also create the necessary code to run all the reports in batch mode and scan the log files for errors macro variable, macro definition, sas output, excel, error message source 9
66 Controlling Graph Size: Building Thumbnails and GIF Files Using SAS/GRAPH Arthur L. Carpenter,
Richard O. Smith
GIF is one of the primary file forms used for graphs that are to be displayed on the web. However because of differences in browsers and the need to control the size of the graphic display, the standard GIF device that is defined with SAS/GRAPH is not always appropriate. This paper discusses alternative methods that can be used to create GIF files that will display graphs of various sizes. Since secondary considerations as to graph contents, options, and control alternatives become necessary when the size of a graphic display is reduced, these issues are also presented proc step, proc gplot source 8
67 Creating an Intranet Toolbox of Selective Oracle Metadata John Charles Gober,
Deborah Mullen,
Jana Smith
The purpose of this paper is to demonstrate an alternative method of allowing users to view the attributes of their Oracle Databases. This application is useful for programmers and developers who do not have access to Oracle Designer or other similar applications which allow visual representations of your databases. Even though this application is fairly simple in its appearance, it does give the user critical information about their database tables, variables, and indexes. By being able to cross reference tables with variables, variables with indexes, and indexes with tables this in turn will allow the rapid development of programs and applications which need to use these tables proc step, proc report, proc sql, create table, proc template source 9
68 Creating and Exploiting SAS Indexes Michael A. Raithel SAS indexes can drastically improve the performance of programs that access small subsets of observations from large SAS data sets. Yet, many SAS programmers never use them. In this workshop, you will learn how to create simple and composite SAS indexes, determine which variables make good index key variables, discover when creating and using indexes is appropriate, learn about centiles, and find out how to generate index usage messages. You will see-first hand-how indexes can improve processing when subsetting and/or updating a large SAS data set. To be successful in this workshop, you should have base SAS knowledge, including creating and updating permanent SAS data sets. You will leave this fun-filled 75-minute workshop with a practical knowledge of how to create and exploit SAS indexes dataset, index, by group processing, proc step, where statement, index creation, proc sql, modify statement, set statement, proc contents, variable, cpu time, libname statement, proc freq source 10
69 Creating Maps with SAS/GRAPH - Drill Downs, Pop-Ups, and Animation Michael S. Zdeb Maps can be created with SAS by using the GMAP procedure, one of the PROCs available within SAS/GRAPH. Recent versions of SAS/GRAPH enable users to create maps in which map areas can be hyperlinked to additional information (drill- downs); additional information can be provided to map users when a mouse cursor passes over a map area (pop-ups); and a time dimension can be added using animation. This workshop first introduces you to the basics of creating maps with SAS/GRAPH. The presentation then focuses on choropleth maps, which are two-dimensional maps that use color or fill patterns to represent data in map areas. After a quick look at basics, the majority of the workshop will be spent on learning how to move from static displays to those that offer drill-downs, pop-ups, and animation. Though the workshop will use maps to illustrate these relatively new features, concepts learned in the workshop can also be applied to graphics created with other SAS/GRAPH PROCs such as PROC GPLOT and PROC GCHART proc step, proc gmap, sas output source 21
70 Creating Meaningful Data from Web Logs Using Base SAS Jenine Eason,
Jerry Johannesen
Analyzing web logs can bring very valuable information to your company. Not only can data collected from web logs give insight to management about what is happening on a web site, it also provides exact data for trending that sales can use to increase profitability. Without using a pre-packaged tool, base SAS can be utilized to read and evaluate web logs. The greatest challenge is dissecting a web log and parsing its values. This paper will bring understanding to web logs by identifying its different pieces and how best to collect them. We'll explore some of the basic reporting metrics utilizing transformed web logs dataset, sas base, proc step source 14
71 Creating Ranking Charts Using SAS/GRAPH and the Annotate Facility Luke Castellanos,
Nick Spanos
In 2001, the American Community Survey staff at the U.S. Census Bureau began producing ranking charts and tables in order to provide reporters as well as Federal, state, and local government decision makers with a simple yet effective visual representation of comparative data on key issues across states, counties, and places. In the initial year of implementation, there were only eight ranking charts. Due to high data-user demand, the number of charts grew to nineteen in 2002. All of the charts were developed using a combination of Base SAS and the Annotate Facility located within SAS/GRAPH. The methods explored in this paper will be especially informative for those seeking to use SAS/GRAPH to meet their non-standard graphical production needs. This paper will explore the basics of the Annotate Facility and demonstrate how to create a custom chart and legend using Annotate confidence interval, proc gplot, proc step source 10
72 Creating Scales from Questionnaires: PROC VARCLUS vs. Factor Analysis David J. Pasta,
Diana D. Suhr
Variable cluster analysis as implemented in PROC VARCLUS is an underutilized alternative to traditional multivariate methods for scale creation such as principal components analysis and factor analysis. It tends to produce scales that are simple and easy to interpret. Some of the reluctance to use VARCLUS may be due to the fact it is not widely discussed in textbooks and some may be due to the fact that some "art" as well as "science" is helpful in getting good results. In this paper, we illustrate the use of PROC VARCLUS on the analysis of the Scale of Athletic Priorities (Chelladurai et al., 1984) and compare the VARCLUS approach to more traditional approaches previously used (Suhr, 2003) factor analysis, proc princomp, correlation, r-squared, proc varclus, proc step, proc factor, scree plot, covariance, confirmatory factor analysis, sample, maximum likelihood estimation, oblique rotation, varimax rotation, likelihood function source 19
73 CRM: Making it Simple for the Financial/Banking Industry M. Aslam Chaudhry Executing Customer Relationship Management (CRM) for the financial and banking industry involves many issues, including the use of unique processes and solutions. To be successful with CRM, financial and banking organizations must define and develop a business strategy as well as a supporting infrastructure for that strategy. SAS Banking Intelligence Solutions can be used to complete these tasks smoothly and efficiently - even by the non-technical banking business user community. With SAS Banking Intelligence Solutions, banking and financial industry business users can quickly learn how to segment, cross-sell, up-sell, and retain customers. Additionally, the users can monitor customer life-cycle trends to aid customer portfolio management with a "customer equity" assets management focus customer retention, financial services, subscriber analytics, proc freq source 12
74 Customer Profitability Modeling at Aeroplan Sylvain Tremblay The loyalty marketing industry has become a mature market. In Canada, multi-merchant loyalty coalitions now exist and more than 70 percent of all households participate in at least one loyalty program. As a consequence, customers are more alert than ever and carefully choose how they interact with the programs in order to optimize the value they get. The challenge for loyalty marketers is to differentiate their program, create value for members while maintaining and increasing their profitability. Aeroplan, one of the major loyalty programs in Canada, is tackling this challenge with a series of initiatives, one of which is the development of a cus tomer profitability model (CPM). The goal of this project is to create an application that provides a member-centric view of the value that a customer brings to Aeroplan on a monthly basis. This requires the manipulation of millions of transactions and the use of complex business rules to derive the direct margin for each member. SAS software, because of its robustness and flexibility, was chosen as the development tool for this application. Customer value has many definitions and usage. On the business side, this paper will show how profitability was defined, why was it selected as a measure of customer value and how will it be leveraged to support business strategies in loyalty marketing. On the technical side, we will illustrate how SAS was used to build the application, with a focus on optimization and performance, and how it was used to develop an interface for the parameter entry and maintenance customer profitability, data step source 6
75 Data Management in Analyzing Clinic Trial Data - Metadata Application Julia Z. Zhang,
David C. Chen
Efficiently handling Clinical Trial Data based on the Clinical Data Interchange Standards Consortium [1] (CDISC) standard, the regulatory rules from U.S. Food and Drug Administration (FDA) and electronic data submission requirements is very important for Drug Development. Effectively managing Clinical Trial data can vastly increase work efficiency and reduce the probability and introduction of mistakes. The data handling procedure presented here is based on several years of practical working experiences - coupling a metadata application tool on the desktop and specialized SAS macros to apply the metadata to satisfy this need macro definition, work efficiency, clinical trial, clinical research, macro variable, cdisc source 6
76 Data Mining Applications for a Six-Sigma Project Jong-Hag Jeon This Presentation shows an example of Data Mining Applications at a steel making factory. Engineers who are responsible for quality control encounter two kinds of difficulties in solving quality problems using statistical methods. Hot blast stoves are important to energy consumers. Hot blast sensible heat supplies 10%-15% of the total energy consumed by the blast furnaces. Reduction in energy consumption for hot blast heating has an important impact on hot metal production cost. The operation of industrial blast furnaces require the constant delivery of hot blast air from blast furnace stoves. The blast air must be supplied with temperature and flow-rate as close as possible to set point. In the long term, the control must also meet the conflicting objectives of thermal efficiency, cyclic stability and load response speed. Optimizing combustion conditions contributes largely not only to the prolongation of hot stove service life, but also increases in thermal efficiency of the stove during operation. This presentation shows that the hot stove combustion was analyzed both theoretically and experimentally to optimize combustion conditions preventing excessive development of combustion flames as well as the abnormal heating cause mainly after burning. In addition, the development feed forward guidance simulator is based on Neural Network Models and multi-stage combustion pattern control systems developed through Data Mining. The introduction of these systems required only minimal operation costs, decreasing the hot blast stove energy costs approximately 15%. We have developed this system with SAS for No.3 Blast Furnace in Pohang Steel Works, Korea neural network, network optimization source 3
77 Data Quality Management: The Most Critical Initiative You Can Implement Jonathan G. Geiger SIX HUNDRED BILLION DOLLARS ANNUALLY - Got your attention? That is what poor data quality costs American businesses, according to the Data Warehousing Institute. Poor data is also the leading cause of many IT project failures. So, given that this is such a serious problem, why aren't more companies addressing it more aggressively? This session discusses these topics as well as those detailing how companies can improve their data quality using the proven architectural blueprint, the Corporate Information Factory, as a basis for mapping your data quality processes. This session will explain the importance of data quality management, quality expectations and techniques for setting them. Finally, the program ends with practical advice for getting started on your data quality management program. The specific topics covered include: (cid:120) What is Data Quality Management? (cid:120) Data Quality Management Challenges (cid:120) Data Quality Definition (cid:120) Four Pillars of Data Quality Management (cid:120) Getting Started data cleaning, data governance, data validation rules, business intelligence, data profiling, sample, data warehouse source 15
78 Data Quality Solution - A Technical Overview Eric Hunley So, you have finally accepted the fact that there is room for improvement in the quality of your data, or maybe mandated compliances are forcing you to take a closer look at it. Now what are you going to do about it? Do you have a plan in place that will lead you down this trail of uncharted territory? What about the technology that will get you to where you what to be? Learn how the SAS Data Quality Solution (SAS and DataFlux Technologies) can help you map out your data quality journey and provide the vehicle to get you there in order to re-gain or increase the confidence in the information that drives your business decisions. See first hand how to: (cid:131) Gain a better understanding of where issues with your data exist (cid:131) Build business rules that drive the cleansing process (cid:131) Cleanse and Augment your data (cid:131) (cid:131) Report and Analyze the progress you have made Integrate it within your data management infrastructure data cleaning, data validation rules, sample, business intelligence, data profiling, data integration source 14
79 Data Standardization Strategies Producing Rapid International Disease Surveillance and Intervention: The Challenge and Solution Scott Optenberg Currently there are six infectious diseases: pneumonia, tuberculosis, diarrhoeal disease, malaria, measles, and HIV/AIDS that account for half of all premature deaths from infectious disease in the world. Numerous diseases, once thought eliminated, are returning at an alarming rate, and in the last 20 years over 30 new diseases have emerged: hantavirus, diphtheria, meningitis, cholera, dengue, plague, typhus, HIV/AIDS, Legionnaires', Marburg, CJD, and Ebola, to name a few. The WHO Director-General repeatedly calls for governments to play a stronger role for "improved surveillance systems and better access to global health information." A specific approach to global disease surveillance is currently being implemented within multiple Third World nations. This approach is based on Health Level Seven (HL7) international data processing and management standards and technologies. However, one of the most persistent problems plaguing this type of implementation and adversely affecting the potential efficiency and effectiveness of such a system is the lack of standardization in many of the underlying data tables necessary for system operation. Such lack of standardization has traditionally been either tolerated for lack of an alternative, or if addressed, has been done so in a traditional exception basis that has proven to be only marginally effective and grossly inefficient. Dr. Optenberg will demonstrate 'real time' to the attending audience, directly employing the software tool dfPower Studio 5.0 by DataFlux (a SAS company), the standardization of what, at first review, would appear to be an extremely resource intensive, if not a prohibitively expensive task data wrangling, dataset source 2
80 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. This paper will not discuss platform dependencies or benchmark efficiencies. Advanced data management/manipulation techniques will not be discussed. This is not an attempt to teach PROC SQL, but rather to inform the user wanting to make an educated choice of available techniques proc sql, proc step, sas base, create table, dataset, order by, proc sort, group by, set statement, data governance, inner join, relational database, sas programmer, select, by group processing source 13
81 Data Warehouse: ROI and Database Design Bill Inmon data warehouse source 20
82 DATA: "Getting to Know You; Getting to Know All About You" Larry W. Douglass,
Sue E. Douglass
Before data can be appropriately analyzed, researchers and/or analysts, must get to know their data. Getting to know your data involves both descriptive statistics and graphics techniques. PROC UNIVARIATE provides many descriptive statistics, graphics tools, and some simple inferential statistics to help you examine your data. Starting in Version 8.2, a number of high-quality graphics options were added to PROC UNIVARIATE to help you visualize your data and compare it to a number of possible theoretical distributions (normal, exponential, lognormal, etc.). Goodness-of-fit tests are also provided. A side benefit of a thorough examination of your data is that you will also identify possible errors and outliers in your data. PROC UNIVARIATE should be the tool of choice for getting to know your data. This tutorial is a beginner's approach to using PROC UNIVARIATE. It will concentrate on understanding default output along with a few simple options that will easily allow SAS users at any level to quickly examine their data normal distribution, sample, proc univariate, histogram, proc step, proc means, standard deviation, sample size, null hypothesis, normality test, outlier, by group processing, interquartile range, box plot, p-value, proc freq source 17
83 Dating SAS and MS Excel Erik W. Tilanus Exchanging formatted date and time values between SAS and EXCEL may appear problematic, since the formats do not always match. Using local language versions of EXCEL can aggravate the problems. Internally both SAS and EXCEL use a numeric representation of dates and times. However they differ in anchor point (day 0) and in method. Using the internal structure, problems can be avoided, although a relatively simple transformation is required excel, sysdate9, date variable source 5
84 DB2, SAS, and You Robert Ellsworth Access DB2 using SAS, methods to get the best results for database access. We will cover tips and tricks to get the most out of SAS Access for DB2. The topography of your system dictates how your programs will perform. We look at many methods to access and process your data highlighting pros and cons proc sql, create view, time series analysis, proc step source 5
85 Debugging 101 Peter Knapp missing value, proc step, proc print, run, by group processing, input statement, error message, character variable, date variable, sum, put statement source 15
86 Designing Information Maps for Ad Hoc Reporting Diane Hatcher SAS information maps provide a layer of metadata that describes your physical data structures in terms that business users can understand. In the SAS 9 Business Intelligence reporting interfaces, business users are presented with a single list of items they can use to answer their questions. Based upon the user's selection, SAS will automatically generate the appropriate query code. This paper will provide helpful tips on how to create information maps to provide your business users with the appropriate items to ensure accurate and consistent results. We will explore how certain settings in information maps can impact SQL and MDX code generation. This paper is written for people whose role is to provide access to enterprise data for business users proc sql, group by, structured data, where statement, data validation rules source 11
87 Designing Validation and Verification Activities as a Staff Development Tool John Gorden We can avoid using expensive experts to do tasks they do not enjoy, increase productivity, train a new generation of experts, and ensure quality outputs by using validation and quality control to develop programmers. Validation activities expose programmers new to the industry to the types of outputs they will produce, while providing a function vital to any company that needs to maintain procedures and documentation ensuring the quality of programs and outputs. But, before validation and quality control activities can be assigned to these less- experienced programmers, some crucial groundwork needs to be in place. We need to be aware of their skills and provide guidance and source materials that fit their level of expertise. With some forethought, virtually any validation task can be tailored to the abilities of the person providing validation/quality control quality control, data cleaning, adverse events, dataset, proc step source 8
88 Developing a System with SAS/IntrNet, Accessing an Oracle Database, Some ODS and a Whole Lot of Problems Gabriel Cano,
Bob Cameron,
Kevin McGowan,
Jean G. Orelien
The National Institute of Environmental Health Sciences (NIEHS) National Toxicology Program (NTP) has sponsored the redesign of its Toxicology Data Management System (TDMS) called The Toxicology Data Management System Enterprise (TDMSE). This redesign brings a multigenerational development from 1980 back into focus with current technologies. This paper will describe issues regarding the approach of redesigning a report delivery system developed with SAS/INTRNET. The system also uses SAS SQL to access an Oracle database. Internet and system connectivity issues will be detailed as they effected system implementation along with contingency plans when system connectivities failed. Other challenges encountered during development will be discussed such as SQL queries, ODS, HTML web posts, a little bit of Java, modifying the SAS/INTRNET configuration files and apparent system anomalies proc sql, oracle, sas batch, proc step source 12
89 Developing and Deploying Java Applications Around SAS: What They Didn't Tell You in Class Jeff Wright,
Gregory S. Barnes Nelson
dataset, proc step, data cleaning source 11
90 Developing Custom SAS Tasks for SAS Enterprise Guide and the SAS Add-In for Microsoft Office James White,
Stephen McDaniel
sample, sas enterprise guide source 2
91 Developing Data Marts and Web-Enabled OLAP for Actuarial and Underwriting Analysis Michael Krumenaker,
George Bukhbinder
A data warehouse or data mart is the foundation of an on-line analytical processing (OLAP) system used to develop pricing models in the insurance industry. The issues we face in creating such a data mart and multi-dimensional database (MDDB) for actuarial and underwriting departments include (1) which factors to evaluate using OLAP, i.e., selecting the class variables - e.g., age, experience, points - and analysis variables related to premiums and claims, (2) how to most efficiently and accurately develop MDDB cubes from customer transaction records in the data warehouse, and (3) how to empower business users to change business rules without requiring changes to hard code, using popular user-friendly software and a simple syntax. The overall solution must achieve a variety of goals: Minimizing processing time requires efficient code; ensuring accuracy with routines to detect data anomalies throughout the process; maximizing the solution's analytical value, which requires close consultation with the users and an understanding of their business issues. We can enable business users to manage changes in certain business rules without re-programming by using tools familiar to users (e.g., Microsoft EXCEL) and the SAS macro language to automatically generate new code during each periodic production run. Choosing class and analysis variables for each MDDB cube Analysis variables are the quantities being measured. The analysis variables include premium, the number of claims, the amount of loss incurred and the amount paid, and allocated expenses. Class variables are variables whose effects are being measured individually or in concert with other class variables class variable, data validation rules, data step, macro variable, lookup, cpu time, macro definition, excel source 8
92 Dictionary Tables and Views: Essential Tools for Serious Applications Jeffrey M. Abolafia,
Frank C. DiIorio
Dictionary tables were introduced to the SAS System in the early 1990's, in Version 6.07. Laden with information that is often difficult, and sometimes impossible, to get through other means, they still appear to be on the outside of many programmers' Bag of Tricks. This is both perplexing and unfortunate for as we will see in this paper, once their content and organization is understood, they are readily adapted for a range of applications that, to use an old saw, "are only limited by your imagination." This paper describes dictionary tables and their associated SASHELP library views. It: · presents scenarios that show how they can be used · · · gives high-level descriptions of some of the more important (a relative term, to be sure) tables identifies features of SQL and the macro language that are commonly used when writing programs that effectively use the tables shows examples of the tables' use, emphasizing the use of SQL and the macro language interface The reader should come away from the discussion with an understanding of the tables as well as with a checklist of SQL skills that are required to use the tables most effectively proc sql, macro variable, dictionary tables, macro facility, proc step, create table, proc contents, character variable, proc print, sas log, select, options statement, macro put, macro definition source 20
93 Directly Using the Lab Ranges Data into SAS Program of Determining Lab Normality Don (Dongguang) Li This article introduces a simple and useful method to directly apply the laboratory normal ranges data into the SAS program of determining the normality of the results of laboratory examinations. The procedure reads the normal ranges data from a separate raw data file and converts them into a SAS output text, which is combined with the conditional code to create an output program. The SAS output program is saved as a source code file and can be included in the major program of handling the laboratory data with normality determination laboratory data, data governance source 4
94 Dirty Data? dfPower Studio to the Rescue! Kimberly A. Todd,
Catherine A. Lindsey,
Kristin M. Debnar
The most challenging aspect of migrating legacy data into a new system is cleaning up years of data entry inconsistencies. DataFlux's dfPower Studio provides the tools to meet this challenge. The HIV/AIDS Reporting System (HARS) captures data to monitor the HIV/AIDS epidemic, including names and locations of facilities of diagnosis and treatment. Each record may contain up to five different facility entries. The name and location of a given facility varies considerably from record to record. Before migrating to the new system, these data must be cleaned. In order to standardize across all five sets of facility fields in a single pass, a SAS data set is created containing one record per unique facility entry. dfPower Studio is then used to create and apply a standardization scheme to each facility entry record. After the scheme is applied to the SAS data set, the original HARS database is updated. State and local health departments have utilized this process and have found it to be invaluable. In the absence of an automated data cleaning process, cleaning data manually would require days or even weeks. Using dfPower Studio and this process, years of data are uniformly standardized in a fraction of the time dataset, key source 9
95 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: (cid:131) macro coding techniques (cid:131) efficient programming tips (cid:131) code reduction tricks (cid:131) maintenance-free programming suggestions proc step, proc sort source 4
96 Double Your Pleasure, Double Your Words... David L. Cassell Now that SAS 9 has Perl regular expressions in the DATA STEP, there are new capabilities in it. A common editing problem, finding doubled words in a text, can be tackled using Perl regular expressions. But the structure of the DATA STEP when using the PRX... functions and CALL routines can be simplified by using the Whitlock DO-loop in conjunction with the PRX functions. We illustrate this, showing how to build a simple Perl regular expression, and how to use the Whitlock DO-loop with the PRX... functions to find doubled words in lines of text conditional do loop, sas 9 source 6
97 Dynamic Macro Invocation Utility Paul D. Sherman Often times it is necessary to repeatedly call a macro with only minor differences in its argument list. Most common is the application of producing multiple graphs panelized into an aggregate. The following simple macro %invoke() builds an argument list with a collection of index number suffixed positional parameters and calls a desired macro with a subset of these parameters as needed until all parameters have been accomodated. Resulting is a set of output having identical structure with customized content, all for the price of a single macro call. Skill Level: Intermediate to Advanced, familiarity with SAS/MACRO, SAS/GRAPH and Base/SAS macro call, macro parameter, %macro parameters, macro definition source 9
98 Dynamic SAS Programming Techniques, or How NOT to Create Job Security Steven D. Beakley,
Suzanne D. McCoy
dictionary tables, macro variable, create table, proc sql, job security source 11
99 E-Mail OS/390 SAS/MXG Computer Performance Reports in HTML Format Neal Musitano Jr. This paper displays a user example to generate and to e-mail an OS/390 SAS report in HTML format. The report is created and e-mailed via a batch job using BASE SAS. Input to this example is from the daily OS/390 SAS/MXG Performance Database, but e-mail reports can be generated from your choice of input data. The example e-mail report is generated as an HMTL file using the Version8.2 BASE SAS Output Display System (ODS) and PROC REPORT. Reports can also be generated via other procedures such as PROC PRINT proc step, sas base, proc report, proc print, title statement source 7
100 Effective People Skills for the Project Manager: A Requirement for Project Success and Career Advancement Steven Flannes Technical and software professionals must achieve the triple constraint of bringing projects to completion according to budget, schedule and technical specifications. Unfortunately, project completion often relies too strongly on technical tools and methodologies, often at the expense of a consideration of the people issues that are always involved. Projects are always technical problems with significant human dimensions. As projects increase in complexity (virtual teams, involving cross cultural variables and the need to achieve more with less), increasing emphasis is being placed upon the need for the technical professional to develop competencies in specific, tangible "people skills." Importantly, people skills are also crucial for career advancement. These people skills can be defined, practiced, and continually improved, and are best learned experientially. This paper describes an innovative approach to articulating these people skills, which involve the abilities to: communicate effectively on interpersonal levels, develop and apply an approach to conceptualizing individual differences, apply need-specific leadership roles, craft tailored motivation strategies for individuals and teams, resolve conflicts using issue-appropriate conflict resolution approaches, successfully manage levels of professional and personal distress, and actively manage one's own career source 20
101 Efficiency Techniques for Beginning PROC SQL Users Kirk Paul Lafler PROC SQL provides SAS users with a powerful programming language that can rival DATA STEP coding techniques either in terms of the processing time or the human time involved to write the code. Attendees of this hands-on workshop will learn how to use PROC SQL statements, options, and clauses to conserve CPU, I/O, and memory resources while accomplishing tasks involving processing, ordering, grouping, and summarizing data. Numerous hands-on exercises will reinforce the PROC SQL coding techniques that efficiently utilize available resources. No previous experience with PROC SQL is required to attend this workshop proc sql, proc step, cpu time, where statement, create table, order by, select, dictionary tables, proc sort source 11
102 Empirical Power Computation Using SAS for Schuirmann's Two One-Sided Tests Procedure in Clinical Pharmacokinetic Drug-Drug Interaction Studies Jihao Zhou,
Bruce Coate,
Yulei He
Drug-drug interaction studies are becoming increasingly crucial in drug development. An FDA survey of recent new drug application submissions showed that 70% of drug-drug interaction studies were conducted using fixed- sequence designs. Schuirmann's Two One-sided Tests (TOST) procedure is the FDA preferred statistical method for evaluating drug-drug interaction. However, calculating the exact power of the TOST procedure generally requires sophisticated numerical integration. Monte Carlo simulation is a good alternative approach to the power calculation if a closed algerbraic formula is not available. This paper presents a SAS Macro to compute the empirical power of the TOST procedure under a fixed-sequence design. Empirical power curve plot and numerical table can be produced through this SAS macro. Keywords: drug-drug interaction; empirical power; fixed-sequence design; Monte Carlo simulation; Two One-Sided Tests monte carlo, macro definition, sample, proc step source 9
103 Estimation Methodology for Natural Gas Production in the Gulf of Mexico Gary Long,
John Wood,
Xin Luo,
John D. Perrin
A significant portion of the nation's natural gas is produced in the Gulf of Mexico (GOM). Complete GOM data, collected and compiled by the Minerals Management Service (MMS) may lag by as much as 18 months. However, the Energy Information Administration (EIA) would like to have an estimate of production within four months. To overcome these large lag times the Reserves and Production Division (RPD) in EIA's Office of Oil and Gas has developed methodologies to estimate monthly gas production from preliminary data. SAS/BASE, SAS/STAT, EXCEL, and Enterprise Guide are employed for data cleaning, analyzing, developing and executing the models for estimation. When sufficient additional data is reported and accumulated, the model is revised and the estimates continually improved chi-square test, goodness of fit, sample, excel source 10
104 Evaluating Hospital Performance: Using SAS ODS to Create a Hospital Scorecard Barbara B. Okerson In its role as a patient safety organization, The Virginia Health Quality Center (VHQC) serves as an independent organization that collects and analyzes patient safety data for the purpose of improving patient safety and health care outcomes. A current contract with a health plan involves financial incentives for hospitals that increase and/or sustain quality of care as measured by a set of indicators for patient safety, health outcomes and patient satisfaction. Through the Output Delivery System (ODS), SAS Software provides a means for creating an attractive, concise, and functional scorecard for recording progress by participating hospitals. Because ODS is an object-oriented (OO) technology, it also provides the ability to move beyond template descriptions to complete output layout. This paper presents hospital and summary scorecards using: 1) in-line formatting combined with ODS templates, PROC REPORT, and compute and line statements as provided in version 8 of SAS, and 2) enhanced ODS layout capabilities of version 9 of SAS that allows a cell-by-cell creation of this PROC REPORT scorecard. All examples were developed with version 8.2 or version 9 of SAS executing on a Windows 2000 or Windows XP platform. Examples are not platform specific and can be adapted by both beginning and advanced SAS users. Abbreviated SAS code is included in the paper output delivery system, data cleaning source 7
105 Exploiting the SAS Business Intelligence Architecture Using SAS AppDev Studio Rich Main This paper gives an overview of the new features provided in SAS AppDev Studio 3.0 that enable enterprise application developers to exploit the powerful capabilities of the new SAS 9.1 Business Intelligence Architecture. Topics covered include new components that support the use of Information Maps and the scalable OLAP server, enhancements to the development environment to support the creation of content for the SAS Information Delivery Portal, and new project templates that speed the development of web applications that use the SAS Business Intelligence Platform business intelligence, line chart source 15
106 Financial COWs: Using SAS to Manage Parallel Clusters for Simulating Financial Markets Haftan M. Eckholdt Using SAS to manage and run a LINUX / WINDOWS-NT based cluster of workstations (COW) to simulate a parallel processor puts the power of supercomputing well within the reach many analysts. The criteria for using COW's will be discussed in terms of their job symmetry and intermediate solution timing. Special problems, and their solutions are discussed including the installation and maintenance of COWs especially in terms of work environments and hardware constraints. Using layers of file monitoring, job distribution, and data analysis, and data visualization, SAS can provide clever and cost effective paths to COW management and usage [X command, %MACRO, DATA, STAT]. Parsing the problem, and distributing it symmetrically across the COW and executing the randomized solutions are discussed in the context of an example from computation finance: simulating financial markets to backtest investment strategies. Backtests are the first line of investigation on quantitative investment models. Developing adequate out of sample databases is an enormous computational task that few laboratories can approach. Using SAS to manage a cluster, and simulate financial markets provides analysts with insights to quantitative strategies that could never be accessed otherwise parallel processing, macro definition source 7
107 Fitting Longitudinal Mixed Effect Logistic Regression Models with the NLMIXED Procedure Peter H. Van Ness,
John R. O'Leary,
Amy L. Byers,
Terri R. Fried,
Joel A. Dubin
The NLMIXED procedure fits nonlinear mixed models; it is also useful for fitting linear mixed models having non-Gaussian error distributions. We recently used the NLMIXED procedure to perform longitudinal logistic regressions in which a random intercept was included to induce a compound symmetry covariance structure for repeated measures on individual subjects. We devised a macro to automate fitting this model. The NLMIXED procedure requires writing out regression equations, declaring parameter names, and providing initial parameter estimates. To get accurate initial parameter estimates for our NLMIXED models we fit Generalized Estimating Equations (GEE) models with the GENMOD procedure. Our macro automates the procedure of fitting GEE models, entering their parameter estimates as the initial values for NLMIXED models, and then fitting the NLMIXED models. The macro does this recursively so that for most multivariable models only one new parameter estimate is entered into an NLMIXED model at a time. This step-by-step approach to model fitting increases the probability of successful convergence of the optimization procedure; however, it also means that fitting a model with, for example, five variables requires ten regression models-five GEE and five NLMIXED models. The macro makes this work simpler and more user-friendly estimate, proc nlmixed, proc mixed, regression analysis, proc genmod, logistic regression, predictor variable, proc step, logistic distribution, binary variable, covariance structure, standard deviation, covariance, likelihood function, compound symmetry, feature selection, random intercept, correlation source 7
108 From Buzzwords to Business Value Liz Roche data mart, predictive analytics, data validation rules, customer retention, group by, data mining source 19
109 Fun with Fancy Arrays Mary A. McDonald Many novice SAS programmers avoid complicated arrays because they think that they are difficult. The truth is that they make work easier. This paper is intended to be a simple introduction to working with multidimensional and nested arrays. Topics covered are: common applications, loading constants, referencing, defining and processing proc format, proc step source 6
110 Generating a Detailed Table of Contents for Web-Served Output Derek P. Morgan,
Steve Hoffner
ODS HTML is a powerful tool that can automatically generate a hyper-linked table of contents for output produced by the SAS System. What happens when this excellent functionality doesn't quite go far enough? If you have a multi- user application, you need some way to distinguish between output for user A and user B, even if they have used the same program to produce different results. What happens if the output is directed to different physical web locations? If some of the output is generated outside of the SAS System (for example, with a shell command), ODS won't even know that it exists. How can you generate and maintain a table of contents that will allow users to obtain the specific output they want without having to search through a list of identical contents? This paper details a macro which generates a unique file name for each piece of output, allows for dynamic generation of a document title, routes the output to multiple web destinations and creates a hyper-linked index page to the output macro variable, ods html, ods pdf, proc step source 9
111 Getting Up to Speed with PROC REPORT Kimberly J. LeBouton Learning the basics of PROC REPORT can help the new SAS user avoid hours of headaches. PROC REPORT can often be used in lieu of PROC TABULATE or DATA _NULL_ reporting--two areas that have driven the new SAS user crazy!!! With the added capabilities of ODS provided in Version 7 and higher, PROC REPORT can look as sharp as an EXCEL report. This paper will show how to use PROC REPORT in both a windowing and non-windowing environment using SAS Version 8. Aside: If you are still using SAS Version 6, see my 1999 paper listed in REFERENCES. There have been a number of changes in the keystroke sequences used in the WINDOWING ENVIRONMENT section proc report, proc step, proc print, proc tabulate, proc means, variable source 9
112 Good Data Makes Good Marketing: Using Data Management to Enhance the Effectiveness of Database Marketing Campaigns John Walker,
Gavin Day
The goal of database marketing should be to build relationships. When you create stronger, tighter relationships with your customers, they are likely to buy more often, purchase at a higher price, and try new products when they become available. Unfortunately, poor data quality hinders many database marketing efforts. If your customer information contains incorrect, duplicate, or incomplete data, you cannot effectively reach your entire universe of contacts-and can waste time and resources contacting the wrong address or phone number source 9
113 Greetings from the Edge: Using javaobj in DATA Step Richard A. DeVenezia data step, macro definition source 14
114 Guidelines for Coding of SAS Programs Thomas J. Winn Jr. This paper presents a set of guidelines that could be used for writing SAS code that is clear, efficient, and easy to maintain. The guidelines described herein are widely regarded as good practices for SAS programmers of all ability levels, and for all types of computing environments proc step, sas programmer, keep statement, dataset, proc sql, macro variable, if-then-else source 9
115 Guidelines on Writing SAS Macros for Public Use Frank J. Ivis The usefulness of SAS macros is without question. But when macros are shared with others, their value increases immeasurably. Consider the time saved when one programmer makes available a solution to an entire team. The effectiveness of such a macro does not simply depend on whether it accomplishes its intended goal, but on how well the macro can be understood and used. If it is inadequately documented or difficult to use, its utility is limited, regardless of how powerful or inventive the code is. Poor design often stems from the fact that the author originally intended the macro for personal use only and did not consider the issues involved when making it publicly available. The purpose of this paper is to describe some guidelines for writing good public macros, i.e. macros designed and intended for use by multiple users. This paper is aimed at the beginning to intermediate SAS user who has some familiarity with the macro language macro variable, macro facility, macro call, macro parameter, macro put, dataset, proc step, macro definition, sample, error message, macro loop, proc sql, macro flow control, macro function, %if-%then-%else source 10
116 Guiding Your Enterprise with SAS Enterprise Guide David H. Johnson The analysis of business processes, and delivering an evolving set of reports can provide a real challenge if we are to avoid revisiting and redoing our analyses each time an enhancement is requested. As our SAS trained people develop and move on, we can find that not only are we dealing with existing work being repeated, but we also have a challenge in training and orienting our new SAS users. If we could bundle our SAS code in a package that retained our analysis code and notes with our current production code, then our new SAS users, and all those who need to change the report will benefit from the initial design work. We are going to explore the use of Enterprise Guide for three sets of users: the experienced SAS programmer, the new SAS programmer, and the person who has very little SAS knowledge. However, the last person knows how to use a GUI interface to select data tables, apply filters and drop table elements onto a reporting interface, but no other knowledge of SAS software is assumed. This paper is intended to provide information targeted for each group. The products discussed are Base SAS and Enterprise Guide sas enterprise guide, proc freq, sas programmer, sas base, frequency analysis, note, standard deviation, proc sql source 16
117 Hash Component Objects: Dynamic Data Storage and Table Look-Up Paul M. Dorfman,
Koen Vyverman
Searching for data being one of the most important and frequently performed data processing operations, SAS supports it with a roster of built-in techniques, such as merges, joins, formats, indexes, operators, and functions. However, the fastest look-up methods based on hashing algorithms had not been offered as encapsulated modules until the advent of Version 9.0. This gap had been partially filled by SAS programmers crazy enough to code their own hash-based schemes in the SAS Language. At last, in Version 9.0 direct-addressed data storage and look-up was implemented as a DATA STEP Component Interface object. Easily controlled via the object-dot syntax, the hash object renders all standard table operations -- insertion, search, and deletion -- in constant time and much faster than any other built-in SAS look-up structure. A real breakthrough, it represents the first ever truly dynamic, run-time, memory-resident DATA STEP structure. By adding even more features and methods to the hash object, Version 9.1 has made its programming potential nothing short of mind-boggling. We will get a taste of this new exciting SAS tool and reveal at least a few splendid things it makes possible hash table, composite key, hash iterator, cpu time, proc sql, length statement, data wrangling, key, sas programmer, data step source 18
118 Head of the CLASS: Impress Your Colleagues with a Superior Understanding of the CLASS Statement in PROC LOGISTIC Michelle L. Pritchard,
David J. Pasta
Data analysts and statistical programmers in a variety of disciplines use PROC LOGISTIC to fit logistic and proportional odds models to binary and ordinal responses. These models frequently contain categorical explanatory variables, and programmers must use the CLASS statement to identify which variables are categorical predictors. SAS Version 8 allows analysts more power and flexibility when handling categorized effects, specifically by allowing you to specify the method of parameterization and the reference category. But, be warned, this new set of tools should be used with caution! The default parameterization may not furnish what you would expect if you are used to the default provided by the CLASS statement in PROC GLM. The selected parameterization method has a profound effect on how CONTRAST statements are specified and in the interpretation of the parameter estimates. Also, the syntax is new and does take some getting used to. This paper provides a series of examples to allow programmers to become comfortable using the CLASS statement to specify and test desired hypotheses in PROC LOGISTIC proc genmod, proc freq, proc logistic, logistic distribution, proc step, odds ratio, maximum likelihood estimation, likelihood function, options statement source 9
119 Helpful Undocumented Features In SAS Wei Cheng The SAS OnlineDoc and the built-in SAS System Help contains comprehensive documentation and references to help SAS users. But we can still find some features that are not well documented or are not documented at all. This paper will try to document some of these undocumented features, so you can use them in the SAS programming proc sql, proc step, sas programmer source 9
120 How Do You Eat An Elephant? John D. Patterson,
Fiona McNeill
"Ideas are easy, implementation is hard" rings true to many who have weathered enterprise software implementations of the past. Implementation made easier is the theme of this session. This talk will review the process SAS has adopted for the development and deployment of software applications. By sharing our best practices, we will describe the needs assessment, design, deployment, and maintenance cycle of software project management. We will also describe how our internal model has resulted in efficiencies that are used by SAS customers source 2
121 How I Stopped Worrying and Learned to Love Pearsons p: Increasing Robustness in Correlation Analysis Eric M. Rosenberg Consumer Reports magazine tests the widest range of products of any consumer product testing organization on the planet. As the number of products increases, keeping data collection and analysis costs low without losing data quality is essential to fulfilling our mission. One way to do this is to eliminate redundant test or survey procedures. Though simple methods of determining redundancy such as correlation are excellent for convincing the non-mathematically inclined, they suffer from a lack of robustness. By repurposing some regression diagnostics tools from PROC REG, such as Leverage, Cooks Distance statistic, and Dffits, we can determine outliers and influential points to increase the robustness of our correlation results. Furthermore, visualizing the data using a SAS graphs visibly demonstrate the impact of removing questionable data points. Data re-sampling techniques, such as the jackknife, also can be used to determine the true value of a correlation coefficient, and are an alternative to removing data. Data collection costs money. Any chance to reduce testing without degrading data quality is always welcome, whether it be generating a survey with fewer questions or performing fewer mechanical tests on a production item. Of course, fewer tests also mean less time spent analyzing the data and interpreting results. The paper below details a few methods for determining the existence of redundant tests using tools from regression analysis, Pearson's correlation statistic (ρ), and data re-sampling techniques. Consumers Union, Publisher of Consumer Reports Magazine, is arguably the largest tester of consumer products on the planet. The range of products we test is prodigious -- from cars to pregnancy tests, wine and power tools. Unlike most manufacturer product testing however, which usually concerns either product improvement or Quality and Assurance (quality control) testing, Consumers union seeks to rank the products on the more nebulous overall quality correlation, regression analysis, outlier, pearson correlation, proc reg, proc step, bootstrap, sample source 11
122 How SAS Thinks or Why the DATA Step Does What It Does Neil H. Howard The DATA 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 and output. Concepts covered: the importance of understanding the internals of DATA STEP processing, Logical Program Data Vector (LPDV or PDV), automatic SAS variables and how are they used, what happens at program compile time, what's happening at execution time, how variable attributes are captured and stored, and * handling data defaults, conversions, and missing values. This paper focuses on techniques that capitalize on the power of the DATA STEP and working with (and around) the default actions. By understanding DATA STEP processing, you can debug your programs and interpret your results with confidence proc step, missing value, proc format, dataset, put statement, lookup, sas log, update statement, automatic variable, if-then-else, raw data, retain, length statement, proc sort, character functions source 19
123 How to Implement the One-Time Methodology Mark Tabladillo This tutorial will demonstrate how to implement the "One-Time Methodology", a way to manage, validate, and process survey data with a SAS/AF application. This methodology allows developers to plan an application's data sources based on two factors - whether or not the user will modify the data, and whether or not there is a "large" amount of data to store. This presentation will demonstrate an example of how to plan the data sources, and guidelines on how to integrate the resulting elements (enumerated constants, frame variables, standardized and customized SAS datasets) in a SAS/AF application. Extensive SAS/AF development experience is not required, though it will help to have had exposure to the basics of SAS/AF and dataset, excel, character variable, proc step source 9
124 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 SAS user, these three letters represent the building blocks for processing SAS datasets through the SAS DATA STEP. S, M, and U are first letters in the words SET, MERGE, and UPDATE - the 3 commands used to introduce SAS data into a DATA STEP. This presentation will discuss the syntax for the SET, MERGE, and UPDATE commands. It will compare and contrast these 3 commands. Finally, it will provide appropriate uses for each command, along with basic examples that will illustrate the main points of the presentation. SET Statement According to the Version 6 SAS Language Reference, the SET statement "… reads observations from one or more existing SAS datasets." Under ordinary circumstances, each variable, on each observation, on each SAS dataset specified by the SET statement, is read into the SAS Program Data Vector, and each is subsequently written out to the new output SAS dataset - although this can be overridden with other logic in the DATA STEP. The basic SET statement is very simple: DATA newdata; SET olddata; / additional statements / dataset, set statement, merge statement, modify statement, update statement, by group processing, libname statement, out=, input statement, proc step, proc append, if-then-else, sysrc, stop, missing value, where statement source 14
125 Implemetation of Web-based ROLAP Haidong (Don) Tang,
Xiao Ji
ROLAP (Relational OLAP) is a technology used to allow end users to quickly analyze relational stored data from different dimensions. SAS PROCEDURE TABULATE is a powerful tool to create tabular reports, while it can be an ideal tool to develop ROLAP applications as well. By establishing hierarchical relationships among analysis variables, PROC TABULATE can realize ROLAP operations as drill-down, drill-up, and rotation. With SAS Application Dispatcher within SAS/INTRNET software and ODS (Output Delivery System) technology, this kind of ROLAP mechanism can be easily implemented on Web. This paper is to introduce the essence of ROLAP and the implementation of Web-based ROLAP using SAS proc tabulate, proc step, data warehouse, dataset source 7
126 Improve Your Queries: Hints and Tips for Using SQL Marje Fecht,
Linda A. Mitterling
Are you using PROC SQL but never quite sure your queries are written as well as they could be? Do you get results different from what you expected? Do you use SQL options/clauses "because it works" even if you are not sure why? If you answered yes, this presentation is for you! This tutorial focuses on improving your SQL queries including: understanding the order of execution in SQL incorporating functions into queries specifying correct joining criteria joining tables to produce the desired results. The target audience is PROC SQL users, on any platform, who want to improve their queries proc sql, proc step, inner join, create table, lookup, where statement, date variable, order by, proc freq source 11
127 Improved Methods for Early Fault Detection in Enterprise Computing Servers Using SAS Tools Kenny C. Gross,
Kesari Mishra
Advanced telemetry systems are being developed to collect and archive hundreds of system per- formance, throughput, quality-of-service (QoS), and physical variables for the purpose of en- hancing the reliability, availability, serviceability, scalability, and security of business-critical enterprise computing servers. SAS software was chosen for this project because of the lan- guage's powerful coding features and its ability to model prototype systems quickly and cost- effectively. SAS macro language was exploited in a parametric sensitivity study to explore and optimize clusters of signals that provide high sensitivity for early fault detection, but with a good avoidance of false alarms, for subsequent post-processing with an advanced statistical pattern- recognition surveillance system called MSET. Finally, PROC GPLOT and PROC G3D proved indispensable for displaying results of our many-variable sensitivity investigation. SAS pro- grams developed for this investigation are generic rather than operating system specific. The results presented in this paper used SAS 8.2 for Unix environments operating on Solaris 8 plat- forms. The coding practices discussed in this paper are aimed at users with an average SAS/GRAPH experience and an average proficiency with SAS macro language time series analysis, proc step, macro facility, proc gplot, macro definition source 10
128 Improving Peformance: Accessing DB2 Data with SAS 9 Scott Fadden This paper provides the DBA and SAS user with configuration details on how to obtain peak performance when running SAS applications with data from an IBM DB2 Universal Database for Linux, UNIX, and Windows data warehouse. We look at how SAS/ACCESS processes relational data and how to improve read, write, and load performance. This includes tuning tips and discussion of best practices in designing and tuning a data warehouse for use with SAS. The discussion is supported with test results to demonstrate the impact of the changes proc sql, proc step, sas 9, dataset, libname engine, proc append, proc print, sql pass-through, create table, proc sort, proc freq, order by, sas base, relational database, data step source 17
129 Introducing the New Rich-Client OLAP Analyzer from SAS - SAS Enterprise Guide 3.0 OLAP Analyzer Lina Clover,
Elizabeth Ruben
The goal of this paper is to illustrate the new and improved OLAP user interface available in Enterprise Guide 3.0. This paper highlights the changes and new features sas enterprise guide source 7
130 Introduction to ODS Lauren E. Haworth ods html, out=, proc step, file statement, excel, ods pdf, output delivery system, ods rtf, proc print, sas output source 14
131 Introduction to PROC SQL Katie Minten Ronk (cid:26) PROC SQL is a powerful Base SAS 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: Writing SQL code using various styles of the SELECT statement. Dynamically creating new variables on the SELECT statement. Using CASE/WHEN clauses for conditionally processing the data. * Concatenating query results together. Joining data from two or more data sets (like a MERGE!) proc sql, proc step, select, group by, order by, where statement, proc sort source 14
132 Introduction to SAS/GRAPH Philip A. Mason SAS/GRAPH software offers device-intelligent color graphics for producing charts, maps and plots in a variety of patterns. Users can customize graphs with the software, and present multiple graphs on a page. SAS/GRAPH software is a component of the SAS System, an applications system for data access, management, analysis, and presentation. This paper covers SAS/GRAPH functionality at SAS version 6 level sample, bar chart, proc step source 16
133 Introduction to Using SAS Enterprise Guide for Statistical Analysis Charles B. Hallahan,
Linda P. Atkinson
The workshop begins with a quick tour through the layout and purpose of Enterprise Guide (EG) as a menu-based interface to SAS procedures. Emphasis in this workshop will be on the statistical capabilities of EG. In particular, a set of data will serve as a case study for performing exploratory data analysis, estimating a multiple regression model, and examining graphical diagnostics for the model fit. The workshop will show how code generated by EG can be customized, stored, and rerun, and custom reports saved with the Document Builder regression analysis, sas enterprise guide, proc reg, predictor variable, proc step, correlation, response variable, estimate, data science, dataset, sample, excel, outlier source 20
134 Is the Legend in your SAS/GRAPH Output Telling the Right Story? Justina M. Flavin,
Arthur L. Carpenter
When generating plots using the GPLOT procedure, a third variable, such as a treatment or dose group, is often used as a grouping variable. GPLOT automatically uses the values of this variable in the LEGEND, but very often the designers of the plots will want particular symbols, line types, and/or colors to be specified for the display of specific values of this variable. Of course consistency is important, and if the program is subsequently run on a subset of the original data, some values of this discrete variable may be absent in the subset. This can result in an inconsistent representation (symbol, line type, color) of a particular value of the variable in a series of plots. This paper will present macro and non-macro solutions for producing plots with consistent attributes for each distinct value of the grouping variable, showing how to maintain this consistency regardless of the subset used. The paper will also explain how to generate a legend which will either display all values that exist in the data or only those that appear in the subset macro variable, proc gplot, proc sql, macro function, proc step, macro definition source 8
135 Just How Many Dates Do You Want? The Multiple Personality of Time in Your Data Warehouse Steve Morton Data warehouses maintain History - we all learned that in "data warehousing 101" - and History means Dates! But how many dates do we need to support an organization's need for history? Do we need to reconcile the data warehouse with current (and maybe past) operational reports? Must we reconcile with the General Ledger (sometimes a key Data Quality metric to prove the data warehouse is "correct")? Using appropriate dates can be the key to answering all your history questions. You could just record every imaginable date, with all the potential complexity that involves, but that can create as many problems as it solves. This paper draws on the answers the author has discovered over the past several years to these date-related questions, and seeks to explain why you might want to use - or to avoid - certain date constructs in your data warehouse data warehouse, fact table, ledger, star schema, surrogate key source 13
136 Let SAS Tell Microsoft Word to Collate Haiping Luo This paper describes the process of developing an application to collate and print Microsoft(MS) Word documents with SAS output tables and charts by region. The user's need was to customize Word documents using SAS generated values, collate the Word document with SAS created tables and charts for individual regions selected by the SAS code, then print and mail the set of Word and SAS files to individual regions. After comparing different possible solutions, the author chose to use SAS sending WordBasic scripts and Word macro names through Dynamic Data Exchange (DDE) links to automate the process. In the resulting application, SAS code was written to prepare data, to send WordBasic scripts, to invoke VBA subroutines, and to loop through regions. Word was driven by SAS to customize Word documents using SAS provided values and to print both Word and SAS output files. This paper presents the design of the application, explains the code of an example, and discusses the problems encountered during the development process. The code of the example application is included in the appendices. The example application was tested in a Windows 2000 platform. PC SAS 8.2 with Base SAS and SAS/GRAPH installed. The version of MS Office was 2000 sas output, macro definition, put statement, macro variable, excel, create table, sas programmer, proc step, proc sort, %if-%then-%else source 11
137 Linking Unlinked Data: PROCs SQL and SORT Can Do It Merle E. Hamburger,
Thomas Sukalac
When dealing with large amounts of longitudinal data, it is often necessary to divide data pertaining to the same individual among multiple datasets, representing data from different points of time. Combining data from such datasets will be particularly difficult if these different datasets do not contain both a unique identifying index variable (e.g., IDNUM) and a temporal index variable (e.g., Visit_date). The current paper describes a public health analysis in which PROC SQL and subsequent DATA steps are used to link temporally related data relatively easily proc sql, proc step, date variable, longitudinal data source 5
138 Mainframe SAS for the 21st Century Kryn Krautheim Following good object oriented practice of building query models we address the issue of poor query performance during use of the UNION clause. Although column-wise joins are rather well understood, the notion of the UNION or row-wise join is often perceived incorrectly as a gluing together of independent fullselect result sets rather than via model relations through higher levels of abstraction. This perception is excusable because there often does not exist suitable abstraction tables or normalization key values, and we must think creatively how a necessary abstraction can be derived. In the example to follow we help farmer Jack analyze taste and laboratory test data to determine the quality of his bean stalks. Skill Level: Novice to Advanced, familiarity with SAS/ACCESS, SAS/CONNECT, DATA STEP merge and PROC SQL pass- through operation left join, inner join, proc sql, create table, key, unique key, normalization source 9
139 Make Your Data a Strategic Asset Ken Wright Strategic business decisions are only as good as the data that drives them. Through effective data management processes and technology, you can improve the quality of your data assets. Data management help you inspect data for anomalies, cleanse and standardize information, integrate data across sources and enhance information to add value to your data. A well-designed data management methodology will make your data more dependable to help you make better business decisions. This paper will examine several creative ways to leverage the power of SAS and DataFlux software to make your data a strategic asset and increase the value of your information data governance, data cleaning, data integration, data science source 8
140 Making Music in SAS: Using Sound to Alert Users of Errors and Data Discrepancies David A. Fielding Did you know you could have SAS play music? This paper explores the SOUND and SLEEP routines. Let SAS alert you of an error in your program, a specific type of data, or just add some excitement in your life proc freq, sample source 6
141 Matching Character Variables by Sound: A Closer Look at the SOUNDEX Function and Sounds-Like Operator (=*) Zizhong (James) Fan The Soundex phonetic filing system has been used for tracking genealogical data for many years. Many database systems, such as Microsoft SQL Server, and Oracle, have adopted the SOUNDEX as a query tool for retrieving character data based on their phonetic values. SAS has included the SOUNDEX function and sounds-like operator (=) since version 6.07 in both the DATA STEP and SQL procedure (PROC SQL). But phonetic matching is still relatively new to many SAS professionals. This paper will take a closer look at the function SOUNDEX and the sounds-like operator (=). SOUNDEX function can be used to adjust the sensitivity level for matching character values based on their phonetic similarities, whereas the sounds-like operator provides exact phonetic value matching. Examples will be shown to demonstrate the power of these two phonetic matching tools in matching character values. Differences between SOUNDEX function and sounds-like operator (=*) will also be discussed in table lookup tasks. SAS product: Base SAS. Skill Level: All skill levels. About SOUNDEX system Speaking of SOUNDEX phonetic filing system, we need to trace its genealogy to genealogy. In the late nineteenth century, one of the things that frustrated genealogists was that it was very difficult to trace genealogical data by surnames on census data because of the inconsistencies of spelling over years. Smith could be Smyth, Johnson could be Johnsoon, and Fan could be Fann. There were lots of reasons for these kinds of inconsistencies. One of them could be that our ancestors knew nothing about English at all. They were immigrants from all over the world. Fortunately, in 1918, Robert C. Russell developed SOUNDEX system (US patent 1,261,167). The idea was to index words phonetically rather than alphabetically. From then on, SOUNDEX phonetic filling has been widely used in census and genealogical studies. The three misspelling examples listed above could be matched up by the SOUNDEX system proc sql, proc step source 5
142 Measuring SAS Software Usage on Shared Servers with the RTRACE Facility Michael A. Raithel How often is SAS software being used in your organization, who is using it, and which SAS products are being used? These questions are not always easy to answer, particularly for organizations that run SAS on multiple platforms. However, an innovative technique for exploiting SAS RTRACE files can provide you with a way to record and report information about SAS usage in your organization. This paper presents a methodology for exploiting SAS's native RTRACE facility to track all SAS batch and interactive sessions in the Windows, Unix, and Linux environments. It provides an overview of the RTRACE facility and how to set it up to run behind-the-scenes in shared server environments. The paper contains example programs that process RTRACE files and store the information in SAS data sets. It includes a sample program that reports SAS usage based on the captured RTRACE information. After reading this paper, you will have all of the tools that you need to exploit RTRACE, and determine the "who", "what", "when" and "where" of SAS software usage in your own organization dataset, macro definition, sas base, sas batch, macro variable, options statement source 21
143 Message Queue-Based Scoring Interface David R. Duling,
Robert Chu
SAS procedures provide a large quantity of templates for users to choose. This function has been enhanced by ODS. If programmers are familiar with these templates, they can save a lot of energy and time. By contrasting the method of constructing a template with the method of borrowing an existing template, this paper will focus on how to utilize the templates produced by SAS procedures, especially SAS/STAT procedures, to achieve programming efficiency proc step, proc freq, proc logistic, logistic distribution, predictor variable, macro variable, regression analysis, proc reg source 6
144 Metadata for End Users - A Crucial Part of Your Data Warehouse Quality Policy Gady Kotler Many organizations has invested a lot of efforts implementing Data Warehouse projects using tools to Extract, Load and Transform data into meaningful information for end users across the organization. While the quality of the information is as good as the quality of the data, exploiting this data by End-users is as good as the quality of the Meta-Data. Generally speaking, Meta-Data should help users understand the complexity of the data and how it should be used in order to transform it into information (Reports). Experience with many End-Users shows that the biggest obstacle for exploiting the huge investments in Data Warehouse infrastructure is this usually "forgotten" unimplemented stage of the project. The term "Meta-Data" has various implementations with different focuses and there is no "One Version" of what should be the scope of a Meta-Data repository and how it should be presented to End-Users. The paper will discuss our vision and experience with SAS based Data Warehouses regarding Meta-Data issues. Specific details for SAS End-Users will be highlighted and a Unique SAS based Meta-Data repository used in our SIGMA WAREHOUSE solution will be presented dataset, numeric variable, where statement, sas base, staging area source 5
145 Methods of Storing SAS Data into Oracle Tables Lois Levin There are several ways to create a DBMS table from a SAS dataset. This paper will discuss the SAS methods that may be used to perform loads or updates, a comparison of times elapsed, and the INSERTBUFF option and the BULKLOAD option that can be used to perform multiple row inserts and direct path loads to optimize performance proc step, cpu time, proc append, proc sql, sas log, label statement, libname statement, variable, libname engine, create table, dataset, sample source 10
146 Mixed Model Influence Diagnostics Oliver Schabenberger Linear models for uncorrelated data have well established measures to gauge the influence of one or more observations on the analysis. For such models, closed-form update expressions allow efficient computa- tions without refitting the model. When similar notions of statistical influence are applied to mixed models, things are more complicated. Removing data points affects fixed effects and covariance parameter esti- mates. Update formulas for "leave-one-out" estimates typically fail to account for changes in covariance parameters. Moreover, in repeated measures or longitudinal studies, one is often interested in multivariate influence, rather than the impact of isolated points. This paper examines extensions of influence measures in linear mixed models and their implementation in the MIXED procedure covariance, influential observation, proc mixed, likelihood function, fixed effects, estimate, standard deviation, correlation, cook's distance, outlier, proc means, proc step, restricted maximum likelihood source 18
147 Model-Based Multiple Imputation Geoffrey Paulin,
Shirley Tsai,
Melissa Grance
Nonresponse to income questions is a long-standing problem in the household surveys. In order to improve the data quality, the SAS Institute developed a test version of an imputation procedure in V.8, and has since made significant improvement. However, in some cases, analysts may need more information or statistics from the imputation process to help them with their analyses. The purpose of this paper is to demonstrate how to use SAS/STAT and SAS/IML to build model-based multiple imputation macros such that analysts can streamline the analytical process without performing these tasks step by step. The underlying theoretical framework of this model-based multiple imputation is derived from Rubin's (1987) repeated-imputation method imputation, multiple imputation, regression analysis, proc step, proc mi, predictor variable, response variable, estimate, sample, covariance, degrees of freedom, raw data, macro loop, macro definition, %if-%then-%else source 13
148 Modeling Object-Oriented SAS/AF Applications Using UML Dominic Roy,
André Milliard
UML is a widely used modeling standard for developing object-oriented systems; it stands for The OMG's Unified Modeling Language (UML). It is becoming more mature and integrated in many development methodologies. Confronted with a complex SAS/AF application, it was decided to turn to a real object-oriented approach, on a small scale and use a UML way to represent the model. It revealed to be helpful in building a better application architecture, with a simpler user interface and a concept of business layer classes. It allowed to divide the work among many programmers and to support full-fledged development standards. This paper establishes the link between the main UML diagrams and a SAS/AF application batch job, dataset source 11
149 Mrs. Clean Tackles Dirty Data Janet E. Stuelpner What is clean data and how do you clean it? This is an age-old question that has some pretty easy answers. There are some techniques that can be used to find invalid data values in both numeric and character data, missing values of any type and duplicate observations. Simple procedures and DATA steps can be used to ferret out inappropriate observations. This paper will illustrate some of the techniques used after data entry is complete and the data has to be reviewed and cleansed proc step, data cleaning, proc freq, missing value, proc print, where statement, numeric variable source 5
150 New Palettes for SAS 9 Color Utility Macros Perry Watts Version 9 SAS replaces the list of predefined SAS colors with color utility macros that work with a full range of code-to-color mappings in a given color space. Start values for RGB (red | green | blue) codes are three decimals representing percents. They are converted to a hexadecimal value SAS understands. On the other hand, start values for HLS (hue | lightness | saturation) are a combination of degrees and percents. Hue ranges from 0 to 360 degrees whereas lightness and saturation are listed as decimal percents. Again the output from the utility macro is a single hexadecimal value for a given color. Here is how to get CYAN from two of the utility macros proc greplay, proc step source 12
151 Next Generation Data Warehousing with SAS 9 Gary Mehler This paper covers advanced data warehousing topics that can be performed with SAS 9 and explains how these approaches can be used as well as how they work These topics will show how a basic data warehouse can be turned into a full-scale production system with integrated data integrity handling, success/failure processing, and utilizing slowly-changing dimensions. These capabilities allow production-quality warehouses to be constructed within the graphical user interface of the SAS ETL Studio design environment slowly changing dimension, data cleaning, missing value, fact table, key, sas 9, star schema, foreign key, lookup, data integrity, business intelligence, natural key source 11
152 On the Use of PROC MIXED to Estimate Correlation in the Presence of Repeated Measures Anthony C. Hamlett,
Louise Ryan,
Russell D. Wolfinger
The need to assess correlation in settings where multiple measurements are available on each of the variables of interest arises often in biostatistical science. Although several ad hoc approaches can be used, they can easily lead to invalid conclusions (Bland and Altman, 1994) and to a difficult choice of an appropriate measure of the correlation (Hamlett, Ryan, Serrano-Trespalacios and Wolfinger, 2003). While several formal approaches have been proposed (Bland and Altman, 1995, Chinchilli, Martel, Kumanyika and Lloyd, 1996), these are associated with a variety of drawbacks (Hamlett, Ryan, Serrano- Trespalacios and Wolfinger, 2003). Lam et al. (Lam, Webb and O'Donnell, 1999) approached this problem by using maximum likelihood estimation in the case where the replicate measurements are linked over time, for example, by being taken at the same point in time, but the method requires specialized software. We reanalyze the data of Lam et al. (Lam, Webb and O'Donnell, 1999) using PROC MIXED in SAS and generalize their model to encompass other setting not covered in their paper correlation, proc mixed, covariance, proc step, estimate, maximum likelihood estimation, likelihood function, restricted maximum likelihood, repeated measures source 8
153 Packing Lunch or Packing Heat ? Comparative Data Displays of Student Weapons Violations Using SAS/GRAPH Wendy B. Dickinson,
Bruce W. Hall
Maslow (1954) placed safety secondary only to physical needs in his hierarchy of needs that must be satisfied before individuals are able to attend to higher-level needs associated with school achievement (Bowen, 1999, p. 31). Day and Golench stated, school violence 'affects not only the perpetrator and victim, but also the entire student body, staff, and the community as a whole' (1997, p. 332). An integral aspect of school violence is the presence and use of weapons. By Florida statute 230.32, stu dents shall not possess, transport, handle, or transmit any object reasonably considered a weapon, instruments capable of inflicting bodily harm, incendiary devices, or contraband materials. Prohibited items include knives, firearms, clubs, pepper spray, chains, firecrackers, and martial arts weapons. Using student violence data generated at the school-, district-, and state level, comparative weapons violations displays were constructed using SAS 8.2. Using SAS/GRAPH, data displays were created utilizing PROC GCHART, PROC GPLOT, PROC GREPLAY, and PROC G3D. Factors of frequency, weapon type, school type (urban, rural, suburban), and school size (small, medium, large) revealed a visual summary of student violations. The resultant visual summary provides a 'point-in-time' snapshot of prohibited student behaviors. With school- based violence a national concern, this visual summary adds to existing knowledge of school violence proc step, proc gplot, variable source 10
154 Parallel Processing Hands-on Workshop M. Michelle Buchecker This hands-on workshop teaches you how to implement your SAS applications to execute code in parallel and significantly reduce overall execution time. This underutilized SAS, Version 8, technology enables your SAS jobs to take advantage of multiple processors on a machine to perform parallel processing. This capability, called MP CONNECT, enables you to perform disjoint units of work in parallel and to coordinate all results into your original SAS session for the purpose of reducing the total elapsed time necessary to execute a particular application macro variable, work library, parallel processing, mp connect, elapsed time, sas 9 source 11
155 Perfecting REPORT Output to RTF Steven H. Feder Output Delivery System (ODS) output to RTF presents possibilities for creating publication-ready final documents directly from the SAS System. Users can customize many appearance features exactly as needed, with ODS settings for the entire document, or for individual elements within a PROC REPORT table proc report, proc step, proc format, output delivery system source 6
156 Performing a 1:N Case-Control Match on Propensity Score Lori S. Parsons A case-control matched analysis is often used in observational studies to reduce selection bias and approximate a randomized trial. A propensity score is the predicted probability of an outcome. It has been shown that a sample matched on propensity score will be similar for all the covariates that went into computing the propensity score. Thus, matching on the propensity score can reduce the selection bias in an observational study. This paper presents a macro that performs a 1:N case-control match on the propensity score; the analyst is allowed to specify the number of controls to match to each case. The macro makes "best" matches first and "next-best" matches next, in a hierarchical sequence until no more matches can be made. Each control is selected at most once. The final matched-pair samples contain both closely matched individual pairs and balanced case and control groups. In this paper, SAS/STATÂ LOGISTIC procedure code is given to create the propensity score. The matching macro is explained and used to create several propensity score matched-pair samples. The examples were run under SAS 8.2. Knowledge of logistic regression analysis and SAS macro language is required propensity score, logistic distribution, response variable, logistic regression, sample, regression analysis, proc logistic, macro loop, macro definition source 12
157 Pop-Ups, Drill-Downs, and Animation Michael S. Zdeb Several features have been added to SAS/GRAPH that allow a user to go beyond a static display of information in a chart, plot, or map. Many of these features are designed for Web-based displays. They include: pop-ups (boxes populated with additional information that will pop-up when a mouse is dragged over different output areas); drill-downs (output areas, including legends, linked to additional information contained in other web pages); animation (including controls that allow a user to page through an animated display on a frame-by-frame basis or to watch animation at a user-specified time delay between frames). These features of SAS/GRAPH are demonstrated in a series of examples using PROC GCHART, PROC GPLOT, and the JAVAMETA device driver. The examples show how to add pop-ups, drill-downs, and animation to graphical displays of information proc gchart, proc step, data step, bar chart, output delivery system, horizontal bar chart, data visualization source 17
158 Practical Application of SAS for the Beginner - Enabling the Replacement of a Fragile Access Database David Yarmchuk In an attempt to find a method to create a stable, fast, easily modified replacement for a Microsoft Access database, SAS rapidly became the only choice as a replacement tool. SAS can very quickly be adapted for uses by relative beginners in novel ways to exploit its strengths as a data extraction and manipulation tool. Using PC SAS and SAS CONNECT for ODBC a method was found to convert the most fragile parts of a Rail Car Setoff reporting database. Aimed at the well-informed MS Office user with either exposure to or an interest in SAS, this paper is intended to introduce PC SAS as a tool that does more than just statistical analysis but also is a viable alternate tool to the more traditional programming solutions. This shift from MS Access to SAS cut processing time from over 20 minutes to less than 4 and reduced the complexi ty of the database from multiple nested macros down to a single file that is in plain text in easily readable SAS code excel, class variable, proc means, proc step source 8
159 Present Data Listings with Numeric Column Names Zaizai Lu,
David Shen
For the purpose of data exploration or data trend show, it is often required to list data by numeric columns such as therapeutic score, pain scale score, response score, disease severity, and so on. However, SAS variable naming convention does not allow variable names to begin with a number. This paper presents a macro that can present data listings with dynamical numeric columns in a right order proc transpose, proc step source 5
160 PROC DOC and Beyond: Is PROC CONTENTS Enough? Louise S. Hadden source 9
161 PROC FREQ - What's It Really Good For? Theresa Gordon,
Monique Eleby
PROC FREQ is a procedure that is used to give descriptive statistics about a particular data set. PROC FREQ is used to create frequency and cross-tabulation tables. It enables analysis at various levels. Associations between variables and responses can be tested and computed. PROC FREQ is widely used to analyze healthcare datasets and demographic databanks that contain specific information about individuals and their activities. Any dataset that requires analysis on an individual or multi-variable level can be manipulated with this procedure. Common user pitfalls and frequent misuses of the PROC FREQ procedure will be demonstrated and discussed. In summary, we will re-address the basic points of PROC FREQ and reiterate the things to avoid when using PROC FREQ, and address any questions that may be raised proc freq, proc step, missing value, proc format, proc means source 4
162 PROC POWER in SAS 9.1 Deborah J. Bauer,
Russell M. Lavery
Features were added to SAS V9.1 STAT that will allow many users to do all their power and sample size calculations in SAS. Two free STAT Procs (PROC POWER and PROC GLMPOWER) can allow companies to save money by canceling their licenses for software packages that only do sample size calculations. Not only are these Procs full featured, but the ODS capabilities in SAS make it easy to take the results into a finished document. This paper will quickly review the logic of power calculations and give examples of SAS syntax typically used in a pharmaceutical setting. Finally, it will present a table that compares the features of SAS to several power calculating packages. It is hoped that this table can be used to determine if SAS V9.1 can meet all of the reader's needs for power and sample size calculations. NOTE: This paper was created using a pre-production of V9.1 and users should, before canceling licenses for other products, check that the production version of 9.1 contains the features they need sample size, sample, proc power, proc step, adverse events, fisher exact test, proc power and sample size, effect size, standard deviation, exact test, primary endpoint source 7
163 PROC TABULATE: 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 TABULATE procedure proc tabulate, proc step, class variable, output delivery system, ods html, user-defined format source 18
164 Product Performance Predictive Modeling James W. Mentele,
Tim A. Pletcher
source 12
165 Programming Standards, Style Sheets, and Peer Reviews: A Practical Guide 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 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 if-then-else, quality control source 7
166 Progress in SAS Scientific Discovery Solutions: Genetics, Microarrays, and Proteomics Russell D. Wolfinger,
Wendy Czika,
Kristen Kleiss
The SAS Genomics team is making steady progress in leveraging existing and new SAS technologies for more effective approaches to scientific discovery. This paper presents an overview of SAS/GENETICS, SAS Research Data Management (RDM), and the SAS Microarray Solution, as well as introduces the two latest additions to the SAS Scientific Discovery Solutions line, the SAS Genetic Marker Solution, and the SAS Proteomics Solution. Release 1.3 of the RDM platform contains several major improvements, including an expanded architecture for supporting input engines and analytical processes, as well as advanced GUI support via XML. The SAS Genetic Marker Solution is built on the RDM platform and features analytical processes invoking SAS/GENETICS procedures in the background. The SAS Proteomics Solution is also an add-on to the platform and focuses on the management and analysis of spectral data, enabling advanced data analyses and profiling of peptides or metabolites. This paper highlights the basic features of the new solutions and how they enable robust identification of discriminating characteristics that can potentially be linked to life-changing diagnostic and/or therapeutic biomarkers proc step, proc mixed, proc freq, anova, normalization, dataset, sample, correlation, regression analysis, excel, proc sql source 19
167 Publish or Perish: An introduction to the SAS Publish/Subscribe Framework Peter W. Eberhardt The data are there. But they are not information till they are packaged and arrive at the desk of the decision maker. Yet for all of our exquisite user interfaces, how many executives really want to play with all of the menus and the drop- downs of the data warehouse? The SAS publish/subscribe framework allows you to distribute the actionable output you create and allows users at all levels the ability to filter the content they need and want. This paper provides an introduction to the steps needed to publish your results for the people who need it to receive them. The data are there. They have been collected. They have been cleaned. They have been loaded. And they are waiting there behind big shiny buttons and zippy drop downs to lead the way. Problem is, the big shiny buttons are not being pressed often enough. The SAS Publish/Subscribe framework provides a method for analyst to prepare and package (publish) actionable data coupled with the ability to have these packages screened and delivered according to the recipient's wishes (subscribe). The publish/subscribe metaphor is one we are all familiar with. Our world is full of publishers … from the weekly community paper to the major daily newspapers, glossy magazines from Newsweek to Nudity to New Trends. And all publishers seek out the best way to hit their target market. As SAS analysts, we see this as a natural activity for the publisher. As publishers, we must seek out our market. Find the best way to target our market. Package our product and publish. In gross terms it is really simple: Make our statement Get them to buy it even if it is not always what they want to hear Find the folks who want to hear our statement Put our statement on their doorsteps Of course, if you do not know your market, you take a scattergun approach and hope you find people who like what you publish sysrc, excel, dataset source 8
168 Pure Evil, or Just Misunderstood? An Interview with PROC TEMPLATE Kevin Payton Delaney As more and more people begin to use the Output Delivery System (ODS) more people also want to modify the default output it produces. To do this properly one needs to become familiar with PROC TEMPLATE. Unfortunately PROC TEMPLATE has developed a reputation for being a scary and difficult procedure. Some have even gone so far as to call him "EVIL." In this paper we will get to know PROC TEMPLATE a little better, and you will learn how to create and modify both STYLE and TABLE templates, and hopefully become more comfortable with PROC TEMPLATE. All examples were developed with SAS 8.2 on the WINPRO platform, but should be extendable to other SAS versions and operating systems. This paper assumes some knowledge of ODS and of SAS procedures typically used to produce output proc step, proc template, proc freq, proc print, proc reg, macro variable, sas 9, sas output, output delivery system source 20
169 Quicker Than Merge? Kirby L. Cossey How many times do you need to extract a few records from an extremely large dataset? cpu time, where statement, proc sql, set statement, data merging source 7
170 Randomly Selecting Observations Robert R. Patten There are times when you may want to select a smaller subset of data to work with. For instance, you have a very large data set, and you want to perform some analysis on it. However, you may be constrained by resources. Or, you may want to select a subset for auditing. Both of these situation requires that you obtain a subset of you original data that is a good representation of that original data - a random sample. This paper presents techniques for creating random samples. Starting with a baseline method, successive improvements will be made until a final highly efficient method is considered sample, data step source 10
171 Reading and Writing XML Files from SAS Miriam G. Cisternas,
Ricardo A. Cisternas
XML (eXtensible Markup Language) is gaining popularity as a medium for data exchange. SAS Institute has added additional support recently for reading and writing XML files under both 8.2 and 9.1. The purpose of this workshop is to provide a quick introduction to XML, show the ways in which XML is read and written from SAS, and then present hands-on examples for reading in and mapping XML files to SAS datasets and writing out SAS datasets to XML files dataset, proc step, proc print, proc contents, clinical trial, key, libname engine, character variable, foreign key, sysdate9, raw data source 19
172 Reading Multiple Complex Report Files Tugluke Abdurazak In auditing, accounting, financial analysis and inventory analysis, we frequently receive complex report files from clients that have to be converted to SAS data sets. For example, a financial statement from a company may contain assets, income, expenses, taxes, gross profit and other summarized information, all in one report. In order to analyze the financial statement, the information in the report may have to be read into different data sets. If the content of the reports is simple, or the quantity of reports is small, this work can easily be done by using Microsoft EXCEL, Ultra Edit or Monarch for example. However, when there are a large number of complex reports that need to be converted, the SAS DATA STEP and SAS macro programming are applicable and effective methods. This paper describes the construction of a SAS program to read a complex financial statement. A basic knowledge of the SAS DATA STEP and the macro language is required data step, macro definition, sample, macro facility, excel source 7
173 Real Time Decision Support: Creating a Flexible Architecture for Real Time Analytics Gregory S. Barnes Nelson data warehouse, business intelligence, data cleaning, quality assurance, fact table, raw data source 13
174 Repeated Measures Modeling with PROC MIXED E. Barry Moser PROC MIXED provides a very flexible environment in which to model many types of repeated measures data, whether repeated in time, space, or both. Correlations among measurements made on the same subject or experimental unit can be modeled using random effects, random regression coefficients, and through the specification of a covariance structure. PROC MIXED provides a large variety of useful covariance structures for modeling covariation in both time and space, including discrete and continuous increments of time and space. MANOVA tests are available for some model specifications, and degrees of freedom adjustments are available to provide better approximations to the distributions of the test statistics than for standard between- or within-subject methods. The %GLIMMIX macro, available in the SAS/STAT sample library, extends the mixed model technology of PROC MIXED to generalized linear mixed models, while the %NLINMIX macro, also available in the SAS/STAT sample library, provides a similar framework for non-linear mixed models. Likelihood and information criteria are available to aid in the selection of a model when the model structure is not known a priori covariance, proc mixed, correlation, covariance structure, proc step, repeated measures, regression analysis, estimate, unstructured covariance, degrees of freedom, spatial covariance, longitudinal data, random slope, sample, fixed effects, poisson distribution, likelihood function, compound symmetry, ar(1), proc genmod, proc nlin source 20
175 Risk Management : Using SAS to Model Portfolio Drawdown, Recovery, and Value at Risk Haftan M. Eckholdt Portfolio risk management is an art and a science that is critical to maintaining and understanding financial instruments. While drawdown, recovery, and value at risk (VAR) refer to standard monitoring devices in the industry, there is little clarity on the approaches used for each. Comparing established approaches like risk metrics that are based on historical correlations, with newer approaches using a layered boot strap of historical data can reveal discrepancies variance, macro loop, macro definition source 10
176 Risk Management for Software Projects Tom DeMarco Risk management is project management for adults. It guides project managers to focus specifically on what can go wrong, instead the more usual "if everything goes as planned" approach. The benefits of risk management include these: * it enables aggressive risk-taking it protects management from being blind-sided it provides minimum cost downside protection In this keynote, Tom DeMarco lays out the basics of a risk-focused strategy and provides clear guidelines for its implementation. 1 SUGI 29 Planning, Development and Support Risk Management for Software Projects SUGI2004: Montreal, May 10, 2004 Copyright 2004 by Tom DeMarco: The Atlantic Systems Guild SUGI 29 Planning, Development and Support source 26
177 Roadmap to SAS Documentation Pat Moell,
Sean M. Gargan
Having trouble finding information on how to use SAS software? Here's a roadmap. Whether it's SAS release documentation, Books by Users books, or SAS Certification, the Publications Division provides essential information to all users of SAS software documentation in the format of your choice. Learn how to easily find the location of the documentation, the kinds of documentation available for each release, what's free for each release, and what's new. Learn about what's available on the Web and where it's located. Find out about exciting new topics and directions for the Books by Users program. This fast-paced and informative session will benefit both new and experienced SAS users output delivery system, sas management console, sas base source 13
178 Sample-Size Analysis in Study Planning: Concepts and Issues, with Examples Using PROCs POWER and GLMPOWER Ralph G. O'Brien,
John M. Castelloe
Ever-improving methods and software, including new tools in the SAS sample-size analysis. Statisticians and subject-matter investigators need to understand the concepts and issues involved, but such matters are too often given short shrift in statistics education. We hope this paper helps close that gap. 9.1, are transforming the practice of This presentation covers the most common type of sample-size analysis, classical prospective power analysis, which examines the chance that a given null statistical hypothesis will be rejected ( ). Essential to this-but rarely taught-is that greater power reduces both positive and negative inference mistake rates (defined herein), = 1 - power). which we argue are more relevant to researchers than the classical Type I and II error rates ( and (cid:2) (cid:1) (cid:1) p ≤ In carrying out a strong prospective sample-size analysis, the research team is forced to delineate and critique the rationale undergirding the study and all the components of the research protocol. They must specify tight research questions, the research design, the various measures, and the analysis plan. They must come to agree on and justify (as best they can) some reasonable conjectures for what the "infinite dataset" may be for their study. Modern software facilitates all this work. These and other concepts and issues are addressed through a case study that uses PROC POWER (SAS/STAT 9.1). This tutorial is for statisticians and para-statisticians inexperienced with sample-size analysis, but even those who are quite experienced may discover new ideas and/or new ways of communicating these matters to students and investigators. Note: Later versions of this paper and all related SAS code are available at www.bio.ri.ccf.org/robrien/ OBriCast2004. We intend to add a case study involving an analysis of covariance that uses PROC GLMPOWER and others that use PROC POWER to handle sample-size analyses for confidence intervals and tests of equivalence sample, type ii error, type i error, relative risk, proc power, sample size, proc step, significance level, power analysis, clinical trial, confidence interval, hypothesis testing, proc glmpower, macro definition source 12
179 SAS Add-In for Microsoft Office - Leveraging SAS Throughout the Organization from Microsoft Office Jennifer Bradshaw Clegg,
Stephen McDaniel
The SAS Add-In for Microsoft Office is a Component Object Model (COM) add-in to Microsoft EXCEL and Microsoft Word. The SAS Add-In for Microsoft Office seamlessly exposes the power of SAS data access, reporting, and analytics directly from the familiar environment of Microsoft Office. This paper discusses the capabilities and features of the SAS Add-In for Microsoft Office 1.3. Refer to Appendix A for a list of features by release excel, sas enterprise guide, sas management console, business intelligence, proc sql, life sciences source 16
180 SAS and Grid Computing - Maximize Efficiency, Lower Total Cost of Ownership Cheryl Doninger IT budgets are declining and data continues to grow at an exponential rate. SAS applications with high volumes of data can take many hours or possibly days or even weeks to complete. In some cases, a job is so big that it cannot be completed at all even given today's processor speeds. Whether you call it grid computing or not, you want to be able to complete your SAS applications in a reasonable amount of time without making a huge investment in new hardware. Grid computing is about leveraging your available resources and idle processor cycles to more quickly solve a problem while at the same time maximizing efficiency and reducing your total cost of ownership. SAS enables you to distribute long running jobs across a grid of any number of homogeneous or heterogeneous machines in order to get timely results and get information to the right people at the right time. This paper will discuss how SAS works in a grid, the types of applications that are well suited to grid computing, and success stories using SAS in a grid grid computing, elapsed time, data science, sas 9, sas grid, by group processing, monte carlo source 7
181 SAS Backwards: Helping SAS and SPSS Students Speak the Same Language Joseph J. Guido,
Adam B. Rains
While dedicated data analysts have always been, by necessity, conversant in multiple applications many casual users of SAS and SPSS remain divided into camps based upon the software on which they were trained. Because of the need to focus on methodological instruction (over software usage) and cost reduction, many academic institutions have adopted the exclusive use of a single analytic package (typically SAS or SPSS). While this strategy has obvious advantages, the necessary focus placed on software-specific instruction, when paired with the fact that most students only ever get one or two courses of this nature, can result in crops of ill-prepared data analysts. Though these casual users are methodologically savvy, their forced reliance on a single analytic package is tantamount to functional statistical illiteracy. In failing to address the needs of these casual users, we are doing a disservice to both our students, who may one day have to use another package, and our respective areas of research, by erecting barriers to interdisciplinary collaboration. Though the authors' primary goal is to promote conversancy with a variety of statistical packages, the following paper focuses on providing examples of their techniques with specific reference to the analytic methods most commonly used in introductory statistics courses. This necessarily abbreviated overview is intended to (a) provide a rationale for the authors' strategy of promoting software-independence, (b) demonstrate several salient take-home examples, and reacquaint users with the fundamental similarities and strengths of these two, commonly used, statistical packages simple linear regression, proc reg, dataset, proc means, data science, regression analysis, proc freq, proc step source 7
182 SAS Consultants: Sheep in Wolf's Clothing Gary M. McQuown Thinking of hanging out your shingle and going it alone? Look before you leap and make sure you know both the risks as well as the rewards of being a SAS Consultant. Although employees and consultants may write identical code; their behavior, responsibilities, risks and rewards can be very different. This article will explore the fundamental differences between SAS Consultants (independent contractors or 1099's) and SAS Programmers (employees or W2's), and address the most common questions dealing with self- employment and the transition process. Disclaimer: The following information is general in nature and intended for informational purposes only. It is not to be construed in any way as tax or legal advice. You should consult with a trained professional familiar with the laws and regulations of your area for specific advice. A Sheep in Wolf's Clothing Working as a SAS Consultant carries certain risks as well as rewards. Anyone contemplating such a career should carefully and objectively consider all of his or her options. If he or she is determined to make the transition, it is extremely important that they understand and carefully plan the process. What is the difference between an Employee (W2) and an Independent Consultant (1099)? The IRS subsets all workers into two categories: Employees for whom Form W2 must be filed by their employer and Independent Contractors (consultants) for whom Form 1099 must be filed by their client(s). Employers withhold and pay taxes on behalf of W2 employees, but 1099 Independent Consultants are required to make their own tax payments. The IRS lists twenty criteria that are used to make this determination (Appendix A), but it boils down to this: an Employee may be directed and controlled by the employer while a Consultant is self-directed and under his or her own control. Because the Consultant is under his or her own control, they are directly responsible for their own success or failure source 10
183 SAS Data Quality - Cleanse: Techniques for Merge/Purge on Very Large Datasets Michael Krumenaker,
George Bukhbinder,
Xiaoyan Yang
The SAS System can perform merge/purge - the process of combining lists and removing duplicates - with the functionality provided by SAS Data Quality-Cleanse ("SAS-DQ"). In developing SAS programs for monthly merge/purge on hundreds of millions of records, we encountered various challenges, including (1) how to significantly decrease processing time, and (2) how to combine partially overlapping duplicate groups based on various criteria sas base, by group processing, retain, cpu time source 9
184 SAS Data Views Simply Stated James C. Stokes What is a SAS Data View? How does it differ from a SAS Data File? What is a SAS data set? These are common questions often asked by novice and experienced SAS users alike. Many of us are faced with the daunting task of processing large volumes of data stored as non SAS data sets (e.g. flat files, etc.). By using SAS Data Views, we can dramatically reduce the amount of computer resources needed to process large volumes of data and simplify the way we process the non SAS datasets. Given the scarcity of computer resources and associated costs, it is critical to our success that we utilize SAS Data Views. For example, when processing large non SAS data sets, securing work space often proves to be a major stumbling block to the successful execution of a given job stream. By utilizing SAS data views, one no longer needs to secure large amounts of work space to ensure successful completion of the job. As a result, the primary obstacle to processing large amounts of data can be easily eliminated. This paper will define what a SAS data view is, when one would use a SAS data view, how to create a SAS data view, and explore some sample code dataset, proc sql, proc step, sample source 4
185 SAS Enterprise Guide - A Powerful Tool to Bridge the Gap between Statisticians and Medical Students Barbara G. Schneider,
Kristan A. Schneider
The presentation concentrates on introducing Enterprise Guide / SAS Learning Edition as excellent interfaces for co- operations between statisticians and medical students performing research work such as diploma theses. It is discussed how Enterprise Guide can be used effectively from the planning phase of a scientific project up to the interpretation and presentation phase. The paper is not a basic tutorial on Enterprise Guide but offers ideas how to realize concepts for the process flow of a scientific work. For further information about Enterprise Guide see the REFERENCES section. The presentation will be interesting and useful for people who are involved in teaching statistics to non- statisticians or in scientific co-operations between statisticians and non-statisticians The examples highlighted in the paper refer to SAS Software 8.2 and Enterprise Guide 2.0 sas enterprise guide, dataset, data science source 13
186 SAS Enterprise Guide - A Quick Overview of Developing, Creating, and Successfully Delivering a Simple Project Ajaz E. Farooqi Enterprise Guide, a relatively new product from SAS, is a "point-and-click" environment that brings to both new and experienced SAS users a higher level of SAS computing power. Although there are many different ways of completing any task using SAS, completing tasks with Enterprise Guide is even faster for experienced SAS users and painless for new SAS users. We use a hypothetical project to demonstrate the power of Enterprise Guide through a project- oriented approach. While the primary beneficiaries of this article are new SAS users (with some understanding of SQL), experienced SAS users can also benefit sas enterprise guide, proc sql source 9
187 SAS Enterprise Guide 3.0 for SAS Programmers - A Roadmap to Combining the Best of Both Worlds Stephen McDaniel SAS Enterprise Guide is a powerful Windows client application that provides both a guided mechanism to utilize the power of SAS and a intuitive SAS code development environment. Results can be shared throughout the organization either via the SAS Stored Process Server, SAS IntrNet, the SAS Information Delivery Portal, email, or sending the results to other third party applications such as Microsoft Word or EXCEL. Business analysts, statisticians, and SAS programmers can all use Enterprise Guide to leverage the power of SAS on many platforms enabling them to access data simply and quickly and perform basic reporting and utilize complex analytics such as forecasting and linear modeling. This paper will cover the pertinent areas of SAS Enterprise Guide relevant to developing and managing SAS programs efficiently and effectively. With the availability of Enterprise Guide 3.0, major new features including the Process Flow and the Stored Process Authoring wizard make Enterprise Guide a compelling choice for SAS program development, content distribution, and long-term maintenance sas enterprise guide, clinical research source 4
188 SAS Intelligence Storage Jim Metcalf SAS Intelligence Storage delivers an open and flexible storage platform for business intelligence and analytic intelligence applications that uses existing enterprise infrastructure. It is easy to integrate within existing ETL processes, and it delivers a lower total cost of ownership. SAS Intelligence Storage provides storage options designed from the outset to provide relational, OLAP, and parallel storage options to suit all types of application profiles, ranging from simple reporting and OLAP dissemination to advanced forecasting and data mining. This ensures that maximum flexibility is available to meet different application usage patterns in the most appropriate manner without sacrificing manageability, operational integrity, or performance and scalability. SAS Intelligence Storage provides a comprehensive security infrastructure, seamless integration with SAS ETL processes, and support for industry standards such as OLE DB for OLAP (MDX), ODBC, and JDBC, thereby enabling SAS Intelligence Storage to provide open yet secure data access from all client types across the enterprise. SAS Intelligence Storage is the only storage platform available that delivers a combination of storage options designed from the outset to support business intelligence and analytic intelligence applications and deliver fast extraction, transformation, and loading times irrespective of the amount of data held within an organization, while reducing your total cost of ownership business intelligence, data mining source 2
189 SAS Macro Programming for Beginners Lora D. Delwiche,
Susan J. Slaughter
Macro programming is generally considered an advanced topic. But, while macros certainly can be challenging, it is also true that the basic concepts are not difficult to learn. This paper is designed for people who know the basics of SAS programming, but know nothing about SAS macro programming. We explain how the macro processor works, and how to use macros and macro variables. Using these techniques you can create flexible, reusable code that can save you time and effort macro variable, call symput, proc step, proc print, macro definition, cpu time, dataset, proc sort, sas log, if-then-else, options statement, %if-%then-%else source 14
190 SAS Macro: Symbols of Frustration? %Let us help! A Guide to Debugging Macros Kevin Payton Delaney,
Arthur L. Carpenter
Are you just learning to write MACROS? Are you baffled by when to use single quotes and double quotes - or one inside the other? Are you confused by when to use statements such as DO versus %DO? Want to know the difference between a GLOBAL and LOCAL Macro variable? Do you have macros that don't give the right results yet don't give error messages either? This workshop will introduce a few MACRO concepts that are often misunderstood. You'll also learn how to use options such as MPRINT and SYMBOLGEN, and statements such as %PUT, to help you determine why your macro doesn't run, or why it does run but gives you the wrong results macro variable, do loop, macro loop, macro facility, symbol table, macro definition, macro put, %if-%then-%else, character functions, proc sql, macro function, macro quoting function, options statement, proc step, cpu time, missing value, put statement, sas log, data step, if-then-else source 21
191 SAS Macros are the Cure for Quality Control Pains Gary M. McQuown Even though we all have heard "Garbage In. Garbage Out"; Quality Control is almost always under appreciated, under funded and occasionally even overlooked. But for a project to be successful, it must include Quality Control. Macros are the ideal tool for automating these essential but tedious tasks, saving both time and money, and promoting the task so that it gets the attention it deserves. This presentation will identify macros designed to detect, report and repair on data quality errors and will hopefully be useful to anyone interested in the topic quality control, data controls, macro definition, sample, outlier source 7
192 SAS Macros for Large Scale Data Analysis and Quality Management of Corporate Actuarial Data Mart Dennis X. Tang,
Don Cooper
The Actuarial Data Management department at WellPoint Health Networks often works with large amounts of new health care claim, membership and other types of data. Advanced SAS macros were developed to provide descriptive statistics as well as conduct quality control and process testing. This paper discusses these macros and the advanced SAS techniques used, i.e., saving output from PROC CONTENTS; SELECT INTO in PROC SQL; coding varying SAS code using CALL EXECUTE; and recursions of macros proc step, proc contents, dataset, call execute, proc means, proc sort, sample, proc freq, proc sql, composite key, macro variable, macro definition source 8
193 SAS SPM Solution for Healthcare: Quallity Improvement for Providers Using Statistical Process Control Robert N. Rodriguez,
Susan B. Lewellen
Across the country, significant issues threaten the ability of hospitals to meet their commitments to their communities. These issues include the problems of retaining qualified staff and identifying incompetent Institute of Medicine studies show that staff, increasing costs of staff and supplies, and public pressure. over half of medical deaths in hospitals are preventable, and statewide data reveal variability in hospital quality. The healthcare industry generates large amounts of patient-specific data. However, few hospitals can use the data to identify unusual variability in staff and physician performance, cost of care, and preventable incidents that affect the outcome of a patient's care. SAS SPM for Healthcare provides the ability to access multiple data sources and create analysis-ready data; refer to SAS Institute Inc. (2004a). As illustrated in this paper, statistical process control (SPC) can then be used to identify variability due to special causes and focus further study to reduce variability. These techniques lead to improvements in quality of care, reduction of costs, opportunities to grow market share, and negotiation of better third-party payment. This paper provides examples that explain the use of SAS statistical software to analyze health care data with u charts, p charts, control charts for individual measurements, methods for discovering trends over time, basic forecasting methods, comparative histograms, analysis of means for rates and proportions, and model-based adjustments of mortality rates phase i, phase ii, proc step, confidence interval, dataset, sample source 28
194 SAS System for Windows: Integrating with a Network Appliance Filer Mark Hayakawa The goal of this paper is to help customers maximize SAS application performance running in a Windows environment using Fibre Channel Protocol and network attached storage and to support maximum I/O throughput for large sequential I/O intensive SAS applications bufsize, dataset, memory usage source 12
195 SAS with Style: Creating your own ODS Style Template for RTF Output Lauren E. Haworth sample, proc step, proc template, ods rtf, footnote statement, proc report, title statement, output delivery system, options statement, proc freq source 21
196 SCL Rides Again! Porting RESMENU to the Web Michael L. Davis,
Ralph W. Leighton
The Hartford had a problem. SAS Version 8 on OpenVMS did not support text-based SAS/AF interfaces used by the Corpo- rate Actuarial Reserving area's RESMENU application. The alternative of using SAS/AF Frame with X-Windows had unac- ceptable drawbacks. So the Reserving Automation Support area set out to migrate RESMENU to a web-based interface using SAS/INTERNET and AppDev Studio. But using the latter toolset to construct Java Server Pages (JSPs) proved to be more complex and difficult than anticipated. Fortunately, The Hartford discovered a winning alternative: SAS/INTRNET and SAS Component Language (SCL). This paper will offer a tutorial on how to build SAS/INTRNET applications that feature data-driven (dynamic) selections using SCL, SAS/INTRNET sessions, and a touch of JavaScript. The balance of this presentation will show how these programming elements are successfully used to bring The Hartford's reserving model support application to the web. This paper is organized into the following three parts: An introduction to the RESMENU interface and the problems that necessitated it to be rewritten A primer on SAS/INTRNET and the Application Dispatcher * Discussion of the programming techniques used to rewrite RESMENU macro variable, dataset, proc step, sas base, sample, catalog entry, macro definition, filename statement, calendar year, libname statement, claims development, excel source 21
197 Segmenting Children's Narratives with PROC CLUSTER: An Application of SAS Tools to Child Language Studies Lindsey N. Chen Multivariate statistical methods have been utilized for classifying texts into genre categories or differentiating one literary style from another. Moreover, such tasks could be performed faster and more efficiently, thanks to today's powerful computing capabilities. Within this paper, I present a similar methodology for studying primary school children's narrative genre skills. In particular, the Average Group Linkage Method via SAS PROC CLUSTER is applied to 32 first-grader's spoken narratives obtained from the CHILDESTM corpus. Here, SAS was extremely useful for helping to make sense of a large collection of textual data that consists of various linguistic features measured on a number of narrative texts. Preliminary results show that the children's narratives can be segmented into two sub-genre categories, thus supporting the hypothesis that children at that young age already possess the ability to produce different kinds of narratives proc step, proc cluster, correlation source 7
198 Selecting Records and Assigning Attributes Jimmy A. DeFoor This paper will discuss the primary techniques of selecting records and assigning attributes with SAS software and the relative strengths of each method. The vehicle for describing and relating these techniques will be the data processing problems faced by a group of marketing analysts in a fictional company in Cowtown, Texas if-then-else, proc step, proc sql, dataset, proc format, character functions, where statement source 10
199 Simplified Matched Case-control Sampling Using PROC SURVEYSELECT Robby A. Diseker Epidemiological studies sometimes are designed to compare two groups using one-to-one matching in order to create a control group that is comparable to a case group on one or more risk factors. Producing equal- sized case and control samples that are matched on multiple variables can present a challenge to any programmer. Using the PROC SURVEYSELECT procedure in SAS Version 8 software can facilitate the development of such sampling programs by eliminating the need for macros. This procedure has the ability to select samples within independent stratified subgroups. This paper presents a program that can be simply adapted that will select a matched sample of equal numbers of cases and controls when matching on multiple variables using simple random sampling without replacement sample, sample size, proc surveyselect, proc step, random sampling, char. source 6
200 Skinning the Cat This Way and That: Using ODS to Create Word Documents That Work for You Elizabeth Axelrod,
David Shamlin
By supporting formats like Rich Text Format (RTF) and HyperText Markup Language (HTML), the SAS Output Delivery System (ODS) makes turning SAS output into Word documents easy. Tabular output from SAS procedures can be sent directly to a file that Word can read. However, the resulting Word document might fall short of your expected results. For example, we needed to create a Word document that would serve as a user guide (or codebook), describing over 400 variables in a survey study. The body of the document needed to include detailed information for each variable. The Table of Contents needed to list the page numbers for the sections including the detailed information for each variable. As a result, we experienced several formatting challenges. Long values in section titles did not wrap correctly, and there was too much white space between sections, to name a few. In the course of creating a solution, we discovered a number of useful ODS tricks when creating a Word document using SAS output. We researched ways to automate the creation of the document and to minimize the amount of manual formatting in Word sas output, title statement, ods html, output delivery system, proc step, ods rtf, label statement, proc print, sas batch, macro variable, proc freq, proc template, proc sql source 11
201 So You Want to Write a SUGI Paper? That Paper about Writing a Paper Dianne Louise Rhodes You just attended your first Users' Group conference, and you come out of one really good session thinking, "Hey, I could write a paper like that about My Project!" That's what happened to me after I attended my first NESUG in 1996. And it has happened to others; just recently, in fact, a colleague asked me where he could find "That Paper about Writing a Paper." We couldn't find anything providing specific guidelines on how to approach the process. This paper will introduce the paper writing process: choosing a topic, researching it, developing an outline, and actually writing the paper. I'll also walk through developing a presentation from an outline created in PowerPoint. That's the best way I've found to ensure that the presentation and paper are in sync. I'll go over tips on making an effective presentation. Finally, in the reference section I'll provide other resources for writing good papers and giving good presentations. This paper is a guide to get you started on writing a paper. There are entire books on the subjects touched on here. For more information, see the References proof of concept, quality control source 8
202 Solutions to the Investigation of Healthcare Outcomes in Relationship to Healthcare Practice Patricia B. Cerrito Data mining can be used to examine the relationship between physician practice and patient outcomes while accounting for variability in patient risk and examining variability in physician practice. For example, changes in physician prescribing patterns are easily visualized using data mining tools. Associations can be used to target interactions and/or outcomes for additional examinations. Patterns of prescribing can be tracked using visualization techniques. Once the prescribing patterns are known educational materials can be developed to support necessary changes in the prescribing patterns, change buying habits to reduce the cost of goods, and provide the patient with the most effective, cost saving medications. Text mining can be used to examine unstructured notes that are often contained within patient charts, and to examine diagnosis codes that are used for billing purposes. Another use of the text mining is to compare different sources of medical information to determine optimal sources to examine so that physicians (and consumers) can keep current with practice guidelines. Various data mining tools will be illustrated with examples from medical data. In particular, the relationship between practice and outcome will be examined, so that best practices can be identified that will data mining, dataset, proc sql, regression analysis, adverse events source 18
203 Some Statistical Strategies for Analyzing Confirmatory Studies Involving One or More Occurrences of Primary Events Gary G. Koch,
Maura E. Stokes
This presentation discusses some statistical strategies for analyzing confirmatory studies where patients can have one or more occurrences of an unfavorable (or favorable) event. Principal attention is given to methods for counts of a recurrent event during inter-visit intervals which comprise an entire follow-up period. A major issue for confirmatory studies of this type is how to rank the patterns of events. A second issue is the management of missing data, particularly when patients can withdraw prematurely because of lack of efficacy or a terminating event such as death for which no treatment effects are expected. Both nonparametric methods and regression models fitted with generalized estimating equations (GEE) are useful for comparisons between treatments for the extent of one or more events for a primary response variable. Results from the described methods for counts of a recurrent event are illustrated for two examples. One is a pair of confirmatory randomized clinical trials for comparing two treatments with respect to skeletal complications in patients with metastatic bone disease. The second is an epidemiologic study concerning the association of lower respiratory illnesses in children during the first year of life with passive smoking in the home and other explanatory variables follow-up period, regression analysis, sample size, sample, poisson distribution, covariance, predictor variable, logistic regression, binomial distribution, poisson regression, person-time, weighted least squares, normal distribution, logistic distribution, generalized estimating equations, proc calis, missing completely at random, clinical trial, likelihood function, confidence interval, missing value, anova, response variable, numeric functions, maximum likelihood estimation, estimate, repeated measures, robust estimator, proc freq, correlation, randomization source 21
204 Some Uses (and Handy Abuses) of PROC TRANSPOSE Ralph W. Leighton proc transpose, proc step, calendar year, proc print, character variable, development year, variable, dataset, format statement, raw data, numeric variable, loss development triangle, missing value, claims development, transposing, proc report, comma., development age, by group processing, macro loop source 17
205 Starts and Stops: Processing Episode Data With Beginning and Ending Dates Michael D. Rhoads Regardless of the industry you work in, you will probably encounter data involving things that begin and end on particular dates. People open and close banking and credit card accounts, enroll in and graduate from schools, are hired for and resign from jobs, are admitted to and discharged from hospitals. Data files for these types of data typically include fields for person ID, beginning date, ending date, and various characteristics of the episode. Answering questions involving this kind of data can be challenging for even experienced SAS programmers, to say nothing of beginners. How many days was this person employed during the previous year? Which records in this file have time periods that are inconsistent with each other? Using data files with dates of insurance coverage and hospital stays, what insurance coverage does each patient have during each stay? This tutorial will provide examples of how SAS DATA steps and PROC SQL can be used to solve typical programming problems related to episode data. The language constructs used in the examples will be explained so that relatively junior programmers should be able to follow and benefit from the examples. However, the techniques presented should also be useful to those with more SAS experience proc sql, proc step source 15
206 Steps to Success with PROC MEANS Andrew H. Karp proc step, proc means, output, sas output, missing value, dataset, by group processing, numeric variable, where statement, character variable, credit card, data science source 13
207 Subset Raw Data and Zip Them Up Desheng (Ben) Xu The special variable _INFILE_ can be used to subset the raw input data. The PUT _INFILE_ statement writes the entire input record to the output destination. The %DO loop in macro is used to create dozens of external file references. Finally, use DATA STEP statements to generate a batch program that can be invoked in WinZip command line to zip up every resulting subset file. This paper is appropriate for programmers with intermediate skills and related macro background macro variable, dataset, infile statement, data step, file statement, if-then-else, macro loop source 4
208 Subsetting SAS Data Set by Using PROC SQL Self-join with Compound Key Zizhong (James) Fan PROC SQL is a powerful procedure that has many advantages over the DATA STEP. It can be used for data retrieval, manipulation and report writing. One of the advantages of using PROC SQL for data manipulation is how the data sets are merged together (joining tables). Most of the literature has been focusing on how to join multiple data sets. This paper will focus on one of the other important functions of PROC SQL: the Self-join. The PROC SQL self-join is more efficient than DATA STEP processing in the area of subsetting data set when the subsetting needs to be based on the relationship between variables in different observations within the same data set. By utilizing multiple common columns (compound key) within the same data set, the self-join technique efficiently simplifies programming. This paper will show the strategy and programming of the PROC SQL self-join. Examples will be shown to compare SQL procedure with the DATA STEP. SAS product: Base SAS. Skill Level: All skill levels proc sql, proc step, proc print, proc sort source 5
209 Successfully Supporting SAS at the University: Lessons Learned David C. Steven Support of research computing at large universities in the United States and around the world presents some uniquely difficult challenges. Such universities normally boast a large and highly skilled central computing support division, tasked with providing in-house solutions for the university community. More and more frequently, the paradigm for user support includes open source solutions that are "free." Supporting SAS software requires political savvy, teaching abilities, communication skills, and a dedication to flexibility and excellence statistical software, sas programming, proc mixed, sas programmer source 9
210 Swimming Through and Tapping Out a CA-7 Mainframe Scheduler on a Unix Server David Steves,
Denise A. Figliozzi
In a large organization, security concerns often preclude CA7 mainframe scheduler tools from being available to SAS developers. New and inventive ways must be discovered to submit mainframe (MVS) jobs on a reliable basis. One method involves the invocation of a UNIX Cron Job and SAS Connect logic. The combination of using the CRON feature on the UNIX server with the many SAS features has made this a very reliable and successful scheduling technique. This paper will review how to create a CRON job and configure a mainframe job with JCL to enable the program to emulate a CA7 scheduler. To illustrate how mainframe jobs are submitted concurrently, (or independently contingent on file availability on the mainframe), we will look at SAS production code macro loop, %if-%then-%else source 9
211 Switch Data Source and Output Destination without Changing Programs David Shen,
Zaizai Lu
Two major issues have to be resolved before the programs developed in test environment can run properly in production environment: 1) new data source, 2) locations to save output and log files, should be re-defined for production purpose. Usually all the programs need to be modified for libnames and filenames even if they have been quality checked in test environment. Paper work should be done for tracking purpose. This paper provides some strategies on how to intelligently switch data library and output destination without any changes to the programs. A macro called %Runner is presented here. This macro acts as a program-running platform: (1) It allows users to redirect data sources, change output filenames, locations, and ODS destinations without modifying a piece of the original programs. (2) It checks the locations to save output files. The new file locations can be automatically created by the macro if they are not available at run time. (3) It can run a batch of programs in the specified program location, the macro can search and run programs, save their output, and logs to individual files. Therefore, once programs are migrated from test to production, it's not necessary to change any code for these programs. And undoubtedly, %Runner has wider applications than mere file migration filename statement, libname statement source 7
212 Taking a Deeper Look into the SAS Intelligence Architecture: How to use AIX Tools to Examine Interactions of Base SAS with the IBM pSeries Platform Frank M. Bartucca,
Laurie Jeagers
In addition to SAS Software and programs, a deployed SAS business solution can contain host computer hardware and software, data storage systems, databases, third-party tools, networking equipment and so on from multiple vendors. The success of such a heterogeneous implementation of the SAS Intelligence Value Chain is dependent on the strengths of the interactions or "links" between the individual components deployed. This paper focuses on a set of AIX tools and on how they can be used to examine and tune the interactions between SAS Software and the POWER4 based IBM ~ pSeries sas base, decimal, proc glm, cpu time, sample source 10
213 Taking Your SAS/MDDB Server Applications to the Next Level Matthias Ender The new SAS OLAP Server implements the industry standard MDX (Multidimensional Expression) query language and a new threaded server that's designed to support many concurrent users. While there is no automatic conversion of Version 8, SAS/MDDB applications to the new server because of the different functionalities, you can use all the knowledge gained when designing your MDDBs to lay out the new cubes quickly and easily. This paper presents some guidelines and case studies for moving your MDDB applications to the next level and includes examples of how to take specific application customizations into the new SAS OLAP Server sas 9, proc step, star schema, sas management console, sas enterprise guide source 15
214 Tales From the Help Desk: Solutions for Simple SAS Mistakes Bruce F. Gilsen lag function, if-then-else, sas log, infile statement, character variable, input statement, proc step source 9
215 Text Mining Warranty and Call Center Data: Early Warning for Product Quality Awareness John Wallace,
Tracy A. Cermack
An early warning system was implemented that leverages SAS/TEXT Miner and SAS/QC. While analysts already used comment fields to further understand automotive problems under investigation, an early warning system was tasked to monitor incoming free form text data in a systematic fashion. Clustering models serve to group similar warranty claims together. Once the automotive analyst has reviewed the cluster definition, all new data about that particular auto model will be scored into the best cluster. Cluster sizes and variances are monitored weekly and deviations from expected values are flagged for human review score code, proc step, sample, excel, data mining, macro definition source 8
216 The Basics of Map Creation with SAS/GRAPH Michael S. Zdeb Maps can be created with SAS by using either SAS/GIS or the GMAP procedure (PROC), one of the procedures available within SAS/GRAPH. This paper shows you how to use the GMAP procedure, not SAS/GIS. Four different map types can be created using GMAP: choropleth, prism, surface, and block. This paper will discuss creating choropleth maps, i.e. "...2- dimensional maps that represent data values as combinations of pattern and color that fill map areas" (definition from SAS/GRAPH Software Usage Version 6). Once you understand how to create a map after using a series of examples, you will also learn how to customize the output of GMAP using an annotate data set and also be introduced to some methods of producing web-based maps proc step, proc gmap, if-then-else, data step, ods pdf, output delivery system source 21
217 The INPUT Statement: Where It's @ Ronald P. Cody input statement, infile statement, sas log, trailing @, dataset, variable list, character variable, error message, missing value, proc step, date variable, numeric variable source 14
218 The Perks of PRX ... David L. Cassell Pattern matching lets you find chunks of text that have a particular pattern - even patterns that would be very hard to find using SAS functions like index() and substr(). For example, try finding all strings which have two consecutive words that are the same, not counting capitalization. Difficult with traditional SAS functions, but Perl's 'regular expressions' give you a simple language to search for patterns, extract patterns from strings, and even change text that matches your patterns. This is invaluable for all manner of text manipulation, including validation, text replacement, and string testing. With the advent of SAS 9, the power of Perl's regular expressions is now available in the DATA STEP. In this workshop, you will learn: how to use Perl regular expressions in the DATA STEP; how to write SAS code to access the PRX functions and CALL routines; how Perl regular expressions fit into five basic rules; how to write some simple Perl regular expressions; and * how to use these Perl regular expressions to search for text and replace text. Familiarity with the DATA STEP is required. No prior knowledge of Perl is needed prxparse, sas 9 source 12
219 The Power of CALL SYMPUT - DATA Step Interface by Examples Yunchao (Susan) Tian macro variable, call symput, dataset, binary variable, macro loop source 6
220 The Q & A's of SAS/AF Development Bernd E. Imken This paper focuses on the use of SAS/AF software in the development of strategic applications. It will show how you can build user friendly applications utilizing push buttons, text boxes, pull down lists and graphical displays etc.; how you can customize the appearance of an application to enhance appearance, data integrity, or usability; and how you can utilize drag and drop within an application. The "Frequently Asked Questions" approach focuses on typical difficulties encountered during applications development. SAS/AF developers will discover how to build applications using Form and Table Viewers to create a graphical user interfaces to view or edit SAS data. Particular emphasis will be placed on the customization of such viewers and on how viewers can automatically be linked together without coding. Examples of developing Master/Detail Applications will also be thoroughly discussed. A similar paper was presented at Sugi27 entitled "Developing Master/Detail Applications Using Form & Table Viewers." That paper won the Best Contributed Paper award in the Sugi27 Applications Development Section. This paper extends the original, adding many additional Questions and Answers regarding SAS/AF development sas base, dataset source 11
221 The Role of Consecutive Ampersands in Macro Variable Resolution and the Mathematical Patterns That Follow Michael J. Molter As the complexity of a macro application increases, the programmer may find the use of consecutive-ampersand macro variable references a convenient way of referring to combinations of macro variables. Advantages of these techniques include efficiency, brevity, program organization, and even elegance. Without an understanding of the rules behind this notation as well as the workings of the macro processor, these techniques get difficult to read and especially to write. Manuals provide the rules and some examples, but learning still requires extensive trial-and-error approaches. This paper takes a closer look at the consequences behind the rules of consecutive ampersands, observing regular patterns and stating them in simple mathematical terms. A brief review of macro variable initialization sources is discussed, followed by three simple rules for macro variable resolution and the associated concept of multiple reads of the variable reference by the macro processor, plus examples. Finally, the role of the period in macro variable resolution is discussed. This paper is suitable for programmers of all levels that have at least a basic knowledge of macro processing. It is intended for BASE SAS users in any operating system macro variable, &variable, put statement, macro put, macro parameter, macro loop, do loop, call symput source 9
222 The Softer Side of Software Development: Strategies for Managing Change Jodi Barnes Nelson,
Tim Walters
Developers, programmers, architects and project managers in the IT field are familiar with the canons of change. Despite diligent planning for contingencies, insufficient resources, or acts of God/nature, unanticipated change happens - and always will. We will focus on SAS users as the context for perceiving and properly identifying the nature of a change within its boundaries (e.g., technical, administrative/managerial, business, social). Once identified, what challenges will be faced on various "change levels" (individual, team, department, organization)? At each of these levels, what attributes and infrastructures, processes and values contribute to change success? Concrete examples of change within the SAS community and the larger business contexts will be highlighted. We approach change management as a process, not as a set of isolated problems. Systems-oriented strategies to assist the user, the user's team and surrounding stakeholders will be offered business intelligence, mis source 15
223 The Utter "Simplicity?" of the TABULATE Procedure - The Final Chapter? Daniel E. Bruns class variable, proc step, proc tabulate, proc contents, missing value, label statement source 14
224 The Very Valuable Variable Value Functions Howard L. Schreier Sometimes it is useful, within a DATA STEP, to inspect and utilize a variable's formatted value. In earlier versions of SAS software, this was clumsy. Version 9 introduces the VVALUE function, which makes the process simpler. The related VVALUEX function makes the operation data-driven (rather than code-driven) and thus makes it possible to vvaluex, vvalue, put statement, proc format, character functions source 6
225 Threads Unraveled: A Parallel Processing Primer David Shamlin SAS System 9 introduces a threaded kernel into the core part of the SAS System. These threaded kernel services enable SAS R&D to develop software that runs faster, increases throughput, and enhances scalability. This paper looks at the threaded kernel architecture from a fundamental perspective, answering the following questions: What are threads and how do they relate to symmetric multiprocessor (SMP) computers? How does threaded software improve job performance? What does parallel processing buy me and what does it cost? Exactly what kind of improvements should I expect with SAS 9? Answers to these questions, as well as additional information about specific SAS 9 cases that highlight PROCs, engines, and other components, is provided in this paper sas 9, proc step, parallel processing, proc sort, sas base, class variable, regression analysis, proc sql source 10
226 Throw Away the Paper Trail and Send it by E-Mail Sharon Clanton,
Darlene Davis
This paper describes the transition from a massive hard-copy mail-out of reports on sexually transmitted disease surveillance data quality to an electronic point-and-click system that sends these quarterly feedback reports by e-mail. Each quarter, the improved process utilizes a SAS program to generate case count and data quality and completeness reports for each individual state, its associated cities, and the United States (total), and sends them as e-mail attachments to the appropriate persons in the state and local health departments. By using the SAS Output Delivery System (ODS) and the EMAIL device- type of the SAS FILENAME statement, we have both improved the look of the reports and have saved the taxpayers the cost of labor, envelopes, and postage and improved the timeliness of the data quality feedback data cleaning, filename statement source 4
227 Thumbs Up For ODS Graphics, But Don't Throw Out All Your SAS/GRAPH Programs! Richard M. Mitchell A huge sigh of relief can be heard throughout the SAS/GRAPH community with the introductory launch of ODS Graphics. For those who use SAS/GRAPH, it may sometimes be referred to as needing endless lines of tedious code, and representing a language structure that can be difficult to use for beginners or those who use the software on just rare occasions. ODS Graphics automatically whips out some really cool looking statistical graphics in many of the SAS/STAT and SAS/ETS procedures. Don't get too excited yet though, because critical bells and whistles are still on the horizon, and SAS/GRAPH still offers the user a wide variety of powerful tools proc step, statistical programmer, proc sgplot, sas programmer, ancova, proc reg, proc gplot, confidence interval, proc logistic, covariance, sample, acf plot, bar chart, logistic distribution source 17
228 Tinker, Tailor, Soldier, Spy: The Many Roles of the SAS Consultant Richard H. Phillips,
Mark L. Jordan
Unlike many software packages, the user base for SAS doesn't fit neatly into either a Systems Development or End- User tool. Users span organizations from corporate development to ad-hoc reporting. Not only do the users have different skills and requirements from the software, but they place varied demands on SAS support personnel. We'll explore the many 'hats' a SAS consultant should be prepared to wear while supporting the SAS community. The model we foster is horizontal skills-based vice vertical project-based - a somewhat unfashionable model with major arguments in its favor. We'll examine two large SAS-using organizations, highlighting the commonalties and differences between their SAS communities, and leverage some broadly understandable sketches to explain the roles necessary to any thriving SAS community sas consultant, business intelligence source 7
229 Tips and Techniques to Enhance Your SAS Statistical Graphics Output Shi-Tao Yeh proc step, proc format source 18
230 Tips and Tricks II: Getting the most from your SAS/Graph Maps A. Darrell Massengill This presentation gives an overview of the basic building blocks that can be used to create unusual and outstanding maps. Working examples illustrate these techniques. The examples cannot be examined in detail during the presentation due to the limited time; however, you are encouraged to download and use these examples to better understand the ideas introduced. Note that this presentation extends and builds on the ideas and concepts introduced in the SUGI 28 presentation SAS Mapping: Technologies, Techniques, Tips and Tricks. (See the Resources at the end of this document for the download location of the handout and examples). The techniques highlighted in this presentation include the use of Map Data, Annotate, and the SAS/GRAPH output mechanism. In addition, we highlight methods for doing simple zipcode geocoding (location lookup), techniques for manipulating response and location data, and mechanisms for creating interactive maps output delivery system, proc step, ods html, proc gmap source
zip
13
231 To Rake or Not to Rake Is Not the Question Anymore with the Enhanced Raking Macro David Izrael,
David C. Hoaglin,
Michael P. Battaglia
The SAS macro RAKING for balancing a weighted sample, presented at SUGI 25 by Izrael et al. [1], has attracted many users by its simplicity and versatility. Raking is a technique that almost all survey researchers use, but they may encounter slow convergence when raking by multiple variables and multiple categories. Therefore, we have enhanced the macro by adding several novel features that enable users to obtain comprehensive information on the convergence of all categories of convergence process. Some raking algorithms (including our original raking macro) provide almost no navigational aid and require that the user work blindly with a raking that is converging slowly. Our new macro gives the user an ability to diagnose and remedy convergence problems. By using the graphs, we demonstrate how to collapse categories of slowly converging variables so as to accelerate convergence, and how to use a new prediction feature to better navigate a raking process. For matching sample marginal proportions to population proportions, we discuss a newly introduced percentage tolerance and present an example of iterative proportional fitting. the raking variables and to build graphs for maximum visualization of sample, control total, proc freq source 12
232 To REPORT or to TABULATE? - That is the Question! Daniel E. Bruns,
Ray Pass
Should I use PROC REPORT or PROC TABULATE to produce that report? Which one will give me the control and flexibility to produce the report exactly the way I want it to look? Which one is easier to use? Which one is more powerful? WHICH ONE IS BETTER? If you have these and other questions about the pros and cons of the REPORT and TABULATE procedures, this presentation is for you. We will discuss, using real-life report scenarios, the strengths (and even a few weaknesses) of the two most powerful reporting procedures in SAS (as we see it). We will provide you with the wisdom you need to make that sometimes difficult decision about which procedure to use to get the report you really want and need proc step, proc report, proc means, proc tabulate source 4
233 Top Deployment Considerations for the SAS 9.1 Intelligence Architecture Pat Bostic,
Clarke Thacher,
Dave Crow,
John Roth
The SAS 9.1 Intelligence Architecture is a multi-tiered platform consisting of components residing on client desktops, middle-tier web servers, and enterprise-class back-end servers. These components can be spread across multiple systems running on a variety of hardware and integrated with a wide range of third-party products. This multi-tiered design offers tremendous flexibility and configurability but requires careful planning and deployment. In this presentation, platform managers from the Host Systems Division present the top considerations for preparing to deploy the SAS 9.1 Intelligence Architecture throughout your organization access control, sas enterprise guide source 9
234 Top Ten Reasons to Use PROC SQL Weiming Hu Among SAS users, it seems there are two groups of people, those who love PROC SQL and those who hate PROC SQL. Personally I fell in love with SAS SQL right after I was introduced to it in 1994. I see SAS PROC SQL as being complementary to existing SAS procedures and the DATA STEP. I find a lot of tasks can be done more easily in PROC SQL, and sometimes they are not even possible in other SAS procedures. This paper is intended to share my experience with other SAS users, especially non-SQL users who want to learn SQL. The purpose is to explore alternative methodologies, as we know that in SAS there are hundreds of ways to get the same thing done proc sql, proc step source 7
235 Tricky Aspects of the DATA Step Philip A. Mason This workshop aims to cover a range of features in the DATA STEP which are not used very much or are often misunderstood, such as: · Useful options on statements such as LIBNAME, FILENAME, infile & file · Things you can do with PUT & INPUT · Interfacing with macro language from DATA STEP · Doing ODS from DATA STEP · Unusual functions & formats · Basic GUIs with window & display data step, file statement source 5
236 Two Approaches to the Summarization of Data Huijuan Xu,
John Hotaling
Clinical study reports revolve around the analysis of data relevant to a drug or therapy that is captured during a clinical trial. The data can be presented in an informative manner that is esthetically pleasing through the use of summary tables. In order to create summary tables for a clinical study report, the data collected for the study may need to be manipulated for analysis. Once the data has been analyzed, it may require some manipulation to fit into the format of the summary table. The manipulation of data for pre-analysis, the summary of data, and the post-analysis manipulation of data can all be accomplished through the use of either data steps or procedures. Examples of both approaches are provided in this paper data step, proc sql, csr, proc step, proc transpose, clinical trial, proc means source 5
237 Understanding Customers through Data: A Data Miner's View Gordon Linoff Data mining is often portrayed as the poor stepchild of statistics. This presentation gives a data miner's view of data mining, with particular attention to the different ways that data miners and statisticians approach analyses. Data mining, as discussed here, puts customers at the center of analysis, and because of the prodigious amounts of data collected by business, data mining is less concerned with some typical statistical concerns - such as sample variation and confidence intervals - and more concerned with such things as defining a customer, identifying particular events in the customer lifecycle, and managing large quantities of data. However, the differences are often overstated, and data miners and statisticians are both looking for good, unbiased results that remain stable over time. Survival analysis provides a good example of some differences between the two approaches. The business world uses survival analysis to understand customers, hundreds of thousands or millions of them at once. This presentation includes two examples. The first uses survival analysis to measure the effects of a loyalty program. This example is based on a project for a subscription-based company with over one million customers and a loyalty program that had attracted 5-10% of them. This example quantifies the value of the loyalty program based on increases in customer tenure. The second example uses survival analysis to forecast the number of customers. A survival approach enables "what-if" analysis and an improved understanding of the drivers of business performance data mining, survival analysis source 2
238 Unusual Uses of SAS Steven J. First Our company has used SAS almost exclusively for many years and we feel that it is clearly the best software for many applications. This paper will discuss uses of SAS that are not normally thought of, but for which SAS fits very well. This paper will be of interest to all SAS users. This paper will discuss the following topics: 1. 2. 3. 4. 5. 6. Conversion programs with SAS Utility applications for programmers Auditing other software packages with SAS Production reporting systems with SAS. Source control with SAS Cross-referencing data sources with SAS proc step, data validation rules source 8
239 Using AppDev Studio and Integration Technologies for an Easy and Seamless Interface Between Java and Server-Side SAS Barry R. Cohen The application landscape has changed substantially for SAS application developers. Today's landscape uses a distributed-object, component-based architecture that integrates SAS server capabilities into enterprise-wide applications that are n-tiered, Web-enabled, and thin-client. SAS has developed new products to help you build SAS applications in this landscape. These include the AppDev Studio product suite including especially webAF within it, and Integration Technologies. You will likely want to leverage a few key features of these products as you build Web- enabled SAS applications. From AppDev Studio, these features are SAS-aware Java classes for Java programs, SAS Custom Tags for JavaServer Pages, and SAS Components for applets. From Integration Technologies, the feature is the Application Facility. These product features allow an easy and seamless interface between your client- or server-side Java applications and your server-side SAS programs and data. This paper provides an overview of today's SAS application landscape, and discusses how to use these key SAS product features to develop applications in this landscape dataset, proc step, sas base, sas library source 13
240 Using Edit-Distance Functions to Identify "Similar" E-Mail Addresses Howard L. Schreier Version 9 of SAS software has added functions which can efficiently help to assess the degree to which different character strings are similar or have elements in common. These do not necessarily supersede the simpler functions provided in earlier versions. In some cases it makes sense to use old and new together proc freq, proc sql source 9
241 Using Macros to Automate SAS Processing Kari Richardson,
Eric Rossland
This hands-on workshop shows how to use the SAS Macro Facility to automate a SAS job. In this hands-on workshop you build a basic macro to process a data set. You then expand the macro using SAS Input/Output functions to allocate a SAS library and read various items from the descriptor portions of the data sets in that library. You further enhance the macro to conditionally process the desired data sets in the selected library and send a summary report via e-mail macro definition, macro variable, keyword parameter, %macro parameters, macro facility, proc step, libname statement, sas log, goto, %if-%then-%else, macro parameter, sas output, proc print, macro flow control, macro function source 16
242 Using Meta and Project Data for Data Driven Programming (Updated for SAS 8 &SAS 9) Brian K. Varney Creating dynamic, data driven programs is a very powerful tool. Often we can use the metadata or the project da ta itself to help write our programs. This paper will introduce some of the concepts related to writing SAS programs which will generate pieces of SAS code in a data driven manner. Parts of the SAS language used in this discussion include the followin g: 1. macro call routines (call execute, call symput) macro variable, proc sql, proc step, call execute, dictionary tables, macro loop, data step, label statement source 9
243 Using New Features in ODS to Create Master/Detail Reports Jack Hamilton This paper discusses the concept of master/detail reports and discusses several methods of creating them in SAS, with an emphasis on using the Output Delivery System data step, proc step, proc report source 7
244 Using ODS, an Easy Approach in Creating HTML Web Pages Gregory Newkirk SAS using ODS (Output Delivery System) helps to create web pages from the data for easier display for the users. ODS has many output destinations; The Listing destination produces monospace output, which is formatted like traditional SAS procedure output. The Printer destination produces output that is formatted for high-resolution printers. The Output destination produces SAS data sets. The HTML destination produces output that is formatted in Hypertext Markup Language. The HTML destination produces a simple web page that is easy to maintain, especially if you are working within a budget. If a simple web page is all you need, the author will show you a quick and efficient way of accomplishing it proc print, file statement, proc step, output delivery system source 12
245 Using SAS at SAS: The Mining of SAS Technical Support Annette M. Sanders,
Craig DeVault
Over the last decade, the amount of data that has been collected and stored has increased dramatically. Statistical methods have been, and continue to be, refined and perfected to yield valuable answers to business problems and goals using standard qualitative and quantitative data analysis methods. However, an overwhelming portion of all data collected is actually unstructured text. The evaluation of textual data is a relatively new focus area of statistics. Classical methods that generate answers to business problems can be enhanced effectively by coordinating the analysis of textual data with SAS Enterprise Miner and SAS Text Miner. The Technical Support Division at SAS has not escaped this deluge of data. Although we collect data for every question or problem that we receive in order to manage the delivery of answers and solutions, we have never used the data as a tool for discovering underlying behavior or patterns of software and support issues - until now. data mining, proc freq, proc hpsplit, dimensionality reduction, regression analysis, dataset, chi-square test, scree plot, txt, proc corresp, outlier source 23
246 Using SAS Catalogs to Develop and Manage SAS Data Step Programs David D. Chapman A key concept in program management is to develop the code in one place, make changes at one location, move the code to where it is needed for testing or use, and when making changes make sure they work before changing production code. SAS catalogs are ideal for developing, testing, and managing DATA STEP programs. This paper reviews SAS catalogs and the different kinds of elements they contain. It discusses Source, Log, Output, Macro, Format, and CATAMS elements. For each it gives an example of how to put it into a catalog and how to retrieve and use it from the catalog. It also discusses how to manage and sequence code coming out of the catalog to make up your DATA STEP and procedure programs. The use of PROC CATALOG to view catalog contents and copy elements to another location, and PROC UPLOAD and PROC DOWNLOAD to move the SAS catalogs to a production location on a different computer are discussed. Managment issues on how to use PROC CONTENTS and PROC UPLOAD and PROC DOWNLOAD to move the SAS catalogs to a production location on either the same or a different computer are shown. The use of the Source Control Manager (SCM) to management DATA STEP and procedure code from a SAS catalog is also discussed proc step, catalog entry, cpu time, catalog, data step, filename statement, proc upload, proc catalog, proc download, proc report, proc datasets, proc format, autocall macro, dataset source 11
247 Using SAS Procedures to Make Sense of a Complex Food Store Survey Jeffrey M. Gossett,
Pippa M. Simpson,
Renée A. Hall,
Carol Connell,
Kathy Yadrick,
Margaret L. Bogle
A case study of a community food store survey for the Lower Mississippi Delta Nutrition Intervention Research Initiative (Delta NIRI*) is given. Survey design and analysis issues are discussed with references to the SAS survey software. In this paper we address the estimation of the cost of a market basket of food items. Basket items, and therefore prices, are not available at all stores. We discuss the imputation of missing food item prices using PROC MI. Since we are sampling from a finite population, most commonly used SAS procedures are not appropriate for the estimation of correct standard errors. Therefore, we combine PROC MI with PROC SURVEYMEANS. For each of 5 sets of imputed data, we estimate the mean cost of the market basket using PROC SURVEYMEANS. We then use PROC MIANALYZE to combine estimates and to estimate the standard error of the cost estimates proc step, imputation, sample, proc mi, proc surveymeans, proc mianalyze, proc calis, missing value, missing at random, binary variable, sample weight, data step source 8
248 Using SAS to Match Cases for Case Control Studies Hugh Kawabata,
Michelle Tran,
Patricia Hines
In many epidemiological studies subjects are matched to make the study groups comparable. While there are no methods that can guarantee comparability, individual cases are often matched on important characteristics to provide assurances that the groups are comparable. The process of matching cases is relatively simple: (1) for each study case, control cases are matched on the major characteristics; (2) if a control matches more than one case, one control is randomly selected; (3) randomly select the desired number of controls for each case. It is step (2) that can create the most difficulties. This poster will illustrate how this can be done using SAS, and some approaches to deal with the difficulties in handling instances where a control subject matches more than one case subject proc sql, proc step, create table, proc freq source 8
249 Using SAS to Model the Spread of Infectious Disease Karl Mink,
Michael S. Zdeb
An epidemic is the rapid and extensive spread of disease. Environmental factors, human factors, and the properties of the infectious agent in question all play a role in the spread of that biological agent. It is this combination of factors that combine to form "a perfect epidemic." A program was created to enable educators to access a simple disease-modeling presentation to aid them in teaching students about the spread of disease. It takes into consideration only population density and assumes immunity occurs after infection. However, it is enough to visually demonstrate concepts of herd immunity, vaccination, and disease spread. The program is a prototype and ideally would be hosted on a web site. Hopefully teachers could log on and change variables such as the infectiousness of the agent, the population density, and the number of people vaccinated against the agent macro variable, proc gmap, proc step source 10
250 Using SAS to Process Data Entered into a Microsoft Access User Interface Regina Clincy This paper will demonstrate how to create a Microsoft Access user interface in which SAS processes the data in the background. This paper will further discuss how to cause a SAS program to run when new data is entered into a Sybase/Oracle table, and how to notify the End User when the SAS program is finished processing and the results are available to view in Microsoft Access. Most of what is covered in this paper applies to SAS for Windows, MS Access 2000, and either Sybase or Oracle databases dataset, oracle source 5
251 Using SAS/AF to Create Data Entry Screens with Multiple Comment Fields Allowing for Unlimited Amounts of Text in Each Field Robert S. Matthews This paper describes a process, using SAS/AF software, for creating data entry screens that can contain multiple comment fields. An unlimited amount of text information can be stored in each field and there can be an unlimited number of comment fields for each observation. The comment fields are defined as 'Extended Text Entry' widgets in an AF Frame screen. The text information in the comment fields is stored in a SCL List that is then saved to, and retrieved from, a SAS catalog entry. A SAS dataset is used in conjunction with a SAS catalog to provide a complete data entry system. The intended audience for this paper should have an intermediate level of knowledge about the Base SAS System as well as proficiency using SAS/AF and Screen Control Language catalog entry, catalog, dataset, character variable source 6
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 proc step, proc template, sas log, ods html, file statement, proc freq source 17
253 Using Text Files to Enhance SAS Code David J. Austin One fundamental strength of SAS is its ability to convert raw data into analytical information. The files do not have to be particularly well structured for SAS to read and use. SAS has the flexibility to read data from practically any format. In fact, certain efficiencies can be gained by keeping raw data raw. Beginners and intermediate SAS users may find the following methods of utilizing raw data helpful txt, macro variable, raw data, proc step, flat file, excel, proc format, date variable, proc export, proc import, proc contents, adverse events source 11
254 Version 9 Programming Enhancements - Vive la difference? Marje Fecht Performance improvements are the well-publicized enhancement to Version 9, but what else has changed that impacts your "SAS programs"? This Hands On Workshop explores many new Version 9 features including: (cid:131) new functions that may eliminate the need for complex expressions (cid:131) changes and additions to informats and formats (cid:131) interface additions and improvements (cid:131) new Export capabilities (cid:131) procedure enhancements (cid:131) and more. . . This workshop is beneficial for Version 8 SAS users who are getting started with Version 9 character functions, proc step source 5
255 Why SAS is the Best Place to Put Your Clinical Data Steven A. Wilson The SAS System contains an incredible amount of functionality for managing your data files as a database. In most respects, including data storage, data access, and data management, SAS can be considered a database. This paper will review the database functionality available within the SAS System and how this relates to the task of clinical trails data management. Sample code, which illustrates many of these database techniques, is provided audit trail, constraint, key, dataset, proc step, foreign key, proc sql, missing value, data integrity, clinical data, clinical trial, proc datasets, proc print, sas base, libname statement, traffic data, view, adverse events source 13
256 Widefiles, Deepfiles, and the Fine Art of Macro Avoidance Howard L. Kaplan When data from a collection of datasets (widefiles) having similar keys is reorganized as one consolidated dataset having one record per data point, attached to sort keys and variable identifiers, that organization is a deepfile. Associated with the deepfile is a data dictionary that allows many important program operations to be specified by table entries in the dictionary rather than by explicit code. Here, the concepts are illustrated with a few datasets from a pharmaceutical study where information is collected from patients on multiple occasions. Sorting the deepfile by variable identifier and processing it using by-group logic is an attractive alternative to macros for repeating the same univariate processing over multiple variables. Alternatively, sorting by patient and then occasion facilitates a simple method for listing the entire dataset in the order of events within patients. Deepfiles also facilitate adding new variables, rearranging the order of variables, and exporting data in ASCII formats. These techniques should be of interest to intermediate level programmers working with Base SAS data dictionary, response variable, numeric variable, vital signs, label statement, proc step, by group processing, cpu time, correlation, data step, proc mixed, character variable source 11
257 Write Log (%WL) a Production Logging Utility for Data Warehouse Transactional Logs Brett C. Peppe Often SAS Data Warehousing application programmers encounter situations where a formatted log entry must be written for later review or a permanent record. For example, the record of a production job run. Successful log messages are standardized, easy to maintain and efficient to use. The %WL() macro automates many of these log writing tasks in a simple form: %WL( P0, P1, P2, P3, P4, off=nn ); data cleaning, data step, macro definition source 5
258 Write SAS Code to Generate Another SAS Program - A Dynamic Way to Get Your Data into SAS Linda Gau In this paper we introduce a dynamic way to create SAS data sets from raw data files (flat files) by using SAS(cid:1)/Base only. You only need to write one SAS program, and it will handle all kinds of raw data - fixed length, delimited, free- formatted or even hierarchical files. You may also apply the same algorithms with little modification to output raw data files from SAS data sets dataset, raw data, input statement, date variable, data cleaning, put statement, flat file source 9
259 Writing Code That Lasts Sandra Minjoe With SAS, there are often many different ways to write code that provide the same answer. So how do you decide which method to use? The answer depends greatly on your environment. This collection of tips can help you decide which programming method makes the most sense for your situation. These tips are useful for anyone interested in writing code that you can walk away from (and not have to worry about). This could be in your role as a contractor, or just because you want to be promoted or moved into another job area you find more interesting. New programmers can use these tips to start them off on the "right track". This paper contains both suggestions and warnings to assist you in writing code that is easy to read and understand, flexible, portable, and that requires little future modifications. In other words: code that lasts if-then-else, macro variable, excel source 8
260 XBRL - eXtensive Business Reporting Language, the New Language of Financial Reporting Frank Eckhausen XBRL has been named one of the Top Tech Trends by PwC, been mentioned as a potential solution to greater Financial Transparency in connection with the Sarbanes-Oxley act and is being widely adopted by vendors developing ERP and accounting systems. So what is XBRL? What are the benefits and when can you expect it to become mainstream? What plans do SAS have for supporting XBRL? financial reporting, reporting, libname engine source 8
261 XML in the DATA Step Michael C. Palmer SAS Institute's (SI) XMLMAP imports XML via the LIBNAME XML engine and a mapping file, by-passing the DATA- step. For export of XML, SI offers custom TAGSETS and the Output Delivery System (ODS). Custom TAGSETS are built with PROC TEMPLATE, by-passing the DATA-step. By contrast, the DATA-step method discussed in this paper uses a single, uniform methodology to import, export, and transform user-defined XML vocabularies in the familiar DATA- step. With XMLMAP, all of the information about the original XML hierarchical structure is lost and export back to XML is not readily available except for several XML formats built into the XML engine. For XML export, one has to use arcane customized TAGSETS and ODS. Nevertheless, SI's toolbox does work and has reportedly scaled to large, real- life uses. The DATA-step method, on the other hand, indexes an XML hierarchy and uses these indexes to flatten the XML hierarchy and to preserve the information about the hierarchy in a DATA-step friendly format. The method has been in use successfully and supports complex XML vocabularies such as the pharmaceutical industry's CDISC XML standard for clinical data and proprietary XML schemas in the financial industry. It has scaled to XML files of over one million records define-xml, output delivery system, cdisc source 13
262 You've Got Mail - E-mailing Messages and Output Using SAS EMAIL Engine Jeanina M. Worden,
Philip Jones
This paper will cover the syntax of the FILENAME and FILE statements to automatically send custom e-mails and files, based on the results of a program, using the FILENAME EMAIL access method. SAS users of any level who have information to send electronically can use the information in this paper. Though the syntax used in this paper applies to SAS Version 8.2, these features are available with SAS Release 6.11 and beyond filename statement, file statement, put statement source 5

Back to Conf go 2005 go 2003

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.