HOME QUICK SEARCH AUTHORS KEYWORDS HELP BUGS

SESUG 2019 Papers - Index

123 papers. Source: SESUG (SouthEast SAS Users Group) conference proceedings.

# Title
×
Authors
×
Abstract
×
Keywords
×
Extras Pages
1 %SUBMIT R: A SAS Macro to Interface SAS and R Ross Bettinger The purpose of the%SUBMIT R macro is to facilitate communication between SAS and R under Windows.%SUBMIT R uses SAS' unnamed pipe device type to invoke the R executable. SAS datasets may be converted into R data frames and vice versa in a manner similar to using the SAS/IML ExportDataSetToR and ImportDataSetFromR functions. R graphics are also supported, and are displayed in the SAS results viewer. Graphs may be saved in user-specified locations as image files. R scripts may be created using a SASdata null step to write a file containing an R script, read from a user-specified .R input file, or by using the %R macro. Output of R execution may be directed to the SAS log file for inspection or to a user-specified .Rout file for later use. Keywords: SAS macro, R script, SAS program file, unnamed pipe, ODS, HTML macro variable, dataset, macro parameter, sas log, macro definition source 11
2 A Random Forest Example of the Boston Housing Data using the Base SAS and the PROC_R macro in SAS Enterprise Guide Melvin T. Alexander This presentation used the Boston Housing data to call and execute R code from the Base SAS environment to create a Random Forest. SAS makes it possible to run R code via SAS/IML, SAS/IML Studio, or SAS/VIYA as described by Gilsen (2018). Interfacing R with these other SAS modules requires separate and installations that incur additional costs. R has a rich set of machine learning, text mining packages, and advanced graphic capabilities and complements SAS. I will demonstrate the R and Base SAS integration to create a Random Forest using a the %PROC_R macro of Wei (2012) proc hpforest, sas base, prediction interval, test set, feature importance, sas enterprise guide, training set, outlier source 18
3 A SAS Journey from Tables in the Database to Graphics in your Inbox Raghav Adimulam The journeys that data takes from its origins in databases to its destination in the form of reports and graphics are diverse. This poster shows one such journey of data residing on the SQL Server to the form of meaningful graphics and reports. Along the path, complex Macros are used to loop through a SAS dataset using Call Execute routine in a DATA STEP. The macro calls are automatically generated with macro parameters coming from dataset variable values. The various intricacies present in the Procedures of Format, Report and SGPLOT are used to generate fixed structure reports and plots wrapped in the ODS destination sandwiches of EXCEL and PDF. The convenience of emailing the reports to users is accomplished by the Task Scheduler running on a SAS server. In this way, a complex set of data is converted to expressive graphics with the help of SAS software call execute, macro call, excel, proc sgplot source 4
4 A user-friendly and robust macro that produces a publication-ready Table 1 Daniel Brinton,
Marshall Chew
The most common first deliverable of a statistical analysis project is colloquially known as the Table 1- which compares the baseline demographics and characteristics of two or more groups of subjects. Completing a Table 1 by hand can be time consuming and introduces opportunities for data entry error in an otherwise flawless analysis. Engineering out human error is a common goal of programmers, but auto- generating a Table 1 using portable code has proven to be a complex task. Typically, prior endeavors to create a Table 1 macro required lots of modification by the end user to work correctly. This Table 1 macro fills in the gaps by producing a publication-ready table 1 on any SAS dataset, output as a Microsoft EXCEL spreadsheet, along with a SAS table of the contents therein. Reported variables may be categorical, continuous, or binary. The macro reports the total sample size in each group. Categorical variables are reported by frequency and percent interval variable, kruskal-wallis test, binary variable, nominal variable, macro variable, excel, fisher exact test, exact test, macro call, anova, sample, missing value source 5
5 Advanced Statistical Modeling within Machine Learning and Big Data Analytics Niloofar Ramezani,
George Mason
Machine learning, big data, and high dimensional data are very important topics of recent years which some consider as the wave of the future. Therefore, it is crucial to learn about appropriate statistical techniques to be applied within these relatively new topics. Since statistical approaches have been established for many years and their efficiency have already been evaluated, they can benefit newer data-related fields. Machine learning is an important topic these days as it involves a set of many different methods and algorithms that are suited to answer diverse research questions. Thus, choosing a proper algorithm is a critical step in the machine learning process to ensure it truly fits the solution proposed in answering a problem at hand (Segal, 2004). To better understand and select machine learning algorithms when dealing with real data, it is helpful to understand them within the framework of statistics and divide them into two main groups based on the nature of data and type of outcome variables. Depending on the nature of variables, classification and regression machine learning methods are discussed here and appropriate statistical techniques for modeling them are presented in this study. Within this paper, these two types are differentiated and related algorithms and statistical techniques, as well as the SAS procedures, are discussed in order to answer real world problems including high dimensional data scenarios. These procedures include, but are not limited to, PROC HPFOREST, PROC FACTOR, PROC CLUSTER, PROC LOGISTIC, PROC GENMOD, PROC NLMIXED, PROC CATMOD and PROC STANDARD. regression analysis, proc step, proc reg, logistic distribution, logistic regression, proc princomp, ridge regression, proc hpforest, response variable, machine learning, cluster analysis, feature selection, multiple regression, ordinal logistic regression, proc genmod, proc logistic, sample, predictor variable, proc glm, dataset, likelihood function, proc hpsplit, proc factor, nominal variable, output, proc calis, correlation, numeric variable, proc fastclus, binary variable, maximum likelihood estimation, binomial distribution source 16
6 Aligning Analytics Strategy with Business Strategy Murali Sastry As more and more organizations are adopting analytics, organizational strategic planning activities need to keep pace with the evolving business needs to include analytics function and data analytics in its strategic planning design. Strategic planning approaches (for example, Hoshin Kanri or Balanced Score Card) adopted need to exploit analytics capabilities of the organization for successful strategy implementation. Hoshin Kanri is a well-known strategic planning methodology implemented by Toyota Motor Corporation, Bridgestone Corporation, Hewlett-Packard Enterprise (HPE or HP) and many others. Analytics function is critical in any organization specifically during strategic plan deployment. It is imperative to align analytics strategy with business strategy to ensure an organization achieves its tactical and strategic objectives while fulfilling the needs of its stakeholders. The intent of this paper is to familiarize Hoshin Kanri Strategic Planning Methodology to analytics professionals to provide them with the tools, techniques, and know-how to use in establishing a sound analytics strategy that is integrated with the organizational business strategy. problem solving, sample source 11
7 Analyzing Airbnb reviews using SAS Text Miner and Predicting the factors contributing for higher ratings Ashlesha Sampathi Airbnb, Inc. is a privately held global company headquartered in San Francisco that operates an online marketplace and hospitality service that is accessible via its website and mobile apps. Members can use the service to arrange or offer lodging, primarily homestays, or tourism experiences. It is the world's largest home sharing company and has over 4 million listings in more than 81,000 cities and 191 countries. Airbnb projects the prospect of making money by renting out our home with the platform. But homeowners, especially those renting out their homes for the first time, may have many questions: What price should I set my home at? Can I trust my home to guests? How can I ensure I get a good rating? Customer reviews and ratings play an important role in boosting a customer loyalty towards a brand. In fact, they can make or break a business .Therefore, it is very important for businesses to analyze the factors that are driving higher ratings and it is also equally important to have an overview of public opinion on the product. In this paper, I have predicted the main factors that are driving higher ratings and analyzed the reviews from customers using SAS text miner and compared them with numerical ratings to analyze the correlation between written reviews and numerical ratings. In addition, I've also performed descriptive analysis to explore some key points which would be very helpful for business such as: 1. What are the most popular times of the year for Airbnb rentals in Seattle? 2. Which locations in Seattle are most valued according to Airbnb customers? An open dataset from insideAirbnb website was used for the research purpose. The dataset provides information on home features, review scores, comments and the availability of 8,460 listings in Seattle for the year 2019. SAS Viya was used to conduct visual analytics on the Airbnb data and SAS Studio to perform linear regression to predict the factors driving higher ratings. In addition, SAS Text Miner was used for text mining of customer reviews. proc hpsplit, data mining, parsing, character variable, predictor variable, correlation, regression analysis source 15
8 Analyzing Hospital Medicare Cost Report Data Using SAS - Updated with Output Kimberly Andrews Medicare-certified institutional health care providers are required to submit annual cost reports, which are maintained by the Centers for Medicare and Medicaid Services (CMS) in the Healthcare Cost Reporting Information System (HCRIS). Medicare Cost Reports (MCR) contain provider information such as facility characteristics, utilization data, total and Medicare costs, inpatient and outpatient charges, Medicare payment data, and financial statement data. HCRIS includes the following subsystems: Hospital, Skilled Nursing Facility (SNF), Home Health Agency (HHA), End-Stage Renal Disease (ESRD) Facility, Hospice, Community Mental Health Center (CMHC), and Rural Health Clinic (RHC)/Federally Qualified Health Center (FQHC). Our discussion focuses on the MCR for Hospitals (the most complex of the cost reports) explaining how to access the SAS datasets, available for 2010 through 2017; describing the characteristics of the data; providing basic SAS program code which can be used to analyze the data; and displaying the resulting output. dataset, outlier, health insurance, out=, unique key, excel source 19
9 Automating SAS Viya Admin tasks using CLI and Chatbot Sandeep Grande SAS Viya platform comes with a new command line interface to interact with microservices. This paper is an attempt to embrace the openness of Viya Platform by creating a Chatbot which helps SAS Administrator in performing his/her day to day tasks. While there are many ways to automate the Admin tasks, this paper explores the latest cloud services such as AWS Lex chatbot service, AWS Lambda which is a serverless computing platform to create user Interactive chat bot with Slack application chatbot being the front end. This chatbot can be easily customized to work at our voice commands. The lambda function uses python runtime environment and we also explore the way we can interact with microservices using python sas viya, cas source 6
10 Better to Be Mocked Than Half-Cocked: Data Mocking Methods to Support Functional and Performance Testing of SAS Software Troy Martin Hughes Data mocking refers to the practice of manufacturing data that can be used in software functional and performance testing, including both load testing and stress testing. Mocked data are not production or "real" data, in that they do not abstract some real-world construct, but are considered to be sufficiently similar (to production data) to demonstrate how software would function and perform in a production environment. Data mocking is commonly employed during software development and testing phases and is especially useful where production data may be sensitive or where it may be infeasible to import production data into a non-production environment. This text introduces the MOCKDATA SAS macro, which creates mock data sets and/or text files for which SAS practitioners can vary (through parameterization) the number of observations, number of unique observations, randomization of observation order, number of character variables, length of character variables, number of numeric variables, highest numeric value, percentage of variables that have data, and whether character and/or numeric index variables (which cannot be missing) exist. An example implements MOCKDATA to compare the input/output (I/O) processing performance of SAS data sets and flat files, demonstrating the clear performance advantages of processing SAS data sets in lieu of text files. flat file, numeric variable, character variable, dataset, if-then-else, cpu time, key performance indicator, macro definition, sample, proc freq, %if-%then-%else source 17
11 Bootstrapping Regression Models using PROC SURVEYSELECT Bryce Whitehead,
Austin R. Brown
When constructing regression models, it is commonplace for a researcher to be interested in assessing the relationship between categorical predictor variables and some response variable. It is common for a categorical predictor to be dichotomous and coded as "0" or "1" in the dataset. However, when a large proportion of the observations fall into either category (i.e., greater than 80% or 90%) parameter estimation can become unreliable as the standard error of the estimator may become either inflated or deflated. Such a data situation may occur in observational types of analyses. One way of addressing this concern could be through taking a random sample from the larger group to match the sample size of the smaller group and then fitting the desired model. To efficiently use the total sample, this procedure could be performed multiple times using a bootstrapping technique. Here, several models are fit and the means of parameter estimates along with their standard errors are taken to be the final estimators. Using an example dataset containing final letter grades of domestic and international introductory statistics students over the course of several semesters, the aforementioned bootstrapping procedure will be demonstrated for a logistic regression using PROC SURVEYSELECT in SAS. Sampling techniques and assessing model fit will also be discussed. sample, logistic regression, logistic distribution, regression analysis, proc step, proc surveyselect, sample size, proc calis, anova, bootstrap source 7
12 Building a Better Dashboard Using SAS Base Software Kirk Paul Lafler Organizations around the world develop business intelligence dashboards, sometimes referred to as enterprise dashboards, to display the current status of "point-in-time" metrics and key performance indicators. Effectively designed dashboards extract real-time data from multiple sources for the purpose of highlighting important information, numbers, tables, statistics, metrics, performance scorecards and other essential content on a single screen. This paper and presentation explores the basic rules for "good" dashboard design, the metrics frequently used in dashboards, and the use of best practice programming techniques in the design of highly interactive, filterable, and drill-down dashboards using Base-SAS software proc step, bar chart, vertical bar chart, proc format, proc print, if-then-else, proc template, dataset, ods html, footnote statement, horizontal bar chart, order by, proc sgpanel, proc sql, user-defined format, histogram source 21
13 Chasing Master Data Interoperability: Facilitating Master Data Management (MDM) Objectives Through CSV Control Tables that Contain Data Rules that Support SAS and Python Data-Driven Software Design Troy Martin Hughes Control tables are the tabular data structures that contain control data-the data that direct software execution and which can prescribe dynamic software functionality. Control tables offer a preferred alternative to hardcoded conditional logic statements, which require code customization to modify. Thus, control tables can dramatically improve software maintainability and configurability by empowering developers and, in some cases, nontechnical end users to alter software functionality without modifying code. Moreover, when control tables are maintained within canonical data structures such as comma-separated values (CSV) files, they furthermore facilitate master data interoperability by enabling one control table to drive not only SAS software but also non-SAS applications. This text introduces a reusable method that preloads CSV control tables into SAS temporary arrays to facilitate the evaluation of business rules and other data rules within SAS data sets. To demonstrate the interoperability of canonical data structures, including CSV control tables, functionally equivalent Python programs also ingest these control tables. Master data management (MDM) objectives are facilitated because only one instance of the master data-the control table, and single source of the truth-is maintained, yet it can drive limitless processes across varied applications and software languages. Finally, when data rules must be modified, the control data within the control table must be changed only once to effect corresponding changes in all derivative uses of those master data. dataset, master data management, macro definition, macro variable source 4
14 Clarifying the Assessment Picture: Defined Metrics and Programming Choices in SAS Coding Jerry Landry,
Kelly D. Smith
Healthy Programs Reporting at Central Piedmont Community College was developed as an opportunity to allow programs to conduct a program review using metrics common to all programs at the institution along with program-specific or industry-specific outcomes. Ensuring that programs were able to assess their performance beyond standard institutional measures was seen as key in keeping the process focused on student success. The program review method was developed in a partnership between the College's Learning Unit and the Office of Planning and Research. Some of the metrics in the review require data provided by Planning & Research, which utilizes Base SAS and Enterprise Guide for reporting. In order to facilitate the writing of the SAS code, clear metric definitions had to be agreed upon by all project stakeholders to ensure that curriculum programs understood what data was being provided, that common parameters were established for analyzing applicable data points across programs, and that the data was meaningful for the programs. In the development process, data also had to be gathered from programs about their student intake process and timeline in order to establish the time parameters of the data report that would be provided. Shared in this presentation will be best practices from the development of Healthy Programs Reporting and the utilization of SAS in the process, with a particular focus on portions of SAS code which demonstrate programming choices to improve efficiency and ease of future adaptation. sas base, data science source 6
15 Comparison Word Clouds Using the %PROC_R macro and Base SAS Interface Melvin T. Alexander This presentation gives an example of calling and integrating R code from the Base SAS environment. SAS makes it possible to run R code via SAS/IML, SAS/IML Studio, or SAS/VIYA as described by Gilsen (2018). Interfacing R with these other SAS modules requires separate and installations that incur additional costs. R has a rich set of machine learning, text mining packages, and advanced graphic capabilities and complements SAS. I will demonstrate the R and Base SAS integration to construct comparison word clouds using a modified version of the %PROC_R macro of Wei (2012) sas base, proc freq source 13
16 Complete your IPEDS Completions in 60 minutes or less (using SAS and Colleague) Yolanda N. Ingram This paper is designed for Institutional Research professionals who are responsible for completing the federal IPEDS Completions Survey. In this session, you will learn how to complete your IPEDS Completions report in 60 minutes or less by using a SAS, Colleague and Notepad++. The outcome will be an electronic file that can be uploaded by the key holder to minimize the need for manual data entry and to improve efficiency and accurate reporting. Learning Outcomes Implement analytical tools to Improve efficiencies in data reporting. Plan, design, implement and modify on an annual basis an automated method for IPEDS reporting. input statement, sample, obs, txt source 18
17 Computing Classical Item Statistics in SAS Using the Long vs. Wide Form of the Data Imelda C. Go The wide form of data is intuitive to people because it resembles data as they are presented in a spreadsheet with each column representing a variable. There are advantages to storing and processing data in their long form versus in their wide form. This paper illustrates one way to simplify and shorten the code needed to compute classical item statistics when the data are in their long form. Since there are so many ways to do the same thing in SAS, this paper will use a simplified example to illustrate the technique with the following scenario: * proc step, proc corr source 6
18 Conditionally Executing Data Steps and Statements Based on the Presence of Variables in a SAS Dataset Charles D. Coleman Sometimes a DATA STEP should only be executed if one or more variables are present in the input dataset. The same is true of statements within data steps. This paper provides several macros to detect the presence of variables and counts of the present variables. Examples show how these macros can be used to accomplish conditional execution for many scenarios. These macros have the advantage of only using macro statements, thus avoiding the costs of opening datasets source 11
19 CONNECT TO vs. CONNECT USING for Security in SAS PROC SQL Thomas E. Billings We begin with an overview of the main SQL dialects in the SAS system, and then describe the 2 modes of operation of PROC SQL: explicit pass-through and implicit pass-through. We focus on explicit pass- through, where PROC SQL is a wrapper to pass user-written, native RDBMS SQL code to a remote system. CONNECT TO syntax is illustrated, including the common usage of database passwords in source code. Methods to mitigate this issue are discussed - PROC PWENCODE, blotting, and encrypted, compiled macros that are user-specific. Next we illustrate an alternative, CONNECT USING paired with authentication domain LIBNAMEs. Here the password and userid are hidden in metadata (using SAS Personal Login Manager), providing a higher security alternative. We end with brief comments on explicit vs. implicit pass-through, efficiency vs. portability and maintainability. Keywords: security, PROC SQL, CONNECT, explicit pass-through, authentication domain, LIBNAME, PROC PWENCODE proc sql, proc step, sql pass-through, implicit sql pass-through, sas base, macro variable, sas viya, sas enterprise guide, dataset source 8
20 Cutting Out the Middle Man - Bypassing ADaM to Calculate Tumor Response Inputs using RECIST 1.1 Guidelines and Collected Data in SDTM Format Response Inputs Confirming vendor results? Providing recon listings to the client? No time or need for ADaM? Cut out the middle man! A high-level overview on how to use CRF data in SDTM format to reconcile tumor response assessment using Response Evaluation Criteria in Solid Tumor (RECIST 1.1) Guidelines, from collecting the basic required data points to deriving the Best Overall Response. Tumor response categorization is key in monitoring patient disease progression and best overall response is frequently an analysis endpoint in Oncology studies. The RECIST 1.1 Guidelines offer a standard process for data collection and calculation for target, non-target, and new lesion progression based on assessments at timed intervals, generally 6-12 weeks apart. Efficient data analysis starts with effective data collection using simple case report forms (CRF) and ensuring all required data items are accounted for. Ideally the CRF data is structured to easily fit into SDTM format using Tumor Identification, Tumor Results and Tumor Response domains (TU, TR, and RS). The RECIST 1.1 worksheets summarize the information needed and can be formatted for SDTM translation and evaluation. change from baseline, percent change from baseline, proc sql, retain, best response, proc step, cdisc source 6
21 Dashboards for SAS Visual Analytics Laura Oliver Visual Analytics is a great tool to use to visualize and analyze your data and create dashboard for others to review data. This Workshop is designed for users that are new to report creating in Visual Analytics. It will give you hands on experience creating a powerful and interactive dashboard. We will build one with multiple reports and features to allow filtering of data. numeric variable, bar chart source 15
22 Data Management Challenge: Select All That Apply: JMP to the Rescue Mira Shapiro Online surveys often provide questions with a variety of choices and instruct the user to "Select All That Apply". Depending upon the backend of the system, the desired analytics and output, and available tools, these sort of responses can sometimes create data management challenges. Hidden under JMP ColàUtilities are several tools that allow the user to recode the individual responses and then combine them into one column characterizing the user's complete response to a particular question. In this discussion we will show step by step how to use these techniques and demonstrate how the results can be used for analytics. … Display 1. Raw data read from a CSV file into JMP data transformation, dataset source 12
23 Data Step versus Everybody: Approaching Problems as a Beginning Coder Brian K. Varney SAS has had the DATA STEP and Base SAS procedures since its inception. PROC SQL was added in the late 1980s and introduced an additional powerful tool for problem solving. If you are relatively new to SAS, it can be confusing to choose an approach. This paper intends to guide a beginning SAS programmer on what to use depending on the ETL and/or macro variable creation needed for your programming problem proc sql, proc step, macro definition, character variable, lag function, numeric variable, macro variable, proc means source 12
24 Data Visualizations using Census Shapefiles, PROC GMAP, SAS/GRAPH Animation, and BISG Martha D. Pohl The methodology to compute a proxy for missing race and ethnicity released in the summer of 2014 by the Consumer Financial Protection Bureau (CFPB) uses the surname of SMITH and the state of California as an example of this computation. This methodology uses Bayes' Theorem, the Census Surname List By Race Ethnicity from the Decennial Census, and the racial/ethnic composition of the population by geography from the Census Summary File 1 (100% sample). It is called the Bayesian Improved Surname Geocoding (BISG) proxy method. This presentation will look at the Surname of SMITH (the most frequently occurring surname in the United States) as well as other surnames at the County and Zip Code (ZCTA) levels using the data visualization technique of SAS/GRAPH animation to examine these changes by geographic location and concentration. Racial/ethnic composition of the population by county over time using the American Community Survey (ACS) yearly Estimates will be visualized nationwide. This methodology called BISG is used to compute a proxy for race/ethnicity when it is not available using the surname and geographic location. SAS/GRAPH Templates for SAS PROC GMAP using Shapefiles from the Census Bureau and SAS PROC GSLIDE for SAS animation will be provided. Disclaimer: Any opinions expressed in this paper are those of the author and do not constitute policy or opinion of the U.S. Department of Justice or any of its subcomponents. proc step, proc gmap, proc freq source 26
25 Data-driven Programming Techniques using SAS Macros to Semi-automate Generation of Descriptive Tables in Healthcare Research Katie Mercaldi Nearly all healthcare studies include one or more tables with descriptive statistics summarizing characteristics of the sample population. When the relevant variables in the SAS analytic data set are properly formatted and labeled, the process of producing publication-quality descriptive tables can be streamlined so that little more is needed than the names of the variables to use as table columns and rows. This process is implemented with four SAS macros -- %COLCNTL, %ROWCNTL, %MKTABLE, and %MKREPORT. The SAS macros %COLCNTL and %ROWCNTL create "control files" in the form of SAS data sets that act as sets of instructions for designing the table's columns and rows respectively. The macros extract relevant metadata, including variable attributes such as labels and formats, about the column and row variables found in the specified analysis data set. Using this metadata, these macros then determine what type of summary statistics to produce for each row variable, such as means with standard deviations for continuous variables and counts with percentages for categorical measures. The SAS macros %MKTABLE and %MKREPORT generate the final output table. The %MKTABLE macro creates a version of the table as a SAS data set by converting the metadata to lists of macro variables using the INTO clause in PROC SQL or, alternately, by constructing macro calls within a DATA STEP with CALL EXECUTE. Finally, the %MKREPORT macro generates PROC REPORT syntax that creates the final deliverable-quality table in an EXCEL workbook. macro call, excel, proc step, proc tabulate, proc means, interval variable, nominal variable, macro variable, numeric variable, dataset, call execute, proc report, xls, binary variable, proc sql, standard deviation, label statement, output delivery system, sample, create table, format statement, proc freq, macro definition, macro loop source 37
26 Dating for SAS Programmers Joshua M. Horstman Every SAS programmer needs to know how to get a date... no, not that kind of date. This paper will cover the fundamentals of working with SAS date values, time values, and date/time values. Topics will include constructing date and time values from their individual pieces, extracting their constituent elements, and converting between various types of dates. We'll also explore the extensive library of built-in SAS functions, formats, and informats for working with dates and times using in-depth examples. Finally, you'll learn how to answer that age-old question... when is Easter next year? date variable, sysdate9, datetime, time, macro variable, date and time functions, datepart, automatic macro variable, user-defined format, dhms, sas programmer, options statement, macro function source 13
27 Developing and running an in-house SAS Users Group Stephen B. Sloan Starting an in-house SAS Users Group can pose a daunting challenge in a large worldwide organization. However, once formed, the SAS Users Group can also provide great value to the enterprise. SAS users (and those interested in becoming SAS users) are often scattered and unaware of the reservoirs of talent and innovation within their own organization. Sometimes they are Subject Matter Experts (SMEs); other times they are new to SAS but provide the only available expertise for a specific project in a specific location. In addition, there is a steady stream of new products and upgrades coming from SAS Institute and the users may be unaware of them or not have the time to explore and implement them, even when the products and upgrades have been thoroughly vetted and are already in use in other parts of the organization. There are often local artifacts like macros and dashboards that have been developed in corners of the enterprise that could be very useful to others so that they don't have to "reinvent the wheel". source 5
28 Discovering the Power of SAS Metadata: An Introduction to Dictionary Tables and Views Frank C. DiIorio All SAS programs, regardless of size or complexity, create and populate dozens of metadata files, commonly known as Dictionary Tables. These Tables are filled with information that is often difficult, and sometimes impossible, to obtain through other means. Any programmer who develops even simple general-purpose programs should be familiar with the Tables' organization, content, and potential uses. This paper describes Dictionary Tables and their associated SASHELP library views. It: 1. Presents scenarios that show how they can be used 2. Gives high-level descriptions of some of the more important Tables 3. Identifies features of SQL and the macro language that are commonly used when writing programs that effectively use the Tables 4 proc sql, proc step, macro variable, proc contents, macro facility, dataset, sas base, create table, macro put, macro definition source 16
29 DO loops :INTO efficient programming: DATA STEP do loop + PROC SQL in boilerplate programming Christopher Hargett Boilerplate SAS programs are real time savers, but frequently input datasets have different variables and values not accounted for in the code. Going through a whole program to manually update RENAME or SUM statements is laborious. This paper will introduce a technique to dynamically modify boilerplate programs based on input dataset. Combining a DO loop in a DATA STEP and the :INTO keyword in PROC SQL results in a flexible method of creating macro variable values that can be used in a wide array of applications. Using the COUNT function with a DO loop in the DATA STEP to create a SAS data set consisting of programming language, and the INTO clause in PROC SQL allows the programming language to be dynamically generated and applied efficiently in multiple scenarios in a longer program. This paper builds on concepts covered by Kelly Schlessman, "PROC SQL - GET "INTO:" IT!," SESGUG Paper 267-2018 macro variable, proc sql, proc step, do loop, dataset, data step source 4
30 Doing More with the SGPLOT Procedure Joshua M. Horstman Once you've mastered the fundamentals of using the SGPLOT procedure to generate high -quality graphics, you'll certainly want to delve in to the extensive array of customizations available. This workshop will move beyond the basic techniques covered in the introductory workshop. We'll go through more complex examples such as combining multiple plots, modifying various plot attributes, customizing legends, and adding axis tables proc sgplot, proc step, group by, scatter plot, box plot, line chart, nominal variable, numeric variable source 18
31 Don't Let Complex Survey Data Get the Best of You! SAS Survey PROCs for Categorical Data Analysis Charlotte Baker Data from US federal health surveys frequently use complex survey structures, rendering traditional procedures not useful for analysis. The SAS survey procedures exist but have not yet become a regularly used asset in analysis. Instead, users frequently choose to use other programs or add-ons for even the most basic of analyses. This paper demonstrates why the survey procedures such as SURVEYFREQ and SURVEYLOGISTIC should be in everyone's toolbox when using complex survey data in research or practice proc step, proc surveyfreq, proc surveylogistic, proc freq, sample, odds ratio, interaction effect, logistic distribution, proc logistic source 14
32 Easier and Better with SAS Enterprise Guide Laura Oliver Enterprise Guide is a great Integrated Development Environment that helps people do the full advanced analytics lifecycle through a point-and-click or hard-core programming interface. Many times, though, the user hasn't had time to investigate all of the features that can be done and ways to make their life easier. For example, the GUI environment has good ways to accomplish tasks that had to be done in a program in the past. This Workshop is valuable for anyone who wants to use Enterprise Guide better, whether you are a user who is new to Enterprise Guide, or one who is experienced. It will cover such topics as DATA STEP Debugger, formatting code, ways to view your system options and macro variable options. It will also cover Data Explorer and ways to use EG Tasks to make the rest of your life easier. macro variable, sas enterprise guide, macro definition, data step, proc sql source 18
33 Effect of Manpower Policy Changes on Retention and Promotions in the U.S. Marine Corps U.S. Marine Corps This analysis was conducted to advise and assist executive decision makers on possible effects on policy changes that would affect enlisted promotions and retention in the U.S. Marine Corps. On an annual basis the Marine Corps retains less than 30% of Marines on their initial contract. In some cases this can create gaps in manpower and readiness when Marines in certain occupational specialties are promoted the rank of E5 prior to the end of their initial contract. In fiscal year 18 approximately 30% of Marines who exited after their initial contract (48 months) reached the grade of E5 prior to exiting active service. The proposed policy change would not allow promotion to E5 prior to reaching 48 months of service in order to prevent this potential gap in manpower in specific occupational fields. What this led to in relation to this study was an in depth look into different occupational specialties and all enlisted ranks in regards to future manpower planning decisions proc step, ods pdf source 9
34 ePRO: A View from Statistical Programmer Vijetha Kode,
Saigovind Chenna
Assessing patients experiences and perspectives into their clinical care is an important mechanism for evaluating the Quality of Life ( QoL) of patients participating in cancer clinical trials. Patient-Reported Outcomes (PROs) commonly would capture patient perspective systematically and could assist in the development of new cancer therapies. European Organization for Research and Treatment of Cancer (EORTC) created and developed an integrated, modular approach for evaluating the QoL of patients participating in cancer clinical trials. This led to the development of the EORTC Quality of Life Questionnaire ( QLQ) QLQ -C30, a quality of life instrument for cancer patients. Furthermore, EORTC developed various types of Questionnaires within various types of cancers. This paper primarily focuses on statistical programming aspects of PRO analysis for questionnaires (QLQ -C30, QLQ-LC13 and EQ - 5D-5L) collected in Lung Cancer Indication trials adam dataset, change from baseline, clinical trial, data science, longitudinal data, least squares mean, treatment effect, sample, cdisc source 18
35 Examining Imputation effect by Using FACTOR and MI Procedures in SAS for a Bullying Scale for LGBTQ Youth in SC Examining Imputation Missing data presents a challenge to researchers. This study used LGBTQ youth data from SC to test the effect of an imputation using FACTOR and MI procedures in SAS. There are many reasons for missing data. Factor analyses were run to develop a Bullying Scale for LGBTQ youth. These runs included no imputation, single imputation, and multiple imputation (1000 times) for missing data. Two factors emerged - hearing bullying and experiencing bullying. The inter-factor correlation was .46 for hearing bullying and experiencing bullying. Similar results for factor extraction for no imputation, single imputation, and multiple imputation were found. Testing revealed all reliability coefficients exceeded .80 with no imputation and with imputation using the SAS 6 PROC FACTOR and STANDARD, and MI procedures for data analysis. All data analyses performed using SAS/STAT version 9.46. Keywords: SAS, FACTOR, MI, Bullying, LGBTQ University of South Carolina, College of Nursing imputation, missing value, multiple imputation, factor analysis, correlation, factor loading, proc step source 5
36 Exploring Efficiency in Data Manipulation with SAS: How to Get the Most Out of My Software and Hardware Jonathan W. Duggins An exploration of efficiency in combining data sets (merging/joining) is considered under a variety of conditions. Methods are employed in each of the DATA STEP without hash objects, DATA STEP with hash objects, and PROC SQL for several data sets. Data sets considered include those with large numbers of observations, large numbers of variables, or both. Non-indexed and indexed versions of data sets are considered, with time required to construct the index included in the efficiency calculation. Under selected settings, multiple operating systems and hardware platforms are considered along with options available to set the resources available in the SAS session(s). hash table, cpu time, proc step, proc sql, character variable, options statement, merge statement, numeric variable, proc sort, sas log, index creation source 10
37 Extending the Finkelstein-Schoenfeld test and Win Ratio to three composite Outcomes Using SAS Matheos Yosef,
Shokoufeh Khalatbari,
Scott Hummel
Clinical trials and observational studies often involve multiple outcomes with hierarchy in terms of clinical importance. As a result, a composite outcome is commonly chosen as the primary endpoint for testing the treatment effect as well as determining the required sample size. Finkelstein & Schoenfeld (FS, 1999) proposed a non- parametric hierarchical testing of treatment effect for a composite endpoint of two outcomes. Pocock et al. (2012) introduced the 'win ratio' estimator, a new approach to the analysis of hierarchical composite outcomes that accounts for clinical priorities of multiple outcomes. In this paper, we present our work on extension of Pocock et al. SAS macros to compute the Finkelstein & Schoenfeld (FS) statistic and win ratio for a hierarchy of three outcomes. Furthermore, we demonstrate the algorithm used in SAS for sample size estimation of studies with such outcomes clinical trial, sample size, sample, confidence interval, macro definition source 4
38 Face Recognition Using SAS Viya: Guess Who the Person Is! Pratyush Dash Humans can take a look at an image and instantly recognize what the object is in the image, identify the person in the image or the location of the photo. The human cognitive system is fast and reliable, allowing people to perform very complex tasks like driving or operating a machine with little conscious thought. Performing these tasks for a computer would be very tough. Using fast, accurate and reliable algorithms could make computers to drive cars with sensors, enable them to recognize humans, operate different machines and even perform surgeries. The digital universe is expected to reach 44 zettabytes by 2020 because of the growth of Internet of Things (IoT). This shows us the massive opportunity we have in terms of digital content analytics. Facial recognition and classification algorithms like deep learning and neural networks can extract information from photos or videos and classify them almost instantaneously after it is posted online. There are many other applications of such algorithms as in security screening, medical image processing, and insurance claims. It is very challenging to perform this task as it requires extensive data preparation and lot of levels are needed to classify an image. In this project we have used the machine learning capabilities available in SAS Viya for image processing. In this paper we have used a dataset which consists of images of different people. The data was then divided into training and validation sets. For training 9 out of 10 images for each person were taken into consideration. The rest one image was used for validation. Several models will be designed using deep learning techniques like deep fully-connected neural networks (DNN), convolutional neural networks (CNN), and recurrent neural networks (RNN). The entire work has been done by using SAS DLPy which is by pulling in the Jupyter notebook into SAS Viya. This work proposes to analyze images and classify them as different people using the deep learning techniques and measuring accuracy. Through this project the objective of automatically detecting who the celebrity is achieved and it can be further used to segregate them into different folders. neural network, sas viya, deep learning, network optimization, insurance claims source 6
39 Fifteen Functions to Supercharge Your SAS Code Joshua M. Horstman The number of functions included in SAS software has exploded in recent versions, but many of the most amazing and useful functions remain relatively unknown. This paper will discuss such functions and provide examples of their use. Both new and experienced SAS programmers should find something new to add to their toolboxes anyalpha, if-then-else, character functions, tranwrd function, notalpha, sas programmer, translate, whichn, missing value source 8
40 Generalized Linear Mixed Model Approach to Time-to-Event Data with Censored Observations Censored Observations The time-to-event response is commonly thought of as survival analysis, and typically concerns statistical modeling of expected life span. In the example presented here, alfalfa leafcutting bees, Megachile rotundata, were randomly exposed to one of eight experimental thermoprofiles or two control thermoprofiles, for one to eight weeks. The incorporation of these fluctuating thermoprofiles in the management of the bees increases survival and blocks the development of sub-lethal effects, such as delayed emergence. The data collected here investigates the question of whether any experimental thermoprofile provides better overall survival, with a reduction and delay of sub-lethal effects. The study design incorporates typical aspects of agricultural research; random blocking effects. All M. rotundata prepupae brood cells were randomly placed in individual wells of 24-well culture plates. Plates were randomly assigned to thermoprofile and exposure duration, with three plate replicates per thermoprofile x exposure time. Bees were observed for emergence for 40 days. All bees that were not yet emerged prior to fixed end of study were considered to be censored observations. We fit a generalized linear mixed model (GLMM), using the SAS GLIMMIX Procedure to the censored data and obtained time-to-emergence function estimates. As opposed to a typical survival analysis approach, such as Kaplan-Meier curve, in the GLMM we were able to include the random model effects from the study design. This is an important inclusion in the model, such that correct standard error and test statistics are generated for mixed models with non-Gaussian data. censoring, survival analysis, hazard function, proc step, proc glimmix, proc mixed, poisson distribution, likelihood function, response variable, survival function, regression analysis source 9
41 Getting Started with PROC DS2 James E. Blum This workshop is designed to give DATA STEP programmers foundational information to develop programs in PROC DS2. Starting with several common tasks given as DATA STEP program examples, the workshop goes through transitioning the code examples to PROC DS2 code step-by-step. As part of the process, various similarities and differences between the two steps are noted, and pros and cons of using each are discussed. Suggested topics for study for building on the PROC DS2 concepts presented are also provided, along with reference material to aid in further study proc step, proc sql, inputn source 17
42 Getting the Right DATES (with SAS) Marje Fecht Do you struggle with dates in your program? Do you manually provide dates as input to your processes? Do you have issues getting dates into the right format for database queries, or reports or dashboards? This presentation will help you find the right date, and then generalize the coding to avoid manual input, repetitive and messy coding, and frustration. Examples emphasize the easy manipulation of dates, and focus on generalization to support flexible coding, including: Dynamically identifying date ranges, such as reporting and analytics periods (current calendar year; most recent 6 months; past 90 days; current fiscal year; year over year) Dynamically generating field names that represent date values or ranges Controlling the appearance of date values in reports Generating date-time stamps for file names, without special symbols date variable, sysdate9, macro function, macro variable, calendar year, macro definition source 9
43 Glass Box Neural Networks Ross Bettinger Neural network models are typically described as "black boxes" because their inner workings are not easy to understand. We propose that, since a neural network model that accurately predicts its target variable is a good representation of the training data, the output of the model may be recast as a target variable and subjected to standard regression algorithms to "explain" it as a response variable. Thus, the "black box" of the internal mechanism is transformed into a "glass box" that facilitates understanding of the underlying model. Deriving a regression model from a set of training data analogous to a neural net- work is an effective means to understand a neural network model because regression algorithms are commonly-used tools and the interpretation of a regression model is straight-forward and well-under- stood neural network, response variable, regression analysis, logistic regression, logistic distribution, network optimization, odds ratio, estimate, predictor variable, training set, data mining, likelihood function, sample, maximum likelihood estimation source 14
44 Graphics for Univariate Data: Pie is Delicious But Not Nutritious Peter L. Flom When you have univariate data, that is, a single measure on a variety of units, the most common statistical graphic is a pie chart. But pie charts should not be used. Ever. When there are a lot of units, pie charts are unreadable. When there are only a few units, pie charts waste space. And research Cleveland (1993, 1994) shows that, even with a moderate number of units, pie charts can distort the data (for example, using different colors leads to different estimates of the size of the wedges). Fortunately, there are better methods. Keywords: pie dot univariate graphics ods graphics, output delivery system source 11
45 Great Time to Learn GTL: A Step-by-Step Approach to Creating the Impossible Richann J. Watson Output Delivery System (ODS) graphics, produced by SAS procedures, are the backbone of the Graph Template Language (GTL). Procedures such as the Statistical Graphics (SG) procedures dynamically generate GTL templates based on the plot requests made through the procedure syntax. For this paper, these templates will be referenced as procedure-driven templates. GTL generates graphs using a template definition that provides extensive control over output formats and appearance. Would you like to learn how to build your own template and make customized graphs and how to create that one highly desired, unique graph that at first glance seems impossible? Then it's a Great Time to Learn GTL! This paper guides you through the GTL fundamentals while walking you through creating a graph that at first glance appears too complex but is truly simple once you understand how to build your own template proc template, series plot, proc step, sample, scatter plot, missing value source 26
46 Hexadecimal Encoding Can Mitigate Some SAS Macro Quoting Issues Thomas E. Billings Passing special characters in a SAS macro variable can be challenging; see Rosenbloom and Carpenter (2013). As messy as the situation is for fixed (constant) strings, the possibility that a macro variable is dynamically loaded from an input data source is even more challenging, as the values that come in via inputs may throw an error in production. Here we describe methods that mitigate some of the macro quoting issues surrounding special characters. We begin by clarifying what it means for a macro variable to contain nearly anything, i.e., the issue of trailing blanks and how they are handled by select input methods. Then we give a simple method (no encoding required) that works if the macro variable is used in the current session. Next we show how hex encoding can mitigate macro quoting issues when the objective is to use the target macro variable string(s) in a compiled macro to be used in other, downstream sessions. We end by discussing the constraints of this method macro variable, macro definition, stored macro, sas enterprise guide, call symput, call symputx, call execute, proc lua, proc step, character variable, macro quoting function, macro function, macro facility, macro put source 12
47 HOW AM I DIFFERENT? Kannan Deivasigamani Programmers often seek to use the procedure from SAS with the hope of finding differences between 2 datasets. One step further, the interest focuses on the variables that are different between the two datasets in question. Fortunately, "PROC COMPARE" provides information about the number of variables that are common between the 2 datasets and also prints the number of variables in the BASE dataset not in the COMPARE dataset and vice versa. However, there is some level of scrolling and manual tabulation to do if you consolidate the output of options such as LISTVAR, LISTBASEVAR, or LISTCOMPVAR. In many occasions, it turns out to be a manual process of eyeballing the fields or transferring the metadata to an EXCEL spreadsheet and using a VLOOKUP or some other function and then compiling the variables. As an alternative, what if there is a tool available where you can just plug-in the dataset names and it provides a neat print of the common columns, differences in the 2 datasets by listing out columns side-by-side in BASE but not in COMPARE dataset and vice versa in a presentable table format? Wouldn't that be nice? It would save several minutes of one's time. If this is done on multiple occasions, by multiple programmers, the benefit multiplies. That is exactly what this tool is intended to provide. The tool will accept the names of the two datasets to compare and will provide an output that will print common variables, variables in dataset-1 but not in dataset-2, and variables in dataset-2 but not in dataset-1 in 3 columns side by side. This can be presented to the individual who can address or justify the differences. The tool is a SAS macro that will accept two inputs and will handle different scenarios presented in the examples. This will take advantage of the SAS meta data and with minimal effort, will provide the desired output to the user. macro variable, cpu time, create table, proc step, proc sql, full join, order by, proc compare, dataset source 17
48 How to Keep Multiple Formats in One Variable after Transpose Mindy Wang In many industries and research fields, PROC TRANSPOSE are used very often. When many variables with their individual formats are transposed into one variable, we lose the formats. We can do a series of if then statements to put the formats back in. However, when the variables involved are too many, the above method can be very tedious. This paper illustrates how to extract formats from dictionary.columns or sashelp.vcolumn, and then use PUTN function to assign the formats at run time and make the task much easier. In addition, it is much easier to apply the same method to other projects without a lot of hard coding in the SAS program. Efficiency is largely increased with this method putn, excel, proc sql, proc step source 10
49 How to Write a Macro that Executes Other Macros Kelly Fenn The ability to create SAS macro programs can make your life easier when you need to write a chunk of code that will be executed multiple times within a SAS program. Once you have mastered writing macro programs, however, you may find yourself in a situation where you need to call the macro several times, with a number of different parameters. This paper will introduce you to a technique for writing a macro program that will call another macro program repeatedly over a list of parameters, allowing you to avoid manually calling the macro for each unique parameter macro variable, proc sql, proc step, macro loop, macro definition source 5
50 Hybrid Rare Event Sampling Technique Ross Bettinger We discuss a hybrid sampling methodology for building and validating machine learning models for classification for which the target event is a small proportion of the total population. This methodology may be useful for fraud detection or similar applications for which the response variable is typically scarce. We call this variation of cross-validation methodology the HYbrid Rare Event Sampling (HYRES) technique because it is meant to detect rare events with high resolution through sampling. Keywords Classification, cross-validation, imbalanced classes, machine learning, model building, model validation, rare event, sampling methodology, SAS Enterprise Miner, SMOTE, threshold-free performance metric sample, data cleaning, key performance indicator, data mining, response variable, posterior probability, proc freq, validation set, proc hpsplit, machine learning, neural network, credit card, network optimization, training set, regression analysis, macro definition source 15
51 I'm Warning You - Common SAS Programming Mistakes Christine Whitaker This paper covers common programming mistakes, including those that don't generate error messages, but produce wrong results. sas log, if-then-else source 5
52 Identify physical and mobile DMV Site Locations in North Carolina Puneet Kumar,
Rajeshwar Dutt,
Matthew R Rogers
Growing population and changing demographics in North Carolina result in increased demand for DMV services, specifically for Real ID issuance. Considering the geographic distribution and the spatial characteristics of the demand, decision makers need to open new locations and/or reallocate limited resources among existing DMV locations to improve the operational efficiency and customer experience. The objective of this study is to provide an integrated approach for selecting the optimal DMV locations using expert knowledge, data mining, Analytic Hierarchy Process (AHP), Geographical Information System (GIS) and SAS Software. The proposed approach identifies sixteen location criteria through experts' input as part of the AHP process, yielding demographic attributes, flexibility, efficiency, cost and access to public facilities. Following the weight assessment for all criteria and sub-criteria, normalized weights are used for location suitability analysis in ArcGIS. Based on our projections for the demand and related geospatial data, alternative DMV locations are determined and visualized through ArcGIS. Finally, the alternative locations are evaluated by AHP weights and the multi-criteria location selection problem is optimized to maximize the coverage across the state. data mining, proc step source 12
53 Improving Employee Satisfaction Through Text Analytics Luis David Martinez The success of any business is heavily influenced by the productivity of its employees, making employees one of the most important assets that a company holds. One factor that is linked with employee productivity is work satisfaction. In other words, how well an employee works is partly determined by how happy he or she is with their job. Therefore, knowing the positive and negative feelings that employees have toward their employer can be useful for making better human resource decisions. One source of data on employee's opinions about their employer and work environment is online reviews. In this project, we take a collection of online reviews from a popular job search website and analyze it to gain insights into how employees feel about their company. The data set includes a pros and cons comment sections as well as a score from 1-5 on the overall opinion of the company. Thousands of reviews were collected on six popular technology companies. Online reviews have been analyzed descriptively in other research to determine what employees most commonly mention when reviewing their employer. Our own preliminary descriptive analysis showed a statistically significant difference among the six technology companies in relation to overall scores. This research paper, however, takes the analysis of these scores further by creating a predictive rule-based model that uses the text portions of the review as variables to classify comments into positive or negative. By interpreting the model, we can determine what factors may be most significant for causing high or low employee satisfaction. These factors can then be used by companies in taking appropriate steps to improve their employee sentiment and in turn, their overall productivity. The tools used to perform this analysis include SAS Enterprise Miner and SAS Studio. This research can also be easily expanded to include other companies and improved upon by adding more training data from other job sites. sample, null hypothesis, proc means, data cleaning, data mining, response variable, validation set, likelihood function source 15
54 Improving Student Application Reporting Using a Slowly Changing Dimension and SAS Data Integration Studio Lauren E. Schoenheit,
Alexander K. Fantroy
For a selective university shaping the incoming freshman class requires current operational data on the student applications that have been received, the admissions decisions that have been made, and the students that have committed in response, throughout the admissions cycle. A point in time comparison with historical data serves as a benchmark to better understand and anticipate the final makeup of the incoming students. To meet these demands one such institution shifted student application reporting from a base SAS program run on an ad hoc basis, that created a SAS dataset of the application information for that day saved to a drive; to a scheduled Data Integration Studio job that created a slowly changing dimension of year over year daily application information stored as an oracle table in the university's enterprise database. Changing the way data was stored reduced storage space, as only new applications and change records are added to the student application table instead of accumulating datasets with a repeated record for every day the application was in the system. Scheduling a Data Integration Studio job removed the task of running the program from a person's workload as well as standardized the collection of student application data. Together these changes facilitated more frequent snapshots of student application data as well as increased processing efficiency. A summary is loaded to SAS Visual Analytics nightly as the basis for a daily year over year analysis of student application decisions. This presentation will cover the business reasons for making this change, the technical details of creating the Data Integration job and the slowly changing dimensions, as well as screen caps of the Visual Analytics student application report. sas data integration studio, slowly changing dimension, staging area source 12
55 Integrate Python with SAS using SASPy for a Simpler, More Effective Script John Vickery Why write two scripts in two different languages when you can get it done in one? By using the SASPy module, you can easily move data between SAS and Python sessions giving you the best of both worlds. At the NC State University Libraries, we need to manage a dynamic, million plus e-book collection with on-demand purchasing and auto-upgrade options. It is common for a publisher to release an e-book across multiple platforms each having differing access rights. In order to prevent duplicate auto- purchases we regularly combine data from SAS data sets and our catalog web services. In this case study, we show how Python handles the web service and SASPy allows us quick access to large data sets on disk. This paper will do a deep dive into the script and will show how effective an open analytics combination can be. In addition to SASPy this paper also shows examples of a few common Python modules such as Pandas, Requests and ElementTree dataset, web service, proc sql, proc step, work library, excel source 12
56 Integrating SAS/IntrNet, SAS Macro facility, JavaScript, HTML, and .NET to build a dynamic web application to present NSSE data Carlos Martinez,
Wen Jiang,
Uday Nair
This presentation is intended for staff in the institutional research, survey research, or assessment office in the education industry who conduct and report survey data. The NSSE institute provides summary and item-level reports comparing a select institution to various other groups of institutions. However, internal university analysis by student characteristics is more insightful and actionable. A dataset was created that combines NSSE data with the typical institutional research type data. The SAS ODS HTML destination within the SAS/INTRNET platform, HTML, and JavaScript were combined to create a dynamic web application consisting of cascading input query pages, custom reporting and easy-to-navigate reporting interface. PROC TABULATE was heavily used to build standard aesthetically-pleasing table templates. The SAS MACRO language was leveraged to improve efficiency of data processing, reporting, and back-end code maintenance. The web application was nestled inside a .NET controlled framework to ensure data access to select users. This paper does not serve as instructions on how to build such a complex web application from the ground up. Instead, the goal is to highlight some of the more challenging tasks of integration and provide an explanation as to how these were achieved. Knowledge of the programming languages SAS, JavaScript, HTML, and VB.NET or C# will be helpful in understanding the concepts covered in this paper. The presentation will include typical code examples. This paper is organized by certain features in the web application that were achieved through integration of several platforms and languages: • Creating uniform layout and page sizing [cross-domain integration] • Dynamically generated cascading dropdown menus • Printing capabilities from the web application [cross-domain integration] • Tracking web application user behavior [using Google Analytics] macro definition, proc step, proc sql, ods html, sas syntax, macro facility, macro variable, character functions, libname statement source 15
57 Interactive Graphs Kriss Harris This paper demonstrates how you can use interactive graphics in SAS 9.4 to assess and report your safety data. The interactive visualizations that you will be shown include the adverse event and laboratory results. In addition, you will be shown how to display "details-on-demand" when you hover over a point. Adding interactivity to your graphs will bring your data to life and help improve lives! change from baseline, bar chart, series plot, box plot, adverse events, sample, macro variable, scatter plot, macro loop, by group processing source 24
58 Intervention at the Library: Assessing the Effect of an Event David A. Dickey,
John Vickery
A highlight of any visit to the NC State University campus is a tour of the modern Hunt Library. Books are delivered for checkout by a robot called the BookBot and some interest was expressed by library personnel in determining the effect of the Hunt Library's opening on book circulation. Circulation numbers were available before and after the new library opening for two classes of books: those that stayed at the old library and those that were moved to the new and much more modern library. Such an event in time series is referred to as an intervention or sometimes as an interrupted time series. A simple before and after t-test showed some interesting deficiencies that led to a more thoughtful and ultimately revealing analysis. This talk shows the process of going from a simple initial analysis through more and more sophisticated approaches as the layers of complexity are peeled back. The lessons learned here are applicable to any situation in which the effect of a known event is to be investigated. Care in checking assumptions is emphasized. binary variable, proc step, time series analysis, sample, correlation, proc arima, proc ttest, residual, proc reg, regression analysis, proc calis, macro variable, estimate, homoscedasticity, qq plot, seasonality, proc sql source 19
59 Introduction to Propensity Score Modeling and Treatment Effect Estimation Jason Brinkley Measuring the impact of treatments and interventions is an important aspect to all areas of evaluation and research. While a randomized experiment or clinical trial may be the gold standard for providing causal information regarding effectiveness, it is often the case that we must rely on observational data and secondary sources for measuring effectiveness. Confounding plays a huge role in measuring and evaluating effectiveness and statistical adjustments for confounding are a focal point of modern analytics. In many cases it is not enough to perform simple adjustments via outcome regression models to control for confounding, especially in cases where such confounding plays a role in the very selection of who gets which intervention of interest. Propensity score models have become a popular route for creating balance in observational data by implementing a pseudo or quasi-experimental set of conditions on the data of interest. This workshop is designed to give a soft introduction and background to propensity score modeling and associated treatment effect estimation. We will discuss the motivation for counterfactual data analysis and apply real world data (from the medical literature) to explore how to use the PSMATCH and CAUSALTRT procedures in SAS. Attendees need only have a working knowledge of multiple regression analyses. propensity score, sample, regression analysis, treatment effect, propensity score matching, logistic distribution, logistic regression, proc freq, proc step, potential outcomes, propensity modeling, confidence interval, causal inference, response variable source 13
60 JMP's Visualization Analysis of SESUG Conference Attendance from 2008- 2018 Melvin T. Alexander This presentation applies JMP's visualization tools to answer some of the key questions raised in SESUG 2018 Information and Visualization competition. Contestants used creative, clever SAS Visualization tools to describe the attendees of past conference years from 2008-2017. Although the competition was open to JMP users, there were no JMP submissions. The tools featured include: Displaying SESUG attendance by Industry for each Conference year with image logos from JMP's Expressions columns; Animating how state and industry representation of attendees changed over time using JMP's Local Data Filter; * Using Distribution Analysis of the Industries SESUG conference attendees came from so that committee planners can identify topics of interest for attendees. The data used in this presentation covered the same past conference years, including 2018 dataset, proc means source 20
61 Leveraging "UNIX Tools" (GNU) for Data Analysis David B. Horvath Life would be so much easier if everything was in a database or readily processed within SAS. But that is not the case. All too often we get data files (or have to send them) in various formats. This session discusses some of the tools available to help you figure out what the file looks like so you can pull it apart using those tools or your SAS. While the GNU version of these tools will be the focus, the skills learned apply to many different platforms (Microsoft's Bash under Windows 10, Cygwin under Microsoft Windows, MAC OSX, the Linux core of Android, commercial Linux - like Red Hat Enterprise, and commercial UNIX - like IBM's AIX or Sun/Oracle's Solaris). Of particular interest are 'head', 'tail', 'wc', 'awk', 'dd conv', and shells. A few of the differences between UNIX/Linux and Windows will also be discussed in case you ever have to deal with those environments in our heterogeneous environments output delivery system, record count, sample, red hat source 15
62 Like, Learn to Love SAS Like Louise S. Hadden How do I like SAS? Let me count the ways.... There are numerous instances where LIKE or LIKE statements can be used in SAS - and all of them are useful. This paper will walk through such uses of LIKE as: searches and joins with that smooth LIKE operator (and the NOT LIKE operator); the SOUNDS LIKE operator; using the LIKE condition to perform pattern-matching and create variables in PROC SQL; and PROC SQL CREATE TABLE LIKE proc sql, proc step, create table, where statement source 7
63 Macroception: Maximizing the Capacity of your Macro Variables Connor Cosenza SAS imposes a maximum character limit of 65,534 on macro variables. Running up against this limit can be frustrating and time-consuming. The author has run into this problem when using macro variables to search long lists of values or to dynamically generate code. This paper provides a program which solves this problem by partitioning the values to be encoded in a given macro variable, assigning those values to sub-macro variables, and encoding a parent macro variable with the names of the sub -macro variables. When the parent macro variable is called, all raw data values are decoded. This significantly increases the maximum number of characters which can be encoded into a single macro - specifically, this theoretical upper-limit increases from 65,534 to 623,883,680 characters macro variable, raw data, proc sql, macro loop source 8
64 Macros for Neural Network Modeling Ross Bettinger We have written a suite of SAS macros designed to facilitate the development of artificial neural net- work models. These macros perform tasks in the development sequence of data preprocessing, model- ing, assessing, and scoring. In the modeling phase, PROC NLP is used to find the optimum set of weights for a multilayer perceptron network architecture. The neural network that results from this process may be stored as Base SAS DATA STEP code for scoring new data. These macros may be used for tutorial pur- poses in revealing the background details of implementing multilayer perceptron neural networks. Keywords Assessment, Base SAS, Enterprise Miner, macro, modeling, multilayer perceptron, neural network, op- timization, preprocessing, PROC NLP, SEMMA methodology, scoring neural network, dataset, response variable, interval variable, proc step, missing value, data mining, sas base, network optimization, proc genmod, logistic distribution, macro definition, sample, binary variable, in=, ordinal variable, out=, estimate, txt, regression analysis, data step, macro variable, data science, likelihood function source 23
65 Make your Data shine with R-Shiny Pavan Vemuri(Sri Pavan Vemuri), Alkermes; Sri Pavan Vemuri Data visualization and analysis is vital to the Pharma/CRO industry. Real time data access can enhance and streamline the ease of information transfer. This Paper aims to provide an example and serve as a template for other applications by making Patient profiles data reactive. R and R-shiny are used to build the profiles data as a web service instead of static reports giving the ability to access/visualize data in real time adverse events, laboratory data source 13
66 Making Life Easier on the SAS End: Best Practices for Collecting Survey Data Collecting Survey An analysis-ready SAS dataset is the deliverable, the one and only thing the analysts are waiting for. It is the goal of any research project. Much effort goes into the collecting and cleaning of data before it is ready to be analyzed. Our research team has spent decades learning to design good data collection instruments, resulting in purposeful survey questions with practical response values. Whether the questionnaire is administered in person or collected via online software, it is important to begin with a clear and concise plan. Here we share our expertise and best practices to help research teams effectively design a plan from data collection to analysis ready datasets. Examples include using Qualtrics Research Suite to design surveys, gather data, and export tables. SAS 9.4 is used to create a functional dataset for further manipulation, investigation, and analysis dataset, sample, unique key, data validation rules, data cleaning source 11
67 Making Your SAS Results More Meaningful with Color Kirk Paul Lafler Color can help make your SAS results more meaningful. Instead of producing boring and ineffective results, users are able to enhance the appearance of their output, documents, reports, tables, charts, statistics, and spreadsheets to highlight and draw attention to important data elements, details, and issues, including using color in headings, subheadings, footers, minimum and maximum values, ranges, outliers, special conditions, and other elements. Color can be added to text, foreground, background, rows, columns, cells, summaries, totals, and traffic lighting scenarios. Topics include using color to results, documents, reports, tables, charts and spreadsheets can be enhanced with color, effectively add color to PDF, RTF, HTML, and EXCEL spreadsheet results using PROC PRINT, PROC FREQ, PROC REPORT, PROC TABULATE, and PROC SGPLOT and Output Delivery System (ODS) with s tyle bar chart, proc sgplot, proc step, histogram, proc sgpanel, excel, scatter plot, vertical bar chart, box plot, bubble plot, proc freq, series plot, proc report, data science, class variable, correlation, outlier source 20
68 Market Basket Analysis on Instacart Aravind Dhanabal In the process of online shopping, you have probably seen a section called "suggestions for you" or "customers who bought this item also bought" in which Market Basket Analysis plays an important role. Market Basket Analysis is a technique used by retailers to understand customer behavior while purchasing from their stores. Instacart is an e-commerce website that allows users to shop for groceries from a local grocery store online, and then sends an Instacart personal shopper to pick up and deliver the orders made by users the same day. These processes allow retailers to conduct analysis on purchase iterations by users but understanding the customer purchasing patterns and behaviors can become tedious and challenging. SAS Viya, Tableau, SAS Enterprise Miner and Python were used for the initial analysis and model creation. The datasets provided by Instacart had complete information of over 3 million grocery orders from more than 200,000 Instacart users. Both product data and customer data from Instacart includes 50,000 unique products, week and the time of purchase, different product aisle and departments. Understanding the data, dairy products, fruits and vegetables were purchased the most across all the departments and people tends to purchase and reorders 60% of their previous orders mostly on Sunday and Monday. In this paper, my goal is to examine two major sections. The first section focuses on descriptive analysis on the customer purchase patterns, items purchased together and units that are highly purchased from the store to facilitate reordering and maintaining adequate product stock. In the second section, my goal is to identify the clusters and subgroups of customers possessing similar purchase behavior and to visualize the data to provide productive recommendations which focus on improving the revenue and customer experience through segmentation and prediction models. This paper will enable Instacart to enhance the user experience by suggesting the next likely product to purchase to the customer during the order process. Further, this paper will outline a marketing strategy for Instacart and similar retailers including sending personalized communications to customers reminding them to order again, by highlighting the predicted products in those communications. association rules, market basket analysis, proc sql, create table, regression analysis, proc means, proc step source 16
69 Medians/quartiles are shown for continuous data and counts/percentages are shown for categorical data Martha Wetzel Academic papers in many fields include a table summarizing the demographic characteristics of the sample and/or treatment groups-the ubiquitous Table 1. These tables often require an overall summary, as well as a between-group comparison. Furthermore, these tables summarize mixed data types, including both continuous and categorical data, requiring different statistical tests and SAS procedures. Without automation, analysts can spend hours per project calculating and arranging the results into the correct format, often having to redo the entire table when an investigator realizes there is a data error. The %Table1nDone macro was created to reduce analyst time spent on Table 1s. This paper presents a new Table 1 macro that calculates summary statics overall and by group, performs the corresponding statistical testing as required, and produces an RTF file containing the final summary (i.e., the Table 1). The %Table1nDone macro expands on existing Table 1 macros by 1) streamlining variable input via an EXCEL file, 2) creating a table with both overall and by-group summary data, 3) producing an RTF table in the format expected by many journals, and 4) saving permanent data sets of key information for analyst review. Logic is built into the macro to select the appropriate statistical test based on user-supplied factors such as variable type (e.g., categorical, continuous) and data factors (e.g., number of comparison groups, cell-size counts, distributional assumptions). Publication-ready output contains results formatted as "N (%)", "mean (standard deviation)", or "median (quartile 1, quartile 3)", depending on the type of data. In addition, the macro produces a report for the analyst to review for unexpected values in the data. This paper provides an overview of the macro's capabilities, a description of the use and required parameters, an explanation of the statistical tests included, examples of output, and links to the macro code. interval variable, ods rtf, univariate analysis, excel, hypothesis testing, dataset, label statement, proc means, nominal variable, sample, normality test source 5
70 Ms. Independence (from the SAS Format Library) Nancy McGarry,
Louise S. Hadden
SAS practitioners are frequently called up to format variables in SAS datasets they have received or created for various use cases. Analysts and other end users desire the convenient categorization, transformative nature, and attractive appearance that SAS formats can lend to variables for reports and further analytic and data set construction purposes. SAS formats can be created in SAS work space, and can be stored permanently in SAS catalogs, a specially purposed container for SAS files. SAS formats created in work space are ephemeral, and only exist for the duration of a SAS session. SAS formats stored in a SAS catalog are notoriously difficult to transfer across platforms, SAS versions and "bit" versions (32 bit vs 64 bit). Recipients of SAS data sets with "embedded formats" and/or SAS catalogs originating from incompatible systems find themselves in a quandary - SAS reports errors when it can't find a compatible catalog (IF a catalog accompanies a data set) for formats permanently associated with variables in a SAS data set. SAS catalogs are also very difficult to update, document and manipulate. This paper and presentation / poster propose straightforward SAS solutions for the creation, transfer and use of SAS formats. proc step, proc format, dataset, format statement, catalog, proc catalog source 6
71 Need to develop your employees' SAS Skills? A step by step framework Smith, Kelly D., Central Piedmont Community College Kelly D. Smith SAS professionals come from a variety of educational and work backgrounds, requiring supervisors to craft personalized development plans for their employees. In addition, SAS runs on multiple platforms and offers multiple options to pull in data, to create and modify data, to perform data analysis, and to output and present the data. To top it all off, SAS offers numerous options for learning. The complexity of providing guidance to new and seasoned SAS professionals can seem overwhelming, even for experienced supervisors. In this paper, a framework for crafting individualized development plans for SAS professionals is offered. The framework is grounded on research based principles and incorporates the concepts of andragogy, heutagogy, and formal/informal learning. The diverse learning options available for SAS are explored and suggestions for matching learner goals and learning options are provided. To conclude, a dozen development tips and a list of useful websites are presented sas function, stage 1 source 9
72 NOBS for Noobs David B. Horvath This mini-paper (and the resulting short session) is a focused discussion of the NOBS (number of observations) option on the SET statement. This includes one "gotcha" that I've run into with where clauses: NOBS is set before WHERE processing. If you have a reason to know the number of observations after the WHERE clause, another DATA STEP is needed where statement, set statement, proc step source 4
73 Old But Not Obsolete: Undocumented Procedures for SAS University Edition Barbara B. Okerson,
Independent Contractor
PROC Spell? PROC Neighbor? PROC Browse? These and other SAS procedures have disappeared from the manuals, mainly because their functionality was picked up by newer, more robust, procedures and features of the SAS system. These procedures have remained available in standard SAS installations. But did you know they are also available for the University Edition? Since sometimes, simpler can be better, this paper will use the SAS University Edition to look at these and other available SAS procedures not in the current documentation and address situations where they can be useful today. Examples were developed with the SAS University Edition. Examples are not version or platform specific and can be adapted by all levels of SAS users proc step, proc reg, dataset, proc delete, prior probability, proc printto, txt, sas output source 11
74 One Click to Analysis Results Metadata Srivathsa Ravikiran,
Priscilla Gathoni
Analysis Results Metadata (ARM) is a plugin to ADaM Define.xml which provides information on Analysis data used to generate efficacy, safety and clinical study results. It establishes one to one relationship between the analysis result, ADaM data and variables used to perform the analysis. ARM plug-in benefits the reviewer by providing clear outline of the critical analysis displays, details on the analysis performed and methods used. Due to these added benefits of the ARM, in recent days there have been increased interest from regulatory agencies to submit ARM along with the ADaM define.xml. Creation of ARM will soon become a necessity for the regulatory submissions. Pinnacle21 Community version is a popular tool to generate the define.xml, however it does not have the ARM creation feature in the current version (v2.2.0). Due to this limitation and increasing interest to include the ARM in ADaM define.xml by the regulatory authorities, there is an unmet need for an alternative approach to generate the ARM metadata for submissions. This paper will present an approach using SAS to generate the ARM which can be integrated to an existing ADaM define.xml. The Resulting Integrated define.xml (ADaM define.xml + ARM) passes all compliance checks using the Pinnacle21 validator tool and is compliant for all regulatory submissions. sample, clinical trial, regulatory submission, excel, adam dataset, cdisc source 18
75 Pooled Database Loader (PDL) From Document to Code to Deliverable: a streamlined process of combining documentation and SAS code to produce a pooled database David M. Hartman The combining of 2 or more studies into a single database is very difficult and labor intensive. While it is virtually impossible to eliminate human intervention, a process has been created where documentation containing everything from what studies are to be pooled to the mapping rules that are to be used to convert data from multiple studies into a common structure. This information (in the form of spreadsheets) is then executed via a tool called PDL (Pooled Database Loader) to produce the pooled database. This process is completely data independent and can pool data from multiple studies together regardless of the structure of the "original" data. The closer the study level data is to the CDISC standard structure, the more the mapping of a study will be created at the push of the button. The purpose of this paper is to illustrate how a user of PDL goes from individual study data to a final pooled dataset. Included in this paper will be examples of the information contained in the spreadsheets as well as the various calls to PDL that will create the pooled datasets. dataset, libname statement source 14
76 Prediction of College Admission Trend Predictive Analytics 2019 Final Paper Yash Prakash The number of applications received by the universities and higher educational institutions is increasing every year. Out of these huge number of applications, limited number of applicants are provided with offer of admission and out of it, only few applicants accept the offer. Therefore, it is very important for the universities and institutions to offer the admission only to the prospective applicants who are more likely to join their universities and institutions. A prospective student can be identified by finding interactions of applicants with the college over phone, direct mails, e-mails and other communication channels. This paper uses the power of predictive analytics to identify the factors influencing application submission by the applicants and build operationalized models to predict the application submission based on students' communication with the university via e-mail. The data used in this research has been provided by Marketing and Student Communication Center, Oklahoma State University. The dataset contains all the email communications date wise between the university and the students of the past three years starting from application submission to confirmed admission. The data set also contains the applicants' demographic information such as Active City, Region, Postal code, Gender, Race, First generation, etc. Also, the email communication between the student and the University are classified into categories such as Prospects, Inquirers, Applicants, Admitted, and Confirmed. The data is prepared and analyzed using different SAS tools like SAS Enterprise Guide, SAS Viya and SAS Enterprise Miner. Variables such as Gender, Race, Inquiry Date, Application Date, Percent Clicked, Percent Opened and Application Submission Date are found to be the most important factors affecting the admission decision of the candidate. proc means, correlation source 8
77 Probability Plots for Exploratory Data Analysis Dennis J. Beal,
Oak Ridge
Probability plots are used in statistical analysis to check distributional assumptions, visually check for potential outliers, and see the range, median, and variability of a data set. Probability plots are an important statistical tool to use for exploratory data analysis. This paper shows SAS code that generates normal and lognormal probability plots using the Output Delivery System (ODS) on a real environmental data set using PROC UNIVARIATE and interprets the results . This paper is for beginning or intermediate SAS users of Base SAS and SAS/GRAPH. Key words: normal probability plots, lognormal probability plots, PROC UNIVARIATE proc univariate, proc step, regression analysis, proc reg, outlier, exploratory data analysis, median, numeric variable, standard deviation, proc means, data science, data analyst, proc gplot source 8
78 PROC IMPORT and more. Or: when PROC IMPORT just doesn't do the job David B. Horvath PROC IMPORT comes in handy when quickly trying to load a CSV or similar file. But it does have limitations. Unfortunately, I've run into those limitations and had to work around them. This session will discuss the original CSV specification (early 1980's), how Microsoft EXCEL violates that specification, how SAS PROC IMPORT does not follow that specification, and the issues that can result. Simple UNIX tools will be described that can be used to ensure that data hilarities do not occur due to CSV issues. Recommendations will be made to get around some of PROC IMPORT limitations (like field naming, data type determination, limitation in number of fields, separator in data). CSV, TAB, and DLM types will be discussed proc import, proc step, dataset, excel, macro variable source 8
79 PROC SQL for PROC SUMMARY Stalwarts Christianna S. Williams One of the fascinating features of SAS is that the software often provides multiple ways to accomplish the same task. A perfect example of this is the aggregation and summarization of data across multiple rows or BY groups of interest. These groupings can be study participants, time periods, geographical areas, or really just about any type of discrete classification that one desires. While many SAS programmers may be accustomed to accomplishing these aggregation tasks with PROC SUMMARY (or equivalently, PROC MEANS), PROC SQL can also do a b ang-up job of aggregation - often with less code and fewer steps. This step-by-step paper explains how to use PROC SQL for a variety of summarization and aggregation tasks. It uses a series of concrete, task -oriented examples to do so. For each example, both the PROC SUMMARY method and the PROC SQL method will be presented, along with discussion of pros and cons of each approach proc step, proc means, proc sql, group by, missing value, create table, order by, class variable, proc sort, sysdate9, sas programmer, by group processing, raw data, proc freq source 18
80 Quick, Call the "FUZZ": Using Fuzzy Logic Richann J. Watson SAS practitioners are frequently called upon to do a comparison of data between two different data sets and find that the values in synonymous fields do not line up exactly. A second quandary occurs when there is one data source to search for particular values, but those values are contained in character fields in which the values can be represented in myriad different ways. This paper discusses robust, if not warm and fuzzy, techniques for comparing data between, and selecting data in, SAS data sets in not so ideal conditions proc step, index, where statement, decimal, fuzz, if-then-else, prxmatch, proc fcmp, upcase function, sample, character variable source 30
81 Reducing the Space Requirements of SAS Data Sets without Sacrificing any Variables or Observations Stephen B. Sloan The efficient use of space can be very important when working with large SAS data sets, many of which have millions of observations and hundreds of variables. We are often constrained to fit the data sets into a fixed amount of available space. Many SAS data sets are created by importing EXCEL or Oracle data sets or delimited text files into SAS and the default length of the variables in the SAS data sets can be much larger than necessary. When the data sets don't fit into the available space, we sometimes need to make choices about which variables and observations to keep, which files to zip, and which data sets to delete and recreate later. There are things that we can do to make the SAS data sets more compact and thus use our space more efficiently. These things can be done in a way that allows us to keep all the desired data sets without sacrificing any variables or observations. SAS has compression algorithms that can be used to shrink the space of the entire data set. In addition, there are tests that we can run that allow us to shrink the length of different variables and evaluate whether they are more efficiently stored as numeric or as character variables. These techniques often save a significant amount of space; sometimes as much as 90% of the original space is recouped. We can use macros so that data sets with large numbers of variables can have their space reduced by applying the above tests to all the variables in an automated fashion. character variable, numeric variable, dataset, proc means, proc step, macro loop, %if-%then-%else source 7
82 RegExing in SAS for Pattern Matching and Replacement Pratap Singh Kunwar SAS has numerous character functions which are very useful for manipulating character fields, but knowing Perl Regular Expressions (RegEx) will help anyone implement complex pattern matching and search-and-replace operations in their programs. Moreover, this skill can be easily portable to other popular languages such as Perl, Python, JavaScript, PHP and more. This presentation will cover the basics of character classes and metacharacters, using them to build regular expressions in simple examples. These samples range from finding simple literals to finding complex string patterns and replacing them, demonstrating that regular expressions are powerful, convenient and easily implemented character variable, character functions source 33
83 Regression Models for Count Data Jason Brinkley Outcomes in the form of counts are becoming an increasingly popular metric in a wide variety of fields. For example, studying the number of hospital, emergency room, or in-patient doctor's office visits has been a major focal point for many recent health studies. Many investigators want to know the impact of many different variables on these counts and help describe ways in which interventions or therapies might bring those numbers down. Traditional least squares regression was the primary mechanism for studying this type of data for decades. However, alternative methods were developed some time ago that are far superior for dealing with this type of data. The focus of this paper is to illustrate how count regression models can outperform traditional methods while utilizing the data in a more appropriate manner. Poisson Regression and Negative Binomial Regression are popular techniques when the data are overdispersed and using Zero-Inflated techniques for data with many more zeroes than is expected under traditional count regression models. These examples are applied to studies with real data. regression analysis, poisson distribution, binomial distribution, poisson regression, negative binomial distribution, negative binomial regression, proc genmod, normal distribution, standard deviation, least squares mean source 8
84 Running Parts of a SAS Program while Preserving the Entire Program Stephen B. Sloan The Challenge: We have long SAS programs that accomplish a number of different objectives. We often only want to run parts of the programs while preserving the entire programs for documentation or future use. Some of the reasons for selectively running parts of a program are: Part of it has run already and the program timed out or encountered an unexpected error. It takes a long time to run so we don't want to re-run the parts that ran successfully. We don't want to recreate data sets that were already created. This can take a considerable amount of time and resources, and can also occupy additional space while the data sets are being created. We only need some of the results from the program currently, but we want to preserve the entire program. We want to test new scenarios that only require subsets of the program proc step, run, macro variable, sas enterprise guide source 4
85 SAS Formats Top Ten Christianna S. Williams SAS formats can be used in so many different ways! Even the most basic SAS format use -modifying the way a SAS data value is displayed without changing the underlying data value - holds a variety of nifty tricks, such as nesting formats, formats that affect various style attributes and conditional formatting. Add in picture formats, multi-label formats, using formats for data cleaning, and formats for joins and table look-ups, and we have quite a bag of tricks for the humble SAS format and PROC FORMAT , which is used to generate them. This paper describes two handfuls of very useful programming techniques that employ SAS formats. While this paper w ill 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, format statement, missing value, char., class variable, proc catalog, libname statement, ods rtf, user-defined format, data cleaning source 17
86 SAS PROC IMPORT Troubleshooting Guide Imelda C. Go,
Wendi L. Wright
Although the task often appears simple, creating data sets from text files with PROC IMPORT can be tricky. This paper takes you through a progression of considerations and complications due to the way PROC IMPORT creates data sets. The discussion focuses on potential problems caused by different factors and, in part, by relying on SAS to define variable attributes; and how to avoid or solve such problems. character variable, proc import, proc step, numeric variable, dataset, error message, proc contents, set statement, input statement, txt, sample, sas enterprise guide, length statement source 12
87 Scatterplots: Basics, Enhancements, Problems, and Solutions Peter L. Flom The scatter plot is a basic tool for presenting information on two continuous variables. While the basic plot is good in many situations, enhancements can increase its utility. I also go over tools to deal with the problem of overplotting. SAS, any operating system or version, appropriate for all levels. scatter plot, regression analysis, box plot source 13
88 Should I Wear Pants? And Where Should I Travel in the Portuguese Expanse? Automating Business Rules and Decision Rules Through Reusable Decision Table Data Structures that Leverage SAS Arrays Troy Martin Hughes,
Louise S. Hadden
Decision tables operationalize one or more contingencies and the respective actions that should be taken when contingencies are true. Decision tables capture conditional logic in dynamic control tables rather than hardcoded programs, facilitating maintenance and modification of the business rules and decision rules they contain-without the necessity to modify the underlying code (that interprets and operationalizes the decision tables). This text introduces a flexible, data-driven SAS macro that ingests decision tables-maintained as comma-separated values (CSV) files-into SAS to dynamically write conditional logic statements that can subsequently be applied to SAS data sets. This metaprogramming technique relies on SAS temporary arrays that can accommodate limitless contingency groups and contingencies of any content. To illustrate the extreme adaptability and reusability of the software solution, several decision tables are demonstrated, including those that separately answer the questions Should I wear pants and Where should I travel in the Portuguese expanse? The DECISION_TABLE SAS macro is included and is adapted from the author's text: SAS Data-Driven Development: From Abstract Design to Dynamic Functionality. if-then-else, macro variable, array, predictor variable source 13
89 Smoothing 3D mortality rates due to drug overdose and displaying death patterns with SAS/JMP software Nancy Han,
Rong Wei
Many data presentation methods used to examine the trending behavior of drug overdose death rates by age over time rely on two-dimensional line graphs with age defined as a categorical variable. With the use of SAS/JMP procedures, visual graphic methods can be used to explore patterns and relationships between age and year of death on death rates with three dimensional (3D) plots. The drug overdose death rates were calculated using mortality data from the National Vital Statistics System public use multiple cause-of-death files. The SAS/JMP 3D plot software displays the changing death rates by age over the trending period when age is treated as a continuous variable rather than a grouped variable. Analysis is further enhanced, by the capability of the software to view the graphics from different angles. In addition to 3D data plots, locally smoothed 3D plots can be produced by SAS procedures prior to JMP plotting. SAS/TSPPINE is used to produce the examples. Keywords: SAS, JMP, 3D nominal variable, confidence interval source 10
90 Summarizing some conventional methods to classify a binary target Yida Bao,
Philippe Gaillard
An average of about thousands of sports articles are published online every day. However, the quality of article varies, and a good article is always easy to be neglected. To elicit readers' interest and give user a better experience, World Wide Web hire experienced editors to manually (i.e., reading) classify articles as "Subjective" or "Objective". This classification procedure is tardiness, which may substantially hamper the efficiency of the website. We propose an automated way of classifying the sports articles, using several conventional methods to classify the sports articles and compare the misclassification error rate of each method. Each article has its own syntactic or semantic features, including parts of speech-grams, word level sentiment, and phrase-level sentiment. During our first step of classification, we use the SAS procedure PROC HPCLUS to explore 1000 sports article's cluster information based on these features discriminant analysis, proc hpsplit, neural network, proc hpforest, covariance, data mining, proc step, unsupervised learning, quadratic discriminant analysis, sample, machine learning, logistic distribution, training set, linear discriminant analysis, logistic regression, proc discrim, proc freq, regression analysis, proc princomp source 10
91 Tales from the Help Desk: Solutions to Common Macro and Macro Variable Issues Bruce F. Gilsen In 35 years as a SAS consultant at the Federal Reserve Board, I have seen some issues related to common SAS tasks surface again and again. This paper collects the most common simple issues related to macros and macro variables from my previous "Tales from the Help Desk" papers, and provides code to explain and resolve them. The following issues are reviewed: 1. Using an array definition in multiple DATA steps. 2. Using a DATALINES statement in a macro. 3. Surrounding a macro variable with single quotes. 4. Using comments in a macro. 5. Creating a macro variable and using it in the same DATA STEP. 6. Having an overlapping macro variable in a main macro and a called macro. 7. Using %SYSFUNC to execute DATA STEP functions in a macro. 8. Using the macro IN operator to check in a macro if a value equals one of the values in a list. In the context of discussing these issues, the paper provides details about SAS processing that can help users employ SAS more effectively. See the references for seven previous papers that contain additional common issues. macro variable, macro function, call symput, sas log, &variable, macro definition, macro loop, do loop, put statement, macro put, proc step, %if-%then-%else, macro facility, numeric functions, macro quoting function, date variable, proc sql source 14
92 The Battle of the Titans (Part II): PROC TABULATE versus PROC REPORT Kirk Paul Lafler,
Ben Cochran,
Joshua M. Horstman,
Ray Pass
Should I use PROC REPORT or PROC TABULATE to produce that report? Which one will give me the control and flexibility to produce the report exactly the way I want it to look? Which one is easier to use? Which one is more powerful? WHICH ONE IS BETTER? If you have these and other questions about the pros and cons of the REPORT and TABULATE procedures, this presentation is for you. We will discuss, using real-life report scenarios, the strengths (and even a few weaknesses) of the two most powerful reporting procedures in SAS (as we see it). We will provide you with the wisdom you need to make that sometimes difficult decision about which procedure to use to get the report you really want and need proc step, proc report, proc tabulate, excel, proc means source 15
93 The Best of Both Worlds: Forecasting Using Time Series with Inputs David A. Dickey Regression and time series are both good tools for forecasting data taken over time. It stands to reason that combining the good features of both would give a better forecast. than either one alone. The AUTOREG procedure in SAS accomplishes this in a user friendly way. There is a nice degree of automation including an automatic identification of the autocorrelation structure within the broad class of stationary autoregressive structures. This is often a good first step or possibly even an acceptable final model. While the autoregressive class is large, there are more structures in the broader ARIMA class available in the ARIMA procedure. After a brief introduction to the ideas underlying the procedures, the talk will focus on examples. The two procedures will be compared and advantages of each will be illustrated. Anyone familiar with the REG, GLM or MIXED procedure will find it easy to transition to PROC AUTOREG. A theme will be the problems induced by using standard ordinary least squares methods when the residuals are correlated and how to overcome them through the use of the AUTOREG or ARIMA procedure. proc calis, regression analysis, proc step, moving average, proc autoreg, estimate, outlier, correlation, binary variable, time series analysis, proc arima, proc reg, proc genmod, autoregressive model, predictor variable, unit root, covariance, response variable, residual, numeric functions, proc glm, maximum likelihood estimation, likelihood function source 19
94 The Gender Gap in the Education System Geoffrey Dean Despite our society's best efforts to close the education gap in gender, the data indicates that this has not yet been achieved. This paper will investigate the potential causes for the phenomena we see in our education system. This analysis of the gender gap in education will use SAS in conjunction with open source software to analyze data from a variety of sources. These sources include standardized tests such as the College Board's Advanced Placement exams and results from the ACT, school district reports from the North Carolina Department of Public Instruction, among others. These various data sources will be analyzed, compared, and visualized. The visualizations will aim to confirm or refute conventional wisdom, reveal underlying patterns, and increase awareness of both past and current conditions in the educational system. bar chart, line chart, outlier, proc step, by group processing, proc sgplot, output delivery system source 14
95 The Knight's Tour in 3-Dimensional Chess John R. Gerlach,
Scott M. Gerlach
Three dimensional chess typically uses three chess boards such that a chess piece can traverse the several boards according to the rules for that piece. For example, the knight can remain on the board where it resides or move to another successive board, then move in a perpendicular fashion. In three- dimensional chess, the Knight's Tour is a sequence of moves on multiple 8x8 chess boards such that the knight visits each square only once. Thus, for three boards, there would be 192 squares visited only once. The paper, The Knight's Tour in Chess - Implementing a Heuristic Solution (Gerlach 2015), explains a SAS solution for finding such tours on a single chess board, starting from any square. This paper discusses several scenarios and SAS solutions for generating the Knight's Tour using multiple chess boards macro definition, macro variable source 17
96 The Power of PROC SQL's SELECT DISTINCT INTO HoaiNam Tran Many SAS programmers are familiar with PROC SQL procedures that join database tables or SAS datasets. However, they may not be familiar with using PROC SQL combined with SAS data steps and procedures to improve programming efficiency. Specifically, using the DISTINCT and SEPARATED BY arguments and SELECT and INTO clauses in PROC SQL as well as the macro SCAN function, DO loop, and array in SAS data steps and PROC REPORT procedure can provide programming flexibility, simplify SAS code, and minimize typographical errors. In this paper, we provide examples that illustrate how to use these specific PROC SQL arguments and clauses and SAS procedures to create automated data- driven programs that can be readily tailored to different applications proc sql, macro variable, proc step, do loop, flag variable, automatic macro variable, data step, macro function, proc report, character functions, array, proc freq source 9
97 The Thorn in My Side!! Logistic Regression Continuous Variables that Violate the Assumption of Linearity on the Log-odds (Logit) Scale: How to Identify and What to Do? Janet M. Grubber,
Cynthia J. Coffman
I find myself crossing my fingers when I check continuous variables that are to be included in binary logistic regression models for linearity on the log-odds scale …."Please, please…let them be linear"! Recently, my pleading did not work. Though using the Box-Tidwell method for checking for linearity seems to have fallen out of favor, I used it anyway. Based on Box-Tidwell results, one of the independent continuous variables of great interest to my study team appeared to be linearly associated with the log-odds of the dependent variable; however, it was unclear whether this classification was accurate. Many other independent continuous variables to be used in the model were, based on Box-Tidwell results, not linearly associated with the log-odds of the dependent variable - but - what good was the knowledge of lack of linearity when I needed to understand the shape of the non-linearity to appropriately use the variables in a model and understand their associations with the dependent variable? This talk works through the sequence of steps that I ultimately used via SAS software to understand the nature of (what turned out to be!) the non-linear relationship of the independent variable of interest with the binary dependent variable in a logistic regression model: 1. How to identify lack of linearity on the log-odds scale (Box-Tidwell, use of %PSPLINET macro (Frank Harrell) to plot the association, use of restricted cubic splines in PROC LOGISTIC procedure) 2. How to handle the continuous variable in the logistic regression model once the lack of linearity is detected (creation of multiple "dummy-like" continuous variables to represent the independent variable of interest, use of restricted cubic splines in PROC LOGISTIC procedure) interval variable, response variable, logistic regression, predictor variable, logistic distribution, regression analysis, restricted cubic spline, odds ratio, confidence interval, proc logistic, interaction effect, proc step source 13
98 Three Ways to Transform Your Code into PROC SQL Charity Wilson,
Cobb EMC
Does learning PROC SQL seem overwhelming? Or maybe you feel that it is not necessary? But did you know that PROC SQL is a powerful tool used to manipulate data in a dataset all in one procedure? This paper will introduce PROC SQL and demonstrate how to easily transform common DATA and PROC Steps you already use into PROC SQL code. Why would you want to use PROC SQL instead of DATA and PROC Steps you may ask? You can accomplish multiple tasks in one SELECT statement, easily join and append datasets, automatically print results w ithout the use of a PROC PRINT and utilize a time saving secret weapon - no presorting your dataset. Topics covered are great for novice SAS users to legacy DATA STEP programmers proc sql, proc step, order by, if-then-else source 8
99 Time Series Forecasting using PROC MCMC SESUG 2019 Murali Sastry,
Tyler Hicks
Forecasting variables of interest in time series analysis can be quite intriguing. It can also be challenging to identify various factors that predict time series data patterns. For example, time series forecasting has been effectively applied in scheduling nurses in hospital emergency rooms, where the number of patients routinely fluctuates throughout the day based on the time of month and time of year. Similarly, time series forecasting has been helpful in forecasting credit card use by cardholders based on their past card usage history. The tricky part in modeling time series data is to combine variables such as seasonality, trend, and regressor components in one model to develop an accurate forecast. Whereas SAS/STAT PROC ARIMA (Autoregressive Integrated Moving Average Procedure) offers SAS users a classical approach to estimating models for time series data with autoregressive, differencing, and moving average structures, it is also possible for SAS users to fit these same models to time series data using Bayesian approach with SAS/STAT PROC MCMC (Markov Chain Monte Carlo procedure). The intent of this paper is to provide SAS users with example code and demonstrations on how to use PROC MCMC to estimate models suitable in time series analysis. time series analysis, sample, posterior probability, proc step, markov chain, sample size, time series data, response variable, likelihood function, proc arima, monte carlo, prior probability, proc sgplot, seasonality source 16
100 Twenty Ways to Run Your SAS Program Faster and Use Less Space Stephen B. Sloan When running SAS programs that use large amounts of data or have complicated algorithms we often are frustrated by the amount of time it takes for the programs to run and by the large amount of space required for the program to run to completion. Even experienced SAS programmers sometimes run into this situation, perhaps through the need to produce results quickly, through a change in the data source, through inheriting someone else's programs, or for some other reason. This paper outlines twenty techniques that can reduce the time and space required for a program without requiring an extended period of time for the modifications proc step, dataset, proc sort, numeric variable, by group processing, proc means, character variable source 4
101 UCF's SDES Dashboard: A Collection of Maintenance-Free SAS Web Report Studio Reports Carlos Piemonti At the University of Central Florida (UCF), Student Development and Enrollment Services (SDES) combined efforts with Institutional Knowledge Management (IKM), which is the official source of data at UCF, to venture in a partnership to bring to life an electronic version of the SDES Dashboard at UCF. A collection of eleven reports was created using SAS Web Report Studio. It just takes a few minutes to refresh, for an academic year cycle, 67 sections with more than 400 indicators in those eleven reports. Challenges in the design, implementation, usage, and performance are presented lookup, fact table source 8
102 UNIX X Command Tips and Tricks David B. Horvath SAS provides the ability to execute operating system level commands from within your SAS code - generically known as the "X Command". This session explores the various commands, the advantages and disadvantages of each, and their alternatives. The focus is on UNIX/Linux but much of the same applies to Windows as well. Under SAS EG, any issued commands execute on the SAS engine, not necessarily on the PC. - X - %sysexec - Call system - Systask command - FILENAME pipe - &SYSRC - Waitfor Alternatives will also be addressed - how to handle when NOXCMD is the default for your installation, saving results, and error checking. macro variable, sysrc, macro put, data step, filename statement source 9
103 Use Callable VBS and VBA Code Files to Extend the Power of SAS to Format Microsoft Excel Worksheets William E. Benjamin Jr. Did you ever wish you could use the power of SAS to take control of Microsoft EXCEL and make EXCEL do what you wanted when you wanted? Well, one letter is the key to doing just that, the letter "X", as in the SAS "X" command that opens the door to all operating system commands from SAS. The Microsoft Windows operating system comes with a facility to write a series of commands called scripts. These scripts have the ability to open and reach into the internals of EXCEL. Scripts can load, execute, and remove Visual Basic for Applications (VBA) macro code and control EXCEL. This level of control enables you to make EXCEL do what you want, without leaving any traces of a macro behind. This is Power excel, error message source 19
104 User-Defined Functions that Concatenate Statistics for Standard Reporting Martha Wetzel Statisticians often need to report results such as means/confidence intervals, medians/quartiles, and counts/percentages in a format that differs substantially from the data sets produced by SAS. Academic journals typically expect that tables display related results (e.g., the confidence interval associated with a mean) in a single cell with parentheses around select statistics. However, SAS procedures output data sets containing each statistic in a separate column. As a result, the statistician must either copy and paste results, which introduces an opportunity for error, or spend time writing lengthy concatenation statements. Without proper formatting, concatenation results in dropped trailing zeros, requiring additional manual changes. In order to increase efficiency, custom functions can be used to combine statistics into a character string following a standard pattern. To that end, four custom functions built with SAS Macro language are provided here: 1.MEANCI: Returns a concatenated variable of mean and confidence interval in the format "mean (lower confidence level, upper confidence level)" 2. MEANSTD: Returns a concatenated variable of mean and standard deviation in the format "mean (standard deviation)" 3. MEDQ: Returns a concatenated variable of medians and quartiles in the format "median (Q1, Q3)" 4. NPCT: Returns a concatenated variable of counts and percentages in the format "count (percent %)" macro facility, confidence level, proc step, confidence interval, standard deviation, macro definition, proc univariate source 6
105 User-Defined Multithreading with the SAS DS2 Procedure: Performance Testing DS2 Against Functionally Equivalent DATA Steps Troy Martin Hughes The DATA STEP 2 (DS2) procedure affords the first opportunity for developers to build custom, multithreaded processes in Base SAS. Multithreaded processing debuted in SAS 9, when built-in procedures such as SORT, SQL, and MEANS were threaded to reduce runtime. Despite this advancement, and in contrast with languages such as Java and Python, SAS 9 still did not provide developers the ability to create custom, multithreaded processes. This limitation was overcome in SAS 9.4 with the introduction of the DS2 procedure-a threaded, object-oriented version of the DATA STEP. However, because DS2 relies on methods and packages (neither of which have been previously available in Base SAS), both DS2 instruction and literature has predominantly fixated on these object-oriented programming (OOP) aspects of the language rather than DS2 multithreading. To complicate the adoption of DS2 multithreading, one of the most ubiquitous examples of "multithreading" promulgated throughout SAS documentation and literature unfortunately fails to show any performance advantages in using DS2 over previous single-threaded methods-so many would-be DS2 developers may have cautiously dipped their toes in the multithreaded waters and, horrified with their own performance testing results from these published examples, quickly retreated back to the safer DATA STEP land. This text explores DS2 multithreading and demonstrates performance testing between DS2 procedures and functionally equivalent DATA steps and SAS procedures. cpu time, if-then-else, proc freq, automatic variable source 25
106 Using Heat Map or GTILE: Does Size Matter in Your Graphics? Devi Sekar,
Keith J. Brown
With SAS 9.2 and beyond, ODS Graphics brings in a new way of generating high quality graphs. Many users still find themselves at the crossroads, trying to decide what path to follow - the traditional SAS/GRAPH or ODS Graphics. Both can produce most of the common types of graphs, such as scatter plots, regression plots, box plots, line graphs, bar charts, and histograms. In this paper we will share examples to generate a heat map using SGPLOT in ODS Graphics and a GTILE graph with SAS/GRAPH and discuss the advantages of each. With heat maps, you can display patterns in the data for a chosen response variable for one-dimensional data (in a map) or two-dimensional data (in a table or graph). Heat maps make tables and graphs easier to interpret, by shading the background color based on the frequency of observations in each cell of the graph or table. Unique to GTILE, the response values are shown by both color gradient and area heatmap, graph template language, proc sgplot source 15
107 Using PROC FCMP to Implement Anomaly Detection Method Tsung-Hsun Tsai The essential purpose of PROC FCMP, the SAS Function Compiler procedure, is to allow the creation of user defined functions or CALL routines for DATA steps or SAS procedures. Those functions can also be shared with other SAS programmers to facilitate code reuse and increase productivity. For advanced users, it can serve as a wrapper function for PROC PROTO to enable incorporating C language structures, types, and functions into SAS. In addition, for users who do not have access to SAS/IML, PROC FCMP also provides CALL routines for performing typical matrix operations, such as multiplication, transpose, and inverse. In this paper, we use a simple anomaly detection method for screening field test items as an example to illustrate the use of PROC FCMP and its capability of performing matrix operations. In testing service organizations, evaluating field test items in the posterior human review is an elaborate inspection process during the test development proc fcmp, proc step, normal distribution, test set, outlier, data cleaning, training set source 6
108 Using PROC TABULATE and ODS Style Options to Make Really Great Tables Wendi L. Wright We start with an introduction to PROC TABULATE, looking at the basic syntax, and then building on this syntax by usin g examples. Examples will show how to produce one -, two-, and three -dimensional tables using the TABLE statement. More examples cover how to choose statistics for the table, labeling variables and statistics, how to add totals and subtotals, working with p ercents and missing data, and how to clean up the table using options. A look at the three ways you can use the PRELOADFMT option is also covered. Next the ways to use the ODS S TYLE= option in PROC TABULATE are covered. This option helps to customize the tables and improve their attractiveness. This option is very versatile and, depending on where the option is used, can justify cells or row and column headings, change colors for both the foreground and background of the table, modify lines and borders, co ntrolling cell width, add a flyover text box in ODS HTML, or add GIF figures to the row or column headings proc tabulate, proc step, class variable, proc format, proc means, missing value source 19
109 Using SAS Hash and Hiter Objects to Compute the Ability Levels that Correspond to the Rasch Model's Response Probabilities Imelda C. Go This paper illustrates how to use hash and hiter objects to determine the ability level that corresponds to an item's particular response probability (RP) under the Rasch Model. As an example, the Rasch mod el's RP50 (i.e., RP of 0.50) is identical to the item's difficulty parameter. This paper does not provide details of hash and hiter object basics, but papers by Paul Dorfman and other authors on the topic are highly recommended. Let us suppose you have a data set named sample with item sample, do loop, hash table source 4
110 Using SAS to examine peripheral intravenous access using ultrasound guided Abbas S. Tavakoli,
Courtney Prince,
Stephanie Burgess
Patients with difficult access usually undergo a central line or peripheral inserted central catheter (PICC) placement. Central venous access is more invasive, time consuming and prone to serious complications. Preventing complications related to central lines is an ongoing goal for healthcare providers, insurers, regulators and patient advocates. Establishing peripheral intravenous (PIV) access is a pivotal step in providing care for patients in hospital settings. This study analyzed data from a convenient sample of 70 of adult patient being treated in one hospital in South Carolina. These patients were identified as having difficult venous access by one of the nurses. After two failed attempts by nurses a consult requesting the vascular access team for this study. Five nurses are participating in the traditional insertion group and USGPIV group. Nurses are collecting randomized data and information using traditional coin flip-selections during a 31-day trial. Nurses participating in the project will complete online training modules, followed by didactic and hands-on training. Data is generated for the quality improvement project via nurses completing questionnaires designed to capture USGPIV and traditional PIV success rates, number of attempts required for successful peripheral access, and time used to place PIV's. PROC Mean and Freq used to describe the data. PROC TTEST, Npar1way, and Corr used examine peripheral intravenous access using ultrasound guided. The result indicated that the means of minutes to obtain IV, number of attempts, cost in salary, and cost for equipment were higher for traditional group as compare to USGPIV. The Chi-square and fisher exact test showed there was statistically significant between success rate and group (P value <.0001). All data analyses were performed using SAS/STAT statistical software, version 9.4 by group processing, fisher exact test, proc step, standard deviation, exact test, frequency analysis, p-value, proc means, proc ttest, proc freq source 6
111 Using the R interface in SAS to Call R Functions and Transfer Data Bruce F. Gilsen Starting in SAS 9.3, the R interface enables SAS users on Windows and Linux who license SAS/IML software to call R functions and transfer data between SAS and R from within SAS. Potential users include SAS/IML users and other SAS users who can use PROC IML just as a wrapper to transfer data between SAS and R and call R functions. This paper provides a basic introduction and some simple examples. The focus is on SAS users who are not PROC IML users, but who want to take advantage of the R interface proc step, dataset, proc iml, sysdate9, proc options, missing value, estimate, variable, date variable, options statement, work library, regression analysis, proc reg source 17
112 Utilizing SAS Functions to Generate Accurate Adherence Notifications for Clinical Trials Lishu Zhang,
Jiu Zhao
For clinical trial studies, it is critical to keep close contact with participants after main study procedures are administered or during follow-up phases. Furthermore, it could be challenging to monitor participants and reinforce their adherence to medication taking, laboratory sample collection, or periodic doctor's visits outside clinical settings. Currently mobile technology has emerged to play an essential role by sending out automated simple reminders and notifications to maintain communication among participants, study coordinators and principal investigators. Accurate notifications can significantly improve study compliance and treatment efficacy. This paper will present a real case of how SAS 9.4 can be utilized as a powerful and flexible tool to create a notification schedule that can be used to remind subjects to take dry blood samples at home for a clinical trial study. Notification dates and time were chosen based on the individual participants' given preferences datepart, clinical trial, sample source 7
113 Validating a Probability of Default model using SASEnterprise Miner Scorecard George Rezek Despite the prevalence of Enterprise Miner (EM) with the scorecard Add-In, Probability of Default (PD) models are more often developed and validated using products outside of EM. While there is no shortage of demos pointing out features of using EM, this presentation focuses on stumbling blocks that are obvious to those familiar with the product, but often cause potential users to give up on EM citing time considerations. The Interactive Node is often mentioned as reason enough to use EM, because of the ease it brings to the binning process. Relevant statistical output, graphs and data are automatically generated-some are easier to find than others; code nodes allow interaction with base SAS and entire EM diagrams can be run as simulations. tolerance interval, data mining, data cleaning, roc curve, dataset, standard deviation, sas base source 27
114 Validating Classification and Recidivism in Corrections Through Outcome Analytics Alan R. Mann A data-driven design for inmate classification in corrections is proposed as a fact-based, analytic, modeled alternative to the possibility of confirmation bias in risk assessment of prisoners entering incarceration, using retrospective assessment of recidivism risk measures of inmate data from New York State and Florida respectively. A framework utilizing the CRISP-DM (Cross-Industry Standard Process Model for Data Mining) from Abbott, D. (2014), was employed, deriving Key Performance Indicators (KPIs) of Class Severity and predicted Custody Risk groupings based upon Offense and Severity of New York State Offense Classification sentencing guidelines (Strazzullo Law Firm., n.d.). While initial findings from New York indicated a random and highly subjective pattern of classification, with class A misdemeanor offenders placed in Maximum custody, and class A-I felony offenders in Minimum, subsequent identification of objective markers in the New York and Florida data proved a more accurate, stronger scored, categorical and correlative relationship. This paper utilizes both visual and tabular illustrations, employing both Exploratory and Confirmatory Data Analysis, or both a-posteriori and a-priori results/conclusions in determining a data-driven case for inmate custody level classification. (Jebb, A. T., Parrigon, S., & Woo, S. E., 2017). The paper concludes with a discussion of deployment utilizing a dashboard, and iterative Exploratory Data Analysis. proc hpsplit, logistic distribution, logistic regression, regression analysis, key performance indicator, business intelligence, null hypothesis, proc step, correlation, sample, phase i, phase ii, response variable, data mining, feature selection, predictive analytics, data cleaning, proc freq, missing value source 34
115 Validating Medicare Beneficiary Identifier Submissions Richard Pickett Centers for Medicare and Medicaid Services (CMS) is removing Social Security Numbers (SSNs) from Medicare CARDS to fight medical identity theft for people with Medicare. A new Medicare Beneficiary Identifier (MBI) is replacing the SSN-based Health Insurance Claim Number (HICN). This presented a challenge to healthcare plans submitting data for the Medicare Health Outcomes Survey (HOS). Submissions included HICNs, Railroad Board Numbers (RRB) and MBIs mixed under one field which in turn presented a challenge to RTI in drawing additional information form the Enroll ment Database using the identifier. This paper presents SAS macro code to identify invalid MBIs and display them for review and communication with the healthcare plan for correction data cleaning, macro variable, excel source 7
116 Vetting Differences Between Relational Database Definitions and Actual Data with SAS Vetting Differences SAS programmers are sometimes tasked with loading SAS data sets into relational databases management systems (RDBMS) such as Oracle, SQL Server, or SYBASE. Loading the data can be a painful, stop-and-go process when the relational database table definitions do not agree with the SAS data sets that are to be uploaded. Differences between SAS and the RDBMS in the number of variables, variable names, variable types, and variable lengths can cause issues with the loading or with subsequent processing. Therefore, it is prudent to vet the differences between the SAS data sets' metadata and the RDBMS tables' metadata before attempting to load SAS data sets into a database. This paper presents a method of comparing the metadata of SAS data sets against an RDBMS's table definitions. It produces four reports: variables found in SAS but not in the RDBMS; variables found in the RDBMS but not SAS; variable type differences; and variable length differences. Working with these reports and with the RDBMS's database administrator, SAS programmers can help shape the SAS data sets and table definitions that lead to an error-free loading of their relational databases. dataset, create table, proc sql, sas log, length statement, production run, relational database, excel, character variable, proc contents, upcase function, sas library, sas programmer, proc step source 11
117 What's in the pipeline for the SGMAP Procedure?!? Robert E. Allison SGMAP is a fairly new procedure in BASE SAS, and is undergoing rapid development and enhancements. It currently has rich capabilities for plotting data on tile-based maps, such as OpenStreetMaps (as of release 9.4 maintenance 6), but only basic capabilities for creating choropleth (polygon-based) maps. In this paper I describe several new features under development that will help round out the choropleth mapping capabilities. These new features are "all but done" and should be available in a SAS release in the near future proc rank, sas base source 18
118 When fuzzy matching doesn't work: using the CONTAINS and JOIN functions through SAS EG to find foreign words in text strings Arthur Laciak I have found that fuzzy matching functions in SAS, such as SOUNDEX and SPEDIS, are not effective in matching foreign words, especially Chinese words. When transliterated into the Latin alphabet, too many syllables are similarly spelled that fuzzy matching is ineffective, even with strict parameters. Many Chinese words are unintentionally matched, resulting in more complications. This paper explores a work-around approach, using the CONTAINS and JOIN functions in SAS EG through PROC SQL to search for keywords from a reference table in text strings of a given data set. In this procedure, each text string is compared against keywords and matched keywords are displayed in a new column, resulting in clean data for further analysis. The example given in this paper matches Chinese addresses written in a text string to Chinese cities and provinces lookup, proc sql, proc step, sas enterprise guide source 5
119 When in Doubt, Shell It Out Timothy Egan Sometimes a table shell appears simple at first glance, but can quickly grow complicated when it comes time to program. Inconsistent blank lines that are needed within and between sections of the table, unpopulated categories that will not be produced with the FREQ procedure but still need to appear in the final table, future visits that still need to be presented, and inconsistent indentations are all subtle details that can challenge a programmer when they sit down to knock out a table. While the DATA STEP and REPORT procedure are perfectly valid approaches to create these tables, there are simpler methods in SAS that will allow a programmer to easily build these obscure or repetitive table structures. A key advantage to using these methods is that if the table structure needs to be updated at a later time, th e program is already in a ready-to-update state for either the original programmer or someone else who has inherited the program proc sql, proc step, proc freq, create table, numeric variable, do loop, macro variable source 9
120 Which report is appropriate? Let SAS figure it out! Kelly D. Smith Central Piedmont Community College (CPCC) uses a series of progression and completion metrics to track multiple cohorts of new part-time and new full-time students through their first three years at the institution. Progression and completion metrics from matching cohorts in sequential years are a lso compared to determine if interventions are having a positive impact on student success. As cohorts progress through the three year cycle, data from new metrics becomes available and a fuller picture of the cohort emerges. The frequency and complexity of the reporting process encouraged us to search for ways to minimize errors that can occur through the updating of numerous macrovariables and to find a better method to determine which report was appropriate for each cohort at specific points in time. To minimize data entry errors, a series of macro variables have been defined using macro functions so that only an initial macro variable is updated by the user macro variable, macro function, macro definition, %if-%then-%else source 7
121 Who, When, and Where - A Step-by-Step Approach to Creating a Color-Coded Tracker for Clinical Trial Subjects Venita DePuy In a perfect world, all subjects participating in a clinical trial would attend each and every scheduled visit on the planned date. Realistically, the project management team may spend a significant amount of time trying to keep track of who is where, and when. Busy medical offices may not get patients scheduled at the right times, participants may be too ill to attend visits, or any number of other issues may arise that lead to missed or out-of-window visits during the course of the trial. As subject participation in the trial draws to a close, there is increased pressure to schedule monitoring visits and site close-out visits as soon as possible, to allow final data cleaning prior to a timely database lock and the final study tables, listings, and figures. We will present a step-by-step approach to creating a traffic-lighted subject tracker, intended for use in clinical trials (but applicable to other fields as well). Based on each subject's initial treatment date, all future study visits are populated in the spreadsheet, using cell color and font characteristics to indicate a predicted future date. Overdue visits (when the tracker is run and the predicted date is prior to the program run date) are then highlighted to indicate a potential late visit. Completed visits are populated with the actual visit date (with out-of-window indicators if necessary) and color-coded to reflect a past visit. Subjects who have completed the trial are automatically moved to a separate tab of the sheet, with all information retained. This program can be set to run automatically each morning, after a daily data refresh, to have a handy, visual reference for subject visits and associated data entry. dose, proc report, proc step, clinical trial, date variable, proc format, visit, sample, excel source 18
122 You Ought To Be In Pictures! Dressing up output with the PICTURE format Jennifer Lindquist SAS-provided and user-defined formats improve the appearance, interpretability, and readability of data. Using formats can eliminate the creation of additional 'parallel' text variables and inadvertent discrepancies between those 'parallel' character strings and the original numeric values. An under- utilized format option is the PICTURE format. A PICTURE format allows output to be stylized by instructing SAS to present numeric values in a specified pattern. The user can also include units and symbols (e.g. presenting a gain of 9.5 percent as +9.5%) and re-scaling by a multiplication factor is easy to do (e.g. displaying 15,000 as 15K). Also, rounding and truncation are a snap with a PICTURE format. All can be accomplished without creating additional variables or calculations! Familiar with EXCEL formats? Almost all can be replicated with a SAS PICTURE format. Come explore how to dress up your output and get into PICTUREs! proc format, proc step, macro variable, character variable, user-defined format source 13
123 You're Doing It Wrong! Volume 002 Shane Rosanbalm You might think that you're a good programmer. But you're not. It's not just that you're doing it differently than I would do it. It's that you're actually doing it in a way that is unquestionably, incontrovertibly wrong! But, take heart. I am here to set you on the righteous path. Listen to me, and you will be adored by your coworkers, accepted by SUG section chairs, and solicited by recruiters. The focus of volume 002 will be the virtuosity of vertical code proc step, macro call, merge statement, proc sgplot, proc sql, proc sort, %if-%then-%else source 7

Back to Conf go 2020 go 2018

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.