HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

SGF 2007 Papers - Index

242 papers. Source: SAS Global Forum conference proceedings.

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 "Development, Test, Production ... Oh My!" Making It to the Land of Oz (also known as a satisfied IT Department) Using SAS9 and Business Processes Angela M. Hall,
Ben Zenick
sas data integration studio, sas management console source 5
2 "Ins" and "Outs" of Installing and Configuring the SAS Enterprise BI Server at Blue Cross Blue Shield of Minnesota Kevin Bretz,
Michael Cornell
This paper discusses the implementation of SAS Enterprise BI Server at BlueCross BlueShield of Minnesota (BCBSM). It provides an overview of the hardware and software architecture and the deployment of SAS Enterprise BI Server within a mature enterprise-wide and external web-facing infrastructure in a multi-tier UNIX environment. This paper also provides highlights of the installation and configuration process as well as lessons learned from the overall installation and configuration experience from both the SAS and customer point of views sas administrator, sas enterprise guide, account source 8
3 %STPBEGIN: How SAS Enterprise Guide Almost Removed the "L" Word from My Relationship with SAS Rupinder Eberhardt,
Peter W. Dhillon
Somewhere in the SAS Enterprise Guide documentation we read how easy it was to create a SAS stored process - write and test your code, add a simple %stpbegin and %stpend and let SAS Enterprise Guide take care of the rest. Presto, a new stored process ready to conquer the enterprise. Although that might work in the Hello World example, our first stored process project proved that applying the same guidelines to a more complex SAS program was much more challenging. In reality, creating stored processes is more involved than adding the basic syntax, input parameters and macro variables. You must also be aware of the differences that exist between SAS Enterprise Guide and PC SAS sessions, the importance of efficient coding, and the distinctions between the Workspace and Stored Process servers. This paper will step through some "gotcha's" that may stump you when converting existing code or creating new stored processes from scratch sas enterprise guide, macro variable, excel source 7
4 7 Bulletproof Steps: The Quickest Way to Programmatically Generate a Dynamic Excel Graph from SAS Choon-Chern Lim If you are thinking, "Jeezz… not another way to create an EXCEL graph…", I would highly encourage you to continue reading this paper. While there are several proven techniques that allow you to programmatically create a dynamic EXCEL graph based on N observations from a SAS data set, they may not necessarily represent the optimal technique to achieve the best possible result. A fairly complex implementation could excel, sas programmer source 8
5 A ""SAS Programmer's"" Guide to SAS Enterprise Guide- Marje Dhillon,
Rupinder Fecht
You have been programming in SAS for a while….. You hav e been told "we are moving to Enterprise Guide" and removing Display Manager". You say …… I can program everything just fine myself, thank - you! OR What am I supposed to do with all these windows? This presentation will demonstrate how SAS programmers can use SAS Enterprise Guide as their primary interface to the SAS system while maintaining the flexibility of writing their own customized code. We will look at how to navigate the views and menus how SAS Enterprise Guide can be used as your primary SAS Editor * how you can leverage the more complex built-in capabilities available in SAS Enterprise Guide to further enhance the information you deliver. Enterprise Guide version 4.1 will be used sas enterprise guide, bar chart, sas programmer, proc step, sas log, dataset, proc sql source 20
6 A Dynamic Example of Delivering Patient Management Identification Opportunities Using SAS/IntrNet Richard W. Kobylinski This SAS/INTRNET application provides instant acces s to almost 5 million health claim and clinical inf ormation records. It is designed to focus and prioritize patients for interaction through Aetna's behavioral health case management and disease management programs. Through the company i ntranet, nurse case managers have the ability to se arch for patients by program, service area, employer (plan s ponsor), or Aetna office. A submitted search produc es a prioritized list of patients meeting criteria provi ded to the search form. Each patient is listed with relevant data to help the nurse select a patient in need of interaction. A drill-down into claims, disease identification in formation, demographics, risk levels, and clinical markers all ows the nurse to decide whether this patient should be contacted. Then an assignment decision can be executed within the tool and the patient's status may be tracked dataset, macro loop, %if-%then-%else, macro definition, macro variable, macro facility source 11
7 A Generic Method of Parallel Processing in Base SAS 8 and 9 Sassoon Kosian When you work with large data sets and large volumes of SAS processes, leveraging multiple CPUs to run parts of a SAS job in parallel threads can significantly increase the speed of performance. There are several ways to multi-thread jobs in SAS, for example, you can use threaded procedures in SAS9 or run parallel jobs by using MP Connect in SAS/CONNECT 8 or SAS/CONNECT 9. However, in many scenarios, you cannot take advantage of these methods. This paper suggests a generic parallelization technique that can be used as a work-around solution when other methods cannot be used. This parallelization technique works in SAS8 and SAS9, and only Base SAS software is needed. This technique is based on a mechanism that spawns multiple jobs from a single instance of code, and, depending on how your SAS code is structured, either the whole process or parts of the process can be run in parallel. By using the technique that is explained in this paper, you can significantly increase performance time mp connect, out=, parallel processing, proc step, proc sort, data step, in=, cpu time source 8
8 A Hands-on Tour Inside the World of PROC SQL Kirk Paul Lafler,
Ben Cochran
Structured Query Language (PROC SQL) is a database language found in the base -SAS software. It enables access to data stored in SAS data sets or tables using a powerful assortment of statements, clauses, options, functions, and other language features. This hands -on workshop presents core concepts of this powerful language as well as its many applicati ons, and is intended for SAS users who desire an overview of the capabilities of this exciting procedure. Attendees will explore the construction of simple SQL queries, ordering and grouping data, the application of case logic for data reclassification, th e creation and use of views, and the construction of simple inner and outer joins proc sql, where statement, proc step, select, inner join, index, order by, view, data merging, right join source 13
9 A Legend Is Not Just a Legend Wendi L. Wright This intermediate level presentation will show the many ways to change the legend in a graph, to make it more meaningful and to make it stand out more clearly on the plot. Using PROC GPLOT and the LEGEND statement, this paper demonstrates how; 1) legends can be moved to different places on the graph; 2) labels of the legend values can be c hanged; 3) the shape of the legend can be made vertical rather than horizontal and; 4) adding color can emphasize your legend proc gplot, proc step source 10
10 A Peek at PROC DOCUMENT Andrew H. Karp A major enhancement to the SAS Output Delivery System (ODS) in SAS 9 Software is implementation of the DOCUMENT Destination, which allows SAS users to store ODS-generated objects in a re-useable file structure called a "document." ODS DOCMENTS can be accessed, re-played, and manipulated using the new DOCUMENT Window or PROC DOCUMENT, an interactive BASE SAS Procedure which is also new in SAS 9. Learning to use the DOCMENT Destination, DOCUMENT Window and DOCUMENT Procedure will give you enhanced control and flexibility when using ODS to generate output from SAS Procedures. Core Concepts: ODS Tables, Objects and Destinations In order to understand the new DOCUMENT capabilities added in SAS 9, it is important to first understand how the Output Delivery System works within the overall framework of the SAS System's creation of output by Procedures proc step, output delivery system, sas 9, proc logistic, credit card, sas risk engine, dataset, logistic distribution, sas base, sas output source 5
11 A Purposeful Selection of Variables Macro for Logistic Regression Zoran Gauss,
C. Heath Williams,
David K. Hosmer,
David W. Bursac
The main problem in any model-building situation is to choose from a large set of covariates those that should be included in the "best" model. A decision to keep a variable in the model might be based on the clinical or statistical significance. There are seve ral variable selection algorithms embedded in SAS PROC LOGISTIC. Those methods are mechanical and as su ch carry some limitations. Hosmer and Lemeshow describe a purposeful selection of co variates algorithm within which an analyst makes a variable selection decision at each step of the modeling process. In this paper we introduce a macro, %PurposefulSelection, which automates that process proc logistic, logistic distribution, macro variable, proc step, feature selection, estimate, logistic regression, regression analysis, main effect, backward selection source 5
12 A SAS Macro for Automating the Change-In-Estimate Strategy for Assessing Confounding Julius Ta,
Myduc L. Atashili
Although the "change-in-estimate" (CIE) strategy is conceptually more accurate than the "significance-test-of-the covariate" (STC) strategy for assessing confounding in the causal modeling of observational epidemiological data, the use of the CIE strategy is hampered by the cumbersome need for analysts to run an enormous amount of models. Indeed, assessing n covariates for potential confounding using the CIE strategy requires ((n)*(n+1)/2)+1) models. With 10 potential confounders, this translates to as many as 56 models. Automating the CIE strategy in SAS will allow for a better assessment of confounding using this method. This paper introduces %backconf, a SAS macro that automatically implements the CIE strategy using a backward elimination of covariates resulting in the least change of the estimate of the exposure variable. %Backconf incorporates the GENMOD procedure and easily accommodates different values allowed for by the class, where, link, dist, offset and weight statements proc genmod, proc step, macro variable, confidence interval, %if-%then-%else, binomial distribution, poisson distribution, macro loop, relative risk source 10
13 A SAS/AF Application to Transfer Data between SAS and XLS/CSV/XML Files Heng Zou Transferring data betw een SAS and other data ty pes, such as Microsoft Ex cel (X LS), Comma Separated Value (CSV), and Ex tensible Markup Language (X ML), could be di fficult. Although SAS softw are provides data transfer features between SAS and XLS/CSV in "Import Data" and "Export Data", it lacks the capability to transfer multiple files or multi-sheet EXCEL files in one trans fer. Meanwhile, SAS software takes at least 4 steps on the screen to transfer a single file. As the consequence, a SAS/AF file transfer application is developed in SAS version 9.1 on Window s platform for all levels of SAS users as an alternative to other means of transferring between SAS and other different data types, i.e. XLS/CSV/XML, with many advantages excel, sas log source 10
14 A Simple Chargeback System for SAS Applications Running on UNIX and Linux Servers Michael A. Raithel Organizations that run SAS on UNIX and Linux servers often have a need to measure overall SAS usage and to charge the projects and users who utilize the servers. This allows an organization to pay for the hardware, software, and labor necessary to maintain and run these types of shared servers. However, performance management and accounting software is normally expensive. Purchasing such software, configuring it, and managing it may be prohibitive in terms of cost and in terms of having staff with the right skill sets to do so. Consequently, many organizations with UNIX or Linux servers do not have a reliable way to measure the overall use of SAS software and to charge individuals and projects for its use. This paper presents a simple methodology for creating a chargeback system on UNIX and Linux servers. It uses basic accounting programs found in the UNIX and Linux operating systems, and exploits them using SAS software. The paper presents an overview of the UNIX/Linux "sa" command and the basic accounting system. Then, it provides a SAS program that utilizes this command to capture and store monthly SAS usage statistics. The paper presents a second SAS program that reads the monthly SAS usage SAS data set and creates both a chargeback report and a general usage report. After reading this paper, you should be able to easily adapt the sample SAS programs to run on servers in your own environment. Then, you will be able to create monthly chargeback and usage reports of SAS usage on your own UNIX and Linux servers cpu time, dataset, format statement, macro variable, filename statement, libname statement, proc step source 17
15 A Simple Way to Combine Graphs and Text - DSGI Tim Tian DSGI combines the SAS/GRAPH procedures of GSLIDE, GREPLAY, and annotate facility to create or add features (includes graphs and text reports) to an existing graph generated by a SAS procedure. Using PROC GPRINT to transport text file into graph file, DSGI can combine these existing graphs and text together in one output. It is an easy way to mingle graphs and text reports together using one DATA STEP txt, data step source 8
16 A Throughput-Intensive Compute and Storage Grid Using SAS Grid Manager Somantak Chanda The time has come when a $2,000,000 SMP UNIX server can be replaced by a $200,000 grid of even greater performance, reliability, and fault tolerance. We'll discuss the considerations made in selecting the key grid components: grid node hardware, network infrastructure, and storage strategy. These must be optimized for the type of workload the grid will support. We'll look at detailed performance metrics of our pilot grid, which executes single-threaded and massively parallel SAS workloads using SAS Grid Manager software on Linux. We compared numerous CPU, disk, and network configurations to optimize price versus performance. We'll discuss details down to the MB/s and how you can choose the right hardware for your processing needs, given your budget. Finally, we'll discuss the business challenges of implementing a grid, including convincing your leadership of a grid's value, working with the IT Department, and software licensing sas grid, sas management console, data wrangling, flat file, proc step, sas base, grid computing source 10
17 Advanced PROC REPORT: Doing More in the Compute Block Arthur L. Carpenter One of the unique features of the REPORT procedure is the Compute Block. This PROC STEP tool allows the use of most DATA STEP statements, logic, and functions, and through the use of the compute block you can modify existing columns, create new columns, write text, and more! This provides the SAS programmer a level of control and flexibility that is unavailable in virtually all other procedures. Along with this flexibility comes complexity and this complexity often thwarts us as we try to write increasingly interesting compute blocks. The complexity of the compute block includes a number of column identification and timing issues that can confound the PROC REPORT user. Of course to make matters even more interesting, there can be multiple compute blocks that can interact with each other and these can execute for different portions of the report table proc step, proc report, character variable, class variable, proc format, missing value, put statement, do loop source 22
18 Affordable SAS Tips Teo Gamishev SAS continue to impress with a large number of powerful tools, providing the user with almost unlimited possibilities to find the best solution for any programming situation. While enjoying the life of SAS programmer, you may find yourself surrounded by various problems, demanding urgent decision. This article contains some of the answers you may need and use. The following tips do not require any special training or knowledge in order to be applied into your coding arsenal. They are really affordable macro variable, calendar year source 5
19 AJAX and SAS: Smooth Web Applications Alan K. Churchill AJAX (Asynchronous Javascript and XML) is an approach to designing websites that emphasizes ease of use for end users. Using one of the new AJAX frameworks simplifies the creation of an AJAX enabled website. Additionally, using web services as a backend provider for SAS, an AJAX site can be created that allows users to request SAS information from a server and display it on a web site in a seamless manner. Step by step instructions for creating a AJAX-enabled, web service backend system working with SAS are provided web service, dataset source 11
20 Alternatives for Analysis of Complex Sample Surveys: A Comparison of SAS, SUDAAN, and AM Software Bethany A. Kromrey,
Jeffrey D. Bell-Ellison
Data collected from complex sample surveys ar e frequently used in secondary data analysis. The analysis of such data using standard statistical softw are yields biased point estimates of parameters and incorrect standard errors as a result of unequal probabilities of selection of observations, stratification and clustering, and unit nonresponse. The appropriate analysis of data from complex sample surveys requires the use of software that incorporates sample we ights and accurate estimates of variance. SAS procedures such as PROC SURVEYMEANS and PROC SURVEYL OGISTIC provide one approach to such analyses, as does the use of specialized st and-alone software (such as AM) or packages that integrate with SAS (such as SUDAAN SAS-Callable). Th is paper provides an introduction to the special statistical requirements for the analysis of complex survey data and a comparison of statistical results when data are analyzed using SAS v9.1.3, SUDAAN SAS9-Callable 9.0.1, and AM v.0.06 sample, proc step, proc calis, regression analysis, sample weight, data science, logistic distribution, f-test, logistic regression, proc logistic, random sampling, proc freq, confidence interval, proc reg, odds ratio, proc surveylogistic, proc surveymeans, proc surveyreg, bootstrap, design effect, sample size, statistical software, likelihood function, proc means source 10
21 An Analysis of Abundance and Catch Probability of Sharks off Coastal Louisiana Rebecca Barry,
Kevin Condrey,
Richard Geaghan,
James P. Christofferson
There are 25 species of sharks in the Gulf of Mexico. This analysis focuses on two of those species indigenous to the Louisiana Coast: the Blacktip shark and the Bull shark. The steps involved in preparing the data for analysis involved much manipulation through SAS, as did the statistical analysis. Using a mixed model, the factors involved in shark abundance at three sampling sites along the Louisiana coast will be assessed (especially for the Blacktip shark) and using these factors, a model to predict the probability of encountering each of these species will be analyzed using a logistic regression model. Factors assessed are month, location (station), and time of day. Keywords: logistic regression, mixed model, sharks time variable, sample source 9
22 An Animated Guide: PROC TRANSPOSE Russell M. Lavery If one can think about a SASâ data set as being made up of columns and rows, one can say PROC TRANSPOSE "flips" the columns of data into rows of data -and also does the reverse (flips rows into columns). The ability to "flip" data is necessary because some SAS Procs want your data to "be in rows" and some Procs want your data to "be in columns". Complex manipulations of the shape of the data (tall & thin data sets into wide and short data sets and the reverse) can be quickly performed with PROC TRANSPOSE. The trick in using PROC TRANSPOSE is to recognize that the statements in your code do not completely determine the output you get. Output is determined by your individual coded statements, the interaction between coded statements, the shape of the input data set and also by actions that PROC TRANSPOSE takes by default. This paper contains many slides. It should be noted that most slides are a complete "worked example" and can be used as a reference proc transpose, proc step, by group processing, proc means, raw data, proc print source 22
23 An Animated Guide: The SAS DATA Step Debugger Russell M. Lavery The DATA STEP Debugger (DSD) simplifies debugging Data Steps and not whole programs. Using the debugger requires some understanding of how SAS works because the DSD does not issue any error messages. When using the DSD, a programmer mentally compares what s/he sees, in the Program Data Vector (PDV), with what s/he expected to see. Critical, to use of the DSD, is an understanding of the PDV and, as a side issue, the DSD is an excellent way to learn the PDV. The goal of a programmer should be to learn to combine DSD commands and to link those combinations to a key or a macro. Linking a series of commands to a key, or a macro makes the DSD much more powerful. Figure 1 sas log, data step, do loop, if-then-else, macro loop source 20
24 An Approach for a Scalable, Platform-Independent, Automated Solution Using SAS IOM Srinivas Bhat,
Vijay Venugopal,
Jim Fang
Harnessing the functionality of SAS/SAS Connect and utilizing the flexibility of SAS Integrated Object Model (IOM), data can easily be moved between multiple platform independent applications like Microsoft EXCEL and SAS. This paper presents a practical step-by -step approach to sourcing data from an EXCEL sheet to create a SAS dataset on the UNIX server. It further elaborates the use of SAS Call Exec ute DATA STEP function to transport the SAS dataset row-by-row as parameter to a SAS macro culminating in creation and FTP of CSV files to different servers. The paper also highlights merits of the above approach in the ar eas of maintenance, scalability, ease of use and process automation dataset, excel, call execute, data step, proc sql source 8
25 An Introduction to SAS Character Functions Ronald P. Cody character variable, substr function, compress function, length statement, character functions, input statement, verify source 17
26 An Introduction to SAS Stat Studio: A Programmable Successor to SAS/INSIGHT Rick Wicklin,
Peter Rowe
histogram, data science, exploratory data analysis, logistic distribution, line chart, dataset, logistic regression source 18
27 An Introduction to SAS Stat Studio: A Programmable Successor to SAS/INSIGHT Rick Wicklin,
Peter Rowe
histogram, data science, exploratory data analysis, logistic distribution, line chart, dataset, logistic regression source 18
28 An Introduction to SAS/GRAPH Step-by-Step Deb Cassidy SAS/GRAPH is an extremely powerful tool. In addition to producing common graphs like pie charts and line graphs, it has the power to create any custom graph that you could imagine. Another great benefit to SAS/GRAPH is its ability to programmatically create your graphs without adjustments. You may have a few daily or monthly graphs to create, hundreds or thousands of graphs by patient or customer or product, or on- demand graphs where someone specifies the subset criteria to get a standardized graph. However, before you can harness the real power, you need to know the basics. This workshop will walk you through the creation of a graph and exploring some of the many ways you can make a "picture worth a thousand words." You'll start simple using all the defaults. Then we'll explore some of the many options that can enhance a graph proc step, title statement source 14
29 Analyzing Time Series Cross-Sectional Data with the PANEL Procedure Jan Chvosta,
Donald Erdman
A brief theoretical overview of methods available to analyze time series cross-sectional (panel) data is provided. The PANEL procedure in SAS/ETS software is used to demonstrate the implementation of these methods in SAS. An empirical example is given to compare different techniques and demonstrate the PANEL procedure's capabilities. Dynamic panel methods are discussed and compared to other techniques. Finally, the PANEL procedure is compared to other SAS procedures, such as the MIXED procedure and the TSCSREG procedure proc panel, response variable, time series analysis, cross-sectional data, proc step, panel data, regression analysis, residual, qq plot, covariance, proc reg source 11
30 Animating SAS/GRAPH Output-Telling a Story That Changes Over Time Stuart A. Nisbet With the rapid advancements in computer proce ssing speeds and high-end graphics displays, we've seen a proliferation of eye-catching animations, multimedia, and s pecial effects in many common applications. It's easy to forget that one of the most traditional methods of di splay can be used without mandatory software or hardware upgrades to deliver compelling content. Additionally, the use of these techniques doesn't have to be just for glitz and glamour; their use can actually depict meaning and context in a business applicati on. This video poster describes an age-old technology-animated GIFS-that can be created and deployed from within SAS/GRAPH software. Animated GIFs can provide additional meaning and informat ion without requiring additional screen space or an investment in faster CPUs, graphics display CARDS, or so ftware scatter plot, proc step, proc sort source 7
31 Annotated SAS/GRAPH Plot of z/OS Goal Mode Performance Indexes Using Macros and MXG Software Neal Musitano Jr. This paper displays an annotated SAS/GRAPH plot of IBM z/OS Goal Mode workload service class performance indexes by using macros and MXG software. The graph is generated via a batch j ob using the SAS JCL procedure on an IBM mainframe server or Central Electronic Complex (CEC) using the z/OS platform. The SAS Output Delivery System (ODS) is used to output the plot written as GI F file to a UNIX hierarchical file system HFS on the z/OS system. The MXG software processes the IBM Resource Measurement Facility (R MF) workload activity record type seventy-two into a daily MXG comput er performance database (PDB) dataset on z/OS Goal Mode workload performance data, i.e. the MXG PD B goal mode member dataset, output delivery system, sas base, batch job, macro variable source 11
32 Architecting SAS in a Modern World: Best Practices for Design, Configuration, and Management of SAS9 Gregory S. Barnes Nelson For decades, SAS has been relegated to the world of the mystical, the unknown and perhaps even superstitious. Configuration options, switches and toggles all in conspicuous or perhaps precarious positions, waiting for the day when an expert can take a closer look-or worse, when something breaks. This paper will show how SAS can be architected with modern Windows and UNIX systems solutions. While current users of SAS 9 can continue to use the software as they (or their fathers) always have, SAS 9 now offers new possibilities for how to use its technology more efficiently as well as how to better manage infrastructure. We will explore the hardware side of SAS by examining disk options, I/O configurations, backup as well as understanding how powerful multi-way (and multi-core) systems can ease your SAS processing with optimal configurations between processors and memory sas 9, sas programmer source 15
33 Assessing SAS Skill Level During the Interviewing Process Jenine Milum This paper will provide guidelines and tools that will assist in interviewing a candidate for a SAS programming position, even for the non-programming interviewer. Skill level categories will be defined: Beginner, Intermediate, and Advanced. Specific interviewing approaches, suggested topics, questions and tests will be explored. We'll also cover tactics to get the right candidates to apply in the first place proc step, sas programmer, sas programming, proc format, sas function, proc sql source 10
34 Attitudes toward Immigrants and Immigration in the United States: Toward a Structural Approach Michael J. Sobczak Immigration has recently become an important national issue due in large part to the rise in numbers of immigrants entering the United States (starting around 1965), the shift in the national origins of immigrants, and wage stagnation and economic restructuring occurring as immigrants arrive. In many ways, the recent American response to immigration can be characterized as negative. These social trends underpin my overarching research question: What factors influence attitudes toward immigrants and immigration policy today? The major weakness of prior research in addressing this question has been its failure to recognize that attitudes toward immigrants and immigration policy are not static across the United States. Immigrants settle and impact different locales in different ways. Here I fill this crucial gap in the literature by providing an understanding of the manner in which local structural factors shape Americans' attitudes response variable, sample, binary variable, interval variable, random intercept, sample size, proc reg, proc mixed, regression analysis source 12
35 Automatically Incorporating Repeated Changes in SAS Programming Codes in Clinical Trial Reporting James David Moore,
John G. Rayamajhi,
Jyoti N. Barfield
In programming activities during clinical trial reporting, situations can arise when a change in a portion of SAS code is warranted after the programs are finalized and moved into a production environment. It is a very common situation during the clinical trial reporting process. There may be one minor change in the SAS code to be applied repeatedly to a large number of programs. One way to achieve this is by changing the hard code to each of the programs. However, if the number of programs is sufficiently large, then the risk of making mistakes due to hard coding increases. Therefore, it is always better to avoid repeated hard coding, instead it should be coded only once and the SAS macro tool should automatically find that string of code and go into each of the programs and make the necessary changes. That way the error due to hard coding is minimized clinical trial, macro variable, txt source 4
36 Back Up with Each Submit and Save Your Sanity! Suzanne M. Humphreys Do you work in a small company and/or on a stand alone computer? No network back ups to rely on? Have you ever lost work when the system crashes or you accidentally overwrite a SAS program? This paper will present a handy, easy to implement tool for maintaining ten rolling SAS program back up files. As you submit code in the enhanced editor window, the whole contents of the window are sequentially saved in a back up folder, even if you have started a new session of SAS. This enables you to be able to retrieve the whole program for the last ten 'submits'. Give yourself one less frustration during your working day! Intended audience - intermediate to advanced, Windows platform, based on SAS 9.1.3, interactive SAS. KEYWORDS: back up files, PIPE device-type, FILENAME statement, DOS commands, DM commands filename statement, macro variable source 5
37 Benchmarking Sub-Annual Series to Annual Totals - From Concepts to SAS Procedure and SAS Enterprise Guide Custom Task Edith Djona,
Maurice Fortier,
Susie Latendresse
Situations that require benchmarking are very common in statistical agencies. Benchmarking is defined as an adjustment of the level of a sub-annual series using auxiliary annual benchmarks. The sub-annual series is modified so that the annual sums of the sub-annual series are equal to the corr esponding benchmarks. This is done while preserving the movement in the sub-annual series as much as possible as well as considering that the benchmarks at the end of the series might not be available yet. This paper illustrates the benchmarking methodology developed at Statistics Canada. The presented method is a special case of the general regression-based benchmarking model proposed by Dagum and Cholette (2006). The paper also presents the innovative implementation of the methodology with a complete SAS procedure called PROC BENCHMARKING, developed at Statistics Canada for UNIX and Microsoft Windows operating systems, using SAS/TOOLKIT. The procedure is pres ented through a custom add-in task for SAS Enterprise Guide and Microsoft Office, developed to provide a user-friendly interface and produce analytical tables and graphs based on the benchmarking results. The methodology presented is primarily used by economists and analysts, while the accompanying SAS procedure and custom task require basic knowledge of SAS and SAS Enterprise Guide sas enterprise guide, dataset, proc step source 10
38 Best Practices for Implementing a BI Strategy with SAS Mike Varney,
Brian Vanderlinden
Implementing a Business Intelligence strategy can be a daunting and challenging task. SAS has introduced many concepts to us by bringing a comprehensive BI solution to the market. While some of those topics are not new, they can certainly make us think more than before, which is a very good thing. Many companies go ahead with the installation and configuration of the SAS BI platform with very little planning, only to ask themselves many questions afterwards, questions that should have been answered early on. This paper describes the best practices for all phases of a Business Intelligence strategy implementation using the SAS platform. It will cover what needs to be considered during the planning phase such as architecture, security and optimization as well as introduce the different tools available for data collection and reporting and what it means in terms of changes to move from SAS Foundation to the SAS BI platform sas administrator, business intelligence, data mining, capacity planning, proc step, time series analysis, regression analysis source 10
39 Best Practices for Managing Predictive Models in a Production Environment Robert Duling,
David M. Thompson,
Wayne Chu
The widespread use of predictive analytics has enabled organiza tions to more accurately predict their business outcomes, improve business performance, and increase profitability. As the sheer number of these models in the overall portfolio is coupled with growing requirements to dem onstrate external compliance, it is imperative that the organization implements sound model managem ent practices. Model management is not a one-time activity but an essential business process. Models must be well developed and validated to demonstrate that they are working as expected. Outcomes analysis is also necessary to ensure that the scores derived from applying the model to new data are accurate and to verify that model performanc e remains satisfactory. This paper presents SAS-based strategies for effectively managing predictive model s in a production environment and introduced a new product, SAS Model Manager 2.1 for SAS 9.1.3 sas model manager, champion model, model monitoring, data cleaning, score code, response variable, model validation, challenger model, data governance, data mining, model training, training set, basel ii, model deployment, outlier source 10
40 Best Practices for SAS9 Metadata Administration Diane Matz,
Ken Hatcher
SAS9 provides several tools to help with metadata administr ation, but you must implement internal processes to optimize the usage of these tools. This paper provides so me process best practices for backing up your repositories and managing changes in the SAS9 environment and discusses how you can leverage SAS 9 tools as an integral part of the process. A brief overview of the road map for future enhancements is also given sas management console, spk file, business intelligence, access control, relational database, dataset source 14
41 Better SAS Programming through Version Control Tim P. Williams This paper expands upon concepts introduced in the SUGI31 paper "Version Control on the Cheap. A User- Friendly, Cost-Effective Revision Control System for SAS." Several examples specific to the Concurrent Versions System (CVS) are presented. Those concepts can be applied to other systems. The benefits of version control can be attained by individuals or scaled up to global programming teams. The goal is not to review and comp are various applications and methods , but to present general concepts and provide specific examples from the experience gained using CVS on over three hundred SAS programming projects. With this information you will be well equipped to start research into which tools and methods are best suited to your own programming environment. Keywords: version control, code management, project management, Concurrent Versions System, CVS, Tortoise CVS, Subversion, open source, coding standards, efficiency macro catalog, put statement, macro variable, audit trail, sas programming, quality control, macro put, sas log, macro definition source 14
42 Beyond the Basics - Advanced OLAP Techniques Ben Zenick,
Ben S. Miles
This paper will address advanced OLAP capabilities that historically could not be taken advantage via the SAS platform. The paper will include real-world examples demonstrating how the SAS v9 platform has allowed great accessibility to the world of OLAP. Have you ever attempted to apply if/else logic directly into an OLAP cube that will allow the engine to make certain decisions? Have you had difficulty applying Advanced Time Period Manipulation in an OLAP structure? Can you apply different calculations to a measure based on a certain level in a hierarchy? How can you deliver Non-Additive calculations in OLAP? How can traffic light images be represented on an OLAP Report? This paper will address these questions as well as the following information custom options for cube building, using external aggregation tables, advanced MDX topics, and Cube display options proc step, proc sql, where statement, user-defined format, sample, proc univariate source 10
43 Building Reports with SAS Web Report Studio Eric Rossland This tutorial guides you through the task of building a report with SAS Web Report Studio. You will begin by using the Report Wizard, which provides a step-by-step process for building a simple report. After the initial report is created, you will use the Edit Report and View Report views to modify the report. The report modifications will include adjusting the various properties of the report obj ects that are created by the Report Wizard and adding additional report objects bar chart, sample source 26
44 Building Your Own Real-Time SAS Server Monitor under UNIX Houliang Li No matter how abundant your production or development hardware resources may be, you will run into problems once in a while, whether it is CPU, memory, or disk space. If such problems occur too frequently, you need to take some preventive measures, such as getting an advance warning system. You can have devoted administrators watching over your Unix SAS servers around the clock with commercial monitoring tools, or you can build one from scratch. Base SAS has provided all the tools you need to construct your own real-time SAS server monitoring and reporting system, and this paper will show you how to put them together. The benefits to your organization are endless, and you get to play The Big Brother for your SAS users. Trust me, they will love you work library, macro loop, sas base, create table, %if-%then-%else, proc sql, macro definition, proc freq source 7
45 Calculating Duration via the Lagged Values of Variables Pon Su Duration calculation is common in many SAS programming tasks. Whenever an event occurs between a start date and an end date, one may need to compute the elapsed duration (in seconds, minutes, days) for the said event. The programming challenge in SAS often arises from having to perform operations across many observations for the same person. As most books and papers about SAS have not fully explored the LAG function in the context of duration calculation, the author now wishes to leverage the LAG function and offer a different programming lag function, dif function source 5
46 Calculating Statistics Using PROC MEANS versus PROC SQL Jyotheeswara N. Yellanki Base SAS provided the PROC MEANS, which was very po werful/flexible procedure used to perform descriptive statistical analysis. This lead to a wi despread use of MEANS procedure, as a re sult it became very popular amongst the older generation analysts. The proliferation of Relational Data base Management System (RDBMS) in information technology world lead to the introduction of PROC SQL in SAS v6.0. Being as English like language, Structure Query Language (SQL) become very popular amongst the newer generation analysts. Current SAS developer community has some analysts who use PROC MEANS to do all of the st atistical work and some who use PROC SQL to do their part of the statistical work. But PROC SQL can perform or cater majority of the functionality that a PROC MEANS can deliver. Hence there is no real need for either community to learn the other's PROCs. However analysts who do maintenance or enhancement projects need to be familiar or proficient with both PROCs proc step, proc sql, dataset, class variable, standard deviation, sas output, numeric variable, proc means source 8
47 Can Coding MedDRA and WHO Drug Be as Easy as a Google Search? Sy J. Li,
Na Truong
In a world where information can easily be accessed by applying a Google search, mapping unstructured clinicians term or verbatim terms from an adverse event or a drug name to a standard term no longer needs to be an arduous task. One of the challenges of working with coding medical terminology is combining several skills that are diverse from many different disciplines. The user needs to be clinically trained to understand and interpret the meaning of the adverse events or the drug names. A conceptual understanding of the normalized database and the multi-axial hierarchical structure is required to navigate the dictionary. The user must also be adept at adding to the source data and joining the case report form data with the proper fields of the dictionary tables to derive at the final mapped data. Expecting users to overcome these hurdles without a clear process or tools can lead to an error prone, laborious and painful process adverse events, raw data, verbatim term, dataset, sas base, crf, preferred term source 9
48 Categorizing Drug Data in a Complex Survey with SAS PROC FORMAT, INPUT, and PUT Functions Henry H. Xia Drug data recoding is commonly used in analyses of drug utilization rates, drug risks and side effects, and drug abuse and its prevention. Classification of a specific drug into a predetermined category using drug codes is complex. There are more than 100,000 brands of drugs on the market in the United States with more than 40,000 generic name codes, and some drugs are combinations of different ingredients. In addition, some drugs have multiple therapeutic uses, and thus, the most appropriate drug category may vary depending on the specific analysis. In this paper, a flexible SAS macro is presented for recoding drug data into groups using the SAS INPUT( ) and PUT( ) functions according to a format defined for drug codes in the FORMAT procedure. The macro can be used for any listed drugs in a data set. The macro can categorize each drug into up to ten categories without code modification, which greatly simplifies the coding process sample, proc step, proc format, macro definition, proc tabulate, nominal variable, macro facility source 8
49 Changing Data Set Variables into Macro Variables William C. Murphy For reusing code, macro variables are an indispensable part of the SAS system. You can create multi-use programs in which titling, subsetting, and even analysis var iables can be controlled by changing the values of macro variables. To create a few macro variables, the %LET statement works extremely well. But if you want to automate the production of macro variables, DATA steps with the CALL SYMPUT statement or PROC SQL provide a better method. If a large number of macro variables need to be created from data set variables, however, eve n these solutions many require a great deal of typing. Fur thermore, if the number of macro variables created for each data set variable and observation is extremely large, the memory demands on the system can be huge. The S AS system however, provides an elegant way to overcome these problems with the CALL SET routine macro variable, proc sql, call symput, proc step, macro loop source 4
50 Checking for Duplicates Wendi L. Wright This introductory level paper demonstrates a quick way to find duplicates in a dataset (with both simple and complex keys). It discusses what to do when they are found, and shows the difference between the PROC SORT options NODUP and NODUPKEY. The last ex ample presented will show how to use the option NODUPKEY to keep only the record with the hi ghest value of a variab le when duplicates are found source 5
51 Communication-Effective Pie Charts LeRoy Bessler Pie charts are a popular and simple tool to visually compare the relative size of the parts of a numeric whole. Yet, there is more to getting a SAS/GRAPH pie chart right than you may think. We start with an eye-opening comparison of 3D and 2D. You will see how 3D can actually undermine visual communication by distorting the apparent relative size of slices. Then we look at ordering pie slices. If you also want to control the color palette for a multi-color SAS/GRAPH pie (i.e., if you care which slice is which color), there is an unexpected challenge to meet. It is also important to consider when and how to use an "Other" slice. To maximally exploit the power of simplicity, you will be shown the author's "Pac-man Pie Chart". The biggest pie chart challenge is labeling. Unless creating a pie of a few slices with all of them about the same size, it may be a problem to get every slice description, value, and percent to fit around the perimeter of the pie without overlapping bar chart, excel, proc gchart, symbol table, proc step source 10
52 Converting SAS/IntrNet Programs to SAS Stored Processes Heather Weinstein To more fully leverage the capabilities of the SAS9 Enterprise Intelligence Platform, you can convert existing SAS/INTRNET applications into SAS Stored Processes. Many features are implemented in the SAS Stored Process Server and the SAS Stored Process Web application to mi nimize the code changes required during a conversion. Existing SAS/INTRNET Application Dispatcher programs can usually be converted to streaming stored processes with minimal or no modifications. This paper explains how to perform such a conversion and discusses some of the differences between Application Dispatcher programs and stored processes catalog entry, sample, macro variable, sas management console, put statement, output delivery system, sas log, ods html, variable, sas enterprise guide source 18
53 Creating a Format from Raw Data or a SAS Data Set Wendi L. Wright This introductory level presentation demonstrates the creation of a format from raw data or a SAS dataset using the CNTLIN= option in PROC FORMAT. In order to create a fo rmat from a SAS dataset, the SAS dataset must have a few required variables. This paper will explain how to construct this dataset and how to create character and numeric formats or informats within a dataset. Also, the CNTLOUT= option will be used in order to demonstrate ho w SAS stores formats internally. This knowledge can be used to help construct even more sophisticated formats using the CNTLIN option proc format, dataset, proc step source 7
54 Creating a Local Library Edward Heaton SAS provides us with the %local statement to insure that macro variables that are created in our macros do not collide with macro variables that might exist outside the macro. However, SAS provides no such utility for SAS datasets. This paper presents a macro that will create a SAS library that is local to the macro that creates it. With this utility, the users of the macro do not have to be concerned about whether they have a SAS dataset or catalog with the same name as one created by the macro. This paper shows the use of the macro and discusses elements of sound macro design macro variable, work library, macro loop source 10
55 Creating ActiveX Graphs for Presentations using SAS Enterprise Guide ... And Drill-Down Graphs Too Terek J. Peterson,
Robert Gordon
This paper introduces the SAS user to the basics of using SAS Enterprise Guide (EG) to create graphs. The example project will show how to pull data from ClinTrace Oracle tables to make datasets, how to subset and merge the datasets with the point and click EG interface, how to produce a 3D Active X HTML Graph, and how to insert the graph into a PowerPoint presentation. Using the ActiveX graph toolbar, it will be demonstrated how to pivot, size, and zoom the graph within PowerPoint or EXCEL. A discussion and illustration will explain some of the limitations of the EG graphing capabilities. Exporting the code generated fr om the example project in EG allows enhancements with SAS using the TEMPLATE procedure and SAS/GRAPH code to produce publication quality output. Lastly, the authors will show how to take advantage of the ODS HTML output destination to create a drill-down series of graphs of increasing detail, which end in an EXCEL spreadsheet of the data proc step, sas enterprise guide, ods html, proc template, output delivery system, adverse events, excel source 10
56 Creating Microsoft Excel Pivot Tables from SAS - (Part 2) John DeMeo This paper is a follow-up to a paper presented at SUGI 31 in San Francisco by Ted Conway. It provides several enhancements to a technique that uses Base SAS and Visual Basic Scripting to automate the creation of EXCEL Pivot Tables from SAS data sets label statement, dataset, excel source 8
57 Creating Multi-Sheet Excel Workbooks the Easy Way with SAS Vincent DelGobbo Transferring SAS data and analytical results between SAS and Microsoft EXCEL can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using the new XML support in Base SAS 9.1 software to create multi-sheet Microsoft EXCEL workbooks (versions 2002 and later). You will learn step-by-step techniques for quickly and easily creating attractive multi-sheet EXCEL workbooks that contain your SAS output. Tips and tricks with the ExcelXP ODS tagset will be divulged. Most importantly, the techniques that are presented in this paper can be used regardless of the platform on which SAS software is installed. You can even use them on a mainframe! The use of SAS server technology is also discussed. Although the title is similar to a paper presented at SUGI 31 (DelGobbo, 2006), this paper contains new and revised material not previously presented by this author excel, xls, proc print, sas output, proc report, sas base, change from baseline, adverse event summary, adverse events, sample, output delivery system, proc template, proc step, ods xml source 19
58 Creating Multi-Sheet Excel Workbooks the Easy Way with SAS Vincent DelGobbo Transferring SAS data and analytical results between SAS and Microsoft EXCEL can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using the new XML support in Base SAS 9.1 software to create multi-sheet Microsoft EXCEL workbooks (versions 2002 and later). You will learn step-by-step techniques for quickly and easily creating attractive multi-sheet EXCEL workbooks that contain your SAS output. Tips and tricks with the ExcelXP ODS tagset will be divulged. Most importantly, the techniques that are presented in this paper can be used regardless of the platform on which SAS software is installed. You can even use them on a mainframe! The use of SAS server technology is also discussed. Although the title is similar to a paper presented at SUGI 31 (DelGobbo, 2006), this paper contains new and revised material not previously presented by this author excel, xls, proc print, sas output, proc report, sas base, change from baseline, adverse event summary, adverse events, sample, output delivery system, proc template, proc step, ods xml source 19
59 Creating Order Out of Character Chaos: Collation Capabilities of the SAS System Michael Mebust,
Scott Bridgers
Traditionally, data is ordered to facilitate further processing or to enable you to quickly find information in a report or other form of data presentation. The SAS System's primary means of achieving an alternative collating sequence has been to specify a translation table (TRANTAB), using the PROC SORT SORTSEQ option, with which PROC SORT can reorder individual characters. SAS 9.2 extends the SORTSEQ option to enable the specification of an arbitrary encoding for non-native binary collation. SAS 9.2 also extends the SORTSEQ option to enable the specification of linguistic collation, which is useful for presenting data because it produces results that are more intuitive and culturally acceptable. The linguistic collation capability is highly compatible with the Unicode Collation Algorithm and adaptable to user preference using various options. In this paper, we describe the four collation capabilities offered by PROC SORT in SAS proc sort, proc step, character variable, data wrangling, order by, proc sql, numeric variable, sorted data source 16
60 Creating Tables of Contents in RTF Documents Electra Small With the ODS (Output Delivery System) RTF destination, SAS users build tables that are opened directly in MS Word and other word-processing packages. A natural next step is to automate the creation of tables of contents and indexes for documents. The table of contents (TOC) and the index provide readers with road maps to find the tables of greatest interest to them. This paper reviews the new, version 9 methods for creating RTF (Rich Text Format) destination tables of contents. In addition, this paper offers two less-documented methods for creating customized tables of contents. One method, which is experimental in version 9, utilizes MS Word styles; the other method uses ODS to pass RTF commands directly to the word processor. These two methods require slightly more advanced programming skills but allow for greater TOC customization proc step, title statement, proc template, proc freq, macro variable, macro quoting function source 10
61 Critical Success Factors for Rate Making with SAS Enterprise Miner Hrushikesh Khopkar,
Jay King
Rate making and risk-based pricing give users a definite competitive advantage in the general insurance business. This advantage is all the more compelling if the company is an industry leader. This paper attempts to tie the theory of rate making to technology and business definitions and describes how to set a benchmark for validation and customer handover to ensure a successful rate-making project. The objective of this paper is to reduce the number of iterations involved in the development of a rate card, or formula, and to discuss available options. To underwriters, this paper provides a road map and proven best practices. To project managers, it offers a guide to scope commitment, dependency tracking, and progress tracking. To analytical developers, this paper describes the business definitions and thresholds that impact the acceptance of results. This paper presents the life-cycle of a rate-making project and highlights how the advances in theory and technology can be usefully leveraged to price insurance products tactically. data mining, rate making, poisson distribution, proc freq, proc hpsplit, pure premium, sas enterprise guide, rating factor, claim severity, loss ratio, poisson regression, regression analysis, proc genmod, insurance claims, response variable, proc step, raw data, zero-inflated poisson source 17
62 CRSP Indices in SAS Taras Zlupko About two hundred US stock and Treasury financial indi ces and benchmark portfolios are available from the Center for Research in Security Prices (CRSP). T he breadth of application of CRSP indices in financial research as well as success of index-based financial pr oducts offered by the investment industry, stimulate further interest in the indices. SAS environment provides flexible access options an d powerful analytical solutions when working with CRSP financial indices. CRSP stand-alone index product has been available in SAS format for some time. The advent of the SASECRSP interface engine has introduced new perspect ive of the CRSP index data access and analysis. The engine allows working with data provided in the proprietary CRSPAccess format directly from SAS and enables additional options of data pres entation standard deviation, proc freq, format statement, correlation, libname statement source 12
63 Customer Case Study: SAS Application in a Deregulated Electric Retailer Ernest L. Podraza SAS applications are theoretically endless. Curren tly at Reliant Energy, SAS is being used for vario us levels of electric load forecasting both short term and long term, projecting electric shapes in pricing of comp etitive deals, and data mining various data bases for various reportin g functions. This paper gives a high level overview of these functions and how they interface with various data bases time series analysis, rate filing source 4
64 Customer Case Study: The Evolution of Financial Risk Analytics at EnCana Gord Anderson,
Mark Perrin
EnCana is one of North America's leading independent gas and oil production companies. We buy and sell product in the market place and need to offset and monitor risk from market movements, and assess risks associated with our customers, to ensure business is conducted within acceptable financial risk profiles. We have needed greater sophistication in our Risk Analytics to calculate "at-risk" metrics on revenue and mark-to-market including VaR, CVaR, PFE, CFaR along with other market, credit and liquidity metrics. Our existing systems were not up to the task so we implemented SAS Risk Dimensions (RD). We started early in 2005 and had our initial implementation running by April. We then began enhancing the analytics within RD and infrastructure that support it. This paper will discuss where we started with RD, the enhancements that have been made to date and where we are planning to go in the near future. This evolution will be presented from both the business and IT perspectives. Gord Anderson, Market Risk Analyst, Financial Governance, will present the business perspective. Mark Perrin, IT Group Lead, Financial & Market Risk, will present the IT perspective. correlation, excel, regression analysis, partial correlation, sas risk engine, cpu time, sas enterprise guide, market risk, scenario analysis, monte carlo, covariance, proc princomp source 15
65 Customizing Your SAS Initialization George J. Hurley Whether writing a short SAS script for statistical analysis, developing new software powered by SAS, or customizing an existing SAS script to your needs, it is important to get off to a good start when using the SAS Windowing Environment (commonly called the SAS Display Manager). This is the GUI (Graphical User Interface) that SAS provides to write and submit SAS code interactively (along with a myriad of other functions). Programming efficiency can begin at the initialization of SAS. This paper will discuss two methods to change SAS options when a SAS 9 session begins. The first method discussed will be the use of the SASV9.CFG file. The second will be the creation and use of an autoexec.sas file. Furthermore, it will discuss types of options that can be changed with each of these methods and explain why changing these options at startup can increase programming efficiency and make programming in SAS a more personalized and convenient experience autocall macro, options statement, txt, sas 9, proc step source 9
66 Data Matching David H. Dickinson,
Wendy B. Johnson
It is rare that a single data set or table will hold all the data we need to answer the questions facing our business. We usually need to match data from multiple sources to assemble the meaningful intelligence required for our SAS experts to deliver to the business. Indeed, SAS provides substantial capability for the matching of data, but all too often an inefficient or inaccurate method can be employed leading to incomplete or incorrect results. In this workshop we will explore some data and code the correct syntax to provide the results we want. This workshop deals with the DATA STEP and the process of bringing in multiple data sources. It needs to be clearly understood at all levels of SAS programming expertise, but the examples demonstrated will be of most benefit to people with less experience in SAS programming data step, sysrc, missing value, set statement, proc sort, excel, transaction data, merge statement, modify statement, update statement source 18
67 Data Mining Physician Decisions for MRSA Hamed Zahedi Methicillin-resistant Staphylococcus Aureus (MRSA) is a type of bacteria that is resistant to most antibiotics. These antibiotics include methicillin and other more common antibiotics such as Septra, Cipro, Penicillin and Amoxicillin. MRSA occurs most frequently among persons in hospitals and healthcare facilities (such as nursing homes and dialysis centers) who have weakened immune systems. It is the purpose of this study to survey physicians and to develop a decision model concerning the actual treatment of osteomyelitis (bone infection) with MRSA and to compare it to evidence from clinical studies. Surveys were sent out to physicians and pharmacists (121 total). There is a noticeable pattern in physician treatment of MRSA with different antibiotics. In particular, recommendations for one antibiotic are automatically assumed for another clinical trial, sample, data mining source 8
68 Data Mining to Investigate the Prescribing of Medications Longitudinally Mussie A. Tesfamicael Forecasting is an important topic on corporate agendas to keep financial performance on track at a time when revenues are less predictable. In this paper, high performance forecasting was applied to healthcare data. SAS/STAT software facilitates the data processing and forecasting procedures to provide useful information that can help improve patient care and lower costs. The dataset was obtained from the medical expenditure panel survey (MEPS) by merging medications prescribed for the years 1996-2004. The variables used include the medication start date, medication quantity, patient insurance payment, and total cost of medication. SAS High Performance Forecasting (PROC HPFDIAGNOSE & PROC HPFENGINE) was used to investigate trends in medication prescription, usage, and cost. The medications were collected at a series of irregular intervals; we defined a monthly sum time series analysis, proc step, proc esm, residual, pacf plot, acf plot, partial autocorrelation, moving average, missing value, proc calis, outlier, data mining, time variable, time series data, proc freq source 17
69 Data on Demand with SAS Enterprise Guide-: A Cheap and Easy Approach to Real-Time Database Access Richard F. Pless SAS Enterprise Guide is often promoted as an easy introduction to SAS or as a tool for business analysts who prefer graphic interfaces to writing extensive amounts of code. However, it has some interesting functionality that even the truest die-hard programmer could appreciate such as its ODBC interface. A frequent task for SAS programmers and DBAs alike is creating SAS datasets from databases. Typically this process involves either an exporting utility (such as DBMS/Copy) or implementing additional SAS Modules such as SAS Access or SAS Share and using their ODBC functionality. However, SAS does have another simple way to gain read-only access to a database, the ODBC functionality in SAS Enterprise Guide. This paper will describe a process for accessing real-time data from a SQL Server database using SAS Enterprise Guide. Additionally it will provide best practices for data structure and developing SAS Enterprise Guide programs sas enterprise guide, dataset, odbc connection, sql server, proc sql, call execute, character variable source 11
70 DATA Step vs. PROC SQL: What's a Neophyte to Do? Ray Davis,
Michael L. Dickstein,
Craig 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 be ginner/novice SAS programmer, this p aper will answer the a bove questions and attempt to dem ystify 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 pro grammer, as cho ice criteria need to be c onsidered. Busin ess functions/needs and tec hnology standards may also play a role as they apply to developing data management routines. Primary data management tasks to be considered ar e: creatin g, in putting, sub-setting, mergi ng, transformin g, and s orting proc sql, proc step, sas base, create table, dataset, order by, group by, proc sort, set statement, data governance, inner join, relational database, sas programmer, select, by group processing, libname statement source 12
71 Dear Miss SASAnswers: A Guide to SAS Efficiency Linda T. Jolley,
Jane Stroupe
What if you could send your dilemmas about SAS progra mming efficiency to an advice columnist? Well…Here's Miss SASAnswers! She's received some questions from curious users-ques tions such as "What's up with I/O?" and "Where did my memory go?" She would love to share her ans wers to get you started solving the efficiency problems that plague your programs dataset, proc sql, lookup, hash table, proc step, proc sort, cpu time, memory usage, by group processing source 8
72 Delivering SAS to Excel Jockeys Sy J. Xu,
Jing Truong
The ubiquity of Microsoft EXCEL and Word on desktop computers has made it a default entry point for many users to view and edit their information. Once EXCEL was included into the MS Office suite in 1993, it became the killer app overtaking other spreadsheet heavy weights such as Lotus 1-2-3. Although EXCEL has analysis capabilities, it does not have the powerful statistical procedures and depth of SAS. When analyzing certain types of data, such as financial information, EXCEL is the tool of choice. Its capabilities to easily generate graphs along with the visual pivot table provide powerful methods to view and analyze data. In certain cases, however, EXCEL is not capable of performing particular tasks which SAS can provide excel, macro definition, dataset, sas programmer, raw data, data science source 10
73 Demeter in the Database Paul D. Sherman Relational database normal form is nothing more than variable dereference. Used properly by following the two most important rules of object-oriented design, separation and encapsulation, one's database model will always work well. Violating the Law of Demeter enforces a concrete implementation on an otherwise abstract model, effectively multiplying in Cartesian fashion weakly related variables and needlessly increasing table object size with redundant information. Instead, refer to table objects no more than one level away from each other. Empower each level in the model hierarchy with the privilege and responsibility it deserves, giving each table suitably named verbs (methods), behavior and characteristics (fields). In the following example, an idea of Consumption & Replenish, we will create a dynamically adapting database model, helping Farmer Jack predict when he needs to order more fertilizer to feed each of his many beanstalks proc sql, inner join, proc step source 8
74 Disagreement on Agreement: Two Alternative Agreement Coefficients Emily Spratt,
Kevin F. Blood
Everyone agrees there are problems with currently available agreement coefficients. Cohen's weighted Kappa does not extend to multiple raters, and does not adjust for both chance agreement and misclassification errors. There is not, however, agreement about what to do about these issues. In an effort to solve some of the problems with current coefficients, Kilem Gwet theoretically derived two alternatives to current agreement coefficients. The first- and second-order agreement coefficients, AC1 and AC2, are presented in his Handbook of Inter-Rater Reliability: How to Measure the Level of Agreement Between Two or Multiple Raters (2001). These coefficients adjust for chance agreement and both chance agreement and misclassification, respectively. These are useful tools for reliability studies, however, computation of the statistics and their conditional and unconditional variances beyond the two-rater, two-category case is nontrivial sample, dataset, cohen's kappa, macro definition, confidence interval source 12
75 Do Which? Loop, Until or While? A Review Of Data Step And Macro Algorithms Ronald J. Fehd This paper reviews the three looping con- structs: loop-repeat, do until and do while and offers examples of their use. The macro put, conditional do loop, macro loop, macro variable, do loop, macro definition, macro flow control, %if-%then-%else source 8
76 Don't %QUOTE() Me on This: A Practical Guide to Macro Quoting Functions Brian F. Remigio,
Mylene Patterson
For programmers new to the SAS Macro Facility, under standing the set of Macro quoting functions and their appropriate uses can be a difficult task. This paper describes a decision-based selection methodology for choosing the correct Macro quoting function, bas ed on which character(s) (tokens) are to be masked and at what stage the masked token(s) are to be unmasked. It is also meant to be a refresher for more experienced Macro programmers, who may use the methodology graphic as a handy reference macro trigger, macro variable, macro definition, macro quoting function, macro call, macro facility, %if-%then-%else source 6
77 Don't Be Loopy: Re-Sampling and Simulation the SAS Way David L. Cassell The most common way that people do simulations and re-sampling plans in SAS is, in fact, the slow and awkward way. People tend to think in terms of a huge macro loop wrapped around a piece of SAS code, with additional chunks of code to get the outputs of interest and then to weld together the pieces from each iteration. But SAS is designed to work with by-processing, so there is a better way. A faster way. This paper will show a simpler way to perform bootstrapping, jackknifing, cross-validation, and simulations from established populations. It is simpler and more efficient to get SAS to build all the iterations in one long SAS data set, then use by-processing to do all the computations at once. This lets us use SAS features to gather automatically the information from all the iterations, for simpler computations afterward sample, bootstrap, proc step, proc surveyselect, random sampling, data cleaning, confidence interval, output, permutation test, randomization, ods output, regression analysis, data step, proc sql, proc univariate, macro variable, monte carlo, sas output, proc append, proc reg, seed, macro definition, outlier, model validation source 18
78 Dynamic Projects in SAS Enterprise Guide How to Create and Use Parameters Susan J. Slaughter,
Lora D. Delwiche
SAS Enterprise Guide allows you to define parameters, and then use those parameters in your project. Parameters are simply macro variables. When you run a project containing parameters, SAS Enterprise Guide prompts you to assign values to those macro variables. Using parameters, you can create a project, and then customize it at the time you run it. In SAS Enterprise Guide 4.1, there are three ways to use parameters: as a variable name in a task, in the filter condition of a query, or in SAS code. This paper covers all three types of parameters, showing how to define parameters, how to insert them in your project, and then how to run the final project using the parameters sas enterprise guide, macro variable, dataset source 20
79 Easy Come, Easy Go - Interactions between the DATA Step and External Files Andrew T. Kuligowski Chances are, your raw data was not created within t he SAS System. There is a good likelihood that your data may also need to be packaged and passed along to another non-SAS package. This presentation will provide basic answers to two questions common to new SAS users: How do I get my data into SAS for analysis? How do I get my data out of SAS? The focus for this presentation will be on two pair s of DATA STEP statements: INFILE / INPUT and FILE / PUT. We will discuss syntax and usage, citing various types of files as examples macro variable, file statement, sample, dataset source 16
80 Easy Graphs with PROC FORMAT, PROC GPLOT, and ODS Apryl DeLancey By means of straightforward commands in SAS v8.2 and SAS/GRAPH, graphs and charts can be generated that are visually appealing and easy to understand without having to import data into another graph-generating program. Using PROC GPLOT/GHART in conjunction with PROC FORMAT and ODS (output delivery system), data can be visualized in a comprehensible style. Many times visualizing data using traditional linear graphs or pie charts is done with a product such as Microsoft EXCEL or other graphing software after data is compiled and manipulated using SAS. By using PROC GPLOT or PROC GCHART with PROC FORMAT a colorful, quality graphical representation of data can be produced. By using ODS statements, the graphs that are generated can be output to pdf (Portable Document Format) or other usable formats. The output is easily inserted into a slideshow or printed. More importantly, since the data is solely manipulated in one program, there are fewer chances for error proc step, proc gplot, proc format, excel source 5
81 Easy SAS Session Customization Peter Crawford This paper offers a way we can more simply customise the start-up of a SAS session. The technique helps where some sessions are interactive and some are batch, and where the desktop system might be used by more than one login-user. Implementing this method does not require administrator rights on the machine where it is used. However, it requires some understanding of the SAS System and the operating system on which it runs, so this paper is suitable for intermediate and advanced SAS users and SAS developers. The technique has been extensively tested and used on Microsoft Windows platforms, and can be extended for UNIX platforms. The method is derived from: many years experience of installing many versions of SAS; on-line documentation research; examining the configuration of components of the SAS Business Intelligence Architecture; and from accidental discoveries made when starting SAS sessions. The key of the technique requires just one "user environment variable" batch processing, options statement source 6
82 Effect Modification Investigation Using SAS - A Model-Building Exercise Vanessa Bundy,
Paule Barbeau,
Maribeth H. Johnson
The positive association of adiposity with insulin and negative association with adiponectin have been documented along with evidence that adiponectin and insulin are inversely associated. The purpose of this study was to determine the influence of adiponectin on insulin and its potential to modify the relationship between insulin and percent body fat (%BF) in 441 black and white 14-19 y olds. An exercise in model building will be presented showing the progression from a model of the insulin and %BF relationship to the addition of the modification variable of adiponectin. Statistical graphics will be used to help understand t he nature of the relationships am ong the variables. Results show a significant %BF*adiponectin interaction such that the positive relationship between %BF and insulin was attenuated in those with higher %BF and higher adiponectin. These findings sugges t that higher adiponectin levels may be protective to individuals with high %BF by increasing glucose tolerance proc step, response variable, correlation, proc glm, proc univariate, sample, interval variable, predictor variable, proc sgplot, proc genmod, regression analysis source 11
83 Empowering Your SAS Business Intelligence End Users via a SAS Stored Process David Pope The SAS Stored Process presented in this paper is a powerfu l example of how simple it is to empower your SAS Business Intelligence end users with the power of SAS. The stored process enables an end user to create a SAS data set using SAS Enterprise Guide, SAS Add-In for Microsoft Office (MS EXCEL), or SAS Web Report Studio; and then add rows, delete rows, or modify rows in that data set. With just a little imagination, you can easily use the ex ample given in this presentation to show how entire applications can be written using SAS Stored Processe s and surfaced via SAS Business Intelligence interfaces sas enterprise guide, variable, excel, business intelligence, sas management console, data mining source 8
84 Enhancing RTF Output with RTF Control Words and In-Line Formatting Lori S. Parsons The SAS Output Delivery System (ODS) allows output to be pr inted directly to a Rich Text Format (RTF) file. RTF can be read by word PROC essors such as Microsoft Word and WordPerfect. In SAS 8.1, options were added to enhance SAS TITLES and FOOTNOTES. Also added was the ability to use RTF control words within cells. In SAS 8.2, ODS supported in-line formatting and added the TEXT= option. All of these formatting methods give us the ability to insert formatting text into a cell or paragraph and can be used to enhance output. In this paper, an RTF file will be created with enhanced SAS TITLES, f ootnote symbols in variable labels and values, custom footnotes, an inserted image, and an inserted hyperlink. The code was run with SAS Version 9.1.2 on Windows XP Professional. The RTF files are viewed with Microsoft Office Word 2003 ods rtf, output delivery system, footnote statement, label statement, sample source 10
85 Ensuring You Have the Proper Resources for Your SAS 9 Applications Margaret A. Crevar,
Tony Brown
Several previous SUGI papers address performance-problem troubleshooting with SAS9 applications. This paper contains information to help you manage and monitor your computer environment to ensure that you have adequate resources to support your SAS9 applications. The paper briefly describes the infrastructure that is needed for various SAS applications (from simple SAS jobs to the most complicated SAS9 Enterprise BI applications). It then shows how to identify which system infrastructure resource areas are most under pressure; and how to continually monitor them by using simple, operating-sy stem tools and more-complex, third-party monitoring applications. The monitoring and resulting resource m anagement advice will help ensure that you can meet the demands of your SAS users batch job, sas enterprise guide, sas batch, libname statement, proc step source 5
86 Everyone Needs "a Raise" (Arrays) Marge Scerbo Beginning SAS programmers often write much longer code just to avoid using arrays. Arrays have an aura of difficulty, but they are simply misunderstood and underutilized. This tutorial will introduce you to the basics of SAS Arrays and provide examples of different ways and times to use these DATA STEP statements. By utilizing arrays, you can process multiple variables in an efficient manner. Hopefully, you will feel confident enough when the talk is over to return to your office and put your new knowledge to use do loop, data step, array, character variable, numeric variable, calendar year, variable source 11
87 Excelling with SAS Faron Kincheloe You want to present your data using the formatting and power of an EXCEL spreadsheet. However, you want to use SAS to extract and periodically update the data on which the spreadsheet is based. Using the improved functionality of the EXPORT procedure in SAS 9 to write to a specific sheet, you can have your format and update it, too excel, proc export, xls, structured data source 3
88 Extending SAS Data Integration Studio with Java: Custom GUIs and SAS Server Interactions Christopher Treglio This paper introduces the concept of extending the functionality of the SAS Data Integration Studio client application through its Java plugin facility. Making use of this facility gives programmers access to significant features built into the SAS Data Integration Studio API, which enable full interaction with the SAS Metadata and Workspace servers. Both metadata objects and SAS data sets can be created, read, deleted, and modified. Data written by the SAS Data Integration Studio application can be read and reported on, and extended metadata can be authored and manipulated. This paper will explain the advantages of building a Java client upon SAS Data Integration Studio over building an independent standalone application, and give a tour of the basic API made available to its plugins. Additionally, it will cover topics like creating new objects within the metadata, editing existing SAS metadata, and modifying SAS data sets with either SAS or SQL code proc sql, dataset, sas data integration studio, sdtm programming, sas log, cdisc source 15
89 Find the Best Prospects for a New Product by Using a Data Mining Model Ting Millette The market department of a financial firm keeps records on customers, including demographic information and their type of accounts. The firm is launching a new product and wishes to determine who are the best prospects among the existing customers for this new product. You are asked to provide a list of 1000 best prospects. Regression, decision tree and neural network models are built to use for scoring the prospective customers, A confusion matrix is then used to determine what the cut-off point for the scores for customers you should use to determine who qualifies as a good target. The models are compared by assessing model performance and validating the model to new data neural network, proc hpsplit, regression analysis source 8
90 Finding Your Mistakes Before They Find You: A Quality Approach For SAS Programmers Richard M. Mitchell High quality work is critical to the success of a SAS programmer. While we are all human and undoubtedly may make a rare slip from time to time, one minor programming discrepancy can damage a SAS programmer's credibility if it is discovered by the client rather than through internal review. A strong quality approach to SAS programming will help earn a deep trust over time from one's coworkers and clients as one routinely strives toward sound research and accurate reporting of data. This paper will discuss a quality approach that can benefit SAS programmers a t a l l l e v e l s. By implementing this quality approach that includes a QA checklist, a peer review, and a team approval process, a SAS programmer can strive for that prestigious 100% success rate that will help ensure that you find your mistakes before they find you! sas programmer, sas programming source 8
91 Forecasting Method: An Overview of Models and Techniques David A. Dickey The SAS System has a powerful suite of tools for analyzing and forecasting data taken over time. An important feature of this or any statistical analysis is that the user have some understanding of the methodology behind the tool, that is, for good analysis the computer program should be more than a black box to the user. To address that issue, this paper reviews the methodologies available in the SAS System focusing more on the PROCs that underly the newer point and click technologies than on the user friendly front ends. Much of the functionality that is now so readily available through graphical user interfaces has in fact been available for years in the SAS/ETS system with the interfaces making it quick and easy to use. The paper focuses on the functionality of the software delineating, through a suite of examples, the situations that can be dealt with and the methods for doing so time series analysis, proc step source 17
92 FUNCTIONSIZE: Process Your External Files Linda L. Libeg There are many instances where all files in a directory need to be processed in exactly the same manner. If the files in the directory are not assigned using an incremental naming convention, or if the number of files in the directory change with each request, processing the files can be problematic. This paper helps to resolve this problem by using SAS external file functions. These functions can open a directory, determine the number of members of the directory, identify the file names that can be used to process the data, and close the directory. File processing can be done dynamically without ever knowing the physical file name macro variable, macro function, dataset source 4
93 Funny ^Stuff~ in My Code - Using ODS ESCAPECHAR Cynthia L. Zender Have you ever wanted to insert a superscript or subscript into your SAS output? Or, have you ever needed to make one part of a text string bold or a different color? Do you wonder how to get RTF or PDF output to have Page X of Y page numbering in a footnote? This paper introduces you to the wonders of the ODS ESCAPECHAR statement (ODS ESCAPECHAR=). Discussed is how to define and then use a specific escape character to perform in-line form atting. Concrete examples show you how to change style within one table cell (or a SAS title or footnote), how to insert Page X of Y page numbers into your output, how to insert line feeds into long text strings, and how to insert destination-specific "raw text" into your HTML or RTF output. Learn how to use ODS ESCAPECHAR= and ESCAPECHAR control strings effectively and make the funny characters work for you. A short glossary of the terms used in this paper appears at the end of the paper ods html, ods rtf, label statement, proc step, sas output source 16
94 Gaining Power from GTL and ODS Style to Control Graphical Output Lea Guo,
Nan McCarthy,
William F. Liu
ODS Graphics (ODS for Statistical Graphics) has made the creation of most commonly used statistical graphs a breeze! Graphics Template Language (GTL) that empowers this facility can also be used in conjunction with a DATA STEP (or PROC SGRENDER in SAS 9.2) to produce customized graphics. This ability provides increased flexibility in graphics design, more efficient production of graphics output and better quality graphics. This paper describes: 1) How to create customized graphics using GTL graph template; 2) The use of a DATA STEP (or PROC SGRENDER in SAS 9.2) and the MACRO facility to produce multiple graphics; and 3) The advantages of using GTL and ODS STYLE to control customized graphical output. An illustrative SAS program using GTL and a MACRO to generate a series of graphics is presented proc step, box plot, adam dataset, proc template, macro definition, macro facility, sas programmer, data science, proc sql source 9
95 Get the Best Out of SAS/GRAPH and ODS LeRoy Bessler This tutorial on visual communication presents graphic (and web) design principles, examples, and solutions for making best use of those precious resources: the time and attention of your information audience. The design principles are software-independent, but the solutions are derived from real-world application development experience with SAS/GRAPH and (for web-enabled solutions) ODS bar chart, macro loop, line chart, proc step, output delivery system, horizontal bar chart, vertical bar chart, macro definition, ods listing, sample, %if-%then-%else source 20
96 Getting Started with the DATA Step Hash Object Jason Bloom,
Janice Secosky
A time consuming part of many SAS programs is looking up a value from one data set in another data set. SAS 6 lookup methods, like SET with KEY= or a format, are good for many applications. However, in SAS 9, there is a better tool, the DATA STEP hash object. The hash object provides a fast, easy way to perform lookups without sorting or indexing. This paper introduces the hash object, examines a few common hash object methods, compares SAS 6 techniques with the hash object, and builds rules of thumb for when to apply this new technology to your programs hash table, master data management, sysrc, sample, sas log, transaction data, set statement, hash iterator, sas 9, input statement, length statement, merge statement, key=, lookup, memory usage, options statement, proc step source 9
97 Getting the Most from PROC MEANS Andrew H. Karp proc step, proc means, dataset, output, class variable, numeric variable, sas base, by group processing, character variable, sas output source 9
98 GLMM_SIM: A SAS Macro for Evaluating the Statistical Integrity of General Linear Mixed Models James T. Hess,
Melinda R. Hines,
Constance Kromrey,
Jeffrey D. Lee,
Reginald S. Luther,
Stephen L. Coraggio
Accommodating hierarchical or nested dat a has historically been problematic fo r researchers. General linear mixed models have the ability to account for nes ted data overcoming some of the limitations of the more traditional models. These advantages have made mixed modeli ng an increasingly popular statistical method, but questions still remain regarding the integrity of the model (e.g., power and sample size, the im pact of measurement error, and the effect of multicollinearity). Programming was cr eated to address these issues through simulation. This paper presents a SAS simulation program that creates sample s of multilevel data and allows specif ication of sample size, number of regressors, reliability of regressors, and correlation betw een regressors. The program constructs multilevel models using simulated data as inputs, and outputs the parameter esti mates and probabilities obtai ned from PROC MIXED. The resulting parameter estimates are then evaluated for accuracy sample, proc mixed, estimate, sample size, proc step, confidence interval, power analysis, fixed effects, correlation, sas output, monte carlo, macro definition source 10
99 Good Info Comes in Small Multiples - Creating Small Multiple Presentations of Data with SAS and Excel Ted Conway Promoted by folks like visualization guru Edward Tufte, the use of small multiple presentations of data in charts or other forms to visualize information is rapidly gaining traction. Unfortunately, creating a large number of EXCEL Bar and Line Charts to present your summarized SAS data can be surprisingly labor intensive. This paper presents a technique and macro that combine Base SAS with Visual Basic Scripting to make it possible to automate the creation of "small multiples" in the form of EXCEL Bar and Line Charts to present information gleaned from SAS data sets excel, sample, proc step source 8
100 Graphical Representation of the Mean Measurement over Time Wei Cheng A graph of mean measurement over time is one of the most commonly used statistical graphs for data exploration and presentation. It can be as simple as a line plot, or can be a complex graph involving lots of annotation. This paper illustrates some useful techniques provided by SAS/GRAPH and ODS Statistical Graphics to generate graphical displays of mean measurement over time. Programs using these techniques are examined in detail. The examples start from a basic plot, gradually evolve to a complex plot proc step, proc calis, proc gplot, proc sgplot, treatment period source 9
101 Graphing Longitudinal Data: Deaf Children in the "Children of the National Longitudinal Survey of Youth" Paul Dirmyer,
Richard Schley,
Sara Martino
Historically, deaf education in the United States has achieved poor results. An oft - quoted statistic is that on average, deaf students graduat ing from high school (at age 18 - 21) perform at the level of hearing 8 - 10 year olds in terms of reading and writing skills (Allen, 1994; Traxler, 2000). Performing secondary analyses on the Children of the National Longitudinal Survey of Youth (NLSY) focus ing on developmental and educational outcomes allows one to predict growth patterns in each for deaf and hearing children. Children were flagged as deaf by careful delibera tion of multiple questions to indicate hearing status . A sibling of each deaf chil d was picked as a mean s of comparison, to control for home environment . The use of frequencies, means, and growth models disproves many past assumptions and raises some interesting questions sample, longitudinal data, proc mixed, proc step, regression analysis source 10
102 Group Headers by Template with Optional Columns Hsiwei Shen,
Dong-Min Yu
proc template, proc step source 3
103 Growing Up Fast: SAS 9.2 Enhancements to the GLIMMIX Procedure Oliver Schabenberger The GLIMMIX procedure was first released as a Web download add-on procedure to SAS/ST A T in SAS 9.1 in the 32-bit Windows operating environment. It was subsequently released as a Web download for SAS 9.1.3 in UNIX and Linux environments. This paper describes the key changes and enhancements to PROC GLIMMIX between the SAS 9.1 and SAS 9.2 releases. Enhancements fall into several categories: statistical estimation, model building, post-processing, and mis- cellaneous other features. For example, new estimation methods and covariance structures enable parame- ter estimation with reduced bias in more flexible generalized linear mixed models. A new statement provides a comprehensive facility to test hypotheses about covariance parameters. New multiplicity corrections offer more ways to adjust inferences. The goal of this paper is to highlight the new estimation and inference techniques and to demonstrate their usage with examples likelihood function, covariance, proc glimmix, proc step, proc mixed, covariance structure, maximum likelihood estimation, binomial distribution, fixed effects, degrees of freedom, negative binomial distribution, dataset, estimate, random intercept, proc genmod, poisson distribution, interaction effect, restricted maximum likelihood source 20
104 Handling Large Stream Files with the @'string' Feature Richard D. Langston This presentation examines a SAS code example that demonstrates how to read a large HTML stream file (that doesn't contain carriage returns) by using the @'string' feature of the INPUT statement. Part of the discussion involves the use of the LRECL= option, and how to deal with searches that reach the end of file (EOF) input statement, character variable source 4
105 Hanging On by a STRING? Using Functions to Untie Text Strings Jeanina M. Worden Have you ever felt tied down, knotted up, and barely holding on by a STRING? Almost every data programmer can give an example of a variable that, due to data entry requirements, has to be characterized as a text string. They can also describe how problematic they are when, prior to analyzing the data, find these strings need to be cleaned up, formatted and sometimes compared. SAS provides solutions through a "bundle" of functions you can use on strings. Some can be used to untangle the text by grabbing what is needed, or dropping out what is not needed, like: SCAN, and COMPRESS. While others can evaluate the contents of the string and make a comparison to a constant or another variable, such as: LENGTH, SPEDIS and COMPARE. The functions in this paper are of several levels of difficulty, but can all be used within SAS version 9.1 character functions, character variable source 7
106 Hashing Performance Time with Hash Tables Elena Muriel With SAS 9 two new types of object become available in the DATA STEP environment. They are called hash tables and hash iterator objects, and their performance speed will amaze anybody having to merge, sort or perform table lookups with large data sets. This paper includes a basic discussion on the concept of hash tables and the theory that lies behind them. As a hash table is an "associative array", we will discover that some advanced programmers have already been benefiting from hash tables in previous versions of SAS. The main section will be a more practical approach into the definition and use of hash tables in SAS 9. Through simple code examples we will illustrate the new methods and properties that are available and how to use them to radically improve your performance time. We will learn how to make use of the iterator object to order data and summarise information without the need for a SAS procedure hash table, sas 9, lookup, temporary array, hash iterator source 10
107 How Do I Look It Up If I Don't Know How to Spell It? An Introduction to SAS DICTIONARY Tables Peter W. Brill,
Ilene K. Eberhardt
SAS maintains a wealth of information about the active SAS session, including information on libraries, tables, files and system options; this information is contained in the Dictionary Tables. Understanding and using these tables will help you build interactive and dynamic applications. Unfortunately, Dictionary Tables are often considered an 'Advanced' topic to SAS programmers. This paper will help novice and intermediate SAS programmers get started with their mastery of the Dictionary tables. Ever needed a list of the tables (datasets) in a library? How about the columns (variables) in a table? Need to make sure you reset any titles after you run a report? Got some pesky warning messages in your SAS log you would like to clean up? Sure, you can look them up in the table and column properties in the explorer window. Or you can run a PROC CONTENTS and check the listing. And of course you can ignore the warnings and errors in the SAS log since they 'almost always appear' dictionary tables, proc sql, proc step, numeric variable, macro variable, character variable, sas log, sas programmer source 14
108 How Shall We Secure the BI Enterprise? Paul High,
Jerry Christenson
Your company has elected to deploy the SAS Enterprise BI Server as their enterprise wide analytical platform. Congratulations! You are the SAS Administrator. This is a good thing, but there is much more involved than loading software on a server. You will need to determine how to make SAS BI work with your company's security, quality assurance, and application deployment guidelines. When we started this journey at Blue Cross and Blue Shield of Minnesota (BCBSM), we found a number of security and operational requirements to consider: The system will support both internal & external customer groups with thousands of named users. The system will support separate logical server inst ances for Development, Integration testing, Quality Assurance testing and Production. The system will support mu ltiple development teams. The system will support users of SAS Web Report St udio, SAS Enterprise Guide, and traditional Unix command line SAS quality assurance, sas enterprise guide, phase i, sas administrator, business intelligence, access control source 9
109 How Suite It Is - Taking Full Advantage of SAS Seamless Integration with Microsoft's Office Suite Michael L. Hennessey,
John C. Compson
The Office of Policy (OP) in the Social Security Administration (SSA) produces a series of publications containing programmatic statistical estimates. In any given year, OP produces approximately 1,425 tables, most of which are generated using Microsoft EXCEL (MS-EXCEL). In 2005, OP decided to undertake a major project to evaluate the consistency of its statistical estimates and all the accompanying formats and documentation of the tables. Given the sheer magnitude of the number of tables produced, it was decided to use SAS to create metadata for the most recently available tables. The cooperation between SAS and the Microsoft Office Suite allows users to move between SAS and various programs within the Suite. The ability to move between SAS, MS-EXCEL, and Microsoft ACCESS (MS-ACCESS), plus the strong technical support from SAS has allowed OP to systematically evaluate the consistency and accuracy of all aspects of their publications excel, sas enterprise guide, dataset, sample, missing value source 12
110 How to Generate 10,000 Excel Spreadsheets in 10 Minutes (Or Less) Alan K. Churchill SAS programmers have traditionally used techniques such as PROC EXPORT, DDE, Access to PC File Formats, EXCEL LIBNAME engine, and ODS to generate EXCEL spreadsheets. Each one of these approaches, though, focuses on "pushing' the data (EXCEL spreadsheets) from SAS. A new .NET "pull' technique is presented in this paper. This technique "pulls' the data from SAS and creates EXCEL spreadsheets from a dedicated EXCEL model. This approach allows for full customization of EXCEL spreadsheets including formatting, calculations, printing styles, etc. using SAS datasets. In addition, native EXCEL spreadsheets are generated. This approach, by being a native .NET application, is an amazingly fast way of generating EXCEL spreadsheet and it overcomes many of the limitations seen in the past excel, dataset, sas programmer source 8
111 How to Make the "Best Choice" from the Many Ways to Create and Deliver SAS Graphs LeRoy Bessler Whether you are a point-and-click user of SAS Enterprise Guide or a code-oriented SAS programmer, you have multiple options for packaging and delivery, and a possibly bewildering array of options and device drivers for graphs. For production packaging, you can go directly to a finished product/file such as HTML for the web, Word-compatible RTF, or PDF. For an ad hoc analytical or research project, you may need to insert graphs in a custom, hands-on-developed Microsoft PowerPoint presentation or Microsoft Word document. Whether for production or ad hoc graphic output, besides the all of the design options, there is a huge array of SAS/GRAPH device drivers to pick from. This paper shares ideas, insights, and practical experience to help you make the best choice to suit your needs, and to get the best out of option-rich software from the standpoint of usability (i.e., communication effectiveness) and reliability bar chart, proc freq, proc step, proc gchart, sas log, title statement, sas enterprise guide source 20
112 How to Optimize Existing SAS Programs Generating Standard Reports Teo Gamishev How many times you have to submit and resubmit numerous SAS programs to create standard reports every month, again and again? How many times you have to manually change dozens of dates and file names within a single program and do it again and again for all of the remaining programs? How many times you have found errors in the above changes and had to repeat the entire tedious process from the very beginning? What if you could perform all those standard reports with a single click, only. That is correct, no manual changing of dates, no manual creating of directories and renaming files. This paper shares a simple way to modify existing SAS programs and create a driving SAS program in order to automate the entire process of generating standard reports. These techniques can be used to automate many daily tasks, simplify more complex tasks and increase your overall programming productivity macro variable, proc step, proc printto, datepart source 7
113 How to Think Through the SAS DATA Step H. Ian Whitlock You are relatively new to SAS and interested in writing SAS code. You have probably written DATA STEP code; some works, some doesn't, sometimes you know why, and sometimes you don't. If this describes you, then this talk is for you. You are a programmer, new to SAS. The DATA STEP language looks similar to PL1 and has some characteristics that look like languages you are familiar with. However, after learning the syntax your code feels awkward and you feel like you are fighting the system. The DATA STEP has been very well designed, but it is different, and it is worth learning how it works, if you want elegant code, this talk is for you. Even people who have been SAS programmers who have been working with SAS for years should find, an "Ah ha, so that's why", in this talk. SAS is Step Oriented Before looking at the DATA STEP in detail, it would be good to take an overall look at SAS. SAS is a step oriented language rather than a routine oriented language set statement, dataset, infile statement, input statement, sas programmer, character variable, filename statement, length statement, merge statement, _eof_, decimal, libname statement, missing value, by group processing, if-then-else, sas output, trailing @, put statement, array, formatted input, retain, proc step source 19
114 Hurry!!!, Hurry!!! Step Right UP. Use The "Magical Compound Where Clause" to Eliminate Data Steps, Reduce Processing Steps, Speed Job Turnaround, and Mystify Your Friends William E. Benjamin Jr. The "Magical Compound Where Clause" can be used by beginning or advanced level programmers on the input side of a Base SAS or SAS procedure dataset reference on any computer operating system. This is especially useful if extracting subsets of records from large files. When working with "large disk files" that may take over an hour to read, programmers need creative ways to cut job steps and save time. When many programmers face the task pulling some records from a file for a report or new analysis, most will run a simple SAS DATA STEP then use PROC SORT to reorder the file for the next step. AH!!!, But the "Magical Compound Where Clause" can eliminate the SAS DATA STEP altogether. Saving time because only the "Magical Compound Where Clause" variables are read before selecting the records to be sorted. This paper will introduce four advanced command structures that the "Magical Compound Where Clause" can use on the input side of dataset options proc step, proc format, proc sort, where statement, dataset, sas function, set statement, macro variable source 6
115 I Want It All - Recovering Variable Labels When Importing Data from Microsoft Access Dimitri Shvorob SAS/ACCESS offers a number of ways to retrieve data stored in a Microsoft Access table, but none of them lets one recover table field descriptions, Access's limited analog of SAS variable labels. A Visual Basic macro saves the day; called from Microsoft Word, it looks up field descriptions pertaining to selected table, and embeds them in a suitable LABEL statement, ready to cut-and-paste into your SAS code proc step, label statement source 5
116 Identifying and Overcoming Common Data Mining Mistakes Doug Wielenga Due to the large amount of data typically involved, data mining analyses can exacerbate some common modeling problems and create a number of new ones. These problems can greatly increase the time that it takes to develop useful models and can hamper the developm ent of potentially superior models. This paper discusses how to identify and overcome severa l common modeling mistakes. The presentation begins by providing insights into common mistakes in data preparation; it then follows the data flow of a typical predictive modeling analysis through setting variable roles, creating and using data partitions, performing variable selection, replacing missing values, building different types of model s, comparing resulting models, and scoring those models using SAS Enterprise Miner. The paper concludes with a di scussion of common issues with cluster analysis and association/sequence analysis feature selection, neural network, regression analysis, sample, missing value, validation set, data cleaning, proc hpsplit, nominal variable, imputation, data mining, stepwise selection, response variable, network optimization, training set, interval variable, sample size, cpu time, proc reg, data wrangling, posterior probability, proc means, score code source 20
117 Improving Credit Scoring by Generalized Additive Model Wensui Cela,
Jimmy Liu
Logistic Regression has been widely used in the financial se rvice industry for credit scoring models. Despite its advantages in easy interpretation and low computing cost, Logi stic Regression is under the criticism of failure to model the nonlinear features of the predictors effe ct on the dependent variable and therefore might lead to unsatisfactory results. Modern statistical techniques such as Neural Network and Projection Pursuit Regression have been proven successful in the nonlinear mode ling. However, this success comes wi th the price of interpretability. Introduced by Hastie and Tibshirani, Generalized Additive M odel provides the ability to detect the nonlinear patterns without sacrificing interpretability. The purpose of this paper is to introduce G eneralize Additive Model as a promising alternative to Logistic Regression for credit scoring logistic regression, logistic distribution, regression analysis, credit scoring, degrees of freedom, roc curve, training set, response variable, proc genmod, null hypothesis, sample, credit risk, proc gam, proc logistic, correlation source 9
118 In The Compute Block: Issues Associated with Using and Naming Variables Arthur L. Carpenter In the compute block of the PROC REPORT step variables can be both created and used. They may be on the incoming data table, they may be computed in the REPORT step, they can be statistical summaries, and they may even be artificially created by the REPORT process. In the DATA STEP each variable has a name and that variable's name is used whenever we want to address a particular value on the Program Data Vector. In the REPORT step things are not so simple. The origins and use of a variable will determine how it is to be named in a compute block. If you do not know how to properly address a variable or report item in the compute block, the compute block will often fail. This paper will discuss the various variable types, how they are used, and how they are addressed in the compute block proc report, proc step source 10
119 Integration of webAF and Table-Driven Methodology Shelly Yiu-Morrison This paper will provide a general overview of SAS webAF, targeting novice audiences. It is intended to provide information that is gathered from different resources. It will try to explain at a very high level what exactly webAF is and how SAS and Java technologies can be combined to gain momentum in a world where web-based technologies are increasingly becoming more popular. This paper will try to explain what webAF is. It will provide a basic explanation of the Java technology used in webAF to create server-side web applications such as Servlets and Java Server Pages (JSP). This paper will also look into how Servlets and JSPs work together, their roles, and their functions. Additionally, it will also look at the object- oriented perspective of the Model-View-Controller (MVC) design and architecture, and examine two types of connections to SAS. Consequently, this paper will look at the integration of webAF and the Table-Driven Methodology dataset, excel, data cleaning, proc step, macro variable, data validation rules, proc sql, %if-%then-%else source 11
120 Introducing a SAS Macro for Doubly Robust Estimation Michele Westreich,
Daniel Davidian,
Marie Wiesen,
Chris Jonsson Funk
Estimation of the effect of a treatment or exposure with a causal interpretation from studies where exposure is not randomized may be biased if confounding and selection bias are not taken into appropriate account. Such adjustment for confounding is often carried out through regression modeling of the relationships among treatment, confounders, and outcome. Correct specification of the regression model is one of the most fundamental assumptions in statistical analysis. Even when all relevant confounders have been measured, an unbiased estimate of the treatment effect will be obtained only if the model itself reflects the true relationship among treatment, confounders, and the outcome. Outside of simulation studies, we can never know whether or not the model we have constructed includes all relevant confounders and accurately depicts those relationships propensity score, regression analysis, logistic distribution, proc calis, robust estimator, logistic regression, sample, proc genmod, treatment effect source 8
121 Introduction to SAS9 Business Intelligence-A Tutorial Gregory S. Barnes Nelson Business intelligence (BI) is a broad category of application programs and technologies for gathering, storing, analyzing, and providing access to data to help enterprise users make better business decisions. BI applications support the activities of decision support, query and reporting, online analytical processing (OLAP), statistical analysis, forecasting, and data mining. BI includes a set of concepts and methods to improve business decision making by using fact-based support systems. This tutorial will guide participants through the landscape of business intelligence and how it has been implemented in SAS 9. We will provide a broad overview of what things we can accomplish with BI, lay the groundwork for continued learning and discuss the tools and technologies and how they interact in some common architectural scenarios. The goal of this presentation will be to get users comfortable with the concepts and vocabulary of BI business intelligence, data mining source 12
122 JobTrack: Transaction Computing 101 Blake R. Sanders Transaction computer application handle data in a completely different way compared to data analysis applications. Data analysis application display information and manipulate it many different ways. Transaction applications also create data and manage it over the course of time. This management has many facets. We decided to focus on two areas: data history and ease of maintenance of the datasets and application macro loop, %if-%then-%else source 12
123 Journeymen's Tools: Data Review Macro FreqAll: Using Proc SQL List Processing with Dictionary.Columns to Eliminate Macro Do Loops Ronald J. Fehd proc step, proc sql, macro variable, select, macro loop, proc append, proc freq, macro call, macro definition, macro put, proc print, proc univariate, %if-%then-%else source 10
124 Keynote Presentation: Evolving Wholesale Energy Markets Demand New Technology Solutions Patrick Reames Volatility in the wholesale energy markets offers huge opportunities and equally huge risks. The entrance of new players to the space, particularly hedge funds, creates new dynamics that have placed unprecedented demands on companies operating in the market. Intraday price movements and long term trends that are in many cases disconnected from market fundamentals create the need for trading systems that cannot only capture information in near real time, but can provide insight into the market through improved business intelligence and analytics. Traders in this environment must be agile and seek out, analyze, and quickly execute opportunities. These new market dynamics come at a time when new legislative, regulatory, and market driven governance initiatives are forcing companies to re-examine their internal policies and procedures. Adequate controls must be developed and maintained to monitor, and in many cases prevent, behaviors that could damage share-holder value credit risk, web service, logistic distribution source 14
125 Know Your AREA! Creating Professional SAS Graphics in Clinical Safety Data by Using the AREAS Option in PROC GPLOT Rita Tsang In monitoring safety data in clinical trials, visual displays of individual patient data over time (i.e. vitals and lab data) are indispensable. This paper will introduce examples of these displays for a Data Safety Monitoring Committee, using the GPLOT procedure in SAS/GRAPH. Specifically, the AREAS option in GPLOT will be used to show how SAS/GRAPH can be employed to produce complex and professional graphics. Examples from safety monitoring data in the clinical trial environment will be drawn data visualization, proc gplot, proc step, clinical trial, sample source 15
126 Latent Class Analysis in SAS-Promise, Problems, and Programming David M. Thompson Latent class analysis (LCA) is an important tool for marketing professionals who must characterize subgroups within large and heterogeneous populations. LCA is also of interest to clinical professionals who must place clients in diagnostic or prognostic categories when a gold standard for doing so is poorly defined. Attempts to bring LCA into the SAS mainstream are fairly recent. The paper discusses these efforts and demonstrates a SAS macro that combines PROC CATMOD with conventional DATA steps to perform LCA. The macro is demonstrated on data wherein four binary observed variables permit estimation of two hypothesized latent classes. LCA is a categorical analog to factor analysis, and posits the existence of unobserved classes to explain the pattern of association observed in a multidimensional contingency table. LCA estimates two types of parameters: (1) latent class prevalences and (2) probabilities, conditional on class membership, of individuals' responses on each observed variable. The SAS macro estimates these parameters using a classic expectation-maximization (E-M) algorithm. Maximization steps specify a log-linear model in PROC CATMOD while expectation steps employ standard DATA STEP programming. The presentation illustrates the usefulness of LCA and probes certain problems and limitations associated with constructing and interpreting LC models. LC parameter estimates are sensitive to their initial values, and the classic E-M approach does not estimate standard errors. Bootstrapping of standard errors and replicated analyses using a grid of initial estimates are among the approaches that can address these limitations. Search keywords: categorical data; diagnosis estimate, likelihood function, proc step, proc calis, proc freq, goodness of fit, covariance, numeric functions, sample, factor analysis, proc report, standard deviation, latent variable source 12
127 Learning What You Didn't Know about Your Data Larry W. 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 quantitative variables. A number of high quality graphics options are available in PROC UNIVARIATE to help you visualize your data and compare it to a number of possible theoretical distribution (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 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 16
128 List Processing Basics: Creating and Using Lists of Macro Variables Ronald J. Fehd,
Arthur L. Carpenter
macro put, macro variable, proc sql, proc step, call execute, macro call, macro loop, macro definition, %if-%then-%else, output delivery system, do loop, proc report, dictionary tables, data step, create table, proc sort, macro function source 20
129 Local and Global Optimal Propensity Score Matching Marcelo Coca-Perraillon Propensity score-matching methods are often used to control for bias in observational studies when randomization is not pos- sible. This paper describes how to match samples using both local and global optimal matching algorithms. The paper in- cludes macros to perform the nearest available neighbor, caliper, and radius matching methods with or without replacement and matching treated observations to one or many controls. The similarity between observations is evaluated using both the absolute value and the Mahalanobis distance that includes the propensity score along with other covariates. This paper also explains how to find a global optimal match with a variable number of controls using network flows. SAS 9.1, SAS/STAT, and SAS/OR are required propensity score, mahalanobis distance, proc step, randomization, covariance source 9
130 Macro Bugs: How to Create, Avoid, and Destroy Them H. Ian Whitlock The central theme of this paper is the macro debugging process. However, a great many bugs are simply due to not understanding how macro processing works, so some time will be spent on understanding this process. One has to be able to locate bugs before they can be fixed, so time will also be spent on design features as they impinge on the search for bugs. Then, of course, some time will be spent on the traditionally supplied tools for debugging. The reader may be relatively new to writing macros, but he/she should bring some SAS and some macro experience to the lecture for it is hard to pick up all the background even when all terms are explained. The material discussed was developed under Windows, and all logs come from the execution of SAS version 9.2. Unless noted everything is probably appropriate to all operating systems and available versions of SAS macro facility, macro variable, macro put, call execute, put statement, if-then-else, call symput, %if-%then-%else, run, proc step, macro loop, error message, do loop, macro definition, proc sql, mfile, proc print, title statement, macro call, mprint, missing value, error, macro quoting function, select source 20
131 Make Your PROC TABULATE Tables Pretty Using ODS Style Options Wendi L. Wright This intermediate level presentation shows several examples of how to use the ODS Style= option in PROC TABULATE in order to customize tables and im prove their attractiveness. This option is very versatile and, depending on where the option is used, can justify cells or row and column headers, change colors for both the foreground and background of the table, modify borders, add a flyover text box in ODS HTML, or add GIF figures to the row or column headers source 7
132 Making Sense of PROC TABULATE (updated for SAS9) Jonas V. Bilenas The TABULATE procedure in SAS provides a flexib le platform to generate tabular reports. Many beginning SAS programmers have a difficult time understanding the syntax of PROC TABULATE and tend to avoid using the procedure. This tutorial w ill explain the syntax of PROC TABULATE and, with examples, show how to grasp the power of PROC TABULATE. The data used in this paper represents simulated consumer credit card usage data and the code was developed using SAS 9. This updates the paper presented at NESUG in 2001 with the same title proc step, proc tabulate, class variable, proc format, sample, excel, credit card, proc freq source 16
133 Making Web Results Relevant with SAS Russell D. Bartlett,
Jake Bultman,
David Albright
Many companies search the Web to learn about their co mpetition and understand their potential customers. But how accurate are these search results? For instance, have y ou ever submitted the query "SAS", only to get results back about "Scandinavian Airline Systems"? This paper pr esents a SAS-based solution to accessing and clustering Yahoo! search engine results by using SAS Text Miner. We demonstrate how to use matrix factorization techniques, clustering algorithms, and vis ualizations to discriminate between subsets of documents that are returned as the result of a query web service, proc freq, data mining source 12
134 Managing Stored SCL Lists, and Creating Text Files from SCL Catalog Entries: Two SAS/AF Utilities Derek P. Morgan This paper describes two utilities for SAS/AF developers. One is a SAS/AF frame that provides a tool to manage stored SCL list entries. SCL lists are an important component of SAS System applications development. Unfortunately, there are no tools within SAS for the creation and editing of SCL lists that are stored as SLIST catalog entries. This describes one such application for the creation and management of stored SLIST entries. You can create an SLIST entry from an ASCII file, edit/delete existing SLIST entries, and write an existing SLIST entry to an ASCII file. The utility works on both named and ordered SLIST entries. The second utility provides a way to dump SCL code stored in a SAS catalog into a text file. While it is easy to send a single SCL catalog entry to an ASCII file, there is no tool in the SAS System that will perform this for all SCL entries within a catalog. This macro does exactly that and can be used for documentation purposes txt, proc step source 10
135 March Sanity - A SAS Application for Administering an NCAA Tournament Pool Michael P. Craven,
Timothy E. Russell,
Gregory B. Walkup
The annual NCAA men's basketball championship tournament is a sporting event that enjoys widespread popularity even among those who are not necessarily regular season fans of the sport. Each year hundreds of thousands of people participate in group tournament pools where each participant picks the outcome of every tournament game from the opening round through the championship by completing a 64-team bracket. The person with the completed bracket that most closely matches game results wins the pool. For large groups like business offices, administering an NCAA pool by paper can be a daunting task. Web-based applications are available online for administering group pools, but they have other pitfalls such as requiring users to register and providing only limited scoring options excel, dataset source 7
136 Marginal Interpretation of Subject-Specific Curves: Logistic-Normal Regression Pedro A. Macchiavelli,
Raul Torres
We propose the percentile curves concept as conditional probabilities curves across representative per- centiles of the distribution of curves induced by random effects in a logistic model with random intercepts. We extend this concept to a logistic model with random intercepts and slopes and propose a methodology to approximate the percentile curves using the Monte-Carlo technique. We apply this concept to a binary longitudinal data set. The results suggest that the percentile curves complement the analysis of longitudi- nal data and permit a marginal interpretation of subject-specific parameters. The first and third quartile, the median and the mean curves are the principal percentile curves to describe the behavior of the data proc mixed, logistic regression, random intercept, logistic distribution, proc step, sample, regression analysis source 10
137 Methodology for Railway Demand Forecasting Using Data Mining Giovanni M. Viglioni After the organization to resolve its operational problems, comes the necessity for systems to support decision making. The research area data mining grows quickly to take care of these new necessities. However, the use of data mining techniques becomes difficult due to the lack of a complete and systematic methodology for the knowledge discovery in database. This dissertation presents a model of the formal process of development of systems of discovery of knowledge in database for the prediction of railroad demand, that includes a systematic and rigorous methodology, which integrates the methodologies: CRISP-DM, SEMMA, FAYYAD, and an interactive environment for the implementation of these systems. The methodology proposal integrates the cited methodologies and was applied in a customer transport request database of MRS Logística, during the period of Dec, 1st of 2003 until Oct, 31st of 2006 proc esm, proc reg, data mining, moving average, regression analysis, normalization source 11
138 Mining Transaction/Order Data Using the SAS Enterprise Miner Association Node Xinli Bao Among all the products SAS provides, Enterprise Miner (EM) is one that not only makes it easy for an SAS neophyte to build models, but also provides a rich set of tools flexible enough for advanced SAS users. This paper focuses on the EM association node in particular. This node provides useful analysis procedures for merchants, such as retailers or publishers who have large amounts of transaction or order data available. Mining from them can be a daunting task. Yet it can give valuable insights into which products are most likely to be purchased/ordered together by customers. When transaction data from multiple merchants are available, the association node can look at the customers of a particular merchant and discover which other merchants they also frequently shop at. This paper will first explain the EM association node briefly and demonstrate its power in analyzing transaction/order data association rules, data mining, sample, sorted data, transaction data source 5
139 Model Selection in PROC MIXED-A User-Friendly SAS Macro Application George C. J. Fernandez A user-friendly SAS macro application to perform all possible model selection of fixed effects including quadratic and cross products within a user-specified subset range in the presence of random and repeated measures effects using SAS PROC MIXED is available. This macro application, ALLMIXED2 will complement the model selection option currently available in the SAS PROC REG for multiple linear regressions and the experimental SAS PROCEDURE GLMSELECT that focuses on the standard independently and identically distributed general linear model for univariate responses. Options are also included in this macro to select the best covariance structure associated with the user-specified fully saturated repeated measures model; to graphically explore and to detect statistical significance of user specified linear, quadratic, interaction terms for fixed effects; and to diagnose multicollinearity, via the VIF statistic for each continuous predictors involved in each model selection step feature selection, fixed effects, proc mixed, covariance, repeated measures, proc step, sample, covariance structure, sample size, restricted maximum likelihood, macro definition, correlation, predictor variable, spearman correlation, best subsets, longitudinal data, data visualization, interaction effect, akaike information criterion, scatter plot, excel, regression analysis source 20
140 Names, Names, Names - Make Me a List H. Ian Whitlock Any number of macros have been written to generate enumerated lists of names. For example, lib.w1 lib.w2 lib.w3 ... But they probably would not work with lib.a lib.b lib.c or q1_a q1_b q2_a q2_b Now consider a problem to convert a list of character variables to numeric with the same names while keeping the same names. For example, data w ( drop = __: ) ; set w ( rename = ( x=__x y=__y z=__z ) ) ; x = input ( __x , best32. ) ; y = input ( __y , best32. ) ; z = input ( __z , best32. ) ; run ; The renames (in red) form a list and the assignment statements (in blue) form a list. All these problems involve lists but one usually uses special purpose macros for each problem. General tools will be discussed to handle these problems in a uniform manner without modifying the underlying macros macro variable, macro quoting function, macro definition, %if-%then-%else, macro put, proc sql source 10
141 Navigating a Major Regulatory Submission Project to Success Alan Meier When a SAS programming group support s a major regulatory submission in the pharmaceutical / biotechnology industry it is like embarking on a voyage of exploration, discovering new worlds and delivering back uncovered treasure. The tasks include assembling a crew, provisioning the ship, gathering th e documents that help chart the voyage, setting a course and embarking on the voyage. Along the way, the activities must be re -aligned and the crew kept motivated, while navigating through changing tides and shifting winds. When the treasure is found, it is delivered back to those who initiated the voyage. For a recent submissio n, our team embarked on just such a voyage. Working with the Clinical staff, Biostatisticians and Medical Writers, we gathered the documentation and defined the initial analysis plan for our submission. Along the way we dealt with changes in the timeline and the analysis plan, changes in the staff and the need to support other projects phase iii, clinical trial, regulatory submission source 6
142 Navigating the SAS Training Experience Amy Peters Is your manager asking you to create a SAS training plan for the new guy? Do you have a group of folks that need to learn the latest new thing in SAS? Perhaps it's just the annoying neighbor who's trying to get a job and keeps asking you for the best way to learn SAS. There are a lot of reasons people need training, and SAS offers a bewildering array of classes and types of training. This paper presents the pros and cons of classroom versus live Web versus self-paced e-learning. What are the most common starting points and where do you go from there? How do the SAS Learning Edition and SAS Certification fit in? Where can you get more information and keep up-to-date? sas enterprise guide, data mining, sas programming, sas programmer, regression analysis source 5
143 New SAS/GRAPH Procedures for Creating Statistical Graphics in Data Analysis Dan Heath Making a plot of the data is often the first step in a data analysis or a statistical study. In SAS 9.2, SAS/GRAPH introduces a family of new procedures developed for this purpose. These procedures are designed to create stand-alone displays that complement the more specialized graphs produced by the statistical procedures that use the ODS Statistical Graphics infrastructure. Since these new procedures and the statistical procedures use the same infrastructure, graphs created with all of these procedures are consistent in their appearance and in the way they are produced and managed. The new "SG" family of procedures includes SGPLOT, SGPANEL, SGSCATTER, and SGRENDER. The SGPLOT procedure creates single-celled plots that can be constructed with a variety of plot types, along with data smoothers, fitted curves, and other statistical features. The SGPANEL procedure creates paneled plots and charts where the paneling is driven by classification variables proc step, scatter plot, proc sgpanel, proc sgplot, box plot, graph template language, histogram, class variable, by group processing, data science, proc genmod, confidence interval, anova, proc glm, regression analysis source 16
144 ODS and Office Integration Eric A. Gebhart The growth of ODS destinations has provided many choices when it comes to getting your SAS output into your favorite spreadsheet or word processor. Find out the various and best ways ODS integrates with Microsoft Office and OpenOffice.org. Putting SAS output into documents and spreadsheets has never been so good or so easy sas output, excel, output delivery system, proc step, ods csv, ods pdf, file statement source 14
145 ODS Markup, Tagsets, and Styles! Taming ODS Styles and Tagsets Eric A. Gebhart Find out how ODS styles can be used in new ways when they are combined with TAGSETS. Watch as a simple example grows into new ideas on how to use styles and TAGSETS. See how easy it is to create a new destination and style that do just what you need. Explore how these concepts have been applied to existing ODS Markup destinations, such as ExcelXP and HTML. Learn a few simple tools and tricks that will make styles easier to work with for any ODS destination. Understanding just a little about TAGSETS and styles can enable the creation of those special reports you've always wanted. This paper reveals how styles and TAGSETS work, and how to apply that knowledge to various ODS destinations, or to create new and versatile ODS destinations of your own design proc step, proc print, proc template, excel, ods html, output delivery system source 27
146 ODS Options and SAS Stored Processes Cynthia L. Zender Are you using SAS Stored Processes in a SAS Intelligence Pl atform client-server environment? Do you want to convert existing SAS programs for use as SAS Stored Processes? This paper provides concrete examples of how to convert existing SAS programs to stored processes that can be executed from selected SAS Intelligence Platform client applications. Topics in this paper include: basic report program conversion, conversion of SAS/GRAPH programs, use of macro variables in program conversion, streaming versus transient output from stored processes, and permanent result packages. Specia l emphasis is given to showing code both before and after conversion- especially the use of Output Delivery System (ODS) options. SAS/GRAPH options are also illustrated with before- and-after examples. In addition, there is some discussion of how different client applications accept the options and render output macro variable, sas enterprise guide, macro definition, sas enterprise guide project, proc step, macro facility, output delivery system, spk file, macro parameter, ods html, global symbol table, proc report, symbol table, macro call, excel source 25
147 ODS Statistical Graphics for Clinical Research Wei Cheng Graphical representations to illustrate the effects and safety of treatments are often more easily understood and remembered than tabular forms. Statistical graphics play an important role in clinical research. Beginning with SAS9, a number of SAS/STAT procedures can use the Output Delivery System (ODS) to create statistical graphics automatically. You can use the ODS Graphics Template Language (GTL) to generate statistical graphics of your own layout design. This new facility which is referred to as ODS Statistical Graphics greatly enhances the ability to produce statistical graphs for clinical research. This paper describes how to create commonly used statistical graphs for clinical research using ODS Statistical Graphics: Create statistical graphs from SAS procedures; Customize statistical graphs us ing ODS templates and ODS styles; * Create statistical graphs us ing ODS Graphics Template Language clinical research, proc step, proc sgplot, data visualization, ancova, survival function, proc means, output delivery system, box plot, log-rank test, ods graphics, proc template, rank test, proc reg, scatter plot, anova, regression analysis, covariance, proc ttest source 20
148 OLS Regression? Auto-Regression? Dynamic Regression? Rodger Zhang In the financial industry , you very often need to investigate if there is a relationship bet ween two or more quantities. This is all about regressions. Regression models are comm only applied w hen it comes to planning or forecasting. Traditional regression includes simple linear regression and mult iple linear regression. It's simple linear regression if there is only one independent variable that affects the value of the dependent variable. It's multiple linear regression when there is more than one independent variable. The typical regression model is a very good tool in prediction; however, financial data-due to their hist orical features of t he trend component, cy clical component, and irregular component-might not fit w ell w ith traditional regression models. In such cases, an autoregression model or a dynamic regression model w ill be t he best option regression analysis, proc step, time series analysis, proc reg, proc arima, time series data, proc autoreg, predictor variable, correlation, response variable, proc calis, estimate, sample, multiple regression, moving average, autocorrelation, financial services, sample size, residual source 12
149 Optimization with SAS/OR--What It Is, What's New, and How It Adds Value Trevor Hughes,
Ed Kearney
SAS/OR 9.1.3, Release 3.1 continues the initial release of a completely new suite of powerful, accessible optimization procedures. This roster of new procedures includes production versions of OPTMODEL for powerful and accessible building and solution of optimization models, OPTLP for linear optimization, and OPTQP for nonlinear optimization. New experimental features include the OPTMILP procedure for mixed-integer optimization and mixed- integer capabilities for the OPTMODEL procedure. This paper provides background information about the role of optimization and surveys the new SAS/OR optimization advances, highlighting their importance for organizations facing larger and more diverse problems in resource allocation, supply chain planning, and many other domains in which optimization plays a key role proc step, business intelligence, odds ratio, dataset, predictive analytics, proc optlp, proc optmilp, proc optqp, data mining source 12
150 Parameter Gathering Techniques for Data Driven Programming Renato G. Villacorte Data Driven Programming maximizes procedural efficiency and lightens the workload of routine processing. This paper presents techniques for gathering the parameters such as filenames and procedure results that can be used in subsequent routines and macro programming. Techniques include utilizing the SYSEXEC, OUTPUT=, and ODS OUTPUT statements. Examples of these coding techniques include how to read an MS Windows folder's filenames into a SAS dataset, how to extract PROC results into datasets, and how to make SAS write programs based on these macro variable, dataset, proc step, output, logistic distribution, macro definition, proc contents source 5
151 People, Pattern, and Place: SAS/GRAPH Data Display of Immigration Activity across the United States Wendy B. Hines,
Constance Onwuegbuzie,
Anthony Dickinson
Federal immigration policy is at the forefront of current public and legislative scrutiny across the United States. Questions of economics, ethnicity, and population movement comprise this public discussion. The 2005 Year Book of Immigration Statistics and the 2005 American Community Survey, (United States Census Bureau, 2006) offer nationwide, empirical data by city, state, and region pertaining to immigration to the U.S and population mobility patterns. Using multiple SAS/GRAPH procedures, we developed a visual exploration of these quantitative data to help identify patterns and discern themes not readily apparent or easily accessible in the numeric format. Historically, quantitative data have facilitated graphical display techniques by offering a visual one-to-one correspondence of number to graphical element. Today, PROC GMAP, within SAS/GRAPH, provides an opportunity for one-to-one geographical correspondence of data to physical location proc step, proc gmap, data visualization, proc freq, proc greplay source 11
152 Performance-Driven Data Integration - An Optimized Approach Vijay Venugopal,
Jim Fang,
Srinivas Bhat
Characteristically, the data warehouse is a central repository of vast amounts of disparate data. The process of cleansing, extracting, transforming and organizing this dat a into an enterprise intelligence platform (data mart) presents unique challenges. An optimiz ed approach towards performance driven data integration should eliminate redundancy and incorporate accuracy, time liness, automation and quality. Such a process/system brings greater agility, better decision-making and reduced cost and risk to performing insightful statistical analysis and reporting. This paper presents an optim ized approach to create SAS data sets dire ctly from a traditional RDBMS data warehouse. The authors compare multiple data loading strategies like loading from a flat file, loading from de- normalized and normalized data sources, loading from materialized and non materialized views data mart, flat file, data integration, proc step, data warehouse, proc means, record count, sample source 6
153 Perl Regular Expressions 102 Kenneth W. Borowiak Perl regular expressions were made available in SAS in Version 9 through the PRX family of functions and call routines. The SAS c ommunity has already generated some literature on getting started with these often-cryptic, but very powerful character fun ctions. The g oal of this p aper i s to build upon the exi sting lit erature by exposing so me of th e pitfalls and subtleties of writing regular expressions. Using a fictitious clinical trial adverse event data set, concepts such as zero-width assertions, anchors, non-capturing buffers and greedy quantifiers are explored. This paper is targeted at those who already have a basic knowledge of regular expressions. Keywords: word boundary, negative lookaheads, positive lookbehinds, zero-width assertions, anchors, non-capturing buffers, greedy quantifiers adverse events, clinical trial, prxmatch, character variable, output delivery system, character functions, proc sql source 11
154 Pipes and Threads: Performance Testing of Advanced Scalability Features in SAS9 Gerhardt Forst,
Fred R. Widel,
Mario Burger,
Thomas H. Pohl
SAS v9 provides many new features of interest to users with large data sets. Many of the commonly used procedures are multi-treaded. This allows users to harness the full power of multi-processor architectures to enhance the efficiency of some tasks. In addition, SAS/CONNECT allows users to spawn multiple independent processes to execute custom parallel processing solutions. SAS/CONNECT also enables pipeline parallelism, i.e., piping of records from one DATA/PROC STEP to another between processes. This potentially relieves some of the I/O burden of the total SAS job, an important consideration when dealing with large data sets. We examined the real world speed of these three features using two different multiprocessor system architectures, a Sun Microsystems Sun Fire 3800 running Unix and an IBM 9672/Y36 running MVS. We investigated a typical usage pattern with a simple DATA STEP followed by a PROC TABULATE proc tabulate, proc step, parallel processing, insurance claims source 10
155 Planning for and Designing a Data Warehouse - A Hands-On Workshop Gregory S. Barnes Nelson In a previous hands-on workshop (Nelson, 2006), we demonstrated how to use Data Integration Studio to load a sample star-schema. We focused on the usage of the tool itself; however, today we will take a step back and better understand the DI Studio process by outlining a methodology for designing and implementing the ETL load, or the process of moving data from a source system (such as operational systems or a table in a database) into a target (usually a structure that supports analytics and reporting). This workshop guides the participant through the methodology used to design the target database structure and transformations, create a mapping worksheet used to implement the ETL code, load the metadata, and create the process flows in DI Studio. This paper connects the dots for those interested in getting started with DI Studio not only as a tool, but how practitioners think about the DI Studio process source 16
156 Point-and-Click Style Editing in SAS Enterprise Guide Susan J. Slaughter,
Lora D. Delwiche
SAS comes with a variety of styles that you can choose to change the overall look of your HTML results. If you can't find the exact style you need, then you can use the Style Manager in SAS Enterprise Guide to easily make modifications to existing styles. The Style Manager uses a point and click interface for selecting style attributes including: font size, style and color, background or banner images, and background colors and borders. Styles created in SAS Enterprise Guide can be used both within SAS Enterprise Guide and in programs written using SAS sas enterprise guide, ods html source 15
157 Population Pharmacokinetics Studies with Nonlinear Mixed Effects Modeling Zaizai Shen,
David Lu
Population pharmacokinetics is the application of our statistical and programming expertise to convert data into knowledge. Pharmacokinetic and PK/PD models applied to drug concentration-time data can provide crucial information in early and late stage clinical development or post-marketing development. Population PK modeling uses population-based approaches to identify and interpret the demographic, genetic, physiologic and pathologic factors and so on. This paper presents how population PK can estimate the typical PK and/or PD parameters in a population of patients, investigate and identify sources of variability (covariates) that explain differences in the parameters between patients, and quantify the impact of these covariates. SAS NLMIXED procedure is also introduced population pk, covariance, key, fixed effects, imputation, maximum likelihood estimation source 11
158 Predicting Software Maintenance Outcomes Using Data Mining and Text Mining Uzma Raja Organizations spend a major portion of their Information Technology budget on software maintenance. In this paper, we present a predictive model for the maintenance outcomes of the software projects. We also identify the factors that affect software maintenance outcomes. We build our model using Data Mining (DM) techniques on Open Source Software (OSS) project data. We use the public access to the data archives of over 100,000 projects hosted by SourceForge.net (SF). We use prior research in software engineering to identify the initial set of variables used in the model building process. We use multiple DM techniques available in SAS Enterprise Miner. We also create additional new variables from the textual data provided by SF, through SAS Text Miner. The use of these new variables improves the model, significantly. The final model is selected based on domain knowledge and fit statistics of the models regression analysis, logistic regression, roc curve, response variable, logistic distribution, predictor variable, feature selection, sample, extract, data mining, proc freq source 9
159 Predictive Modeling in Higher Education Tom Bohannon Data mining can be defined as advanced methods for exploring and modeling relationships in large amounts of data. Data mining has been used by universities in a number of areas, including but not limited to enrollment management, retention and graduation analysis, donation prediction, and faculty retention. This presentation will provide an overview of the data mining process, with an emphasis on its use in predictive modeling in higher education regression analysis, proc hpsplit, stepwise selection, response variable, data mining, likelihood function source 14
160 Presentation Quality Forecast Visualization with SAS/GRAPH Samuel T. Croker A statistical forecast is useless without sharp, attractive and informative graphics to present it. SAS/GRAPH can produce superior results without resorting to exporting the data and drawing in Microsoft EXCEL. This case study demonstrates this simplicity using a few macros that make it possible to generate production quality forecast, confidence interval and other forecast-specific visualizations for appropriate SAS procedures. Methods for dealing with odd date intervals and usefully displaying difficult DATETIME axis values are explored. The ANNOTATE facility is used to help with displaying model and additional date information. A method for displaying confidence intervals as regions is shown as well as a way to produce separate regions for different types of data. Use of SYMBOL, AXIS and LEGEND statements is discussed along with details for using fonts, colors and lines to make the graphics look magazine worthy confidence interval, proc arima, proc step, sample, proc gplot source 10
161 PROC SQL - The Dark Side of SAS? Kirsty R. Lauderdale PROC SQL - t wo dr eaded words for m e up u ntil about 6 months ag o. As a die-hard DAT A step pr ogrammer, I shunned SQL for the e ase of DATA STEP programming without having to succumb to dealing with things like "RIGHT OUTER UNION JOIN." Unfortunately, the time comes to us all when we have to deal with stuff we try to avoid. For me, that time came when I i nherited some uncommented SQL code. Needless to sa y, I'm not a full convert - I stil l love DATA STEP, but I do see the efficiencies available in SQL code, and think everyone should at least understand the basics. Intended audience - beginner to intermediate, not limited to any particular operating system, based on SAS 8.2 proc sql, proc step, macro variable, by group processing source 5
162 PROC TEMPLATE Tables from Scratch Kevin D. Smith Did you know that nearly every table created by the SAS System uses a template to describe what it looks like? Did you know that you can modify these templates, or even write your own templates to create custom tables? In this paper, you learn how to create and modify table templates, including how to add, remove, and move columns as well as headers and footers. You also learn how to apply styles, formats, and other visual effects, all from scratch sas output, proc step, proc template, output delivery system, proc contents, end, ods html source 21
163 Process Your SAS Data Sets Anyway, Anyhow, Anywhere: You Choose with SAS/CONNECT Michael A. Raithel One of the challenges of an organization that has multiple computing platforms is accessing SAS data sets stored on other operating systems. For example, maybe you do most of your work on SAS for Windows, but have to process SAS data sets stored on a corporate Linux server. Or, perhaps you normally work with SAS on a UNIX server, but need to access SAS data sets stored on a Z/os mainframe server. In such cases, the old method of processing data stored on a different server was to create a SAS transport file on the remote SAS server, FTP it to your local server, then create a SAS data set from the transport file. This method resulted in a local copy of the SAS data set that was converted to the correct machine format of the local SAS server. SAS/CONNECT software eliminates this process and allows you to either submit SAS programs to execute on the remote server, or to process SAS data sets located on the remote server from your local SAS session dataset, libname statement, proc step, sas log, cpu time, proc sql, proc contents, sas output, options statement, proc print, output delivery system, proc download, proc upload source 16
164 Project Organization Proposal (POP) and Project Leadership Plan Guide Rex Pruitt In my 20+ years of experience using SAS and organizing projects, the success or failure of any project, no matter how small or large, generally resulted from how well a project was planned, organized and executed. This paper presents an easy to use Project Organization Proposal (POP) that can be implemented without adding additional resources to the MIS or IT divisions. It simply suggests the effective use of existing resources. However, as would be expected, the POP will only succeed if it receives support from 1) business MIS Management, 2) IT Management, 3) and their respective staff. The collaboration of all resources associated with a project is critical to its success. Clearly defining roles and accountabilities must be established prior to project initiation. Also included in this paper is a Project Leadership Plan guide. This guide will serve as a critical planning document, or checklist, that can be used to ensure that any project meets with success source 8
165 Projects, Programs, and Links - Oh My! Jerry Miller,
Barbara J. High
As new desktop tools are introduced in the work environment it is common to assume that users inherently know how to use them because they are built on currently used technologies. Sometimes basic concepts are not clearly understood. Sometimes these concepts need to be restated in a way that relates them to their work. The past year, Blue Cross Blue Shield of Minnesota deployed SAS Enterprise Guide (EG) v3. It was done with little user training. For many of the users, submitting programs was done via batch processing or an X-windows environment. It was easy to see where the programs needed to perform these tasks could be stored and then retrieved for further use or passing code onto others. At that point, most code was written as a single block that was very portable between users. When moving to SAS EG v4, we decided that we should spend a little time with the SAS user community to explain how projects and programs relate and to also explain the concept of links and when/why they would be used. This poster will visually explain the difference between saving your code within a SAS EG Project versus saving the code externally as a link and some reasons why you would choose one over another sas enterprise guide, excel source 8
166 Quick Record Lookup without an Index Paul A. Choate Would you like to find one record out of a billion in the time it takes to read thirty records? Does your sorted data not have an index? This paper demonstrates how to code a simple, yet extremely powerful binary tree search that can be used on any sorted SAS dataset proc sql, unique key, proc step source 4
167 Reading Excel Workbooks Edward Heaton You say your data are in EXCEL? That's often a problem when you try to read the data into SAS. But, the problems are getting easier to solve. The EXCEL engine that is available in SAS 9.1 through the SAS/ACCESS Interface to PC Files takes care of many of the problems. However, you will need to know how to tell the product to handle the issues with your data. In this workshop, we will read some relational tables that are stored in a Microsoft EXCEL workbook using the LIBNAME statement with the EXCEL engine. We will look at standard techniques to specify worksheet names and read tables with no row headers. We will investigate and overcome various characteristics of the data that are incompatible with SAS tables such as mixed data types and dates that are older than EXCEL allows. The workshop will also show some data in EXCEL worksheets that the EXCEL engine cannot read and we will briefly look at other solutions to read this data using either PROC IMPORT or Dynamic Data Exchange excel, libname statement, name range list, xls, label statement, character variable, missing value, relational database, sas library, dataset source 13
168 Regression Splines with Longitudinal DATA Chan-Hee Gossett,
Jeff M. Simpson,
Pippa M. Jo
In many clinical trial studies, patients are observed and/or measured on multiple occasions. To account for the longitudinal nature of the data, a mixed model analysis implemented using SAS PROC MIXED is commonly used. It is typical to make comparisons between dose or treatment groups, possibly controlling for demographic variables. When the dose response curve is non-linear, it can be difficult to find an appropriate curve, and model misspecification is common. We will present an alternative to non-linear mixed models that avoids the problem of specifying a parametric model. We demonstrate the use of a semi-parametric regression in the mixed model framework. This use of PROC MIXED allows for nonlinear fitting with a covariance structure for the correlated observations. We illustrate its use from the longitudinal data with various time points. Keywords: mixed models, regression splines, random coefficients, longitudinal regression analysis, proc mixed, proc step, covariance structure, covariance, longitudinal data, clinical trial, correlation, sample source 6
169 Repeated Measures Analysis with Clustered Subjects Ramon C. Littell Repeated measures can occur on subjects that are nested within clusters. The clusters may be considered a random effect. Then the covariance structure must accommodate between-cluster variance as well as within-cluster covariance. There also may be higher levels of clustering. In addition, there may be other fixed effect factors that are crossed with some or all of the random effects. The covariance structure must be built into a statistical for the data and the statistical model must be translated into the language of computer software that has capabilities to make computations for statistical data analysis covariance, covariance structure, proc mixed, fixed effects, repeated measures, proc step, estimate, proc calis, regression analysis, data science source 11
170 Reusable SAS/GRAPH Stored Processes for Dashboarding Michael Sherwood,
Rick D. Thomas
SAS/GRAPH gives the SAS developer unparalleled flexibility for creating compelling custom data visualizations. At the same time, data visualization is becoming more important in creating Web dashboards. By combining SAS/GRAPH and the stored process HTTP level interface, the SAS developer can create visualization stored processes that are data neutral, reusable, and dashboard ready. This approach yields stored processes that can be applied immediately to any data and be used from almost any type of Web application. Most importantly, the visualization stored processes encapsulate complex SAS/ GRAPH code and provide an interface so that developers can use them without any knowledge of SAS programming raw data, data visualization, proc freq source 13
171 SAS and Sudoku Richard A. DeVenezia,
John R. Gerlach,
Larry Hoyle,
Talbot M. Katz,
Richard D. Langston
Sudoku puzzles were first popularized in Japan and have taken the world by storm. The puzzle consists of 81 cells arranged in a 9x9 grid, that is broken into 9 3x3 grids. Given a partially filled grid, the solver must fill in the grid so that every row, every column, and every 3x3 box contains the digits 1 through 9. Sudoku solvers can be programmed in the SAS System using a surprising number of methods. This panel discussion will present several approaches to solving Sudoku puzzles, the use of analytic procedures like PROC CLP and PROC LP, several DATA STEP approaches, and an SQL based approach. Issues that will be addressed include solution speed, ability to solve all possible puzzles, validation of puzzles, specification of puzzles - the effect of using fewer sufficient rules for the game, generation of puzzles, automating the rating of the difficulty of puzzles proc step, missing value, create table, proc sql, group by, order by, data step, constraint programming source 37
172 SAS Constellation Diagram Has Many Faces Shi-Tao Yeh A constellation diagram is a representation of a two-dimensional x-y display which converts the data into a nodes and links plot. Link lines are used to describe the relationships among component nodes. The constellation diagram is a powerful tool for displaying clinical data. The SAS System provides a graphics macro in SAS/GRAPH called DS2CONST for users to create the constellation diagrams. The DS2CONST macro allows the users to specify the node's location in the x-y coordinates. From these, the users can design the diagram layout to fit their needs. In this paper, different applications with different display layouts, such as tree structure, neural network diagram, interactive correlation matrix representation, and visualization of correlation matrix iteration processes, are discussed. The SAS constellation diagram also provides interactive f eatures correlation, neural network, proc hpsplit, pearson correlation, sample, data mining source 16
173 SAS Data Integration Studio and SAS Macro - Working in Harmony for Data Warehousing Projects Tatyana Kovtun SAS DI Studio is gaining popularity as a Data Warehousing tool. As a gateway to the SAS Metadata Server, it enables users to design and run metadata driven processes. This paper explores two techniques we developed based on the power and flexibility of DI Studio and SAS/MACRO. First, we will present a method for integrating external business metadata containing complex derivation logic. Second, we will present a scheme for building modular DI Studio job segments, which facilitates creation of reusable processes capable of handling diverse data. To demonstrate these techniques, we will profile a DI Studio based application that converts clinical trial data to FDA required format. Anyone who has tried to use DI to 'beat' raw data to an arbitrary Data Warehouse storage structure knows that derivation logic can sometimes be more extensive than is practical to enter in DI Studio Expression field sas data integration studio, response variable, macro variable, macro definition, macro parameter, dataset, data cleaning, data dictionary, data transformation, sas base, out=, sample source 10
174 SAS Enterprise BI Server Integration with Microsoft Office I-Kong B. Fu This tutorial presents integration with Microsoft EXCEL, Word, and PowerPoint via SAS Enterprise BI Server. Learn how to leverage the power of SAS data, analytics, and reporting directly from the familiar environment of Microsoft Office, resulting in better planning using centraliz ed data, analyses, and reports based on SAS data management and analytical capabilities excel, bar chart source 8
175 SAS Enterprise Guide and Stored Processes Frederick E. Pratter New in SAS 9, stored processes are SAS programs that are stored centrally on a server so that they can be accessed from anywhere in the organization. The advantage of stored processes over other approaches is in the ability to centrally maintain and manage code. They can provide better control over changes, enhance security and application integrity, and ensure that every client executes the latest version of code. SAS Stored Processes can be used in many different client applications, including SAS Enterprise Guide and the SAS Stored Process Web Application. This paper will cover creating and managing SAS Stored Processes using Enterprise Guide and the SAS Management Console, including the following topics: A brief overview of using SAS Management Console to set up and manage Metadata, Workspace and Stored Process Servers; and Using SAS Enterprise Guide to create and view stored processes sas enterprise guide, sas management console, sample, macro variable, file statement source 17
176 SAS Enterprise Guide OLE Automation Using C# Kevin M. Kramer Like many other applications including the Microsoft Office Suite, SAS has provided access into the internal methods and properties of Enterprise Guide through the use of OLE Automation. With OLE Automation, clients have a way to programmatically control Enterprise Guide applications. This feature enables many products the ability to work together as a single entity to solve a common task. There are now hundreds of applications that can be used in this way. Microsoft now claims that every function of every application in the Office suite is available to a developer via the application's object model. The key to controlling an Automation application is to have a firm understanding of the application's object model. Each application's object model is different. To expose the object model of an application is to expose the objects, methods, and properties to the outside world sas enterprise guide, sas enterprise guide project source 6
177 SAS Information Delivery Portal-A Tutorial Angela M. Miles,
Brian O. Hall
Access data from throughout your organization via a single set of web interfaces. With the ability to author reports, view reports, execute stored processes, apply report level or data level security, deploy custom portlets utilizing the WIK API, and personalize user experience, the SAS Information Delivery Portal gets data into the hands of business users in an automated and secure fashion dataset, if-then-else source 14
178 SAS Information Map Studio and SAS Web Report Studio-A Tutorial Angela M. Miles,
Brian O. Hall
Find out how to provide the vital link between critical data and Business reporting. Learn to develop, deploy and administer analytic reports from Web Report Studio. From creating information maps off of cubes, tables, and relational tables to applying row level security on reports, this tutorial will demonstrate how to deploy customized BI reports in an efficient and effective manner proc sql, data validation rules source 21
179 SAS Macro Version Control Jim Groeneveld During the development and maintenance (life-cycle) process of SAS macros, especially while they are already used for production purposes, it is very much recommended to keep a history of changes, additions and bug fixes along with the macro version number. Archiving of the production SAS program code should include the applied macro version or at least the applied macro version number. That way the code can be used for reproduction purposes. Newer versions of a macro should be as much as possible backwards compatible. Then a newer version may replace an older version when running reproduction SAS programs. In case a current macro version is not fully backwards compatible it should not be used for reproduction purposes with code that used to call the older macro version. Instead the older macro version has to be used. A version control system within the macro code is presented which allows the user to specify which (compatible) version of a particular macro is to be used macro call, production run, macro variable, macro definition source 4
180 SAS Macros for Assessing the Symmetry of a Data Set Jayawant N. Mandrekar,
Sumithra J. Cha,
Stephen S. Mandrekar
Skewness indicates a lack of symmetry in a distribu tion. The coefficient of skewness is the commonly u sed measure to identify a lack of symmetry in the under lying data, although graphical procedures can also be effective. We have developed two comprehensive and efficient SAS macros for computing the various skewness measures and the appropriate power transfo rmation, if one exists, to make an asymmetric distr ibution symmetric. We present two SAS macros, %Symm and %Symmchk, which primarily utiliz e the UNIVARIATE procedure in SAS and a few other built-in macro calls. Our SAS macros provide a menu of options to perform all computations efficiently and suggest an appropr iate power transformation, if one exists, to make t he data symmetric. This latter part is noteworthy in that w e not only address the problem i.e., identify wheth er a given data set has an underlying symmetric distribution, but also provide a solution sample, macro call source 6
181 SAS Macros for Automated Model Selection When the Response Variable Is Nominal-Needs and Solutions Involving PROC CATMOD Bonnie E. Williams,
Todd Kegan
Currently, SAS does not provide the capability to fit logistic regression models using automated model selection methods, such as forward selection and backwards elimination, when the response variable is nominal. PROC LOGISTIC can provide automated model selection, but is only capable of fitting models with binary or ordinal response variables. This paper details a group of macros that are written to perform automated forward model selection using PROC CATMOD. It is intended for SAS users with a solid background in SAS Macros and the model fitting capabilities found in SAS/STAT. These derived macros will, for a given response variable, 1) estimate parameters by fitting logistic regression models using the forward selection procedure, 2) save resulting statistics from each of the model fittings using the Output Delivery System (ODS), and use the results to calculate the Akaike Information Criterions (AIC) which determine the best fitting model proc step, predictor variable, response variable, dataset, feature selection, forward selection, call symput, logistic regression, logistic distribution, regression analysis, sample, interval variable, model training, likelihood function, proc freq, proc logistic, imputation, do loop, missing value, proc reg, nominal variable, interaction effect, maximum likelihood estimation, macro definition source 12
182 SAS Response: FanSAStic! Results: Collaboratively Leading Institutional Effectiveness Efforts in Higher Education Institutions Allen Sudar,
Andy Goben
Institutional Effectiveness has become so important to colleges and universities that the language is embedded in accreditation and strategic efforts; institutional cultures are being transformed as human, fiscal, and technical resources are aligned to support and promote effectiveness; and senior leadership positions are being created or revised to include a focus on institutional effectiveness available balance, key performance indicator source 8
183 SAS Response: Revenue Assurance for Energy ... Using SAS Solutions to Leverage Corporate Intelligence to Fuel Effective, Forward-Looking Decisions in Volatile Markets Craig McMane,
Steve Carothers
Leveraging 30+ years of SAS leadership in business analyt ics, this presentation shows how SAS solutions arm various energy sector participants with the needed intelli gence to manage earnings and risk. The presentation also addresses how risk, customer, financial, and operational in telligence enable companies to do the following tasks: more efficiently manage energy supply improve work management reduce overall operational costs enrich customer satisfaction We also discuss how advanced metering infrastructure (AMI ) provides a treasure trove of valuable data, and how SAS handles the exponentially larger volumes of real-time data and bidirectional data flow in an efficient and timely manner, which enables utility companies to add m illions of dollars to their net profit customer satisfaction, revenue assurance, sas risk, regression analysis, data mining, excel source 11
184 SAS Tools for Program Automation Richard F. Pless Very often programmers find themselves re-running the same code with slight modifications to reflect a new FILENAME, date or directory. How many times have you found yourself making minor edits to existing code to help it run on a new day or handle a slightly different input file? How many times have administrative notes not been updated such as who ran the code or where it is located? Even worse, how many times have deadlines been missed because a program's author wasn't there to make the necessary minor edits to the code? Thankfully SAS has a number of tools to help you reduce the tedium of manual updates and avoid their associated errors. SAS provides a number of resources that can be easily incorporated in your code to make your programs more extensible and robust. Many hard-coded dataset and variable references in your code can be replaced through the use of SAS dictionaries macro variable, automatic macro variable, sysrc, proc step, proc sql, proc compare, date variable, select, filename statement, libname statement, dataset, macro put, options statement, dictionary tables source 12
185 SAS/CONNECT to Mainframes and Servers in SAS Enterprise Guide 4 Using SAS Code John C. Hennessey Enterprise Guide, the point & click interface to SAS is a powerful tool for beginners and power SAS users. SAS/CONNECT allows all available computer platforms to "talk" to each other, even the mainframe. This SAS module provides the capability to store data on any and all of your platforms, and to do the processing on any and all of your platforms - all from the one platform sitting on your desk. Even though Enterprise Guide does not have a point & click system for using SAS/CONNECT, the code for SAS/CONNECT does work. Certain little known features of Enterprise Guide together with SAS/CONNECT code combine to make a very powerful, modern system that communicates with all platforms in a Point & Click environment. In SUGI31, paper # 065-31, I introduced some of these coding tricks. This paper is a follow-up to those ideas, including some improvements to the code presented last year sas enterprise guide, sas library, ods rtf, output delivery system source 4
186 Saving Trees with Output Delivery System (ODS) Angelina D. Diehl,
Nancy Mandrekar,
Jayawant N. Tan
Clinical or epidemiological studies often include l arge number of variables. The analysis may generate several pages of output depending on which SAS procedure is used for the analysis. The SAS Output Delivery System (ODS) is an excellent tool used for formatting output genera ted by SAS procedures and DATA steps. In this article we highlight delivery of information to the user throu gh creative and innovative techniques using SAS ODS system and provide sample SAS code and macros that are easy to implement and per forms the necessary computations without any additional computer time. These concept s can be improvised based on individual project nee ds. Using data from clinical studies, we illustrate use in th e context of regression based procedures that inclu de REG, LOGISTIC and PHREG from SAS and generate reports using procedures. We also gen erate some simple reports using REPORT procedure for better presentation regression analysis, logistic regression, logistic distribution, output delivery system, sample, clinical trial, predictor variable, macro call, proc reg, proc phreg, proc step source 9
187 Seven Steps to Regulatory Publication Style with PROC REPORT Dennis Gianneschi This paper outlines SAS 9.1.3 coding steps to produce output that meets "Regulatory Publication Style". This style is specific to my clinical trial reporting environment and is composed of requirements coming from two separate sources. The first source is an internal company document called the Style Guide for Regulatory Submission, which all output submitted to a regulatory agency must follow. The second source is the publishing software itself, which processes all output into the regulatory filing. Examples of style guide requirements are: RTF output, Arial font, and that footnotes must attach to the bottom of the table without a box drawn around them. Publishing system requirements are: a) The user controls the type of line breaks, either soft, {\line}, or hard, {\par}, in the title, which controls how much of the title is picked up by the publishing software and put in the table of contents proc report, proc step, data step, proc template, ods rtf, proc tabulate, macro facility, regulatory submission, safety population, macro definition source 6
188 Simple and Effective - Using ODS Destinations to Facilitate Data Management Paul Gorrell A basic component of the management of project data and metadata is easy and convenient access to the information you (and your clients) need. The approach outlined here has two general themes: (i) the various ODS output destinations allow you to choose the application that best fits you and your clients' needs for readily accessing information; (ii) with only minimal additions to the skills you already posses as a SAS programmer, you can significantly enhance the usability and accessibility of data and documentation. Although usability is a term most often associated with the development of Web pages, the basic principles are applicable to data management. Information about project data and programs should be easily located and accessed. The general approach will be illustrated by looking at the navigational and display properties of three ODS output destinations: HTML, PDF and EXCEL (via the ExcelXP tagset). The HTML destination allows for easy navigation among metadata files proc step, file statement, variable list, proc sql, title statement, excel, data governance, proc format, sas programming, footnote statement, create table, ods excel, dictionary tables source 16
189 Simple Rules to Remember When Working with Indexes Kirk Paul Lafler SAS users are always interested in learning techniques related to improving data access. One way of impro ving information retrieval from a SAS data set or table is to create and use an index. An index consists of one or more columns that are used to uniquely identify each row within a table. Functioning as a SAS object containing the values in one or more col umns in a table, an index may be defined as numeric, character, or a combination of both. This presentation will emphasize the rules that users should know when creating and using indexes to make information retrieval more efficient where statement, proc sql, index, proc step, sas library, dataset source 5
190 Skewness, Multicollinearity, Heteroskedasticity - You Name It, Cost Data Have It! Solutions to Violations of Assumptions of the Ordinary Least Squares Regression Model Using SAS Leonor L. Ayyangar What options are available to the researcher when one or more assumptions of an ordinary least squares (OLS) regression model are violated? This poster highlights SAS procedures that may be employed when data at hand does not fulfill the assumptions underlying OLS proc step, regression analysis, proc reg, predictor variable, sample, response variable, residual, proc calis, outlier, null hypothesis, proc robustreg, correlation, instrumental variables source 7
191 Skinny to Fat - In Search of the "Ideal" Data Set Jeanina M. Worden Imagine if you will, a data manager's table, one that is tall, skinny, and beautifully normalized. It's the super model of data and can easily be maintained with a healthy diet of DATA steps. But when analyzing data you might find the ideal lends more towards a different "model", specifically short and fat tables. With SAS, given a "tall" table with numerous observations for a patient, it can be difficult to analyze data between rows. While creating a "short" dataset with all observations for a patient in one row can be accomplished with PROC TRANSPOSE, in multivariable datasets the number of TRANSPOSE statements can quickly become too much of a good thing. In this paper a macro is discussed that uses a dataset created from DICTIONARY.COLUMNS and CALL SYMPUT to identify and loop through each variable in the original dataset creating variable specific datasets for each one. Then the new datasets are merged together thus transforming your data from "skinny" to "fat" call symput, proc transpose, proc step, macro variable, dictionary tables, proc sql source 7
192 Smooth Writing with In-Line Formatting Louise S. Hadden PROC TEMPLATE and ODS provide SAS programmers with the tools to create customized reports and tables that can be used multiple times, for multiple projects. For ad hoc reporting or the exploratory or design phase of creating custom reports and tables, SAS provides us with an easy option: in -line formatting. There will be a greater range of in-line formatting available in SAS 9.2, but the technique is still useful today in SAS versions 8.2 and 9.1, in a variety of procedures and output destinations. Several examples of in -line formatting will be presented, including formatting titles, footnotes and specific cells, bolding specified lines, shading specified lines, and publishing with a custom font proc step, proc report, proc tabulate source 11
193 Speed It Up - Active Warehousing with SAS Data Integration: From Batch to Real-Time Eric Hunley,
Gary Mehler,
Nancy A. Rausch
The global economy has fueled a need to "speed it up" to fulfill the demand for current, reliable data for decision support. The SAS Data Integration Server, with its active warehousing capabilities, can help you meet this need. This paper presents methods and best practices for using real-time techniques that are available in SAS Data Integration Studio: change data capture (CDC) message queues technology * service-oriented-architec ture (SOA) technologies web service, change data capture, data integration, data warehouse, libname engine, slowly changing dimension, data mart, data validation rules, cpu time source 16
194 Spicing Up SAS/IntrNet Applications (with Additives) Jonah P. Turner With the advent of SAS/INTRNET software, programmers can extend their SAS applications online to cross-platform, global end-users. The paper "Spicing Up SAS/INTRNET Applications," published in the proceedings for SUGI 30, demonstrated a variety of techniques for improving such systems by way of enriching procedure output and enhancing interface functionality, as well as simplifying code generation and streamlin ing program design. In particular, methods were shown for adding vertical scroll bars to resulting tables, conditionally formatting output data, and embedding dynamic links that point to add itional information or even call upon other programs. Developers were also presented with ways to integrate both the front- and back-end processes of an Internet application into a single SAS program, thereby fostering a system that is easier to manage and remains up to date macro definition, put statement, flag variable, proc step source 22
195 Split and Conquer! Using SAS/QC to Design Quality into Complex Manufacturing Processes Jose G. Tobias,
Randall D. Ramirez
A complex manufacturing process has many stages, with different factors active at different stages. How do you discover which factors are important at a particular stage, and what factor, or factors, from an early stage interacts with one, or more, at a later stage (e.g. the source of raw material versus final packaging)? Split-plot experiments come to the rescue! They are a key tool for improving final product quality by studying how all stages affect final product quality. Until recently the design of fractional factorial experimentswithmorethanonestagewasnottrivial.Inthispaperweshowhowthe ADX Interface for design of experiments in SAS /QC makes it very easy to design and analyze the most common experiments of this type. For more complex situations, recent advances in PROC FACTEX enable you to custom design experiments for processes with several stages. Two examples are presented showcasing these new features in ADX and main effect, proc step, randomization, anova, residual, box plot, proc mixed source 25
196 Squeaky Clean Data with SAS Data Quality Server Faron Kincheloe Anyone who uses names and addresses in his or her business knows that duplicates can be a costly headache. Identity theft legislation has essentially taken away the Social Security number as a unique identifier making duplicates even harder to identify. The DQMATCH function in the SAS Data Quality Server module is a powerful tool for identifying potential matches so the data can be cleaned. However, as with any matching tool, there is a trade off between false positives on one side and overlooking true matches on the other. This paper covers the fundamentals of using the DQMATCH function to clean names and addresses. Additionally, it presents some programming techniques that can be used to optimize the matching process. These techniques enable you to win the match game by detecting the maximum number of true matches while minimizing the number of false matches proc sql, proc step source 10
197 Super Size It!!! Maximize the Performance of Your ETL Processes Nancy A. Rausch,
Nancy J. Wills
The success of every business activity-from supplier management to customer service-is dependent upon how well an organization manages its critical data. This paper discusses practical recommendations for optimizing the performance of your Extract, Transform, and Load (ETL) data management processes. The paper presents best practices in ETL process development and includes performanc e, tuning, and capacity information. You will learn to analyze and debug ETL flows, gain efficiency quickly, optim ize your system environment for performance, and customize with advanced performance techniques proc sql, relational database, data merging, inner join, proc step, implicit sql pass-through, where statement, sql pass-through, dimension table, fact table, dataset, raw data, libname statement, proc append source 14
198 Tabbing Through ODS Haibin Shu The author presents a significant approach to aligning multiple variables inside a cell by applying tabs to the ODS reporting process. Consequently what appeared to be one limitation in classical ODS reporting has been overcome. The technique makes it easy to adopt mixed patterns in presenting the result of PROC REPORT, which have become necessary under certain circumstances such as patient profile proc report, file statement, proc step, output delivery system source 4
199 Tales from the Help Desk 2: Solutions for Common SAS Mistakes Bruce F. Gilsen In 21 years as a SAS consultant at the Federal Reserve Board, I have seen SAS users make the same mistakes year after year. This paper reviews some common mistakes and shows how to fix them. In the context of reviewing these mistakes, the paper provides details about SAS system processing that can help users employ the SAS system more effectively. 1. CREATING A MACRO VARIABLE AND USING IT IN THE SAME DATA STEP. Before executing a DATA STEP, the macro variable MACVAR is assigned the value "oldvalue" in either a prior DATA or PROC STEP or (as in the code below) in open code (not in a DATA or PROC STEP). In the DATA STEP, the macro variable MACVAR is set to "newvalue" with CALL SYMPUT. Then, using a macro variable reference (preceding a macro variable's name with an ampersand), the DATA STEP variable DATASTEP_VAR1 is set to the value of MACVAR. The value of DATASTEP_VAR1, displayed with a PUT statement, is expected to be "newvalue", but it is "oldvalue" macro variable, put statement, sas log, call symput, &variable, macro loop, character variable, do loop, numeric variable, call symget, compress function, input statement, macro put, proc step source 10
200 Talking to Your RDBMS Using SAS/ACCESS Dianne Louise Rhodes SAS/ACCESS has grown in complexity as SAS continues to make it easier to use and expand its functionality. There are now many different ways to access your Relational Database Management Systems (RDBMS) data - by using a LIBNAME or SQL Pass-Through facility. What's the difference? What's going on "under the covers?" Understanding the underlying process that SAS uses to talk to an RDBMS will help you program more efficiently. When is it better to use a LIBNAME, and when is it better to use SQL Pass-Through. Did you know that you can talk more directly to your RDBMS (Oracle, specifically) using Oracle hints and the Bulk Loader? Do you have old SAS/ACCESS view and access descriptors lying around from the old days of writing descriptors and using DBLOAD? Don't fret. You can convert them into version 9 SAS views, either one-at-a-time or for an entire library, using CV2VIEW proc sql, proc step, libname statement, proc append, sas log, macro variable, sysrc, sql pass-through, ansi sql, select, macro definition source 15
201 Text Mining and PROC KDE to Rank Nominal Data Patricia B. Cerrito By definition, nominal data cannot be ranked. However, there are circumstances where it is essential to rank nominal data. Examples of such ranking include ranking hospi tals and colleges, defining the "most livable cities", and conference paper submissions. In this proj ect, we consider ranking patient severity. The purpose is to determine how patient severity can be used to rank the quality of hospi tal performance. There are thousands of patient diagnoses and co-morbidities that make such a ranking very diffi cult. Generally, nominal variables have been ranked by using quantitative outcome variables. Currently, hospital quality m easures used stepwise logistic regression to reduce the number of patient diagnoses considered to define a measure of patient severity. More recently, a weight-of-evidence method has been developed for predictive modeling such t hat nominal data are compressed and ranked using a target variable regression analysis, logistic regression, response variable, logistic distribution, mortality, type ii error, sample, proc step, nominal variable source 21
202 The "Ins" and "Outs" of SAS Data Integration Studio Chris Weeks,
Tim Olinger
The SAS Version 9 suite of tools provides many new resources for managing and manipulating data. SAS Data Integration Studio (DI Studio) is one of the many SAS Version 9 applications in the Data Transformation and ETL space. DI Studio is a new breed of SAS tool that lets the user visually define executable processes, which up until now had to be created and deployed using traditional SAS programming and operating system techniques. This tutorial explores the different aspects (both good and bad) of the ETL tool using a simple case study, and is intended for beginner to intermediate SAS programmers sas data integration studio, proc sql, data merging, raw data, dataset, fact table, sas programmer, libname statement source 20
203 The ABC's of Graphical Data Analysis Using SAS/GRAPH Hany Aboutaleb No single statistical tool is as powerful as a graph. Using graphs we can display a large amount of information, look for patterns and relationships, confirm or disprove the expected hypothesis and discover new ideas. This presentaion will describe and illustrate a graphical methodology for data analysis using basic rules and principles. The following dossier of statistical graphs illustrate the methods and principle elements of graphing data using SAS/GRAPH software. The SAS system and SAS/GRAPH software provide basic tools for statistical analysis and graphical display line chart, proc step, data science, data visualization, ods rtf, dataset, output delivery system, bubble plot, proc gplot, macro facility source 11
204 The Art of Code Validation Mindy S. Steffens,
Gregory C. Rodgers
Art is a negotiation between the artist's imagination, talent, and medium. The art of code validation requires objective program assessment and willingness to make changes. Validation is of paramount importance in the pharmaceutical, biotech, and medical devices industries. We create what we think is our best work, frame it, and place it in the gallery to be shown-but does it fulfill regulatory obligations and comply with internal quality requirements? The degree of validation performed must be based on code complexity, consumer base, and carefully assessed risk factors. 15th century Europe considered their greatest artists merely craftsmen-great works were considered collaborative efforts. Shouldn't we approach code validation the same way? Our palettes must contain intersecting skillsets encompassing quality insight, IT expertise, development lifecycle methodology knowledge, and business intelligence data cleaning, macro definition source 5
205 The Basics of the PRX Functions David L. Cassell We are constantly needing ways to search for patterns in text, and change particular pieces of text. With the advent of SAS 9, the power of Perl's regular expressions is now available in the DATA STEP. The PRX functions and call routines let you to use the pattern matching features of Perl 5.6.1 to do these tasks, and more. This paper will explain what regular expressions are, and how to write basic Perl regular expressions. It will also show how to code the more useful PRX functions, and how to use these functions to search for text and replace text prxparse, sas 9, prxchange, prxmatch, sas function, variable, character variable source 18
206 The Electronic Project: Effectively Using Metadata throughout the Project Life Cycle Jeffrey M. DiIorio,
Frank Abolafia
sdtm domain, missing value, adam dataset, macro variable, dictionary tables, data cleaning, attrib statement, sas log, macro call, time variable, sample, macro definition, proc sql, cdisc source 18
207 The Enterprise Melting Pot: Everyone's a SAS User - They Just Don't Know It Gail S. Mills,
Guinevere Z. Davidson
This paper describes the business intelligence effort for the Decennial Census through implementation of SAS Business Intelligence. The intended audience for this paper is organizations that are just beginning to implement common enterprise-wide computing that want insight into the decision process. The paper highlights what worked for us, how we made the decisions we did, and how you can benefit from our lessons learned. The environment consists of separate stovepipe applications; even our data warehouse was a stovepipe. All the usual problems associated with stovepipe systems development exist at the Census Bureau such as data duplication, conflicting data definitions, and turf wars, etc…. To dispel these problems, we st arted with the concept of an enterprise data warehouse and making that data available to only the right and authorized users. The stovepipe systems were tossed into the melting pot and evolved into an enterprise data warehouse business intelligence, data warehouse, excel source 7
208 The FILENAME Statement Revisited Yves DeGuire The FILENAME statement has been around for a long time for connecting external files with SAS. Over the years, it has grown quite a bit to encompass capabilities that go beyond the simple sequential file. Most SAS programmers have used the FILENAME statement to read/write external files stored on disk. However, few programmers have used it to access devices other than disk or to interface with different access methods. This paper focuses on some of those capabilities by showing you some interesting devices and access methods supported by the FILENAME statement filename statement, catalog entry, put statement, file statement, proc freq, proc step, proc printto source 7
209 The Most Important Efficiency Techniques Robert Virgile proc step, data step, missing value, raw data, by group processing, proc sort, dataset source 11
210 The Output Delivery System (ODS) from Scratch Kevin D. Smith The Output Delivery System (ODS) is a great way to move beyond reports that just use the listing output. Using ODS, you can generate reports in formats such as HTML, XML, PDF, PostScript, RTF, and Microsoft EXCEL. This paper tells you what you need to know to generate reports with ODS, from scratch. You'll learn how to generate multiple output formats, simultaneously; how to change the look of your report using styles; how to add text passages; and other "neat" tips (that is, helpful information) proc step, output delivery system, proc template, proc contents, excel, sas output, sample, ods html, select, ods listing source 14
211 The Power of the BY Statement Paul A. Dunn,
Toby Choate
by group processing, proc step, proc sql, key, sas programmer, do loop, proc print, set statement, update statement, group by, proc means, dataset, merge statement, proc freq, conditional do loop, output, class variable source 16
212 Thirteen Things I Wish I Knew before I Became an Independent SAS Software Consultant Andrew H. Karp sas consultant, data step source 14
213 To Cube or Not to Cube? Is OLAP the Better Choice? Evangeline Borden,
M. Paige Collado
There is a continuing demand across the higher education sector for increased extraction and analysis of university data to facilitate strategic decision-making and management of university programs and activities. This paper will detail the migration of a historical Enrollment Profile detailing student headcount information designed in Base SAS and SAS/INTRNET to the creation of an Enrollment Cube using SAS OLAP Cube Studio and SAS Enterprise Guide software. A comparison will be made between the new Enrollment Cube and historical version of the Enrollment Profile, focusing on functionality, usability, and maintenance. We will present the pros and cons of each tool and allow the reader to decide which format provides better functionality for this type of reporting. The writers' experience presented in this paper is applicable to any audience interested in ways to provide aggregate data to its user community sas enterprise guide, sas base, fact table, excel source 8
214 Turning the Data Around: PROC TRANSPOSE and Alternative Approaches Erik W. Tilanus PROC TRANSPOSE can be used to "rotate" (transpose) SAS data sets. I.e. the values of one given variable become variable names and variables in the input data set become observations in the output. The answers to three simple questions suffice to define the specification statements of PROC TRANSPOSE. This paper poses these questions and demonstrates how PROC TRANSPOSE can be handled using them proc step, proc transpose, by group processing, macro variable, proc report, proc tabulate source 9
215 Two Heads Are Better Than One - Getting the Most Out of Multiprocessing Faisal Dosani This paper explores the multiprocessing / multithreading capabilities of SAS 9. Questions such as "What is multi processing?", "How does it apply when using PROC SORT and PROC SQL?" and "what are the pros and cons" will be addressed. The intention is to help users implement these features and understand the advantages of using multiprocessing and multithreading proc step, proc sort, proc sql, cpu time, mod, options statement source 8
216 Ubiquitous Scoring of 1000+ Warranty Categories Using Predictive Rules Derived from Text Barry deVille Volvo North America extracted warranty code predictive classification information from the text fields of over 1,000,000 records that represented warranty repair data over a 5-year period. This work demonstrated that thousands of warranty codes could be reliably assigned by co mputer agents with an accuracy rate that ranged from 60% to 90% (compared to human accuracy rates in the 50% range). Because the computer agents can be triggered from such applications as Microsoft Word and EXCEL (using SAS Add-In for Microsoft Office), reliable, text-based, decision-making information can be available on-demand and can be used by operators and business analysts who have no spec ial information technology or engineering training data mining, excel, proc freq, sample, score code source 8
217 Useful SAS Macros and Routines Flora Zamudio Monta-o,
Miguel Rodriguez Monta-o
For users of both SAS and Microsoft, this paper pr ovides routines that you can use to interact with b oth systems without any trouble. Some of these routines are bas ed on SAS DDE (Dynamic Data Exchange). In addition, this paper presents some useful SAS ma cros, such as a macro that helps you generate your own reports in Microsoft EXCEL. The new SAS user will gain a better understanding of how to use some specific SAS products, and the experienced SAS user will learn how to use the macros or how to create their own routines excel, proc step source 8
218 User-Written DATA Step Functions Jason Secosky For years, users have asked for the ability to write functions in DATA STEP syntax. The day has come when this is possible. In SAS9, the FCMP procedure provides the ability to write functions using DATA STEP syntax. In SAS 9.2, these functions can be called from a DATA STEP. This paper explains how to write functions with PROC FCMP and how these functions are invoked from a DATA STEP. It also contains caveats when calling PROC FCMP functions from a DATA STEP put statement, return, proc step, proc fcmp, file statement source 9
219 Using an ODS Tagset to Create Distributable, Editable Data Islands James L. Ribble This paper discusses how in a Windows environment H TML, Javascript, XML and some other native Windows functionality can be combined to create an HTML page containing its own data that can be distributed, viewed and even edited. An XML file of the edited data is created which can be returned to the programmer for pr ocessing or imported into other applications. All of this is d one on the user's PC without the need for any server side functionality. An ODS Tagset will be presented which can create an application of this type from any SAS data member macro variable, proc step, proc report, ods html, proc template, dataset, macro definition, txt source 9
220 Using Arrays to Calculate Medication Utilization R. Scott Leslie Assessing duration of medication therapy involves managing a data set with multiple observations per subject. This paper offers an innovative approach to calculating medication utilization as the proportion of days supplied over a specified time period. In this paper, the TRANSPOSE procedure, ARRAY statements, and DO loops are used to create multiple indicator variables, which are then used to calculate medication utilization. Variations of this code can integrate gaps and overlaps in therapy and can be used in calculating concomitant medication utilization do loop, binary variable, proc step, concomitant medications source 5
221 Using Dynamic Data Exchange and Table-Driven Programming to Manage Microsoft Excel Files Xiaoming Liang In clinical trials, Microsoft EXCEL is widely used to document programming requirements. Those documents are frequently updated over time. It is quite time consuming and often challenging for programmers to keep track the changes of the requirement documents. As a result, the requirement changes might not be communicated efficiently among the team and the implementation of those changes might be delayed or overseen. The EXCEL Manager is a SAS macro with the integration of the following techniques. The Dynamic Data Exchange (DDE) is used to import EXCEL worksheets into SAS. The table-driven programming technique is applied to pass metadata from the source to the subsequent programs. The COMPARE and REPORT procedures are used to extract the version change information and generate color-coded RTF reports to reflect the changes of the EXCEL file for records addition, deletion, and update excel, dataset, macro call, proc step, macro parameter, macro variable, proc compare, proc import source 10
222 Using Invisible Characters in SAS Programming - Hidden Dragons, Episode II Shi-Tao Yeh proc report, proc step, sas output, character variable source 9
223 Using ODS Styles with SAS/GRAPH Jeff Heath,
Dan Cartier
box plot, proc step, histogram, outlier, output delivery system source 8
224 Using PROC FORMAT for Data Validation and Clean-Up Christianna S. Williams Sometimes one is faced with a large and potentially "dirty" data set that needs to be checked for invalid data. The data set may contain character fields that have been entered in varied and non-standard ways. However, the set of valid data values for some of the variables may itself be large and unwieldy, making a long series of statements of the type "IF x NOT IN (this, that, other. . .)" a very unattractive programming option. Alternatively, there may be a set of observations, identifiable by being among a large set of values of a key variable, that need to be deleted from your big data set. If the set of valid (or alternatively invalid) values can be enumerated and fed into a SAS data set, PROC FORMAT with the CNTLIN option can be a real code saver. This paper will present a step-by-step guide to using PROC FORMAT in this way as an aide to data validation and "cleaning", using a real example from health research proc format, proc step, dataset, missing value, data cleaning, proc sort, char. source 14
225 Using PROC NLMIXED and PROC GLMMIX to Analyze Dyadic Data with a Dichotomous Dependent Variable Peter L. McMahon,
James M. Pouget,
Enrique R. Flom
In the social and health sciences, data are often hierarchical (subjects nested in groups). One kind of hierarchy is the dyad, or couple, where each group consists of two subjects. Dyadic data pose particular problems for statistical analysis for several reasons: First, variation may occur at the individual or dyadic level. Second, the data are not independent. Third, the small group size poses special difficulties. Multilevel models have been used for dyadic data; we demonstrate the use of PROC NLMIXED and PROC GLIMMIX, and discuss the strengths and weaknesses of this approach in general, and these SAS procedures in particular. We illustrate this with data on predictors of viral Hepatitis C among heterosexual couples in Harlem in New Y ork City. Keywords: Dyadic Multilevel NLMMIXED GLIMMIX binary proc step, likelihood function, proc mixed, response variable, estimate, proc glimmix, covariance source 10
226 Using Propensity Scores To Adjust For Treatment Selection Bias R. Scott Thiebaud,
Patrick Leslie
Estimating the effect of drug treatment on outcomes requires adjusting for many observed factors, particularly those influencing drug selection. This paper demonstrates the use of PROC LOGISTIC in creating propensity scores to address such potential treatment selection bias. In this example using a pharmacy claims database, this method evaluates the probability of patients being included in five treatment groups and calculates weights based on factors hypothesized to influence treatment selection. A propensity score-weighted regression model is then fitted to compare the outcome of adherence between groups and to study the possible predictors of adherence propensity score, regression analysis, logistic distribution, logistic regression, proc logistic, proc step source 4
227 Using SAS Dates and Times: A Tutorial Jonas V. Bilenas Using date and time constants and variables in SAS is sometimes difficult to grasp even for the advanced SAS user. This tutorial will cover how to use date and time constants, INFORMATS, functions, using PICTURE format directives, how to set up date ranges in user formats, and how to use the %SYSFUNC macro function. We will also look at what is new in SAS9 for handling dates and times time variable, datetime variable, macro variable, macro function, datepart, proc format, date and time functions, sysdate9, proc step, data step source 10
228 Using SAS Macros to Produce Tables for Publication from SAS-Callable SUDAAN Roger P. Pickering SAS and SAS-Callable SUDAAN are powerful and useful tools for analyzing survey data with complex sampling-designs. Unfortunately, creating tables for publication can be tedious, time-consuming and error prone. The paper discusses and includes a number of useful SAS macros for creating text files from the results of analysis using SAS-Callable SUDAAN. These text files can be readily and easily converted to spreadsheet tables, which can be formatted and inserted into documentation and submitted to peer-review publications. Examples include code for producing tables using SUDAAN RLOGIST to estimate odds ratios and confidence intervals, SUDAAN CROSSTAB to estimate frequencies with standard errors, and linear regression to produce betas and their standard errors. These macros require Base SAS, SAS-Callable SUDAAN and a spreadsheet program (i.e. Microsoft EXCEL) proc calis, odds ratio, regression analysis, response variable, confidence interval, proc reg, output, predictor variable, txt, macro definition source 10
229 Using SAS PROC NLMIXED for Robust Regression Steven A. Chen,
Lingyun Gilbert
We show how the NLMIXED procedure can be used to fit linear models (simple linear regression, multiple linear regression, analysis of variance and analysis of covariance) when data are not normally distributed or contaminated with potential outliers. This is accomplished using PROC NLMIXED's capability of fitting user defined distributions through the general log likelihood option in the Model statement. This methodology can offer advantages over the M- estimation option in PROC ROBUSTREG which cannot analyze repeated measures and PROC NPAR1WAY which only provides p-values and cannot adjust for covariates or handle repeated measures. We provide some the basic theory and directions for specifying the likelihoods needed and then demonstrate the usefulness of the method on several examples normal distribution, degrees of freedom, outlier, proc step, regression analysis, standard deviation, proc robustreg, estimate, proc calis, proc reg, clinical trial, proc univariate, likelihood function, numeric functions, random intercept, repeated measures, anova, proc genmod, proc mixed source 9
230 Using SAS to Determine Sample Sizes for Traditional Two-Stage and Adaptive Two-Stage Phase II Cancer Clinical Trial Designs St. Clare Groulx,
Adrienne Moon,
Kyung-hee Chung
In a Phase II clinical trial, the primary objective is to det ermine the efficaciousness of a drug, such that decisions to proceed with further studies and development of the drug are warranted. To detect a measurable effect in an investigation product, a two-stage design is often used, whereby an interim look at the data may result in the decision to terminate the trial early, or proceed with the second stage of the study. The Simon's two-stage design to determine sample size is one that is widely used and accepted in P hase II cancer trials. A number of alternative methods that implement adaptive aspects to the des ign have also been published and used in trials. This paper will look specifically at Lin and Shih's adaptive method, which incl ude extensions to Simon's optimal and minimax designs. Currently, PROC POWER in SAS v9 does not produce sample size calculations for two-stage designs, which led to the motivation behind this paper sample size, sample, phase ii, adaptive design, clinical trial, proc power and sample size, stage 1 source 9
231 Using SAS to Process Repeated Measures Data - A Hands-On Approach Terry Gareleck,
Cyndie B. Fain
Data that contain multiple observations per case are called "repeated measures data." Common examples are medical records, credit card charges, and airline travel history. During this hands-on workshop, attendees will use the SAS DATA STEP to process repeated measures data, in order to generate summary data for reports or for submission to analytic techniques (e.g., regression). We will address both horizontal repeated measures (using arrays) and vertical repeated measures (using RETAIN, FIRST., LAST., OUTPUT, and other SAS statements and options), as well as how to convert horizontally structured data to vertically structured data and vice versa repeated measures, longitudinal data, proc step, output, by group processing, credit card, proc print, lag function, sample, array, retain, do loop, format statement, proc contents, proc freq, run source 12
232 Using SAS/OR to Determine the Optimal Path to Graduation Sandra Armacost,
Robert L. Archer
An integer program is formulated to create the programs of study for several student scenarios. SAS/OR is used to minimize the objective function of time to graduation subject to a set of assignment and policy constraints. The program is written with SAS 9.3.1 SP3 in Windows XP. The intended audience is familiar with Base SAS but new to the procedures available in SAS/OR linear programming, macro call, macro variable source 12
233 Using the DATASETS Procedure - Part II David Fickbohm The purpose of this paper is to continue to explain when, why, and how to use the DATASETS procedure. The DATASETS procedure is a very powerful procedure. The paper will briefly cover the basic concepts and syntax of the DATASETS procedure. This paper will discuss in depth: AGE, APPEND, CHANGE, COPY, DELETE, EXCHANGE, and SAVE. The instructions that manipulate data files; MODIFY the instruction that can change the attributes of SAS files and, through the use of subordinate statements, the variables in SAS data files. LABEL the instruction that can assign, change, and remove variable labels for SAS data files specified in the modify statement. RENAME the instruction that can rename variables for SAS data files specified in the modify statement. FORMAT and INFORMAT the instructions that can permanently assign, change, and remove variable formats and informats for SAS data files specified in the MODIFY statement dataset, proc step, run, foreign key, constraint, modify statement, key, sas library, index, missing value, proc datasets, libname statement, error message source 10
234 Using the SAS Output Delivery System and PROC TEMPLATE to Create XHTML Files Frederick E. Pratter SAS 8.2 introduced the ODS MARKUP statement, allowing users to export to a variety of markup languages, including HTML, XML and XHTML. The ODS MARKUP statement uses essentially the same syntax as the deprecated ODS HTML statement, except for the addition of TAGSET= option. The value of this option determines the type of output file to be created. In addition to the list of predefined TAGSETS available from SAS, it is also possible to create new ones, as well as customizing the SAS-supplied TAGSETS. The TEMPLATE procedure is used to review, create and customize TAGSETS. This workshop will cover using an existing template to create XHMTL from SAS output. In addition, we will explore modifying the existing template to change the look of the resulting output ods html, proc template, proc step, sas output source 11
235 Variable Screening for Multinomial Logistic Regression on Very Large Data Sets as Applied to Direct Response Modeling John A. Cherrie Beginning with version 8.2 SAS supports multinomial logistic regression as part of PROC LOGISTIC. As a direct response modeling provider, we have found that multinomial logistic regression models often provide us with our best solutions. However, using multinomial logistic regression presents some challenges. We are often faced with very large sample sizes and a large number of candidate predictor variables. The sheer sizes of our data sets make variable selection and scoring significant issues. The functionality that SAS has built into PROC LOGISTIC to handle variable selection and scoring is not feasible for the size of data sets that we use. I will present how we have addressed the issue of variable screening in our modeling environment. I will provide a comparison of gains charts that show that the multinomial logistic model is preferable to other solutions logistic regression, logistic distribution, regression analysis, multinomial logistic regression, feature selection, predictor variable, anova, proc step, response variable, sample, proc logistic, correlation, stepwise selection, proc varclus, output, gain chart, model deployment, proc princomp, bootstrap source 12
236 Visualizing Statistical Inference Using SAS Barbara G. Schneider,
Kristan A. Schneider
It is a demanding intention to teach statistics to medical students or physicians. The reason is that they are more firmly rooted in applications rather than in an abstract theoretical framework. Visualization is an excellent tool to improve comprehensibility when explaining dry concepts such as statis tical inference. If one desires to draw conclusion from data one has to be familiar with various statistical terms, e. g., p-values, significance level, test statistics, power etc., where at least an intuitive understanding is required. Our pr esentation suggests an approach for teaching statistical inference using simulated data together with animated graphics. In particular, the GIFANIM device driver that facilitates animated graphics is discussed and the respective SAS code is presented. We address to everyone who wants to use visualization as a didactical tool or is interested in the technical background itself. SAS software refers to Version 9.1.3 sample, significance level, sample size, inferential statistics source 10
237 Web-based Data Quality Assurance Reports at the National Alzheimers Coordinating Center (NACC) Woodrow Beekly,
Duane Lee,
William W. Koepsell,
Thomas Kukull,
Walter A. Deitrich
A series of approximately 60 tables and reports has been developed for monitoring the quality of data submitted to the Uniform Data Set (UDS) of the National Alzheimers Coordinating Center (NACC). Twenty-nine Alzheimers Disease Centers (ADCs), funded by the National Institute on Aging (NIA), submit data collected on standardized forms from subjects enrolled in the Centers' individual research studies. Data are submitted through NACC's website and error-checked for clear-cut errors before being accepted into the UDS database. Additional quality assurance supervision is done by NACC staff to monitor less clear-cut data inconsistencies, using the Quality Assurance Reports. The QA Reports can be generated on demand by NACC staff via NACC's website, using either all data submitted up to the current time, or any of the past monthly archived data sets. Base SAS and SAS IntrNet are used, including PROC REPORT, PROC TABULATE and ODS quality assurance, proc report, proc step, missing value, proc tabulate source 6
238 What's a "Senior" SAS Position? Deb Cassidy Are you a "junior" person looking to be promoted to a "senior" position? Are you a "senior" person looking to change positions or to help ensure you remain "senior"? Are you a manager looking for "senior" staff? Just what is a "senior" SAS position compared to a "junior"? Is it the number of years you have been using SAS? Is it having certain SAS competencies? Is it something else? Does it vary by industry? This paper will address those issues by using two methods. First, a sample of job postings on the website Monster.com will be reviewed. Second, informal interviews will be conducted with managers who have wanted to hire senior-level staff in recent months proc sql, clinical trial, proc report, sample, proc step source 7
239 WHERE vs. IF Statements-Knowing the Difference in How and When to Apply Sunil Kumar Gupta When programming in SAS, there is almost always more than one way to accomplish a task. Beginning programmers may think that there is no difference between using the WHERE statement and the IF statement to subset your data set. Knowledgeable programmers know that depending on the situation, sometimes one statement is more appropriate than the other. For example, if your subset condition includes automatic variables or new variables created within the DATA STEP, then you must use the IF statement instead of the WHERE statement. This paper shows you how and when to apply the WHERE and IF statements to get correct and reliable results. It also reviews the similarities as well as the differences between these two SAS programming approaches. Note that this paper does not focus on comparing the performance differences between the WHERE and IF statements if-then-else, where statement, error message, colon modifier, automatic variable, character variable, input statement, dataset source 12
240 Win the Pennant! Use PROC FORMAT Marge Scerbo Mr. Torre is the manager of a fictitious New York major league baseball team. Torre needs to produce some reports for the team's owner. He's been discussing these reports with his analysts: 1. The first set of reports show the frequencies for t he various positions on the active roster. The owner has requested that these frequencies report the description rather than the codes. 2. Torre needs reports based on the players' ages. The results may differ depending on how the age breaks are defined. 3. For clarity, some of the reports need the pl ayers' names and not their team uniform number. 4. A new variable is required that is based on the team uniform number table. All of these requests can be accomplished with basic SAS DATA STEP code. Often, the DATA STEP is the best and simplest solution. But, consider that PROC FORMAT may provide easy resolution to these problems. This hands-on workshop will introduce you to the basics of this procedure proc format, proc step, char., if-then-else, missing value, proc freq, label statement source 13
241 Workforce Preparation: Equipping Undergraduates with SAS Knowledge Stephanie R. Thompson Knowledge of data structures, data quality, data cleaning, SAS programming, data analysis, technical report preparation, and the ability to pr esent analyses to management are all key skills needed by today's professionals. This presentation will describe an innovative new undergraduat e program at the University of Memphis that teaches these skills to undergraduates. The undergraduate ce rtificate in "Data Analysis and Programming Using SAS Software" is a first-of-its-kind pr ogram in the Americas and t he third in the world. The presentation will also share insi ghts into establishing this program as well as enrollment information for the first two semesters data cleaning, sas base source 4
242 Zipping Right Along: Push-Button SAS Transfers via Command-Line Invocation of the WinZip32 Executable Stephen Fairfield-Carter,
Brian Hunt
Among the plethora of non-programming tasks frequently required of SAS users is the manual compression/loading of assorted SAS programs, logs, and output files for transfer or archival purposes. The Windows application most frequently recruited for this task is Winzip. Unfortunately for SAS programmers, who are accustomed to manipulating data via a keyboard-driven programming interface, the point-and-click front-end of the Winzip application generally represents a bottleneck in the smooth flow of program development--> execution--> delivery. This paper builds on the documented list of command-line options associated with the WinZip32 executable file and demonstrates several ways in which the adventurous programmer can operate this application in a SAS programming environment to avoid the manual tedium involved in the typical use of this popular utility sas programmer, sample, macro definition source 7

Back to Conf go 2008 go 2006

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.