MWSUG 2014 Papers - Index
117 papers. Source: MWSUG (Midwest SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | %LET Me Help You Improve Your Reporting | Lori Sissing | Building and maintaining reports can be tedious. Reports often need to be run daily, weekly, or monthly and for multiple portfolios or departments. Many times dates or other elements need to be updated in multiple places throughout the program. Ensuring all necessary elements are changed each time the report is updated can take time, and an element can easily be missed resulting in inaccurate output. This paper describes how using macros and macro variables can decrease programming and updating complexity while saving time. The examples described will give readers a template for improving their own reports | macro variable, autocall macro, macro definition, stored macro, options statement, macro function | 4 | |
| 2 | 'V' for ... Variable Information Functions to the Rescue | Richann J. Watson, Karl Miller |
There are times when we need to use the attributes of a variable within a data set. Normally, this can be done with a simple CONTENTS procedure. The information can be viewed prior to programming and then hardcoded within the program or it can be saved to a data set that can be joined back to the main data set. If the attributes are hardcoded then what happens if the data set changes structure, then the program would need to be updated accordingly. If the information from PROC CONTENTS is saved and then joined with the main data set, then this would need to be done for all data sets that need to be processed. This is where knowing your 'V' functions can come in handy. The 'V' functions can be used to return the label, format, length, name, type and/or value of a variable or a string within the DATA STEP. These functions can come quite in handy when you need to create summary statistics and if you need to perform an algorithm on a variable with a specific naming convention |
proc means, proc step, macro variable, character variable, numeric variable, baseline characteristics, data step, label statement, sample, proc contents | 16 | |
| 3 | A Comprehensive Automated Data Management System For Clinical Trials | Heather F. Eng, Jason A. Lyons, Theresa M. Sax |
A successful data coordinating center for multicenter clinical trials and registries must provide timely, individualized, and frequent feedback to investigators and study coordinators over the course of data collection. Investigators require up-to-date reports to help them monitor subject accrual and retention, randomization balance, and patient safety markers. Study coordinators need to know what data are expected or are delinquent, and they need to know about errors to be corrected, such as missing data or data that don't pass validity and logical consistency tests. Frequent monitoring can reveal systemic issues in procedures that require remedial adjustments to keep the project from being at risk | missing value, libname statement, clinical trial, ods html, sql server, proc sql, data governance, quality control, format statement, sas log, excel, file statement, proc step, randomization, adverse events, proc printto | 12 | |
| 4 | A Hands On Tutorial For Automating a Tedious Process | Eric Barnitt | Once, I inherited a program which required the programmer to manually update over 100 separate %LET statements with 87 different file names. Even worse, this program was required to be updated and run twice a year. Rather than suffer through the tedious and laborious process of manually updating these statements, I decided to write a SAS program which does it automatically. This paper provides an example of how various SAS system commands and programming steps can be used together to fully automate the process of transforming multiple flat text files into one SAS data set. First, a description of the motivation and background for solving the problem is given. Next, I describe the mechanics of how SAS can read the names of files from a folder and translate that information into a SAS data set. I then show how to use the data set of file names in a macro to cycle through the list of files and read them into SAS |
dataset, macro variable, txt | 4 | |
| 5 | A Hands-on Introduction to SAS Dictionary Tables | Peter W. 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, sas log, data step, sas programmer, sashelp, sas library | 15 | |
| 6 | A SAS Macro Using Parallel Genetic Algorithm to Automate Variable Selection | Jinqiao Li, Yi Cao, Yanping Shen |
Variable selection for generalized linear models has been a challenge in SAS as current packages are either limited to a small scope of models or the searching algorithm still focuses on forward/backward/stepwise that biases parameter estimation ([1]). The proposed macro VarSel_PGA was built upon such need. It utilizes the Genetic Algorithm (GA) as the searching algorithm. In contrast to traditional forward, backward and stepwise selection schemes, GA directs users to an optimal path to the final set of variables. When combined with PROC GENMOD, VarSel_PGA can be applied to any model in the procedure. To further enhance its performance, we incorporate p-value acceleration and parallelism in the macro. P-value acceleration technique facilitates algorithm to eliminate highly uninformative variables in the early stage of iterations thus expedites the convergence. Parallelism is used to aggregate the results from multiple paths of GA such that the consolidated result is more stable |
feature selection, proc freq, proc step, proc genmod, series plot, credit card, backward selection, create table, sample size, sample | 19 | |
| 7 | A Simplified Approach to Add Shading to your Graph using GTL | Jennifer L Yen | You have mastered the skill of using SAS annotate facility along with ODS statistical graph procedures to customize your graphs. You know how to use the annotate function to add color shading anywhere on your graph, and you have figured out how to customize your axis labels using title and footnote statements. If you have always hoped for a simpler way to do all of this, Graphic Template Language (GTL) is the answer! This paper will show you how to leverage the features of GTL to add colo r shading to your graph and customize your axis labels |
proc step, scatter plot, macro variable, proc template | 11 | |
| 8 | All Your Scripts are Belong to Us: Extending SAS with Server-Side Scripts | Ben Elbert | Even if one has previously developed code (in a language that must not be named) or has determined that some data acquisition procedures are easier solved outside SAS, SAS need not be left on the sideline to watch. By leveraging built-in SAS functionality such as URL calls, XML processing, and the beloved Macro Language, we demonstrate how SAS can acquire data produced by server-side scripts. By interacting with some simple scripts, we will demonstrate how automated tools can remain automated and not require one to leave the comfort of their SAS environment. For the adventurous SAS programmer, the techniques described in this paper easily extend to cases where we wish to call C, Perl, Python, or other scripts on a server to accomplish a multitude of tasks without the hassle of converting code or switching between environments, which is especially beneficial in an enterprise scenario where resource constraints may stipulate that developed processes be left as is | macro facility, libname engine | 5 | |
| 9 | An Introduction to the Mighty DATASETS Procedure | Ben Cochran | On occasions, a SAS user might find themselves in the pos ition where they need to do a number of things to a SAS dataset, like copying it or renaming it or even deleting it. All of these tasks, and many more can be done with the incredible DATASETS procedure. The pur pose of this paper is to show a step by step approach to accomplishing these tasks |
sas log, proc step, dataset, delete, work library, proc contents, index | 6 | |
| 10 | An Object Oriented Framework for Simulations in base SAS | Michael C. Frick | Have you ever wished you could have the power of SAS at your fingertips while coding an object-oriented simulation in a language like C++? Well if you have version 9.3 of SAS and are willing to take on some of the bookkeeping responsibilities normally handled by the complier, you can have the next best thing all while operating completely within base SAS. In this work, I develop an object-oriented framework for simulating the performance of traffic light signals using several features recently added to SAS. Each class of objects in the framework has its own dedicated subroutine (compiled using PROC FCMP) which consists of a hash table to store data associated with each instance of an object and the common code required to operate on the data. Further, each class of objects has an associated SAS macro that can be called to create a new instance of the object |
hash table, select, proc fcmp, proc step, sas base, macro call, macro definition, run, sas log, logistic distribution | 15 | |
| 11 | Analyzing Collection Effectiveness using Incremental Response Modeling | Ryan Burton | Incremental response modeling (IRM) is commonly used to optimize direct marking campaigns. Traditionally marking campaigns are optimized by targeting customers most likely to respond without considering the incremental effect the campaign had. IRM targets those most likely to respond favorably to the campaign using a randomly split control and test group. SAS Enterprise Miner now includes an IRM node in production status with version 12.1 or greater. This paper is divided into three sections including the applications and benefits of IRM, basic theory behind SAS's IRM node, and a case study analyzing collection effectiveness with IRM. Some applications of IRM are optimizing marketing actions, collection efforts, and personalized medicine. Generally IRM can be applied to maximize a desired response by applying a treatment to a scored population. By only applying the treatment to the most positively influential population, costs of the treatment can be minimized while returns maximized | predictor variable, data cleaning, response variable, insurance risk score, validation set, feature selection, likelihood function, data mining, sample, credit card | 7 | |
| 12 | ANCOVA (Analysis of Covariance): A Visual, Intuitive Understanding | Michael Senderak | As programmers, we may be asked not only to prepare data for a research study, but also apply a sophisticated statistical analysis procedure selected by the researcher but unfamiliar to us. Understanding these analytical methods can help us both appreciate the research in which we participate and gain a sense of confidence and closure in our work. One extremely valuable and widely applicable statistical method is ANCOVA, which allows the researcher to mathematically subtract out differences between non-equivalent groups and thereby more precisely estimate the effect of a treatment given to one group but not the other(s). The SAS code is deceptively simple. Three or four brief PROC GLM statements will yield a complete ANCOVA analysis. But how does ANCOVA work? Although the name itself and the mathematics behind it can be quite intimidating, the underlying logic can be readily grasped at an intuitive and visual level, as we will see in this poster |
ancova, proc genmod, treatment effect, proc glm, covariance, proc step | 12 | |
| 13 | Basic SAS PROCedures for Quick Results | Kirk Paul Lafler | As IT professionals, saving time is critical. Delivering timely and quality looking reports and information to management, end users, and customers is essential. The SAS System provides numerous "canned" PROCedures for generating quick results to take care of these needs ... and more. Attendees learn how basic SAS PROCedures such as PRINT and FORMS produce detail output; CHART, FREQ, MEANS, PLOT, SQL, and UNIVARIATE summarize and create graphical, tabular, and statistical output; and utility PROCedures to manage data libraries; Additional topics include techniques for informing the SAS System which data set to use as input to a procedure, how to subset data using a WHERE statement (or WHERE= data set option), and how to perform BY- group processing | proc step, proc means, numeric variable, libname statement, proc freq, proc sort, proc univariate | 18 | |
| 14 | Before You Get Started: A Macro Language Preview in Three Parts | Arthur L. Carpenter | Using the macro language adds a layer of complexity to SAS programming that many programmers are reluctant to tackle. The macro language is not intuitive, and some of its syntax and logic runs counter to similar operations in the DATA STEP. This makes the transfer of DATA STEP and PROC STEP knowledge difficult when first learning the macro language. So why should one make the effort to learn a complex counterintuitive language? Before you start to learn the syntax; where to put the semicolon, and how to use the ampersand and percent sign; you need to have a basic understanding of why you want to learn the language in the first place. It will also help if you know a bit about how the language thinks. This overview provides the background that will enable you to understand the way that the macro language operates. This will allow you to avoid some of the common mistakes made by novice macro language programmers |
macro facility, macro variable, proc step, macro definition | 9 | |
| 15 | Burst Reporting With the Help of PROC SQL | Daniel Sturgeon, Erica Goodrich |
Many SAS programmers need a solution for creating a large amount of reports for multiple customers in an automated fashion using one piece of code. While there are many different ways to accomplish this, I will be talking about one method using PROC SQL and the SAS macro language. This method creates a custom SAS macro that needs two data sets, one for metadata and one with the actual data. The macro loops through the procedures written within and plugs in the information that is needed, creating many customized reports in a short amount of time |
proc sql, proc step, macro variable, macro definition | 6 | |
| 16 | Can you decipher the code? If you can, maybe you can break it | Jayanth Iyengar | You would think that training as a code breaker, similar to those employed during the Second World War, wouldn't be necessary to perform routine SAS programming duties of your job, such as debugging code. However, if the author of the code doesn't incorporate good elements of style in their program, the task of reviewing code becomes arduous and tedious for others. Style touches upon very specific aspects of writing code; indentation for code and comments, case for keywords, variables, and data set names, and spacing between PROC and DATA steps. Paying attention to these specific issues will enhance the reusability and lifespan of your code. By using style to make your code readable, you'll impress your superiors and grow as a programmer |
sample, proc step, dataset | 8 | |
| 17 | Captain's LOG: Taking Command of SAS Logarithm Functions | Britney D. Gilbert, Joshua M. Horstman |
In BASE SAS, there are multiple logarithmic functions available. The most used log functions are the natural and common log functions. However, the syntax of the natural log function can be easily confused with the mathematical notation for the common log and can lead to incorrect results. This intent of this paper is to explore the definitions of each of these log functions, to seek out full understanding, and to boldly go where no programmer has gone before | log, sas base | 4 | |
| 18 | Case Study: Generating Clinical Trial Summary Plots from an ORACLE database using the SAS Macro Language | Shannon L. Morrison | This paper details creation of summary plots for a clinical trial using data stored in an ORACLE database. The primary recipients for these plots were members of a Data Safety Monitoring Committee (DSMC) - plots needed to be informative and easy to read. After initial data cleaning, the SAS Macro Language was used to step through the data to create two sets of plots - overall boxplots with jittered data points, and spaghetti panel plots - both showing results over time. Resulting plots were output to PDF files. Both the boxplots and spaghetti plots were grouped by test, and the spaghetti plots were laid out panel-style, with each patient's results contained in an individual panel | box plot, output delivery system, macro variable, oracle, baseline, spaghetti plot, clinical trial, macro facility, proc sql | 8 | |
| 19 | Categorical AND Continuous - The Best of Both Worlds | Kathryn Schurr, Ruth Kurtycz |
Visually representing data such as blood pressure has often presented a challenge for health professionals. Do we treat blood pressure as a continuous or categorical variable when interpreting this type of data? When continuous data is depicted graphically, minute changes allow decision makers to identify positive or negative trends over time; categorical data on the other hand permits one to efficiently identify abnormal levels that facilitate prompt assignment of treatment. Although each type of graphic has its distinct uses, there has been no visual representation that simultaneously displays blood pressure's categorical and continuous nature. We have devised a bi-variate scatter-band plot to show categorical changes in parameters such as blood pressure, while still maintaining the integrity and the information density of the continuous variable | data step, proc step, proc sgplot, call symput, regression analysis, macro definition, scatter plot, numeric variable, proc sql, stage 1, sample | 60 | |
| 20 | Color Me Impressed: Creating Colorful PROC REPORT Output | Erica Goodrich, Daniel Sturgeon |
In some instances, we need to highlight our data for reporting to bring attention to our readers. One of the easiest ways to do this is through colors in your report. This presentation will discuss ways and uses of PROC REPORT to highlight cell colors for individual cells, rows, columns, and even diagonal reporting leveraging the CALL DEFINE statement and STYLE options |
proc report, proc step, if-then-else | 7 | |
| 21 | Common Method Variance Techniques | Bradford R. Eichhorn | Modern empirical research often utilizes survey tools such as Survey Monkey, Survey Gizmo, and Key Survey. Using a single survey respondent as the source for both the independent and dependent data in one instrument introduces the possibility of bias caused by using a single method of data collection. Additionally, the design of the survey instrument itself can cause raters to bias their responses. Common Method Variance (CMV) is the observation of such bias. The impact of this bias was beginning to be understood as long ago as the 1950s and is important because it introduces potentially significant errors in the measures. This paper presents this common issue in empirical (survey) research, briefly lists techniques available to reduce this source of bias during the experiment's design, and provides the analytical procedures to estimate the common method variance using three different techniques: Harman Single Factor, Common Latent Factor, and Common Marker Variable | latent variable, correlation, sample, proc step, proc calis, response variable, factor analysis, proc factor, proc princomp | 11 | |
| 22 | Comparing regression, propensity matching and coarsened exact matching in healthcare observational studies using SAS: An example from the Medical Expenditure Panel Survey (MEPS) | Douglas Thompson | Healthcare expenditures in the United States have increased at an unsustainable rate, reaching 18% of GDP in 2011. There is a need to find ways to reduce healthcare spend while maintaining healthcare quality. Numerous interventions to reduce healthcare spend have been proposed and implemented. It is crucial to accurately evaluate which interventions are most effective. The gold standard method for evaluation is the randomized controlled trial (RCT), but this is sometimes unfeasible. Observational studies are an alternative when RCTs are not feasible. One aspect of observational studies is to balance the groups being compared (e.g., an intervention group and a comparison group) with respect to measured baseline characteristics, using methods such as regression or matching. After balancing on baseline characteristics, post-intervention outcome measures are compared between the groups | regression analysis, baseline characteristics, sample, weighted mean, estimate, propensity score, dataset, logistic regression, missing value, interval variable, sample size, randomization, logistic distribution, response variable | 16 | |
| 23 | Conquering Big Data Analytics with SAS, Teradata and Hadoop | John Cunningham, Tho H. Nguyen, Paul Segal |
Organizations are faced with the unique big data challenges collecting more data than ever before, both structured and unstructured data. There has never been a greater need for proactive and agile strategies to overcome these struggles in a volatile and competitive economy. Together, SAS and Teradata have joined forces with Hadoop to revolutionize your business by providing enterprise analytics in a harmonious data management platform to deliver strategic insights. This paper discusses how SAS, Teradata with Hadoop are delivering innovation to break through your big data analytics challenges, by exploring the appropriate platforms for the various types of analysis to quickly uncover hidden opportunities | proc step, big data, teradata, data wrangling, data warehouse, data governance, in-database processing, in-memory analytics, data visualization, proc sql, data mining | 10 | |
| 24 | Creating an Easy to Use, Dynamic, Flexible Summary Table Macro with P-Values in SAS for Research Studies | Amy Gravely, Barbara Clothier, Sean Nugent |
SAS Macros are useful and can save time with routine, repetitive tasks such as creating customized tables in situations when the exact same table is needed repeatedly, but the data changes. However, often flexibility is desired so that the same macro can be used to create similar but not identical tables for different research studies, within the same study or to allow one to quickly accommodate requested changes. This paper presents an easy to use, flexible, dynamic summary table macro that includes p-values. This macro incorporates flexible features that the user specifies through macro parameters: the number and type of row variables, the number of columns, the type of tests one would like p-values from, and the spacing of the table. Currently chi-squared tests, Fisher's exact tests, ANOVA F-tests and t-tests are available and any combination of these can be used. The macro also has dynamic features | macro variable, macro parameter, anova, proc step, proc report, nominal variable, fisher exact test, chi-square test, exact test, predictor variable, sas output, dictionary tables, missing value | 10 | |
| 25 | Creating and Using Prompts in SAS Enterprise Guide | Ben Cochran | Several years ago, Enterprise Guide was given the ability to create prompts. The developers at have continually enhanced this process over the last several releases of Enterprise Guide (EG) and today the user can create quite a wide range of prompts to be deployed in the EG environment. This paper takes a look at some of the prompts that can be created | macro variable, sas enterprise guide | 11 | |
| 26 | Creating Code writing algorithms for producing n-lagged variables | Matthew Bates | As a predictive modeler with time-series data there is a continuous search for new and "better" techniques to produce more precise forecasts. One of these techniques is to include lagged values as predictors in a model which leads to a technical coding question. How does one produce an n-number (large number of) of lagged variables without having to type every single lagged instance? | missing value, lag function, proc panel, proc step, macro variable | 9 | |
| 27 | DATA Step Merging Techniques: From Basic to Innovative | Arthur L. Carpenter | Merging or joining data sets is an integral part of the data consolidation process. Within SAS there are numerous methods and techniques that can be used to combine two or more data sets. We commonly think that within the DATA STEP the MERGE statement is the only way to join these data sets, while in fact, the MERGE is only one of numerous techniques available to us to perform this process. Each of these techniques has advantages and some have disadvantages. The informed programmer needs to have a grasp of each of these techniques if the correct technique is to be applied. This paper covers basic merging concepts and options within the DATA STEP, as well as, a number of techniques that go beyond the traditional MERGE statement. These include fuzzy merges, double SET statements, and the use of key indexing. The discussion will include the relative efficiencies of these techniques, especially when working with large data sets |
hash table, merge statement, by group processing, set statement, key, conditional do loop, proc sql, adverse events, proc step | 11 | |
| 28 | Design of Experiments (DOE) Using JMP | Charles E. Shipp | JMP has provided some of the best design of experiment software for years. The JMP team continues the tradition of providing state-of-the-art DOE support. In addition to the full range of classical and modern design of experiment approaches, JMP provides a template for Custom Design for specific requirements. The other choices include: Screening Design; Response Surface Design; Choice Design; Accelerated Life Test Design; Nonlinear Design; Space Filling Design; Full Factorial Design; Taguchi Arrays; Mixture Design; and Augmented Design. Further, sample size and power plots are available. We give an introduction to these methods followed by a few examples with factors | quality control, sample size | 4 | |
| 29 | Design of Experiments (DOE) Using JMP | Charles E. Shipp | JMP has provided some of the best design of experiment software for years. The JMP team continues the tradition of providing state-of-the-art DOE support. In addition to the full range of classical and modern design of experiment approaches, JMP provides a template for Custom Design for specific requirements. The other choices include: Screening Design; Response Surface Design; Choice Design; Accelerated Life Test Design; Nonlinear Design; Space Filling Design; Full Factorial Design; Taguchi Arrays; Mixture Design; and Augmented Design. Sample size and power plots are available. We give an introduction to these methods followed by examples with factors | sample size, sample | 3 | |
| 30 | Documentation Driven Programming: How Orienting Your Projects Around Their Data Leads to Quicker Development and Better Results | Marcus Maher, Joe Matise |
In this paper we show a modular, data-driven method of programming using a data dictionary based approach. Constructing a data dictionary in a consistent, tabular fashion, one can write an application that reads in data, adds formats and labels, performs data cleaning, and produces reports without almost any additional coding. This leads to efficiency gains, accuracy gains, and more clear code. We explain the fundamentals of a data dictionary that can be used for this purpose, with examples for different specific purposes, and show one implementation of a simple system. We invite the reader to adapt the base concept to their specific needs, and suggest a few things to consider when adapting this to more specific purposes. The process applies to Base SAS version 9, and examples will be presented assuming the presence of Access to PC Files, although the concept does not require it | proc step, proc sql, macro variable, data cleaning, data dictionary, txt, label statement, macro definition, excel | 24 | |
| 31 | DS2: The New and Improved DATA Step in SAS | Rajesh Lal | The DATA STEP is a fundamental building block of Base SAS language or any SAS program. It is characterized by implicit loop of SET statement, reading and writing dataset observations, implicit global variable declaration and access to a huge library of SAS functions and ability to use inbuilt or user-defined formats. DS2 is a SAS proprietary programming language that is used for data manipulation and data modeling applications. It shares the core features of the DATA STEP and extends far beyond that. It includes several features that are not available in the DATA STEP like: variable scoping, user-defined methods, ANSI SQL data types, user-defined packages, and programming structure elements. This paper discusses the features, basic components, usage and examples of |
sas base, set statement, proc sql, ansi sql, proc step, sas log, parallel processing | 11 | |
| 32 | Efficiencies using SAS and Netezza | Rachel Rabaey | IBM's Netezza data warehouse is specifically optimized for large amounts of data and high performance analytics. As SAS users, utilizing these features requires some knowledge and a few changes to codes. This paper will cover efficiencies such as Bulk Load and Bulk Unload, usage of temporary tables and how to utilize pass-through SQL to move data processing to a place where run times can be reduced by 30% or more | proc sql, proc step, libname statement | 4 | |
| 33 | Examining the Factor Structure of the Revised Illness Perception Questionnaires (IPQ-R) among Underserved Type II Diabetic Patients | Xueying (Carol) Li, Amy McQueen, Anjali D. Deshpande |
Illness representations are patients' beliefs and expectations about an illness or somatic symptom. The most frequently used measure of illness representations is the Revised Illness Perception Questionnaire (IPQ-R) and it has been widely utilized to study perceptions of various chronic conditions, find predictors associated with perceptions of an illness, and to change misperceptions through intervention. Since this instrument was developed using European-origin populations and much of the research using the IPQ-R has been conducted in European Countries3,4,9,14,24. Some of the items in the IPQ-R might need to be adapted for different populations as the items' explanations or conceptualizations and effectiveness may vary1,15.Our research was the first study to examine the factor structure of the IPQ-R for Type II diabetes in a US sample of underserved, mostly African American, patients diagnosed with Type II diabetes | factor analysis, sample, confirmatory factor analysis, covariance, correlation, proc step | 9 | |
| 34 | Extreme SAS reporting II: Data Compendium and 5 Star Ratings Revisited | Louise S. Hadden | Each month, our project team delivers updated 5 -Star ratings for 15,700+ nursing homes across the United States to Centers for Medicare & Medicaid Services. There is a wealth of data (and processing) behind the ratings, and this data is longitudinal in nature. A prior paper in this series, "Programming the Provider Previews: Extreme SAS Reporting" discussed one aspect of t he processing involved in maintaining the Nursing Home Compare website. This paper will discuss two other aspects of our processing: creating an annual data Compendium, and extending the 5-star processing to accommodate several different output formats f or different purposes. Products used include Base SAS, SAS/STAT, SG Procedures, and SAS/GRAPH. New annotate facilities in both SAS/GRAPH and the SG Procedures will be discussed. This paper and presentation will be of most interest to SAS programmers wit h medium to advanced SAS skills |
proc step, proc export, excel, proc report, sql server, proc print, proc tabulate, dataset, proc sql, sample | 15 | |
| 35 | File Finder: Conditionally Processing Files from a Directory Using SAS | Katrina Drager | File processing for incoming files could be a lot easier and less labor intensive. What is needed is automated processing of the files needed without manually looking for files and running code separately for each import. This code is a method to set people free from looking for files. This program is generic and runs off a configuration file, which provides some basic information about the files for the program to execute import process code for each file individually based on the existence of the file. It is setup to be date agnostic and relatively free of the errors experienced when importing files from sources which change filenames because it is driven by a keyword (At least one item in the FILENAME should be consistent and not redundant between source files found in the directory) |
proc step, proc sql, sample, macro loop, macro definition | 10 | |
| 36 | File Management and Backup Considerations When Using SAS Enterprise Guide (EG) Software | Roger D. Muller | SAS Enterprise Guide provides a state-of-the-art user interface to SAS software in the Windows environment. The management of the code files at first appears to be very similar to the management of the code files in past PC versions of SAS. EG software uses an "Enterprise Guide Project (EGP)" file to store the project contents. Within the project, the usual SAS code files are developed. There are 2 ways these files can be stored: (a) embedded within the project (and thus not visible to file utilities su ch as Windows Explorer), or external to the project as ".SAS" files. This paper will discuss the pros and cons of each method and will discuss both the location of and the backup of the files. Failure to understand these file structures has led to catastrophic losses of program code when appropriate backup procedures are not in place when system or operator failures occur | sas enterprise guide, sas enterprise guide project | 16 | |
| 37 | Five Little Known, But Highly Valuable and Widely Usable, PROC SQL Programming Techniques | Kirk Paul Lafler | The SQL Procedure contains a number of powerful and elegant language features for SQL users. This presentation highlights five little known, but highly valuable and widely usable, topics that will help users harness the power of the SQL procedure. Topics include using PROC SQL to perform FIRST., LAST. and Between in BY-group processing; constructing and searching the contents of a value-list macro variable for a specific value; data validation operations; data summary operations to process down rows and across columns; and using the MSGLEVEL= system option and _METHOD SQL option to capture and gain greater insight into the processes during query evaluation, the algorithm selected and used by the optimizer when processing a query, testing and debugging operations, and other processes |
proc sql, proc step, dictionary tables, where statement, macro variable, select, create table, inner join, sas log, order by, sas library, group by, macro facility, view, macro call, right join, options statement | 20 | |
| 38 | Five Ways to Flip-Flop Your Data | Joshua M. Horstman | Data is often stored in highly normalized ("tall and skinny") structures that are not convenient for analysis. The SAS programmer frequently needs to transform the data to arrange relevant variables together in a single row. Sometimes this is a simple matter of using the TRANSPOSE procedure to flip the values of a single variable into separate variables. However, when there are multiple variables to be transposed to a single row, it might require multiple transpositions to obtain the desired result. This paper describes five different ways to achieve this flip-flop, explains how each method works, and compares the usefulness of each method in various situations. Emphasis is given to achieving a data-driven solution that minimizes hard-coding based on prior knowledge of the possible values each variable can have and that improves maintainability and reusability of the code |
proc transpose, proc step, response variable, by group processing, merge statement, proc sql, sas programmer, keep statement, sample | 9 | |
| 39 | FORMATs Top Ten | Christianna S. Williams | SAS FORMATs can be used in so many different ways! Even the most basic FORMAT use of modifying the way a SAS data value is displayed (without changing the underlying dat a value) holds a variety of nifty tricks, such as nesting formats, formats that affect various style attributes (such as alignment, font etc.), and conditional formatting. Add in PICTURE formats, multi -label FORMATs, using FORMATs for data cleaning, and F ORMATs for joins and table look-ups, and we have quite a bag of tricks for the humble SAS FORMAT and the FORMAT procedure used to generate them. The purpose of this paper is to describe a few handfuls of very useful programming techniques that employ SAS FORMATs. While this paper will be appropriate for the newest SAS user, it will also focus on some of the lesser-known features of FORMATs and PROC FORMAT and so should be useful for even quite experienced users of SAS |
proc step, proc format, proc tabulate, missing value, char., format statement, class variable, proc catalog, libname statement, ods rtf, user-defined format | 18 | |
| 40 | From Wide to Tall: A Proc SQL Approach to Transposing | Brandon Crosser | In many Extract, Transform, and Load (ETL) situations a large scale conversion is needed from a "wide" table structure to a "tall" table structure. This often occurs in transformation from a denormalized to normalized architecture. This paper presents techniques to gain efficiency in doing such loading with particular attention to reading and writing between SQL Server database tables. The techniques described within ensure that the process is table-driven and extensible with minimal code edits. A contrast of the technique with a PROC TRANSPOSE approach will be presented |
proc sql, proc step, proc transpose, call execute | 4 | |
| 41 | Get Control of Your Input: Refer to Multiple Data Files Efficiently | Zhongping Zhai | In SAS programming, complex business rules may be imposed on data sourcing, such as locating multiple input data files and accessing file information (e.g., file size, modified date, number of rows). This paper compares several methods on referencing multiple external files and SAS data sets so as to provide recommendations for developers at all levels to efficiently handle multiple data file reference requirements | dataset, filename statement, proc sql, proc step | 6 | |
| 42 | Helpful Hints for Transitioning to SAS 9.4 | Edith Jeffreys | A group tasked with testing SAS software from the customer perspective has gathered a number of helpful hints for SAS 9.4 that will smooth the transition to its new features and products. These hints will help with the "huh?" moments that crop up when you're getting oriented and will provide short, straightforward answers. And we also share insights about changes in your order contents. Gleaned from extensive multi-tier deployments, SAS Customer Experience Testing shares insiders' practical tips to ensure you are ready to begin your transition to SAS 9.4 | sas studio, customer experience | 10 | |
| 43 | How Do I ...? Some Beginners FAQs | Peter W. Eberhardt, Audrey Yeo |
No matter how long you use SAS you find you still have questions on how to do things in SAS. What you forget is the number of questions you had to overcome when you first started with SAS. If you were lucky, you had a mentor at your place of work or school who helped you with those questions; if you were not so lucky you struggled with a myriad of sources trying to get help. In this paper, we will highlight some of the questions we often get from new SAS users, and offer some answers | out=, proc means, character functions, proc step, retain, work library, macro function | 11 | |
| 44 | How to Create a UNIX Space Management Report Using SAS | Thomas Lehmann, Matthew Shevrin |
Storage space on a UNIX platform is a costly - and finite - resource to maintain, even under ideal conditions. By regularly monitoring and promptly responding to space limitations that might occur during production, an organization can mitigate the risk of wasted expense, time a nd effort caused by this problem. SAS programmers at Truven Health Analytics have designed a reporting tool to measure space usage by a number of distinct factors over time. Using tabular and graphical output, it provides a full picture of what often contr ibutes to critical reductions of available hardware space. It enables managers and users to respond appropriately and effectively whenever this occurs. It also helps identify ways to encourage more efficient practices, thereby minimizing the likelihood of this from occurring in the future. Operating System: RHEL 5.4 (Red Hat Enterprise Linux), Oracle Sun Fire X4600 M2 SAS 9.3 TS1M1 Skill level: Intermediate | macro variable, txt, management reporting, excel, sample, macro loop, proc step, red hat | 7 | |
| 45 | How To Use Latent Analyses of Survey Data in a Logistic Regression Model | Deanna Naomi Schreiber-Gregory | The current study looks at several w ays to investigate latent variables in longitudinal sur veys and their use in logistic regression models. Three different analyses for latent variable discovery w ill be briefly review ed and explored. The procedures explored in this paper are PROC LCA, PROC LT A, PROC CA TMOD, PROC FA CTOR, PROC TRAJ, and PROC SURV EYLOGISTIC. The analyses defined through these procedures are latent profile analyses, latent class analyses, and latent transition analyses. The latent variables w ill then be included in a logistic regression model. The effect of the latent variables on t he fit and use of the logistic regression model compared to a s imilar model using observed data w ill be review ed. The data used for this study w as obtained v ia the National Longitudinal Study o f Adolescent Health, a study distributed and collected by Add H ealth. Data w as analyzed using SAS 9.3. This paper is intended for any level of SAS user |
latent variable, proc step, regression analysis, logistic regression, logistic distribution, factor analysis, correlation, proc surveylogistic, response variable, sample, proc means | 9 | |
| 46 | I Object: SAS Does Objects with DS2 | Peter W. Eberhardt, Xue Yao |
The DATA STEP has served SAS programmers well over the years, and although it is powerful, it has not fundamentally changed. With DS2, SAS has introduced a significant alternative to the DATA STEP by introducing an object-oriented programming environment. In this paper, we share our experiences with getting started with DS2 and learning to use it to access, manage, and share data in a scalable, threaded, and standards-based way |
missing value, macro function, macro variable, sas function, proc step, dataset, sas base, return, sas programmer, proc sql, data step | 29 | |
| 47 | Ignorance is Not Bliss: Pearls of Wisdom for the Novice SAS Programmer | Joshua M. Horstman, Britney D. Gilbert |
Many lessons in life can only be learned through experience. In other cases, however, you can learn from the mistakes of others. In this paper, two independent consultants with a combined three decades of SAS programming experience share a treasure trove of knowledge aimed at helping the novice SAS programmer avoid common pitfalls and establish a firm foundation on which to build. We'll touch on a variety of topics ranging from proper merging technique to good programming practices to understanding the program data vector and much more! | output, sas programmer, pdv, merge statement, retain, length statement, compilation phase, character variable, proc step, set statement, sas programming, by group processing, execution phase | 9 | |
| 48 | Interactive HTML Reporting Using D3 | Naushad Pasha Puliyambalath Ph.D | Data visualization tools using JavaScript have been flourishing recently. Of notable importance is D3 (Data -Driven Documents http://d3js.org/ ). In this paper we will see how to create dynamic HTML reports from SAS by making use of D3. More precisely, we will create a SAS program which upon execution will produce an HTML file with an interactive dashboard containing a bar chart, a pie chart, and a table. The paper assumes a basic knowledge of HTML and JavaScript | histogram, proc freq, bar chart | 7 | |
| 49 | Introduction to SAS Hash Objects | Christopher W. Schacherer | The SAS hash object is an incredibly powerful technique for integrating data from two or more datasets based on a common key. The current work describes the basic methodology for defining, populating, and utilizing a hash object to perform lookups within the DATA STEP and provides examples of situations in which the performance of SAS programs is improved by their use. Common problems encountered when using hash objects are explained, and tools and techniques for optimizing hash objects within your SAS program are demonstrated |
hash table, cpu time, length statement, temporary array, proc sql, key, set statement, proc step, memory usage, proc means, where statement, execution phase, reference data | 26 | |
| 50 | Investigating the Irregular: Using Perl Regular Expressions | Peter W. Eberhardt | A true detective needs the help of a small army of assistants to track down and apprehend the bad guys. Likewise, a good SAS programmer will use a small army of functions to find and fix bad data. In this paper we will show how the small army of regular expressions in SAS can help you. The paper will first explain how regular expressions work, then show how they can be used with CDSIC | data cleaning, data step | 18 | |
| 51 | Jack of all Listings, A New Approach for Review of Clinical Data | Hardik Panchal | For an on-going clinical trial, an important process of data review is conducted typically by members of the study team (physician, statistician, data management, programmer) using different outputs where patient data is presented. The purpose of data review is to monitor study progress, assess quality of data and i dentify trends. Outputs used for this review include listings of study domains like Demographics, Medical History, A dverse Events, Concomitant Medications, Labs, Drug Exposure, Efficacy. Traditional approach is to produce one listing of all Adverse Events, another listing of all Concomitant Medications and so on. This paper proposes a data listing programmed in SAS and output in MS EXCEL where in all patient data from different study domains is not only presented together but is also interleaved chronologic ally by date. This kind of listing offers a more powerful tool for data review |
data review, excel, adverse events, proc sql, create table, date variable, medical history, temporary dataset, dataset, label statement, concomitant medications, proc step | 15 | |
| 52 | JMP and SAS: One Completes The Other! | Philip Brown, Wayne J. Levin |
!Integrating JMP with SAS creates a formidable data management and analytical system. JMP takes the role of the client, providing interactivity and visualization and, as a result, makes advanced statistical methods accessible to analysts of all sorts. The limitation of JMP is that it requires data to be in memory. That limits the size of the data available for analysis and also requires the transfer of data from its sources into RAM; a slow process for large data sets. SAS on the server can manage and quickly manipulate data on a large scale and integrate JMP with other proprietary databases. This paper will review options in extending the added value of JMP by extending its capabilities with SAS and discuss the optimal distribution of labor between JMP and SAS.! | sas enterprise guide, libname statement, access control | 6 | |
| 53 | JMP Visual Statistics | Charles E. Shipp | For beginners, we review the continuing merging of statistics and graphics. Statistical graphics is the forte of JMP software and the JMP team pioneered the way for SAS Visual Analytics. Moving forward into Version 11, JMP has easy navigation, a graph builder, advanced algorithms in 85 platforms, and robust statistics you can trust. For olde-timers, we celebrate JMP success and discuss evolving and emerging developments, which we saw at the JMP Discovery Summit 2013 with the new Design of Experiments additions and other additions to JMP Version 11. New also is the entry of the 12th platform for experimental design, the Definitive Screening Design, adding selected midpoints. Many of the views will be shown in the presentation, and a lively discussion will continue in the hallway! | correlation, quality control | 7 | |
| 54 | Kaplan-Meier Survival Plotting Macro %NEWSURV | Jeffrey P. Meyers | The research areas of pharmaceuticals and oncology clinical trials greatly depend on time-to-event endpoints such as overall survival and progression-free survival. One of the best graphical displays of these analyses is the Kaplan- Meier curve, which can be simple to generate with the LIFETEST procedure but difficult to customize. Journal articles generally prefer that statistics such as median time-to-event, number of patients, and time-point event-free rate estimates be displayed within the graphic itself, and this was previously difficult to do without an external program such as Microsoft EXCEL. The macro NEWSURV takes advantage of the Graph Template Language (GTL) that was added with the SG graphics engine to create this level of customizability without the need for backend manipulation. Taking this one step further, the macro was improved to be able to generate a lattice of multiple unique Kaplan-Meier curves for side by side comparisons or condensing figures for publications |
class variable, macro parameter, macro call, hazard ratio, graph template language, time variable, proc step, proc phreg, confidence interval, character variable, numeric variable, proc means, where statement, kaplan-meier plot, treatment effect, data transformation, overall survival, progression-free survival, excel, proc sql | 20 | |
| 55 | Labelling without the Hassle: How to Produce Labeled Stacked Bar Charts Using SGPLOT and GTL Without Annotate | Joe Matise | PROC SGPLOT and GTL are two powerful weapons in a SAS developer's arsenal in producing high quality graphics. However, there are many times where you try to produce a graph and find that an option isn't available for exactly what you want to do. Stacked bar charts, and similarly 100% stacked bar charts, are a popular method for displaying data with multiple logical groupings. SAS has made producing these charts easy in SGPLOT with the addition of the grouptype=stacked option; adding labels to the charts, however, is a more difficult task, as bar charts only support a single label per bar. While the annotation facility is one possible method for accomplishing this task, users may find it difficult to use for a variety of reasons. In the case of the clustered stacked bar chart, they may find it nearly impossible |
bar chart, graph template language, proc sgplot, proc step, scatter plot | 10 | |
| 56 | Learning SAS's Perl Regular Expression Matching the Easy Way: By Doing | Paul Genovesi | Perl Regular Expression (PRX) functions were added in SAS9. The key to learning how to use them is learning PRX metacharacter behavior within a PRX match. The more you practice PRX matching, the more proficient you become. Ideally, practice would involve a method for repeating the matching process so as to see cause and effect between the input, in the form of modifications to the perl regular expression and/or the source string, and the output in the form of the match results. But just as important as the practice itself would be a method for logging your "practice trail" in a file for future reference and expansion as well as avoidance of wheel-reinventing. But how do you do this without this file becoming bloated, cluttered, and unmanageable? The answer is to let it become bloated and cluttered | excel, dataset, sas enterprise guide, sas enterprise guide project, character constant | 12 | |
| 57 | List Processing Macro Call-Macro | Ronald J. Fehd | macro variable, %if-%then-%else, macro loop, macro put, proc step, proc freq, macro call, macro definition, proc print, macro quoting function, macro function, macro flow control | 19 | ||
| 58 | Managing the Organization of SAS Format and Macro Code Libraries in Complex Environments Including PC SAS, SAS Enterprise Guide, and UNIX SAS | Roger D. Muller Ph.D | The capabilities of SAS have been extended by the use of macros and custom formats. SAS macro code libraries and custom format libraries can be stored in various locations, some of which may or may not always be easily and efficiently accessed from other operating environments. Code can be in various states of development ranging from global organization-wide approved libraries to very elementary "just-getting-started" code. Formalized yet flexible file structures for storing code are needed. SAS user environments range from standalone systems such as PC SAS or SAS on a server/mainframe to much more complex installations using multiple platforms. Strictest attention must be paid to (1) file location for macros and formats and (2) management of the lack of cross-platform portability of formats. Macros are relatively easy to run from their native locations | user-defined format, format statement, macro definition, proc format, proc step, sas enterprise guide | 8 | |
| 59 | Measuring Product-level Promotional Effectiveness using Multiple Linear Regression | Aaron Clark, Cory Weinmann, Donald Kirk |
Advertising weekly bargains in paper circulars, temporarily dropping regular prices, spooning out rewards club coupons, slashing prices in half during "super-sale" events, and marketing coupons to customer with unique purchasing habits are some of the many promotion strategies typically offered at your local retailer to lower the price of your favorite good. However, all promotions are not created equal from product-to-product. That is, customers that buy certain products respond differently to varying types of promotions at different times for different reasons, affecting the prediction of sales quantity and ultimately, the best type of promotion to run | multiple regression, proc reg, proc step, proc hpreg, regression analysis, predictor variable, sas enterprise guide, test set, backward selection, data cleaning | 10 | |
| 60 | Modifying a structural equation model of child dietary intake using the Lagrange Multiplier test in SAS PROC CALIS for MWSUG 2014 | Lauren Cook, Chih-Ping Chou, Nicole Gatto, Jaimie N. Davis, Donna Spruijt-Metz |
Structural equation models (SEM) allow for simultaneous evaluation of causal pathways between multiple predictors and outcomes, including latent variables, given a hypothesized theoretical model. If an initial SEM does not meet appropriate fit criteria, model modification can achieved through utilization of statistical results from the Lagrange Multiplier (LM) test and theoretical knowledge. To demonstrate modification of a SEM, baseline data from a garden-based nutrition intervention with elementary school children were examined using SAS PROC CALIS. The two outcome variables of interest are fruit and vegetable intake (individually). Several measured determinants are hypothesized to predict these practices, including two latent variables, willingness to try fruit and vegetables, which have six indicator variables each. Initial model fit was not acceptable (χ2: 407.9, 111 df, p<0.0001; RMSEA: 0.09, CFI: 0.89) |
proc step, proc calis, correlation, covariance, residual, response variable | 9 | |
| 61 | Navigating the Data Universe Aboard the Starship Enterprise Guide | Jayanth Iyengar | SAS Enterprise Guide is a standalone client application that gives the user access to the power of Base SAS, along with other SAS modules. With Enterprise Guide, one can easily perform the full range of data processing and analysis tasks, from reading, to manipulation, to reporting and graphics. Although EG is oriented towards the analyst with its point and click interface, it includes aspects useful to both the programmer as well as the analyst. This paper gives an overview of each task area, as well as focuses on the pros and cons of using EG | sas enterprise guide, sas base, proc step, dataset, proc sql, proc print, relational database, proc report, data merging | 10 | |
| 62 | ODS Graphics | Chuck Kincaid | This presentation will teach the audience how to use SAS ODS Graphics. Now part of Base SAS, ODS Graphics are a great way to easily create clear graphics that allow any user to tell their story well. SGPLOT and SGPANEL are two of the procedures that can be used to produce powerful graphics that used to require a lot of work. The core of the procedures are explained, as well as the options available. Furthermore, we ex plore the ways to combine the individual statements to make more complex graphics that tell the story better. Any user of Base SAS on any platform will find great value from the SAS ODS Graphics procedures |
proc step, series plot, sas base, numeric variable, proc sgplot, proc sgpanel | 18 | |
| 63 | Parallel Data Preparation with the DS2 Programming Language | John Cunningham, Paul Segal, Tho H. Nguyen |
A time consuming part of statistical analysis is building an analytic data set for statistical procedures. Whether it is recoding input values, transforming variables, or combining data from multiple data sources, the work to create an analytic data set can take time. The DS2 programming language in SAS 9.4 simplifies and speeds data preparation with user-defined methods, storing methods and attributes in shareable packages, and threaded execution on multi-core SMP and MPP machines | proc sql, by group processing, parallel processing, proc step, elapsed time, data wrangling, proc transpose, teradata | 11 | |
| 64 | PDF vs HTML: Can't We All Just Get Along? | Scott Huntley, Cynthia L. Zender |
Have you ever asked, "Why doesn't my PDF output look just like my HTML output?" This paper explains the power and differences of each destination. You will learn how each destination works and understand why the output looks the way it does. Learn tips and tricks for how to modify your SAS code to make each destination look more like the other. The tips span from beginner to advanced in all areas of reporting. Each destination is like a superhero, helping you transform your reports to meet all your needs. Learn how to use each ODS destination to the fullest extent of its powers |
ods pdf, proc step, proc report, ods html, proc tabulate, proc print, output delivery system, by group processing | 33 | |
| 65 | Pin the SAS Tail on the Excel Donkey: Automatically Sizing & Positioning SAS Graphics for Excel | Ted Conway | Okay, you've read all the books, manuals, and papers and can produce SAS /GRAPH and ODS Graphics with the best of them. But how do you handle the 'Final Mile' problem - getting your SAS-generated images sized just right and positioned just so in EXCEL? This paper presents a method of doing so that employs SAS Integration Technologies and EXCEL VBA to produce SAS graphics and automatically embed them in EXCEL worksheets. This technique may be of interest to all skill levels. It uses Base SAS, SAS/GRAPH, SAS ODS Graphics, the SAS Macro Facility, SAS Integration Technologies, Microsoft EXCEL, and Visual Basic for Appl ications (VBA) on the PC platform |
excel, proc sgplot | 5 | |
| 66 | Point-and-Click Programming Using SAS Enterprise Guide | Kirk Paul Lafler, Mira Shapiro |
SAS Enterprise Guide empowers organizations exploiting the power of SAS by offering programmers, business analysts, statisticians and end-users with powerful built-in wizards to perform a multitude of reporting and analytical tasks, access multi- platform enterprise data sources, deliver data and results to a variety of mediums and outlets, perform important data manipulations without the need to learn complex coding constructs, and support data management and documentation requirements quickly and easily. Attendees learn how to use the graphical user interface (GUI) to access tab-delimited and EXCEL input files; subset, group, and summarize data; join two or more tables together; flexibly export results to HTML, PDF and EXCEL; and visually manage projects using flowcharts and diagrams |
excel, sas enterprise guide, dataset, proc means, data governance, delimited file, sas output, proc sql | 18 | |
| 67 | Prediction Improvement from Geostatistical Methodology in Regression Modeling For Census Tract Data | Robert G. Downer | Ordinary least squares is often sufficient and justified in utilizing a linear regression model for the prediction of new observations. For data which also involves spatial co-ordinates, incorporating spatial correlation through geostatistical techniques can adjust for underlying spatial dependence and may improve prediction. Relative position of locations as well as the selected predictor variables could impact whether such an adjustment leads to prediction improvement. Utilizing a Toledo, Ohio census tract housing dataset, twenty simulations were performed which considered the following factors: variable selection stopping criterion (Mallows Cp or SBC through stepwise selection), test data set size, and fraction of the test points away from the center or northeast corner of the region. Ordinary least squares, residual kriging and spatial error regression were compared with respect to prediction performance | test set, proc step, regression analysis, proc reg, proc mixed, correlation, sample, press, feature selection, proc glmselect, residual, standard deviation, proc surveyselect, proc freq | 10 | |
| 68 | Preparing Interaction Variables for Logistic Regression | Bruce S. Lund | Interactions between two (or more) variables often add predictive power to a binary logistic regression model beyond what the original variables offer alone. In the simplest case, if X1 and X2 are zero-one valued variables, then their interaction variable is X1_X2 = X1*X2. However, X1_X2, in combination with X1 and X2, use 3 degrees of freedom. A nominal variable XC with four levels can be defined from X1 and X2 with values XC = compress(X1 || X2). Perhaps a collapsing of the four levels of XC to three values (having 2 d.f.) would provide nearly as much predictive power as the saturated model X1, X2, X1_X2 while providing more predictive power than X1, X2 alone. In this paper this question is answered for interactions of nominal or ordered X1 and X2, each with 2 or more levels. First, the user creates XC. Then a "best-collapse" algorithm optimally collapses the levels of XC until a stopping point is reached that provides a trade-off between degrees of freedom and predictive power | main effect, proc logistic, logistic distribution, likelihood function, proc step, degrees of freedom, logistic regression, stratified sampling, macro call, regression analysis | 9 | |
| 69 | PROC SQL for DATA Step Die-Hards | Christianna S. Williams | PROC SQL can be a bit daunting for the 'old dogs' who have learned SAS data management techniques using exclusively the DATA STEP. However, when it comes to data manipulation, SAS often provides more than one method to achieve the same result, and SQL provides another valuable tool to have in one's repertoire. Further, Structured Query Language is implemented in many widely used r elational database systems with which SAS may interface, so it is a worthwhile skill to have from that perspective as well. This paper will present a series of increasingly complex examples and hands -on exercises. In each case I will demonstrate the DATA STEP method with which users are probably already familiar, followed by SQL code that will accomplish the same data manipulation |
proc sql, proc step, create table, order by, group by, inner join, where statement, subsetting if, filtering, set statement, standard deviation, proc means, by group processing, data governance, outlier | 22 | |
| 70 | Programming in a Distributed Data Network Environment: A Perspective from the Mini-Sentinel Pilot Project | Jennifer R. Popovic | Multi-site, healthcare-related distributed data networks are becoming increasingly popular, particularly at a time when 'big data' and privacy can have competing priorities. Distributed data networks allow individual-level data to remain behind the firewall of the data holder, permitting the secure execution of queries against those local data and the return of aggregated data produced from those queries to the requester. These networks allow the use of multiple, varied sources of data for study purposes ranging from public health surveillance to comparative effectiveness research, without compromising data holders' concerns surrounding data security, patient privacy or proprietary interests | by group processing, macro variable, big data, sas programming, dataset | 11 | |
| 71 | Programming With CLASS: Keeping Your Options Open | Arthur L. Carpenter | Many SAS procedures utilize classification variables when they are processing the data. These v ariables control how the PROCEDURE FORMS groupings, summarizations, and analysis elements. For statistics procedures they are often used in the formation of the statistical model that is being analyzed. Classification variables may be explicitly specified with a CLASS statement, or they may be specified implicitly from their usage in the procedure. Because classification variables have such a heavy influence on the outcome of so many procedures, it is essential that the analyst have a good understanding of how classification variables are applied. Certainly there are a number of options (system and procedural) that affect how classification variables behave. While you may be aware of some of these options, a great many are new, and some of these new options and techniques are especially powerful. You really need to be open to learning how to program with CLASS |
proc step, missing value, proc freq, proc report, proc means, proc tabulate | 15 | |
| 72 | Putting on the Ritz: New Ways to Style Your ODS Graphics to the Max | Dan Heath | Do you find it difficult to dress up your graphs for your reports or presentations? In SAS 9.4, w e have introduced new capabilities in the ODS Graphics system that give you the ability to style your graphs w ithout creating or modifying ODS styles. Some of the new capabilities include the follow ing: a new option to control the behavior of how ODS styles are applied graph syntax to override ODS style attributes for grouped plots enhanced attribute map support the ability to define font glyphs and images as plot markers In this presentation, w e w ill discuss these new features in detail, show ing examples in both a Graph Template Language (GTL) context and a statistical graphics ( SG) procedure context |
scatter plot, proc step, class variable, line chart, interval variable, proc sgplot | 15 | |
| 73 | Quick Hits - My Favorite SAS Tricks | Marje Fecht | Are you time-poor and code-heavy? It's easy to get into a rut with your SAS code and it can be time-consuming to spend your time learning and implementing improved techniques. This presentation is designed to share quick improvements that take 5 minutes to learn and about the same time to implement. The quick hits are applicable across versions of SAS and require only BASE SAS knowledge. Included are: - simple macro tricks - little known functions that get rid of messy coding - dynamic conditional logic - data summarization tips to reduce data and processing - generation data sets to impr ove data access and rollback | macro variable, macro function, sysdate9, proc step, proc sql, date variable, sas function, sas programmer, missing value, character functions, macro loop | 13 | |
| 74 | Reducing the Bias: Practical Application of Propensity Score Matching in Healthcare Program Evaluation | Amber Schmitz, Jessica Navratil-Strawn, Stephen Hartley, Ronald J. Ozminkowski |
To stay competitive in the marketplace, healthcare programs must be capable of reporting the true savings to clients. This is a tall order considering most healthcare programs are setup to be available to the client's entire population; thus, the program cannot be conducted as a randomized control trial. In order to evaluate the performance of the program for the client, we use an observational study design which has inherent selection bias due to its inability to randomly assign participants. To reduce the impact of bias, we apply propensity score matching to the analysis. This technique is beneficial to healthcare program evaluations because it helps reduce selection bias in the observational analysis and in turn provides a clearer view of the client's savings | propensity score, propensity score matching, correlation, sample, predictor variable, condition index, proc step, sample size, binary variable, regression analysis | 7 | |
| 75 | Report Customization Using PROC REPORT Procedure | Shruthi Amruthnath | SAS offers powerful report writing tools to generate customized reports. PROC REPORT procedure is one such report writing procedure in SAS that conveys highly sophisticated information effectively. Since the introduction of PROC REPORT procedure in SAS Version 6, this procedure is used to display a variety of information such as summarizing the data, statistical analysis and other h igh quality data listings. By integrating Output Delivery System (ODS) features along with this procedure, it simplifies the design, layout and appearance of the reports. This paper describes advanced features of PROC REPORT such as consolidating the data, specifying summary statistics, adding formatting features like specifying style elements using Output Delivery System, applying page breaks, handling missing values and using computed variables. Each of these topics is illustrated with an example |
proc report, proc step, ods pdf, output delivery system | 14 | |
| 76 | Reporting The Facts: The ODSmemo macro suite for making reproducible RTF memos within SAS | A. Rocio Lopez | A lot of time and effort is spent on organizing tables and graphics into an easily read and informative report that can be sent to clients. The capability to send formatted text as well as high quality tables and graphics from SAS to Microsoft Word via the ODS rich text format (RTF) destination allows for easy creation of reproducible statistical reports. This paper will present the ODSmemo macro suite, a set of SAS macros that permits the user to quickly generate a complete report within the analyst's SAS code |
sample, output delivery system, regression analysis, proc reg, macro parameter, ods rtf | 15 | |
| 77 | Sailing Over the ACROSS Hurdle in PROC REPORT | Cynthia L. Zender | To get the full benefit from PROC REPORT, the savvy programmer needs to master ACROSS usage and the COMPUTE block. Timing issues with PROC REPORT and absolute column references can unlock the power of |
proc report, proc step, character variable, proc transpose, numeric variable, proc tabulate, sas log | 16 | |
| 78 | SAS 101 For Newbies--Not Too Little, Not Too Much--Just Right | Ira Shapiro | The intent of this paper is an overview of the important step-by-step basic features and functions of SAS and then introduce more complex SAS features | proc step, proc sql, sample, proc print, proc freq, order by, character variable, create table, proc export, excel, group by, proc means, proc sort, numeric variable, proc import, full join, if-then-else, format statement | 42 | |
| 79 | SAS and Relational Databases: What You Should Know Before You Code | Patricia Hettinger | It is a rare shop that has data in just SAS format. DB2, Teradata, Oracle, SQL Server - all of these relational databases have their own quirks that may not become apparent until your DBA calls. This paper will address what you must know before using SAS/ACCESS for more efficient queries and consistent results. If you are experienced with SAS or SQL but not the two together, this paper is for you |
proc sql, proc step, inner join, key, dataset, foreign key, lookup, proc contents, cpu time, create table, sas enterprise guide, relational database, data integrity, group by, sas library, data step | 15 | |
| 80 | SAS Commands PIPE and CALL EXECUTE; Dynamically Advancing from Strangers to Your Newest BFF (Best Friends Forever) | Kent Phelps, Ronda Phelps, Kirk Paul Lafler |
Communication is the basic foundation of all relationships , including our relationship with SAS and the Server/PC/Mainframe (S/P/M). There are times when we need to communicate with the S/P/M through the UNIX, Windows, or z/OS Operating System (OS) . To communicate with the S/P/M we will ideally design our SAS programs to request, receive, and utilize data to automatically create and execute Dynamic Code. Our presentation highlights the powerful partnership which occurs when the PIPE and CALL EXECUTE commands are combined with Dynamic Code and creatively used together within SAS Enterprise Guide Base SAS Program Nodes. You will have the opportunity to learn how 1,259 time-consuming Manual Steps are amazingly replaced with only 3 time-saving Dynamic Automated Steps . We invite you to attend our session where we detail the UNIX syntax for the PIPE and CALL EXECUTE commands and the Dynamic Code. We look forward to introducing you to your newest BFF (Best Friends Forever) in SAS | call execute, infile statement, sas base, end, sas enterprise guide, conditional do loop | 34 | |
| 81 | SAS Debugging 101 | Kirk Paul Lafler | SAS users are almost always surprised to discover their programs contain bugs. In fact, when asked users will emphatically stand by their programs and logic by saying they are bug free. But, the vast number of experiences along with the realities of writing code says otherwise. Bugs in software can appear anywhere; whether accidentally built into the software by developers, or introduced by programmers when writing code. No matter where the origins of bugs occur, the one thing that all SAS users know is that debugging SAS program errors and warnings can be a daunting, and humbling, task. This presentation explores the world of SAS bugs, providing essential information about the types of bugs, how bugs are created, the symptoms of bugs, and how to locate bugs. Attendees learn how to apply effective techniques to better understand, identify, and repair bugs and enable program code to work as intended | options statement, sas log, data cleaning, hash table, proc step | 13 | |
| 82 | SAS Graphs with Multiple Y Axes - Some Useful Tips and Tricks | Soma Ghosh | SAS/GRAPH is a very powerful feature that helps programmers, analysts to provide a very high standard view of data . Without having this feature, report writers had to use some other applications to create graph manually every time, with every new datasets. But this helps to automate the design vi ew of many analytical data available in SAS. With SAS graphics, p rogram need s to be created only once and graphs will be created automatically for all similar datasets. This paper will explain how to create graph with double values in the Y axes and also c ombining Bar and Line graph together in one Chart. To define the entire graphical process, GPLOT & GCHART, PROC GREPLAY are used. These procedures will help in merging two different graphs together and saving file in jpeg format. Also, this paper includes the usage of attributes like COLOR, STYLE, FONT and ANNOTATE DATA STEP with graphs |
proc step, create table, proc gchart, bar chart, sample, proc greplay, proc sql, proc gplot, line chart | 16 | |
| 83 | SAS In-Database Analytics for Teradata: Stop the Data Movement | Paul Segal, Tho H. Nguyen, John Cunningham |
In-database analytics refer to the integration of advanced analytics into the data warehousing. With this capability, analytic processing is optimized, to run where the data reside, in parallel, without having to copy or move the data for analysis. Many analytical computing solutions and large databases use this technology because it provides significant performance improvements over the traditional methods. Thus, in-database analytics have been adopted by many SAS business analysts who have been able to r ealize the benefits of streamlined processing and increased performance. With SAS in-database analytics for Teradata, SAS users have the ability to prepare the data, develop complex data models and score the model in the data warehouse. By doing so, it removes the need to either move or extract the data to a SAS environment or convert the analytical code to something that could be executed on the data platform | proc step, in-database processing, data wrangling, data mining, sql pass-through, macro definition, macro facility, proc sql | 4 | |
| 84 | SAS In-Memory Analytics: Beyond Foundation SAS | Tho H. Nguyen, John Cunningham |
In-memory analytics help to analyze large volumes of data in-memory with SAS High-Performance Analytics (HPA) products and SAS Visual Analytics. This latest innovation provides an entirely new approach to tackle big data by using an in-memory analytics engine to deliver super-fast responses to complex analytical problems. It is a set of products beyond SAS Foundation technologies to explore and develop data models using all of your data. Jointly developed with SAS, the Teradata Appliance for SAS High-Performance Analytics, Model 720 eliminates the need to copy data to a separate appliance with dedicated SAS nodes for in-memory processing. This paper explains the in-memory analytics process and how the Teradata Appliance for SAS extends the analytic capabilities of the Teradata environment | in-memory analytics, big data, parallel processing, teradata, data standard | 4 | |
| 85 | SAS ODS HTML + PROC Report = Fantastic Output | Girish K. Narayandas | ODS (Output Delivery System) is a wonderful feature in SAS to create consistent, presentable reports. Using this feature in combination with the powerful PROC REPORT can give you a lot of control over the report structure, design and overall appearance. You can set the column width, font style and size, add colors where desired, and include a picture or a logo, just to name a few. This paper contains tips and tricks for producing a presentation-worthy HTML output making use of some of the key features available in ODS HTML, PROC REPORT and SAS Macros |
proc report, proc step, ods html, proc template | 12 | |
| 86 | SAS PASSTHRU to Microsoft SQL Server using ODBC | Nina L. Werner | proc sql, sql server, proc step, create table, automatic macro variable, relational database, sas syntax, missing value | 6 | ||
| 87 | SAS, Excel, and JMP Connectivity | Charles E. Shipp, Kirk Paul Lafler |
Isn't Microsoft EXCEL the most used software in the world? Isn't JMP the best in the world for statistical graphics and data discovery? And isn't SAS software the gold standard for robust and reliable analysis? Combine these three with easy connectivity and you have everything you need. Depending on requirements, your (1) input, (2) discovery and analysis, and (3) final display and reporting can begin with any of the three and end with any of the three. We demonstrate the most likely paths that emphasize JMP capabilities. A lively discussion will continue in the hallway! |
excel, dataset | 14 | |
| 88 | SAS: Data Manipulation Tools | Audrey Yeo | Let's face it, the data provided to us is typically never easy to work with. Missing values, dates that aren't populated the way we need (e.g. Year, Month, Day vs. Month, Day, Year), leading zeros that need to be removed from a string, leading zeros that need to be added to a string, to name a few. We must work through and massage the data before we can start creating reports with it. In this paper, we present a collection of basic data manipulation tools that should help make the data cleaning easier. 1. PROC STDIZE - Can be used to replace missing values It is easy to change missing values to a zero from a . (dot) in a DATA STEP, as shown below |
missing value, put statement, substr function, input statement, character variable, numeric variable, character functions, lag function, upcase function | 12 | |
| 89 | Secret Sauce for Reporting Health Care Data Using SAS and SQL Server Business Intelligence | Bradley Blackmore, Gowri Madhavan |
When thinking about quality improvement in health care, it is technology that facilitates the work. Without a reliable mechanism of capturing, analyzing and reporting measures, quality improvement cannot exist. What if you had a tool that could streamline this process? A tool that could fetch the data you need from multiple sources automatically based on rules and criteria that can change at the pace of healthcare? A tool that can produce SAS-ready SQL, raw datasets, or complex charts quickly? A tool like this does not exist today - at least not from any vendors we've explored. Instead, we have architected a solution internally that is capable of doing all of this. With SQL Server Business Intelligence tools we have developed a flexible and dynamic data warehouse that can extract data out of the electronic medical record (EMR) and dynamically apply context and business rules at touch points along the way | proc sql, sql server, excel, dataset, business intelligence, data warehouse, data validation rules | 13 | |
| 90 | Selection and Transformation of Continuous Predictors for Logistic Regression | Bruce S. Lund | This paper discusses the selection and transformation of continuous predictor variables for the fitting of binary logistic models. The paper has two parts: (1) A procedure and associated SAS macro is presented which can screen hundreds of predictor variables and 10 transformations of these variables to determine their predictive power for a logistic regression. The SAS macro passes the training data set twice to prepare the transformations and one more time through PROC TTEST. (2) SAS macros are discussed which conduct the FSP (function selection procedure) for logistic regression by P. Royston and W. Sauerbrei |
logistic distribution, logistic regression, discriminant analysis, regression analysis, proc step, sample, proc logistic, macro definition, proc ttest, likelihood function, predictor variable, normal distribution, standard deviation, maximum likelihood estimation, macro conditional | 12 | |
| 91 | Should more of your PROC REGS be QUANTREGs and ROBUSTREGs? | Peter L. Flom | In ordinary least squares (OLS) regression, we model the conditional mean of the response or dependent variable as a function of one or more independent variables and we make assumptions about the distribution of the errors. But, just as the mean is not a full description of a distribution, so modeling the mean is not a full description of a relationship between dependent and independent variables; it may not even be an adequate one. I show how PROC QUANTREG can be used to perform quantile regression, which models the conditional quantiles, rather than the mean. I also show how both QUANTREG and ROBUSTREG can be used when the assumptions of OLS regression are violated. Keywords: quantile regression quantreg robust |
regression analysis, proc quantreg, proc step, proc robustreg, predictor variable, outlier | 17 | |
| 92 | So You Want to be SAS Certified | Ben Cochran | Several years ago, SAS Institute, Inc. started a Certification program to give SAS users a chance to tell the SAS world the level of their SAS skills. Since those early days, this Certification program has grown tremendously. This paper looks at this certification process. The purpose of this paper is to trace this process and in so doing, is divided into three parts: (1.) an Introduction, (2.) exam content, and (3.) exam preparation | proc sql, macro facility, clinical trial, raw data, macro definition, sas base, input statement, date variable, regression analysis, data mining | 10 | |
| 93 | Some Techniques for Integrating SAS Output with Microsoft Excel Using Base SAS | Vincent DelGobbo | This paper explains some techniques to integrate your SAS output with Microsoft EXCEL. The techniques that are presented in this paper require Base SAS9.1.3 SP4 and above, and can be used regardless of the platform on which SAS is installed. You can even use them on a mainframe! Creating and delivering your workbooks on- demand and in real time using SAS server technology is discussed. Although the title is similar to previous papers by this author, this paper contains new and revised material not previously presented |
excel, xls, sas base, proc export, sas output, proc print, title statement, proc step, dataset, sas log, sample, ods html, sas 9, format statement, output delivery system, by group processing | 19 | |
| 94 | Some useful SQL Procedures in SAS ? Applications in complex scenarios | Soma Ghosh | SQL Procedure (PROC SQL) is a very powerful feature provided by Base SAS. Apart from any DBMS or RDBMS, with SAS we see this implementation of Structured Query Language. For new SAS users, who have prior experience with SQL, it is very easy to migrate to SAS based projects by using PROC SQL. PROC SQL can be used as an alternative to DATA steps. This can be used to import data from SAS Datasets and any other external Database Systems. With PROC SQL we can create Tables, Views, and Indexes. In addition to this, it supports the theory of CRUD (Create, Read, Update and Delete) features. PROC SQL makes some of the things easy to implement, like: ordering, grouping with having clause in a query, using aggregate functions, merging tables using joins, working on multiple query results with Union All, using Oracle Analytical functions with pass through queries |
proc sql, proc step, dataset, view, group by, missing value, sas base | 12 | |
| 95 | Tell Me What You Want: Conjoint Analysis Made Simple Using SAS | Delali Agbenyegah | The measurement of factors influencing consumer purchasing decisions is of interest to all manufacturers o f goods, retailers selling these goods, and consumers buying these goods. In the past decade, conjoint analysis has become one of the commonly used statistical techniques for analyzing the decisions or "trade -offs" consumers make when they purchase products. Although recent years have seen increased use of conjoint analysis and conjoint software, there is limited work that has spelled out a systematic procedure on how to do a conjoint analysis or use conjoint software. The goals of this paper are as f ollow: 1) Review basic conjoint analysis concepts, 2) Describe the mathematical and statistical framework on which conjoint analysis is built; 3) Introduce The TRANSREG and PHREG procedures, their syntaxes, and the output they generate using simplified real life data examples | conjoint analysis, logistic regression, proc step, proc phreg, anova, likelihood function, main effect | 14 | |
| 96 | Text Analytics in High Performance SAS and SAS Enterprise Miner | Edward R. Jones | The latest release of SAS Enterprise Miner, version 13.1, contains high performance modules, including new modules for text mining. This paper compares the new High Performance Text Mining modules to those found in SAS Text Miner. The advantages and disadvantages of HP Text Miner are discussed. This is illustrated using data from the National Highway and Transportation Safety Administration for the GMC recall of 258,000 SUVs for a potential fire hazard | neural network, data mining, logistic regression, proc hpsplit, logistic distribution, regression analysis | 16 | |
| 97 | The Armchair Quarterback: Writing SAS Code for the Perfect Pivot (Table, That Is) | Peter W. Eberhardt | "Can I have that in EXCEL?" This is a request that makes many of us shudder. Now your boss has discovered EXCEL pivot tables. Unfortunately, he has not discovered how to make them. So you get to extract the data, massage the data, put the data into EXCEL, and then spend hours rebuilding pivot tables every time the corporate data are refreshed. In this workshop, you learn to be the armchair quarterback and build pivot tables without leaving the comfort of your SAS environment. In this workshop, you learn the basics of EXCEL pivot tables and, through a series of exercises, you learn how to augment basic pivot tables first in EXCEL, and then using SAS. No prior knowledge of EXCEL pivot tables is required |
excel, dataset, proc step, proc tabulate, output delivery system, proc means, xls, raw data, macro variable | 36 | |
| 98 | The Joinless Join; Expand the Power of SAS Enterprise Guide in a New Way | Kent Phelps, Ronda Phelps, Kirk Paul Lafler |
SAS Enterprise Guide can easily combine data from tables or data sets by using a Graphical User Interface (GUI) PROC SQL Join to match on like columns or by using a Base SAS Program Node DATA STEP Merge to match on the same variable name. However, what do you do when tables or data sets do not contain like columns or the same variable name and a Join or Merge cannot be used? We invite you to attend our presentation on the Joinless Join where we teach you how to expand the power of SAS Enterprise Guide in a new way. We will empower you to creatively overcome the limits of a standard Join or Merge. You will learn when to utilize and how to design a Joinless Join based upon dependencies, indirect relationships, or no relationships at all between the tables or data sets. Come experience the power and the versatility of the Joinless Join to greatly expand your data transformation and analysis toolkit. We look forward to introducing you to the surprising paradox of the Joinless Join |
proc freq, data cleaning, sas enterprise guide, inner join, record count, proc sql, right join, proc step | 37 | |
| 99 | The Use of PROC FCMP to Manage Your Functions | Jennifer Tsai | SAS programming includes many built-in functions that can be programmed within the DATA STEP to execute specific tasks. However, to run certain calculations and tasks that are not included in the SAS programming procedures, SAS users may choose to write their own user defined functions. PROC FCMP allows programmers to store their written functions in a work library that can then be used in subsequent code similar to how the built-in functions in SAS are used. This procedure provides a streamlined and efficient way of managing complex and tedious codes. The purpose of this paper is to demonstrate how we can utilize PROC FCMP to store and run a user defined function in the DATA STEP |
proc fcmp, proc step | 4 | |
| 100 | Top Ten SAS Performance Tuning Techniques | Kirk Paul Lafler | The Base-SAS software provides users with many choices for accessing, manipulating, analyzing, and processing data and results. Partly due to the power offered by the SAS software and the size of data sources, many application developers and end- users are in need of guidelines for more efficient use. This presentation highlights my personal top ten list of performance tuning techniques for SAS users to apply in their applications. Attendees learn DATA and PROC STEP language statements and options that can help conserve CPU, I/O, data storage, and memory resources while accomplishing tasks involving processing, sorting, grouping, joining (merging), and summarizing data |
dataset, proc sql, cpu time, options statement, proc step, where statement, performance tuning | 7 | |
| 101 | Understanding Change through Different Methodological Lens | Jie Liao | The search for the best methods to study change using longitudinal data has been a major concern for analysts in most industries, in particularly the retail industry. This article offers different examples of available techniques to analyze the process of change. First, the article offers examples of how conventional models based on generalized linear models (GLM) can be fitted to longitudinal data using a variety of different procedures, from paired t -test to repeated-measures analysis of variance (rANOVA). Second, the article will discuss similarities and differences between these techniques. The general purpose of this article is to provide a de monstration that the study of change can be analyzed through different methodological lens. The most immediate goal is to help analysts implement these techniques as a useful way to examine change in their area of interest | multiple regression, anova, regression analysis, repeated measures, proc glm, paired t-test, proc step, sample, p-value, proc genmod, longitudinal data, repeated measures anova, response variable, proc reg | 12 | |
| 102 | Understanding Double Ampersand [&&] SAS Macro Variables | Nina L. Werner | Compound-named macro variables can be created from SAS dataset variables and resolved within a %DO ... %END loop in a macro program. This is intermediate-level content in a presentation for SAS macro beginners | macro variable, macro put, call symputx, macro facility, macro definition, macro loop, sas log, symbol table, dataset, %if-%then-%else | 4 | |
| 103 | Understanding How the DATA Step Works | Arthur X. Li | To be a successful DATA STEP programmer, one needs to grasp how the DATA STEP processes data via the program data vector (PDV) during the compilation and execution phases. Understanding how and why each of the automatic or user-defined variables is initialized and retained in the PDV is essential for writing an accurate program. Among these variables, the following variables deserve special attention, including variables that are created in the DATA STEP by using the RETAIN or the SUM statements, and via by-group processing (FIRST.VARIABLE and LAST.VARIABLE). In this paper, you will be exposed to what happens in the PDV and how these variables are retained from various applications |
automatic variable, input statement, dataset, output, retain, by group processing, missing value, sas log, compilation phase, execution phase, _n_, infile statement, put statement, subsetting if, error message, if-then-else, longitudinal data, raw data, proc step | 13 | |
| 104 | Universal SAS Macro to Parse Any Schema of Ryan White Services (RSR) XML Data | David Izrael, Michael Costa, Fizza S. Gillani |
The widely used method to convert RSR XML data to some standard ready-to-process data base uses a Visual Basic mapper as a buffer tool when reading XML data, for example, into MS Access data base. This paper describes the shortcomings of this method with respect to the different schemas of RSR data and offers a new SAS macro that enables users to read any schema of RSR data directly into a SAS relational data base, thus avoiding the step of creation of MS Access data base entirely | dataset, macro definition, structured data, health insurance | 6 | |
| 105 | Up Your Game with Graph Template Language Layouts | Sanjay N. Matange | You have built the simple bar chart and mastered the art of layering multiple plot statements to create complex graphs like the survival plot using the SGPLOT procedure. You know all about how to use plot statements creatively to get what you need and how to customize the axes to achieve the look and feel you want. Now it's time to up your game and step into the realm of the "Graphics Wizard." Behold the magical powers of Graph Template Language layouts! Here you will learn the esoteric art of creating complex multi-cell graphs using LAYOUT LATTICE. This is the incantation that gives you the power to build complex, multi-cell graphs like the forest plot, stock plots with multiple indicators like MACD and Stochastic, Adverse Events by Relative Risk graphs, and more. If you ever wondered how the Diagnostics panel in the REG procedure was built, this paper is for you. Be warned, this is not the realm for the faint of heart! |
kaplan-meier plot, proc sgplot, scatter plot, class variable, forest plot, adverse events, histogram, bar chart, graph template language, box plot, relative risk | 20 | |
| 106 | Use of Social Media Data to Predict Retail Sales Performance | Li Zhang | Big data in terms of unstructured social media data is making a big impact in the retail sector. Although recent years have seen increased use of social media data to inform business in the form of qualitative inputs, there is limited work that has spelled out a systematic procedure of using social media data in quantitative analysis. This paper will attempt to fill this gap by showing the practical aspects and theoretical concerns of building analytical models using both structured and unstructured data. The goals of this paper are modest. First, it provides a brief overview of big data, social media data and sentiment analysis. Second, it offers a classification method that converts and quantifies social media text data into discrete customer sentiment data. Third, this paper describes several statistical models to examine the role of customer sentiment in the prediction of retail sales performance | autoregressive model, big data, correlation, time series analysis, data science, regression analysis, standard deviation, response variable, proc autoreg, factor loading, proc step | 13 | |
| 107 | Using Arrays to Quickly Perform Fuzzy Merge Look-ups: Case Studies in Efficiency | Arthur L. Carpenter | Merging two data sets when a primary key is not available can be difficult. The MERGE statement cannot be used when BY values do not align, and data set expansion to force BY value alignment can be resource intensive. The use of DATA STEP arrays, as well as other techniques such as hash tables, can greatly simplify the code, reduce or eliminate the need to sort the data, and significantly improve performance. This paper walks through two different types of examples where these techniques were successfully employed. The advantages will be discussed as will the syntax and techniques that were applied. The discussion will allow the reader to further extrapolate to other applications |
hash table, conditional do loop, binary variable, do loop, set statement, key, length statement | 14 | |
| 108 | Using Cardinality Ratio for Fast Data Review | Ronald J. Fehd | proc step, proc freq, macro variable, macro definition, proc sort, data review, proc append, foreign key, macro loop, %if-%then-%else | 16 | ||
| 109 | Using SAS Hash Objects To Cut Down Processing Time | Girish K. Narayandas | Hash tables are in existence since SAS 9 version and are part of DATA STEP programming. The hash application and syntax style is rather different from the regular SAS DATA STEP programming and often programmers shy away from using this great feature. The hash object is a great option for lookups when using unsorted data that can fit into memory. Hash object provides an efficient and convenient mechanism for quick data storage and retrieval. SAS HASH use can achieve great I/O efficiencies and enormous time savings when merging tables with the DATA STEP |
hash table, lookup, cpu time, data step | 9 | |
| 110 | Using The Delta Method With Proc Mixed To Generate Means And Confidence Intervals From A Linear Mixed Model On The Original Scale, When The Analysis Is Done On The Log Scale | Brandy R. Sinco, Edith Kieffer, Michael S. Spencer |
Background. SAS PROC MIXED does not provide an option to report log-transformed analyses on the original scale. Objective. Implement the delta method to report the means and confidence intervals of difference scores from log- transformed longitudinal data, so that results can be reported on the original scale of the outcome. Demonstrate how this methodology can be implemented on output from lmm (linear mixed model) from SAS PROC MIXED. Compare results from the delta method to reporting percent change, another common approach to difference scores from log-transformed data. Methods. We focused on a lmm for data with two treatment groups and two time points. By using the delta method and the exponential function as the inverse, a formula was derived to obtain estimates for the differences between the means between two time points, along with confidence intervals |
proc step, proc iml, proc mixed, covariance, excel, confidence interval, randomization | 11 | |
| 111 | Using the time-closest non-missing value to replace the missing value | Yubo Gao | It is common that there are always some missing values for some variables in medical research project. The investigator usually chooses one of two options to deal with: ignoring the records having missing value, or imputing the missing values by some methods. Since ignoring them loses information and ultimately reduces power, some investigators like to impute them. There are several imputation methods available with varying complexity from single imputation to multiple imputation methods, performed by the procedure PROC MI. Single imputation is often used to replace the missing value of a variable in a dataset because this approach is both simple and efficient, and particularly useful when working with an extensive dataset containing millions of records and a large number of variables |
missing value, imputation | 4 | |
| 112 | Visualization of Self-Reported Alcohol Use Data: A Timeline Followback Dashboard using Heatmaps, Time Series Plots, and HTML Hover-Text | Daniel Fuhrmann, Michael Fendrich, Lisa Berger |
In research studies of substance use, a widely employed computerized technique for assessing self-reported alcohol consumption is the Timeline Followback (TLFB) interview. The TLFB data for the present study were collected from a random sample of 606 undergraduate students from a large, public urban university. Study participants reported their daily alcohol use measured in US standard drinks for a pre-specified time horizon (90 calendar days prior to the interview date). In order to increase the accuracy of the reports, TLFB assessors provided the participants with reference guides on the definition of a US standard drink, encouraged them to think about any established drinking behavior patterns, and offered TLFB calendars listing local events and participant personal events as anchors to aid with recall. Typically, summary measures of alcohol use - such as total number of drinks, average drinks per drinking day, etc. - are constructed from these kinds of data | heatmap, proc step, time series analysis, sample, series plot, box plot, proc gplot, proc sgplot, proc boxplot, proc sql, proc freq, proc means | 11 | |
| 113 | Where in the World Are SAS/GRAPH Maps? An Exploration of the Old and New SAS Mapping Capacities | Louise S. Hadden | SAS has an amazing arsenal of tools to use and display geographic information that is relatively unknown and underutilized. This presentation will highlight both new and existing capacities for creating stunning, informative maps as well as using geographic data in other ways. SAS provided map data files, functions, format libraries and other geographic data files will be explored in detail. Custom mapping of geographic areas will be discussed. Maps produced will include use of both the annotate facility (including some new functions) and PROC GREPLAY. Products used are Base SAS and SAS/GRAPH. SAS programmers of any skill level will benefit from this presentation |
proc step, sample, macro variable, proc gmap, dataset | 16 | |
| 114 | WHERE, Oh, WHERE Art Thou? A Cautionary Tale for Using WHERE Statements and WHERE= Options | Britney D. Gilbert | Using WHERE statements in your SAS programming can make processing data more efficient. However, the programmer needs to have a full understanding and be aware of how SAS processes multiple WHERE statements or combinations of WHERE statements and WHERE= dataset options in DATA steps and PROCEDURES. This paper explores examples of the combinations of WHERE statements and WHERE= dataset options in both DATA steps and PROCEDURES and the resulting logs and output | where statement, full analysis set, analysis set, proc sort, sample, if-then-else, proc step | 4 | |
| 115 | Why Aren't Exception Handling Routines Routine? Toward Reliably Robust Code through Increased Quality Standards in Base SAS | Troy Martin Hughes | A familiar adage in firefighting-If you can predict it, you can prevent it-rings true in many circles of accident prevention, including software development. If you can predict that a fire, however unlikely, someday might rage through a structure, it's prudent to install smoke detectors to facilitate its rapid discovery. Moreover, the combination of smoke detectors, fire alarms, sprinklers, fire retardant building materials, and rapid intervention may not prevent a fire from starting, but they can prevent it from spreading and facilitate its immediate and sometimes automatic extinction. Thus, as fire codes have grown to incorporate increasingly more restrictions and regulations and as fire suppression gear, tools, and tactics have continued to advance, even the harrowing business of firefighting has become more reliable, efficient, and predictable | exception handling, macro variable, automatic macro variable, data cleaning, sas log, data validation rules, sas base, proc sql, macro put, if-then-else, quality assurance, quality control, proc sort, sysrc, sas programmer, quit, proc freq, macro function, macro definition, %if-%then-%else | 14 | |
| 116 | Will You Smell Smoke When Your Data Are on Fire? The SAS Smoke Detector: Installing a Scalable Quality Control Dashboard for Transactional and Persistent Data | Troy Martin Hughes | Smoke detectors operate by comparing actual air quality to expected air quality standards and immediately alerting occupants when smoke or particle levels exceed established thresholds. Just as rapid identification of smoke (i.e, poor air quality) can detect harmful fire and facilitate its early extinguishment, rapid detection of poor quality data can highlight data entry or ingestion errors, faulty logic, insufficient or inaccurate business rules, or process failure. Aspects of data quality-such as availability, completeness, correctness, and timeliness-together should be assessed against stated requirements that account for the scope, objective, and intended use of data products. A single outlier, an accidentally locked data set, or even subtle modifications to a data structure can cause a robust extract transform load (ETL) infrastructure to grind to a halt or produce invalid results | quality control, data cleaning, data validation rules, quality assurance, dictionary tables, dataset, proc freq, sas library, filename statement, character variable, macro parameter, numeric variable, sample, proc sql | 25 | |
| 117 | Working with Character Data | Andrew T. Kuligowski, Swati Agarwal |
The DATA STEP allows one to read, write, and manipulate many types of data. As data evolves to a more free - form state, SAS's ability to handle character data becomes increasingly important. This presentation will address character data from mult iple vantage points. For example, what is the "default" length of a character string, and why does it appear to change under different circumstances? What sort of formatting is available to us for character data? How can we examine and manipulate charac ter data? This paper will aim at a beginning to intermediate audience, and will stress an introduction to the numerous character functions available in SAS, including the basic LENGTH, and SUBSTR, plus many others |
character variable, length statement, character functions, macro variable, upcase function | 8 |
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.
HOME
QUICK SEARCH
AUTHORS
KEYWORDS
HELP
BUGS