SESUG 2023 Papers - Index
94 papers. Source: SESUG (SouthEast SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | %modelselect: A macro for automatically selecting statistical models based on fit statistics | William B. Smith | When analyzing data from an experiment, it is not uncommon to have multiple candidate models from which to choose. In basic statistics courses, we are taught that selection of the single "appropriate" model should be done based on fit statistics, such as Akaike information criterion (AIC) or Bayesian information criterion (BIC). However, manual selection of models for each response variable is a tedious undertaking that can be burdensome in the process of data analysis. In an effort streamline this task, %modelselect was developed as a macro to automate model selection. The macro uses PROC SQL in SAS v. 9.4 to extract fit statistics from FitStatistics table of PROC MIXED or PROC GLIMMIX, then generates a full summary table for easy comparison. In addition to traditional fit statistics, such as AIC and BIC, the macro was also programmed to calculate derivations of fit statistics such as the Akaike weight (Burnham and Anderson 2004) |
proc step, sample, sample size, feature selection, akaike information criterion, proc glimmix, likelihood function, proc mixed, proc sql, data science | source | 7 |
| 2 | 10 Quick Tips for Getting Tipsy with SAS | Richann J. Watson, Lisa A. Mendez |
There are many useful tips that do not warrant a full paper but put some cool SAS code together and you get a cocktail of SAS code goodness. This paper will provide ten great coding techniques that will help enhance your SAS programs. We will show you how to 1) add quotes around each tokens in a text string, 2) create column headers based values using TRANSPOSE Procedure (PROC TRANSPOSE), 3) set missing values to zero without using a bunch of if-then-else statements, 4) using short-hand techniques for assigning lengths of consecutive variables and for initializing to missing, 5) calculating the difference between the visit's actual study day and the target study and accounting for no day zero (0); 6) use SQL Procedure (PROC SQL) to read variables from a data set into a macro variable, 7) use the XLSX engine to read data from multiple Microsoft EXCEL Worksheets, 8) test to see if a file exists before trying to open it, such as an Microsoft EXCEL file, 9) using the DIV function to divide |
macro variable, proc step, sas log, proc sql, proc transpose, excel, missing value, proc report, numeric variable, sample, cpu time, sas enterprise guide, do loop, if-then-else, libname statement, macro call, work library, macro definition | source | 16 |
| 3 | A Batch Processing Companion, how to write Windows *.bat and *.cmd files for my-program.sas | Ronald J. Fehd | regression analysis, batch processing | source | 9 | |
| 4 | A Central Data Storage and Reporting System for Statewide Local Health Dept Visits in SAS | Bruce Nawrocki, Kathy Dail, Julie A. Walker |
dataset, key, sas enterprise guide, excel, macro variable | source | 11 | |
| 5 | A Gentle Introduction to Creating SAS Graphs, Part 2 | Dane A. Korver | This paper is a continuation of my previous SAS paper, "A Gentle Introduction to Creating SAS Graphs." In my previous paper, we discussed the five ODS Graphics procedures, how to create a simple bar chart and outputting your graphs. In this paper, we are going to continue using my Wordle data to keep practicing our SAS graphing skills |
bar chart, proc step | source | 6 |
| 6 | A Quick Look at Fuzzy Matching Programming Techniques Using SAS Software | Stephen B. Sloan, Kirk Paul Lafler |
Data comes in all forms, shapes, sizes and complexities. Stored in files and datasets, SAS users across industries recognize that data can be, and often is, problematic and plagued with a variety of issues. Data files can be joined without problem when each file contains identifiers, or "keys", with unique values. However, many files do not have unique identifiers and need to be joined by character values, like names or E -mail addresses. These identifiers might be spelled differently, or use different abbreviation or capitalization protoco ls | proc step, proc sql, character variable, proc sort, data cleaning, sas function, missing value, numeric variable, order by, proc format, proc contents, data transformation, proc print, character functions, proc transpose | source | 29 |
| 7 | A unique and innovative end-to-end demand planning and forecasting process using a collection of SAS products | Stephen B. Sloan, Kevin K. Gillette |
Forecasting demand can be a very tricky process. Questions arise about which statistical algorithms to use when forecasting based on past sales, how to incorporate business knowledge into the forecast, planning for unforeseen events, and planning for unique events that would not be predictable from sales history. As an example, COVID caused many forecasts to be wrong about quantities when purchasing switched from services to goods, from in-store sales to remote purchases, and from work in the office to remote work. Even when the total quantities of a product were forecasted incorrectly, the percentage distribution of the sales for some of the subcategories within the larger categories was often accurate, and vice versa. An example of this is the switch from eating and drinking in restaurants to take-out, where the total quantities of the items might have been the same, but the packaging changed (fewer kegs, more six-packs) | sas enterprise guide, proc step, sas data integration studio, excel, data mart, staging area, dataset | source | 13 |
| 8 | Advanced Project Management beyond Microsoft Project, Using PROC CPM, PROC GANTT, and Advanced Graphics | Stephen B. Sloan, Lindsey Puryear |
The Challenge: Instead of managing a single project, we had to craft a solution that would manage hundreds of higher- and lower-priority projects, taking place in different locations and different parts of a large organization, all competing for common pools of resources. Our Solution: Develop a Project Optimizer tool using the CPM procedure to schedule the projects and using the GANTT procedure to display the resulting schedule. The Project Optimizer harnesses the power of the delay analysis feature of PROC CPM and its coordination with PROC GANTT to resolve resource conflicts, improve throughput, clearly illustrate results and improvements, and more efficiently take advantage of available people and equipment |
proc step, proc sql, excel | source | 10 |
| 9 | An Efficacy Rating for March Madness Tournament Seeding | Joe DeMaio, Nathalie Jones |
In 1979 the NCAA men's basketball tournament (affectionately known as March Madness) began seeding teams with ranks 1 through 10 into four regional categories. Prior to this time, no ranking of teams was utilized in the tournament. In this paper we present a metric to measure the efficacy of team seedings by the selection committee as compared to tournament results. Utilizing this metric, we compute the efficacy of seeding for both men's and women's teams from 64 team tournaments. We then theorize and correlate potential influencing factors | likelihood function, correlation | source | 11 |
| 10 | An Innovative Approach to Generate a CONSORT Diagram in Clinical Trials | Lydia Li, Shunbing Zhao |
In the reporting of late stage clinical trials data, the consort diagram is a powerful graphic representation for reporting the disposition of each participant, including number of participants screened, number of participants failed screening, number of participants randomized and treated, etc. It gives a vivid overview of each participant's status in the trial and becomes one of the deliverables for Clinical Study Report (CSR) package once the database is locked. This paper illustrates how to use SAS PROC TEMPLATE and PROC SGRENDER procedures to create the consort diagram and analyzes the advantages and disadvantages of using this method |
proc step, proc template, clinical trial, adam dataset, cdisc | source | 6 |
| 11 | Application of Fuzzy Matching Techniques Using SAS Software | Kirk Paul Lafler, Stephen B. Sloan |
Data comes in all forms, shapes, sizes and complexities. Stored in files and datasets, SAS users across industries recognize that data can be, and often is, problematic and plagued with a variety of issues. Data files can be joined without problem when each file contains identifiers, or "keys", with unique values. However, many files do not have unique identifiers and need to be joined by character values, like names or E -mail addresses. These identifiers might be spelled differently, or use different abbreviation or capitalization protoco ls | proc step, proc sql, character variable, proc sort, data cleaning, sas function, missing value, numeric variable, order by, proc format, proc contents, data transformation, proc print, character functions, proc transpose | source | 30 |
| 12 | Assigning Agents to Districts Under Multiple Constraints Using PROC CLP | Stephen B. Sloan, Kevin K. Gillette |
The Challenge: assigning outbound calling agents in a telemarketing campaign to geographic districts. The districts have a variable number of leads and each agent needs to be assigned entire districts with the total number of leads being as close as possible to a specified number for each of the agents (usually, but not always, an equal number). In addition, there are constraints concerning the distribution of assigned districts across time zones, in order to maximize productivity and availability. Our Solution: uses the SAS/OR procedure PROC CLP to formulate the challenge as a constraint satisfaction problem (CSP), since the objective is not necessarily to minimize a cost function, but rather to find a feasible solution to the constraint set |
proc step, macro variable | source | 9 |
| 13 | Benefits, Challenges, and Opportunities with Open-source Software (OSS) Integration | Kirk Paul Lafler, Ryan Paul Lafler |
The open-source world is alive, well and growing in popularity. This paper highlights the many benefits found with open source software (OSS) including its flexibility, agility, talent attraction, and the collaborative power of community; the trends show that open-source is ubiquitous penetrating many critical technologies we depend on, where more technology companies recognize the importance of the open-source community leading to more initiatives and sponsorships that support open-source creators; the challenges of open source including compatibility vulnerability issues, security limitations, intellectual property issues, warranty issues, and inconsistent developer practices; and the opportunities coming out of the open source community including cloud architecture, open standards, and the collaborative nature of community | source | 5 | |
| 14 | Best Practices for Efficiency and Code Optimization in SAS programming | Jayanth Iyengar | There are multiple ways to measure efficiency in SAS programming; programmers' time, processing or execution time, memory, input/output (I/O) and storage space considerations. As data sets are growing larger in size, efficiency techniques play a larger and larger role in the programmers' toolkit. This need has been compounded further by the need to access and process data stored in the cloud, and due to the pandemic as programmers find themselves working remotely in distributed teams. As a criteria to evaluate code, efficiency has become as important as producing a clean log, or expected output. This paper explores best practices in efficiency from a processing standpoint, as well as others | proc step, dataset, proc append, proc sql, cpu time, if-then-else, sas log, where statement, data merging, sample, proc sort, sample size, sas programmer, lookup, data=, drop statement, missing value, index, options statement, character variable, hash table, numeric variable, set statement, sas base, key performance indicator, raw data, subsetting if | source | 20 |
| 15 | Binning Predictors for Logistic Regression | Bruce S. Lund | Binary logistic models for credit risk and direct marketing campaigns are generally built on large samples and with many classification predictors. It is normal and prudent to bin (combine) the levels of a classification predictor to achieve a smaller number of binned levels. This reduces parameters, eliminates low frequency levels, and may achieve desirable relationships versus the target, such as monotonicity between an ordered binned predictor and the sample odds of the target. Although controversial, continuous numeric predictors are also binned by some modelers. This paper presents two SAS macros that perform binning. %NOD_BIN applies to nominal predictors. The second, %ORDINAL_BIN, applies to ordered predictors. Both methods, according to the modeler's option, maximize information value or minimize entropy when combining, and they handle zero-bins without recourse to adding 0.5 to the bin | logistic distribution, logistic regression, proc freq, proc step, sample, proc logistic, binary variable, likelihood function, macro call, regression analysis, confidence interval, proc hpsplit, macro parameter, macro definition, variable | source | 25 |
| 16 | BLINDED STUDIES AND CHALLENGES | Jalender Reddy Musku, Srinivas Tiyyagura |
Human behavior is influenced by what we know or believe. In research there is a particular risk of expectation influencing findings, most obviously when there is some subjectivity in assessment, leading to biased results. Blinding is used to try to eliminate such bias that can be caused intentionally or unintentionally if participants or the research team are aware of who is receiving an active or placebo treatment | randomization, sample | source | 5 |
| 17 | Calculate Physical Length of String in RTF file with 'Times New Roman' by SAS | Yueming Wu, Steven Li |
While using PROC REPORT with ODS RTF for output table/listing generation, people often wish to know the 'Physical Length' of a string, instead of the number of characters in the string. The 'Physical Length' of a string is the length which is displayed on the RTF output file. The physical length of a string could be used to decide the column's minimum width without word wrapping up. This paper created a custom SAS function through PROC FCMP to calculate the physical length of either 'Times', or 'Times New Roman' font, and a concept of 'characteristic width' of character is introduced |
proc report, proc step | source | 14 |
| 18 | CAMIS: Comparing Analysis Method Implementations in Software | Brian K. Varney | Several discrepancies have been discovered in statistical analysis results between different programming languages, even in fully qualified statistical computing environments. Subtle diffe rences exist between the fundamental approaches implemented by each language, yielding differences in results, which are each correct in their own right. The fact that these differences exist causes unease on the behalf of sponsor companies when submitting to a regulatory agency, as it is uncertain if the agency will view these differences as problematic | imputation, multiple imputation, data science | source | 4 |
| 19 | Coding for the Future: Smart Commenting | Brooke Ellen Delgoffe | We have no idea what is coming to SAS programming in the future, but most of us have worked with multi-author, multi- time-period, conglomerate code written over multiple versions of SAS. How do we bridge the gap between versions, time, and programmers? Properly commented code makes renovating, adding to, or reviewing code much easier. It is one of the only ways to talk to the future and make it easier for the next person, next version of SAS, or next version of you to pick up where you left off. There's an art to commenting in a way that is meaningful. While keeping commented out code may provide insight into what was already tried, it may also clutter the program and leave the next programmer wondering why it was commented out. Whether it was a future area of development, an attempt that didn't work, or something else, the next viewer won't know unless you tell them | sas enterprise guide, proc step | source | 9 |
| 20 | Creating and using code snippets with SAS Enterprise Guide | Mark McLean | When programming in SAS there can be a lot of repetitive code, such as merges, PROC prints, PROC sorts, etc. This paper will demonstrate an easy way to automate writing code so you can program faster and with less syntax errors. It will show how to create and utilize snippets of code in SAS Enterprise Guide by recording and saving macros. For example, instead of typing out the code every time you want to merge two datasets you can create and run a tailored macro, thereby increasing efficiency and accuracy. No more missing parenthesis or semicolons! |
sas enterprise guide, proc step, proc sql | source | 7 |
| 21 | Data Access Made Easy Using SAS Studio | Kirk Paul Lafler, Shaonan Wang, Nuoer Lu, Zheyuan (Walter) Yu, Daniel Qian |
SAS OnDemand for Academics (ODA) gives students, faculty, and SAS learners free access to SAS software and the SAS Studio user interface using a web browser. SAS Studio provides users with a comprehensive and customizable integrated development environment (IDE) for all SAS users. A number of techniques will be introduced to showcase SAS Studio's ability to access a variety of data files; the application of point-and-click techniques using the Navigation Pane's Tasks and Utilities; the importation of external delimited text (or tab-delimited), comma-separated values (CSV), and EXCEL spreadsheet data files by accessing Import Data under Utilities; read JSON data files; and view the results and SAS data sets that are produced. We also provide key takeaways to assist users learn through the application of tips, techniques, and effective examples |
dataset, sas studio, proc step, sas library, excel, proc contents, delimited file, bar chart, work library, histogram, proc import, csv | source | 26 |
| 22 | Data Management and Analysis of Adverse Events Data using SAS ARRAY, IF-THEN, DO LOOP, and MACRO Statements | Amita Patil | The adverse events (AE) data in healthcare are essential to understand the medication side- effects. Patients experience multiple adverse effects of drugs while on medication for various diseases like tuberculosis, HIV, cancer, or other chronic illnesses. Data management, organization, and analysis are needed to provide an understandable and meaningful output for clinicians and researchers to develop intervention plans. The REDCap data collection tool captured AE or symptoms, AE grades 1 to 5, start and end dates, and outcomes. Due to the longitudinal nature of the study, the data is unformatted using the SAS PROC STEP to reduce processing time. The total of each grade is calculated using SAS ARRAY, IF-THEN, and DO LOOP statements. The SAS MACRO is used to categorize the symptoms in their body systems |
do loop, adverse events, proc step, ods pdf, cpu time, proc freq, macro definition | source | 6 |
| 23 | Debugging Tips for PROC HTTP | Kim M. Wilson | Several great papers have been written about how to get started with PROC HTTP, which includes accessing Microsoft 365 applications, modifying various options for desired results, and more. As a SAS Technical Support Engineer, I often assist SAS customers who are not receiving the expected resource, or they are seeing a return code that is not a 200 OK. This paper describes common errors that you might encounter regarding certificates, authentication, and general errors, as well as overall debugging techniques and suggestions. This paper also helps you gather pertinent information that SAS Technical Support will need when helping to solve the problems occurring with or around PROC HTTP |
proc http, proc step, sysrc, sas viya, error message, sas log, rest api, options statement, proc options | source | 10 |
| 24 | Designing Against Bias: Identifying and Mitigating Bias in Machine Learning and AI | David J. Corliss | Bias in machine learning algorithms is one of the most important ethical and operational issues in statistical practice today. This paper describes common sources of bias and how to develop study designs to measure and minimize it. Analysis of disparate impact is used to quantify bias in existing and new applications. New open-source packages such as Fairlearn and AI Fairness 360 Toolkit quantify bias by automating the measurement of disparate impact on marginalized groups, offering great promise to advance the mitigation of bias. These design strategies are described in detail with examples. Also, a comparison algorithm can be developed that is designed to be fully transparent and without features subject to bias. Comparison to this bias-minimized model can identify areas as bias in other algorithms | machine learning, sample, odds ratio, type ii error, confusion matrix, proc step, training set | source | 9 |
| 25 | 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 | sas programmer, sas enterprise guide | source | 4 |
| 26 | Effective APIs for SAS Language Applications | T. Randall Betancourt | Firms typically execute a large number of SAS programs repetitively. Many programs run repeatedly with alterations to produce required output. A common improvement on this process is to pass parameters to validated autocall macros. Still, programs are often hand-edited, tested, then output is copy and pasted to distribute results. In many cases, multiple manual steps are required which are expensive, error-prone and, importantly in a regulated environment, hard to reproduce reliably. The use of SAS language autocall macro libraries provides a method for effective reuse of SAS program logic. To make best use of available skilled workforce, firms need to fully control and automate this logic as well as expand software tooling and process automation to encompass Python, R, SQL, Perl, Powershell, Linux shell scripts, batch scripts and other programming technologies | rest api, proc http, proc step, autocall macro, proc sql, macro variable, data step, excel | source | 20 |
| 27 | Empowering Decision-Making: Predictive Analytics Integration with SAS and Python in a Higher Education Setup | Vindhya Hegde | The rapid advancement of data-driven technologies has revolutionized the way higher education institutions analyze and interpret complex datasets. This paper presents a complete approach that combines SAS Data Integration Studio (DI Studio), SAS Visual Analytics (VA), and Python for modeling, data visualization, and predictive analytics in the context of data elements in higher-ed. SAS DI Studio serves as the primary tool for merging and transforming diverse data sources into organized datasets. It provides a robust set of features to facilitate data preparation. The transformed data is then visualized using SAS VA, which provides interactive visualizations tools. By using various visualization tools like graphs and charts, we can analyze the data and discover patterns. This gives us the ability to gain insights into historical patterns, which can be further used to predict the future. For predictive analytics, Python is used as a primary tool | proc reg, regression analysis, sas data integration studio, resource allocation | source | 8 |
| 28 | Ensuring Accurate Data Linkages with Metadata Tables | Yeats Ye, Jessie Parker, Cindy Zhang, Cordell Golden |
dataset, create table, record linkage | source | 4 | |
| 29 | Exploring the Skills Needed by the Data Scientist / Analytics Professional | Kirk Paul Lafler | As 2.5 quintillion bytes (1 with 18 zeros) of new data are created each and every day, the age of big data has taken on new meaning. More and more organizations across industries are embracing Data Science / Computer Research Scientist skills resulting in an emerging demand for qualified and experienced talent. According to the Bureau of Labor Statistics (BLS) the number of data science jobs is expected to grow 19 percent over the next two decades - nearly three times as fast as the average growth rate for all jobs. Energized by this employment outlook, students and professionals across job functions are preparing for tomorrow's growing data science / analytic demands by acquiring a comprehensive skill set. To prepare for this growing demand, many colleges, junior colleges, Universities, and vocational training organizations offer comprehensive degrees and certificate programs to fulfill the increasing demand for analytical skills | data science, data mining | source | 14 |
| 30 | For Clinical Trials: A Faster and Smoother Approach to Create your SDTM and ADAM Define Specifications for Define.xml with SAS | Star Nze | After final TLFs have been sent to the Sponsor, it's time for SAS programmers to create the SDTM and AD AM Define specs for the Define.xml file. Define spec creation can be a tedious task at times, especially with studies that have many different domains that were used for data analysis. Instead of referencing a previous study's define specs and manually entering data repetitively, we will explore a more programmatic way of completing the specs to simplify the process and help speed up task time for end-of-study FDA submission requirements. The use of EXCEL and SAS in tandem to pull annotations from the Case Report Form PDF document will be pivotal in aiding to streamline the Define specification process. The resulting EXCEL file and SAS program will be transferable between studies with only minor updates being needed in the file and program for study -to-study usage |
excel, sdtm domain, clinical trial, clinical data, sas enterprise guide, data science, cdisc | source | 29 |
| 31 | Forecasting Goals for Student Success Metrics in Accountability Performance Reporting using SAS Visual Analytics | Xiaoying Liu, Hennadii Balashov |
As a part of the State University System (SUS) of Florida, the University of South Florida is required to engage in the submission of an annual report, the SUS Accountability Plan, which monitors institution performance on a variety of metrics including student success, faculty research and awards, enrollment planning, and academic program development. It serves as an overall guidance for the university's five-year strategic plan. SAS Visual Analytics Forecasting is utilized to project five-year goals on student success metrics of accountability plan based on the university's historical performance. By using the SAS Visual Forecasting object, a time series forecasting model is generated for each of the 22 student success metrics. Visualizing data trends over time allows us to assess where the university stands at present, and where we want to go next. Forecasting analysis has been used to prepare the proposed goal rationale | time series analysis, moving average, confidence interval, sensitivity analysis, proc esm, covariance, residual, lag function | source | 9 |
| 32 | Generate and Customize eDISH Plot to Identify Hy's Law Cases in Simple Steps | Jeetender Chauhan, Sarad Nepal, Madhusudhan Ginnaram |
In clinical trial studies and research, the analysis and visualization of the data is crucial for assessing the efficacy and safety of the drug. It is always easier to extract valid information through a glance at the chart or the graph than going through the entire table and data. In this paper we are providing details for Hy's law related eDISH (Evaluation of Drug-Induced Serious Hepatotoxicity) plot which is not so common across clinical trial data analyses. It is mostly used for examining serious hepatotoxicity. Hy's Law states that hepatocellular drug induced liver injury (DILI) with jaundice indicates a serious reaction and is used to determine the risk of acute liver failure (ALF) | clinical trial, macro parameter, macro definition, sample, default parameter, in=, macro call, macro variable, proc template, proc step, data science | source | 10 |
| 33 | Generating Mock Data in SAS | Imelda C. Go, Abbas S. Tavakoli |
Programmers often develop SAS programming code before actual/real data are available. To fill the gap, simulated/mock data can be used to test the code and verify the code is performing as intended. Mock data can be based on real data, be generated using randomization techniques, or be a combination of both. The data will contain ideally enough test cases to test our code against. Generating realistic data with internally consistent data can be challenging. This paper will discuss considerations and include examples of a way to generate discrete mock data, while controlling the distribution of univariate and multivariate values | proc step, proc transpose | source | 6 |
| 34 | Geocoding in SAS: The Basics | Keli Sorrentino, Julie Plano |
Geocoding addresses is a common task required for a variety of projects across a range of industries. It isn't necessary to become familiar with ArcGIS to geocode because PROC GEOCODE is included in SAS beginning with version 9.4M5. The first time I needed to geocode addresses, I found it challenging to locate documentation that clearly described the steps to accomplish the task in SAS. I found bits of information in multiple places to finally complete my assignment. This paper will simplify the steps to g et you geocoding your addresses quickly |
proc step, dataset | source | 4 |
| 35 | Getting a Handle on All of Your SAS 9.4 Usage | Stephen B. Sloan | SAS is popular, versatile, and easy to use, so it proliferates rapidly through an organization. It can handle systems integration, data movement, and advanced statistics and AI, has links to a large amount of file types (Oracle, EXCEL, text, and others), and has functionality for almost every need. In addition to SAS Base, there are a large number of specialized SAS products, some of the most popular of which are SAS STAT, SAS OR, SAS Graph, SAS Enterprise Miner, and SAS Forecast Server. SAS EG allows for quick creation of useful artifacts and facilitates saving the generated code for later use as part or all of another program. As a result, sometimes it is difficult to track all the SAS programs and artifacts being used across an organization, economies of scale can be overlooked, and repetition and "reinventing the wheel" sometimes take place. Programs and macros developed in one area can be useful in other areas and they can be improved by this internal crowd-sourcing |
proc step, data mining, dataset, macro call, sas enterprise guide, macro definition | source | 6 |
| 36 | Getting Started with PROC DS2 | James E. Blum, Jonathan W. Duggins |
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, order by, out=, proc sql | source | 22 |
| 37 | Getting to Know the SAS Data Access Engine: SASEFRED | Paul Newsom | Manually downloading data from the FRED website and uploading it to SAS can be slow. Fortunately, SAS has a tool to make this process faster. With the SASEFRED Data Access Engine, you can retrieve data from FRED directly into a SAS data set. Spend less time accessing and preparing your data and more time exploring and building models | time series analysis, libname statement, dataset, time series data, proc freq, proc step | source | 14 |
| 38 | Going Command(o): Power(Shell)ing Through Your Workload | Richann J. Watson, Louise S. Hadden |
Simplifying and streamlining workflows is a common goal of most programmers. The most powerful and efficient solutions may require practitioners to step outside of normal operating procedures and outside of their comfort zone. Programmers need to be open to finding new (or old) techniques to achieve efficiency and elegance in their code: SAS by itself may not provide the best solutions for such challenges as ensuring that batch submits preserve appropriate log and lst files; documenting and archiving projects and folders; and unzipping files programmatically. In order to adhere to such goals as efficiency and portability, there may be times when it is necessary to utilize other resources, especially if colleagues may need to perform these tasks without the use of SAS software. These and other data management tasks may be performed via the use of tools such as command-line interpreters and Windows PowerShell (if available to users), used externally and within SAS software sessions | txt, excel, sample, if-then-else, dataset | source | 45 |
| 39 | Hashes From The Ashes | Paul M. Dorfman, Richard A. DeVenezia |
In SAS programming, using hashing for memory-resident storage and lookup began in 1998 as array implementations of hash algorithms in the SAS language. After they had been shown to seriously outperform same-purpose techniques available at the time, quite a few SAS programmers included array hashing in their repertoire. However, with the advent of the SAS hash object in 2003, array hashing has been falling into obscurity. The true merits of the hash object is one reason; but the other is the baseless and yet widespread notion that the array hashing algorithm and code is hairy beyond the average SAS user. It is quite unfortunate since under many scenarios, array hashing is simpler and much faster than the hash object. In this paper, we intend to prove, based on a simple hash scheme, that array hashing is easy to comprehend and code. We will also show that array hashing can be macro-encapsulated to be used as a canned routine largely in the same manner as the hash object | hash table, sample, composite key, sas programmer, do loop, lookup, data wrangling, array, sas programming, macro variable | source | 14 |
| 40 | How to achieve executions from SAS Job Execution with Guest user in SAS Viya 3.5 | Yenireth Gil, Osmel Brito Bigott |
SAS Viya 3.5 is a new cloud-based version of SAS tools with incredible potential for analytics and reporting. However, there are certain functionalities that are only defined for authenticated users by default, one of which is the ability to execute or launch code through SAS Job Execution from SAS Visual Analytics reports. Although it may sound abstract, we can execute SAS code from SAS Visual Analytics using an object known as Data Driven Content. Currently, this functionality can only be employed by authenticated users within the platform. This paper aims to inform you that, by combining a set of configurations within SAS Viya 3.5, you can expose this functionality in your portals for SAS Visual Analytics reports | sas viya, excel | source | 7 |
| 41 | How to Mentor the SAS Bee | Alissa Wise | There are a few good SAS Do's when mentoring young minds. They need growth without stumbling. Offering tips, training, and advice parallels closely with these young minds having an internship. Therefore, as a mentor, here within are Do's based on my experience along with a template to capture your own | sas enterprise guide, data step | source | 4 |
| 42 | How to Merge SAS Datasets with PII | Julie Plano, Keli Sorrentino |
As a programmer being asked to combine datasets is a standard task. However, most don't anticipate the danger if not executed correctly. This can be particularly problematic when the merge involves personally identifiable information (PII). Our paper examines cases in which PII is used to complete a match-merge. Examples include problems that can arise before and during the matching process as well as necessary data cleaning techniques to ensure safe merging | proc sql, proc step, character variable, length statement, data step, merge statement | source | 6 |
| 43 | How to Prepare Precise and Intact Software Program for Submission | Linping Li, Shunbing Zhao |
Software programs are one of the components in the analysis package for e-Submissions submitted to regulatory agencies. Submission examples include Investigational New Drug Application (IND), New Drug Application (NDA), Abbreviated New Drug Application (ANDA), and Biologics License Application (BLA). The FDA Study Data Technical Conformance Guide states that "Sponsors should provide the software programs used to create all ADaM datasets and generate tables and figures associated with primary and secondary efficacy analyses", and "The main purpose of requesting the submission of these programs is to understand the process by which the variables for the respective analyses were created and to confirm the analysis algorithms and results." In accordance with FDA's Guidance, pharmaceutical companies need to submit software programs that do not contain any macro languages to ensure the precision and integrity of the submission | dataset, sas enterprise guide | source | 4 |
| 44 | How to use SAS POWER procedure to plan a study | Xiaofeng (Steven) Liu | SAS PROC POWER procedure can be used to choose the required sample size for hypothesis testing and confidence interval, the latter of which is less known to practitioners. The purpose of the paper is to review PROC POWER procedure and introduce sample size determination for building a precise confidence interval that is characterized by a sufficiently narrow interval width. Practitioners can use PROC POWER procedure to achieve adequate statistical power and/or high probability of obtaining a precise interval estimate while planning a scientific study. Examples are provided to illustrate sample size planning for interval precision |
confidence interval, sample size, sample, proc power, parameter, treatment effect, proc step, hypothesis testing, power analysis, proc ttest, null hypothesis, standard deviation | source | 4 |
| 45 | Implementing GIT for Change Control of Delegated Tables Owned by End Users | Angye Rivero Rodríguez, Osmel Brito Bigott, Stephanie Inostroza Arratia |
Applications commonly use data tables that are maintained by users, also known as delegated tables. Delegated tables enable business users to maintain master or reference data in spreadsheets or comma - delimited files and load that data directly into the application. Multi-copy files, no control over updating them, inability to retrieve previous information, and other uncomfortable situations are very common in these situations. In this paper, we will use the functions of Git in SAS to present an option, which will allow users to solve in an easy and practical way how to keep these delegated tables used by their business applications updated, integrating this version control system and all its benefits with SAS programs; enabling them to maintain their data the way they have always done, but in a controlled manner | sas library, sysrc | source | 6 |
| 46 | Introduction to Principal Components and Factor Analysis | Jason Brinkley | Principal Components Analysis (PCA) and Principal Factor Analysis (PFA) are popular analytic tools that can help bring structure and understanding to datasets with many unique variables. PCA is the backbone of these methods and serves as a mechanism for reducing the dimensionality of a large dataset into a smaller set of variables or characteristics that retain information from the original data. PFA is a core component in classical testing theory and psychometric analyses for instrument creation. These methods are complex but have a rich history of use across the entire realm of data sciences. This slides parallel a hands-on workshop which provided a general overview of PCA and PFA. The focus and use cases are be two-fold. First, we will discuss PCA in the context of data reduction and insight generation. Second, we discussed the basics of creating composite measures via PFA and exploratory factor analysis | correlation, factor analysis, proc step, regression analysis, proc factor, proc princomp, oblique rotation, covariance, sample, proc means, proc calis | source | 16 |
| 47 | Inventory your OS for Programming Information | Brian K. Varney | Whether you are attempting to figure out what you have when preparing for a migration or you just want to find out which files or directories are taking up all of your space, SAS is a great tool to inventory and report on the files on your desktop or server. This paper intends to present SAS code to inventory and report on the location you want to inventory | proc sql, dataset, proc step, sas enterprise guide, macro definition | source | 8 |
| 48 | Is Rushing in the Modern NFL a Viable Option? | Alex Mason | proc hpsplit, sas viya, sample | source | 8 | |
| 49 | List Processing Macro Call-Macro | Ronald J. Fehd | macro call, macro variable, proc freq, macro quoting function, macro function, proc step, macro definition, %if-%then-%else | source | 18 | |
| 50 | List Processing using SQL Select Into to Replace Call Symputx Creating Indexed Arrays of Macro Variables | Ronald J. Fehd | proc sql, macro variable, call symputx, proc step, character functions, macro put, out=, proc freq, proc sort, macro definition | source | 13 | |
| 51 | Longitudinal Analysis of Marital Therapy's Impact on Intimacy in Heterosexual Couples | Yaa Awuah, Mostafa Zahed |
This research study examines the effects of marital treatment on the levels of closeness among wives of 50 heterosexual married couples utilizing longitudinal data from a simulated study. Participants were randomly assigned to a wait-list control condition or a 16-week marriage therapy treatment. Data were gathered at various times in time, resulting in a comprehensive longitudinal dataset that made it possible to examine individual and group differences in the development of intimacy through time. In-depth descriptive statistics and visualization techniques were used in the research to carefully examine the data's overall distribution as well as any trends, patterns, or probable outliers. Mixed-effect models were used for additional statistical testing, which included sensitivity analysis, interaction terms, and random effects for intercepts and slopes. This enabled a thorough evaluation of variations over time within and across groups | longitudinal data, random intercept, proc step, akaike information criterion, correlation, predictor variable, sensitivity analysis, spaghetti plot, random slope, proc means, proc sql, proc mixed, standard deviation, likelihood function, data science, response variable, residual analysis, scatter plot, treatment effect, normality test, sample | source | 19 |
| 52 | Looking for the Missing(ness) Piece | Louise S. Hadden | Reporting on missing and/or non-response data is of paramount importance when working with longitudinal surveillance, laboratory and medical record data. Reshaping the data over time to produce such statistics is a tried and true technique, but for a quick initial look at data files for problem areas, there's an easier way. This quick tip will speed up your data cleaning reconnaissance and help you find your missing(ness) piece. Additional tips on making true missingness easy to identify are included | proc step, proc freq, missing value, proc report | source | 4 |
| 53 | Looking for the Missing(ness) Piece | Louise S. Hadden | Reporting on missing and/or non-response data is of paramount importance when working with longitudinal surveillance, laboratory and medical record data. Reshaping the data over time to produce such statistics is a tried and true technique, but for a quick initial look at data files for problem areas, there's an easier way. This quick tip will speed up your data cleaning reconnaissance and help you find your missing(ness) piece. Additional tips on making true missingness easy to identify are included | proc step, proc freq, missing value, proc report | source | 4 |
| 54 | Make You Holla' Tikka Masala: Creating User-Defined Informats Using the PROC FORMAT OTHER Option To Call User-Defined FCMP Functions That Facilitate Data Ingestion Data Quality | Troy Martin Hughes | You can't just let any old thing inside your tikka masala-you need to carefully curate the ingredients of this savory, salty, sometimes spicy delicacy! Thus, when reviewing a data set that contains potential tikka masala ingredients, an initial data qualit y evaluation should differentiate approved from unapproved ingredients. Cumin, yes please; chicken, the more meat the merrier; coriander, of course; turmeric, naturally; yeast, are you out of your naan -loving mind?! Too often, SAS practitioners first inge st a data set in one DATA STEP, and rely on subsequent DATA STEP s to clean, standardize, and format those data. This text demonstrates how user -defined informats can be designed to ingest, validate, clean, and standardize data in a single DATA STEP |
hash table, proc format, missing value, lookup, input statement, data cleaning, raw data, txt, data ingestion, proc fcmp | source | 10 |
| 55 | Methods and Tools for Publishing at SESUG and Beyond-Advanced Techniques | Jonathan W. Duggins, James E. Blum |
We add automation methods for including SAS code and output by building on "Methods and Tools for Publishing at SESUG and Beyond-Basic Techniques." We provide and demonstrate SAS programs for converting .SAS files to .TEX files. As the ODS TAGSETS.COLORLATEX command is pre-production and has limited features, we provide and demonstrate SAS code to modify sizing for tabular output objects based on corresponding RTF sizing. We combine SAS code and output building strategies with LaTeX tools for automatic insertion of the converted SAS code and SAS output into the LaTeX document. All LaTeX implementations are covered using the Overleaf platform, but other LaTeX environments work as well |
character variable, sample, proc step | source | 17 |
| 56 | Methods and Tools for Publishing at SESUG and Beyond-Basic Techniques | James E. Blum, Jonathan W. Duggins |
For programmers, publishing papers or other documents may be a frustrating task. We show some methods of applying programming in LaTeX and SAS to create styles and structures that can be easily reused and revised, with the added benefit of actually looking good. We build styles for various paper elements including boxes/titles for code, output and logs (and other items). LaTeX tools for numbering sections, programs, output, and other elements inside the document are demonstrated along with making cross-references to such items which automatically update when items are moved or removed. An introduction to the ODS TAGSETS.COLORLATEX destination and the resulting sastable object is also provided. All LaTeX implementations are covered using the Overleaf platform, but other LaTeX environments work as well |
character variable, sample, length statement, proc step, sashelp | source | 22 |
| 57 | MISSING Mysteries for SAS Beginners | Jinson J. Erinjeri | SAS datasets comprise of variables which are mainly of two types, numeric and character . Observations with missing values for these types of variables are common in real applications . For a beginner in SAS programming , understanding how the missing values operate is critical because improper usage can lead to programming as well as reporting errors. This paper will present such error scenarios, the cause of these errors and ways to avoid them. The scenarios are presented with example dataset and code for better understanding and retention, thereby unraveling the mystery of missingness | missing value, proc freq, out=, numeric variable, compress function | source | 9 |
| 58 | Modernizing Legacy SAS Applications and Program Code | Kirk Paul Lafler, Clark Roberts |
Whether you are a novice or experienced SAS programmer with responsibility for the support of your organization's legacy applications, programs and code, assistance is available to help modernize and streamline code for the 21st century and beyond. This paper explores the available constructs, statements, functions, algorithms, operators, methods, expressions, programming techniques and approaches users have to update and modernize legacy applications, programs and code first introduced as far back as the 1970's. Users are provided techniques to streamline, scale and modernize code constructs, statements, functions, algorithms, and legacy applications and program code, and an introduction to the SCAPROC procedure - the SAS code analyzer - to analyze metadata about the contents of SAS code. Table of Contents |
proc step, if-then-else, proc sql | source | 51 |
| 59 | Navigating First-Year STEM Student Persistence: Insights from Student Experience and Expectations | Zhong Zheng | logistic distribution, proc logistic, regression analysis | source | 1 | |
| 60 | ORION: A Non-Server-Based Interactive SAS Report Builder | Bruce Nawrocki, Scott Proescholdbell, Shana Geary |
sas log, macro definition, macro variable, excel | source | 14 | |
| 61 | Performing Higher Education Enrollment Management Predictions Using SAS | Phil Moore, Marla Mamrick, Sara Reinhardt |
With the increased demand for data-driven decision-making in higher education, analytics researchers are expected to provide state-of-the-art data analyses to augment dashboards and descriptive statistics. This session will introduce building higher education AI predictions models in SAS and will discuss the role of predictive models within the enrollment management prediction and decision-making process. Issues encountered when predicting in higher education using both AI and traditional methods will also be addressed. Finally, an application will be demonstrated that was designed to assist in enrollment management decision-making. Enrollment Management Utilities (EMU) allows select users to access institutional data via a point-and-click environment to perform data manipulation and analyses used in higher education enrollment management | logistic regression, regression analysis, logistic distribution, big data, sas viya, predictor variable | source | 13 |
| 62 | Pol-y-mor-phism in SAS, Or, Good Programmers are Lazy | David B. Horvath | This session reviews techniques for implementing simple polymorphism in SAS programs. As part of an effort to productionalize a large number of models with multiple variables with long time series, a datamart was created in SAS datasets to minimize impact on the corporate data warehouse. Rather than coding the inputs multiple times in the build process, a set of macros were created to define the DDL for input to each model. By including different files that define those macros, different functions were implemented: Prime, shift months, define keep string | macro variable, proc datasets, proc step, cpu time, keep statement, time series analysis | source | 21 |
| 63 | Predicting Employees' Preference for Remote or On-site Jobs | Livingstone Gadzanku | The rise of remote work has transformed the employment landscape, necessitating effective workforce management strategies. This study utilizes SAS (Statistical Analysis System) to develop a predictive model for employees' remote or on-site work preferences. Leveraging a dataset that encompasses employee demographics, job characteristics, and work-life balance indicators, various SAS analytical techniques, including data exploration, feature engineering, and machine learning algorithms, are employed. Comprehensive exploratory data analysis and preprocessing are conducted, followed by the utilization of suitable machine learning methods to construct the model. This ensures robust evaluation and addresses class imbalance. The project aims to provide organizations with valuable insights to design optimal remote work policies, enhancing employee satisfaction and productivity | correlation, response variable, feature engineering, data wrangling, machine learning, frequency analysis, workforce management, proc freq, data science | source | 10 |
| 64 | Reading Comma Separated Files containing CR/LF embedded in quoted strings | Nat H. Wooding Jr. | Comma Separated Files (CSV) are commonly used for exchanging data between applications such as spreadsheets and other systems such as SAS. Text strings sometimes contain embedded commas and the accepted practice for creating CSVs is to cloak the commas using quotation marks. Furthermore, some strings may contain carriage returns and or line feed characters used to format strings within cells in the original application. SAS does not recognize that the CR/LFs are intended to be cloaked and, unfortunately, breaks the input line at the control characters. Here, we look at a method of fixing this problem |
proc import, dataset, proc step | source | 4 |
| 65 | 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 often need to fit the data sets into a fixed amount of space. Many SAS data sets are created by importing EXCEL or Oracle data sets or delimited text files 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 we can do to make the SAS data sets more compact and 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 shrink the space of the entire data set |
character variable, numeric variable, dataset, proc means, proc step, macro loop, %if-%then-%else | source | 7 |
| 66 | Regression Analysis Made Easy Using SAS Studio | Kirk Paul Lafler, Zheyuan (Walter) Yu, Nuoer Lu, Daniel Qian, Kai Kang, Yanzhang Gavin Chen, Nicklas (Rebel) Yee, Yixuan (Jason) Xiang |
SAS OnDemand for Academics (ODA) provides students, faculty, and SAS learners with free access to SAS software and the SAS Studio user interface using a web browser. SAS Studio provides a comprehensive and customizable integrated development environment (IDE) for all SAS users. To showcase SAS Studio's many features, numerous techniques will be introduced to access, clean, transform, analyze, and visualize data using the point-and-click features found in SAS Studio's Navigation Pane's Tasks and Utilities. Plus, we'll demonstrate the generated SAS code that is automatically produced from the point-and-click techniques. To obtain a high-level understanding of the datasets being used, we'll demonstrate tasks associated with exploratory data analysis (EDA) to identify missing values, explore outliers, and evaluate trends in the data | regression analysis, proc reg, predictor variable, sas studio, dataset, correlation, logistic regression, response variable, multiple regression, proc step, simple linear regression, logistic distribution, odds ratio, sas library, confidence interval, data transformation, interval variable, scatter plot, proc freq, outlier, missing value, proc sql, proc means, excel | source | 43 |
| 67 | Response Analysis for marketing campaigns using SAS | Dishant Banga | Response analysis is a critical component of evaluating marketing campaigns, particularly when utilizing a test and control group design. This study presents an approach for conducting a running response analysis using SAS software to examine the impact of a marketing campaign intervention on key performance indicators (KPIs) by comparing results between a test group and a control group. The objective is to quantify the causal effect of the campaign and provide actionable insights for campaign optimization. The analysis employs a robust experimental design, randomly assigning individuals to either a test group, which receives the campaign intervention, or a control group, which remains untreated. The KPIs, such as conversion rates, click-through rates, or revenue, are measured for both groups. SAS statistical procedures, such as PROC TTEST, are utilized to compare the KPIs between the test and control groups |
regression analysis, resource allocation | source | 5 |
| 68 | Sampling by Reversing The Landmarking Process | Cheng Lee | Variations of commonly applied landmarking sampling are surveyed. These samplings are "forward" landmarking such that each panel data is created by first selecting landmarks and then including the subsequent observations from the selected landmarks. Unlike these forward landmarking samplings, a "backward" or "reverse" landmarking is proposed with a flexible "progressive" weighting scheme on selecting different competing risks of events and non-events. The backward landmarking sample is compared with those forward landmarking samples on real world m ortgage data. Results show that the backward landmarking sample has smaller sampling errors than of those forward landmarking samples | sample, hazard function, panel data, proc calis, proc sql | source | 10 |
| 69 | SAS Macro for Randomization-Based Methods for Covariance and Stratified Adjustment of Win Ratios and Win Odds for Ordinal Outcomes | Elaine Kowalewski, Ann Marie K. Weideman, Gary G. Koch |
In a randomized clinical trial, participant responses to treatments may be measured on an ordinal, rather than interval, scale. The trial may also have a stratified design, such as randomization within clinics, and information may be collected across multiple visits to evaluate the treatment efficacy. Due to randomization, random imbalances for baseline measurements and covariates between treatment groups are expected to be minimal. Nevertheless, baseline covariates may be strongly associated with the outcome, and so adjustment for baseline covariates can improve the power for assessing the treatment effect. The win ratio (ignores ties) and the win odds (accounts for ties) can be useful when analyzing these types of clinical trial data. This work provides a SAS macro which implements randomization-based methodology for covariance and stratified adjustment of the win ratio and the win odds for ordinal outcomes from a multi-visit clinical trial with stratified randomization | clinical trial, randomization, covariance, missing value, sample, confidence interval, baseline, macro definition, response variable, treatment arm | source | 11 |
| 70 | SAS Program Efficiency for Beginners | Bruce F. Gilsen | This paper presents simple efficiency techniques that can benefit SAS software users on all platforms. While appropriate for beginners, users at all levels of experience can benefit from these techniques. Efficiency techniques are presented for the following programming tasks. 1. Create a SAS data set by reading long records from a flat file with an INPUT statement. Keep selected records based on the values of only a few incoming variables. 2. Create a new SAS data set by reading an existing SAS data set with a SET statement. Keep selected observations based on the values of only a few incoming variables. 3. Select only some observations from a SAS data set. The selected data are used as input to a SAS procedure, but are not otherwise needed. 4. In IF, WHERE, DO WHILE, or DO UNTIL statements, use OR operators or an IN operator to test if at least one of a group of conditions is true |
dataset, where statement, conditional do loop, if-then-else, character variable, input statement, subsetting if, proc step, set statement, proc append, flat file, missing value, numeric variable, put statement, call symput, macro variable, sas function | source | 15 |
| 71 | So Close Yet How Far Away - Closest City Macro | Brooke Ellen Delgoffe | Assuming many businesses have multiple locations, the task of finding which one is closest to your customer is a common one. Maybe you are trying to approximate minimum traveling distance for reimbursement, invitation lists to a given event, or recommending a list of locations by distance; the applications are plentiful. This paper will introduce resources, such as SASHELP.ZIPCODE and ZIPCITYDISTANCE() or GEODIST(), for finding the zip code distance between two cities, a list of cities, or specific zip c odes. It will cover concepts for calculating distance and present a macro with different options for calculation. Subtopics will include PROC SQL for multiple distance considerations and pitfalls for each presented method. References to existing publications and code base will facilitate readers in understanding options beyond what is covered in this paper |
in=, proc sql, proc step | source | 15 |
| 72 | Sorting a Bajillion Variables: When SORTC and SORTN Subroutines Have Stopped Satisfying, User-Defined PROC FCMP Subroutines Can Leverage the Hash Object to Reorder Limitless Arrays | Troy Martin Hughes | The SORTC and SORTN built-in SAS subroutines sort character and numeric data, respectively, and are sometimes referred to as "horizontal sorts" because they sort variables rather than observations. That is, all elements within a SORTC or SORTN sort must b e maintained in a single observation. A limitation of SORTC and SORTN is their inability to sort more than 800 variables when called inside the FCMP procedure. To overcome this disagreeable, arbitrary threshold, user-defined subroutines can be engineered that leverage the hash object to sort limitless variables. The hash object orders values that are ingested into it using the ORDERED argument, which can specify either ASCENDING or DESCENDING. This text demonstrates three failure patterns that occur when the OF operator specifies an array inside the FCMP procedure, which affect both character and numeric arrays, and which cause all built -in functions and subroutines to fail with runtime errors |
proc fcmp, hash table, character variable, missing value, array, integer, character functions | source | 16 |
| 73 | Speeding up Your SAS Code Using Parallel Processing | David L. Ward | This paper will present a history and overview of parallel processing, examine the types of operations that make best use of parallel processing, catalog various techniques and products available within SAS, and present real-world examples and strategies for doing your own parallel processing. While network architectures such as virtual machines and containers along with SAS products such as SAS/VIYA and SAS Grid Manager will be explained, the code examples in this paper will all require only Base SAS and will be aimed at performance increases on a single, multi-core machine. Depending on the types of operations you intend to parallelize, you could see more than a 90% improvement in clock time. While SAS has implemented multi-threading in many of its procedures for a long time, this paper will explain the difference between multi-threading and multi-processing and provide practical code that is understandable and extensible even to novice SAS programmers |
parallel processing, sas base, proc step, sas grid, proc sql, data step, cpu time, sas programmer, sample | source | 14 |
| 74 | Systemic Quantitative check to identify if a variable is a confounder in a dataset using SAS Macro code | Kannan Deivasigamani, Douglas Lunsford |
Researchers and statisticians at some point during their analysis tend to think about confounders and if a variable is a confounder in their study. While there are a handful of ways to identify this, I don't recall coming across a tool that would perform a systemic and quantitative check through a simple line of code in SAS. This paper is an attempt to provide that easy option for a researcher to call by simply passing a few parameters as part of the call while the macro code does the rest. Given there are non- quantitative approaches to dissect the essence of the dataset and the study to determine if a certain variable in a dataset is a confounder, this automated quantitative approach is likely to add value by taking away some of the manual steps and tasks by means of the Systemic Quantitative Confounder Check (SQCC) macro | cpu time, macro variable, predictor variable, data step, regression analysis, macro put, proc sql, proc step | source | 17 |
| 75 | Teaching Business Statistics with JMP Software | Shanzhen Gao | JMP is a suite of computer programs for statistical analysis developed by JMP, a subsidiary of SAS Institute. We will list topics that can be introduced with JMP software in an undergraduate business statistics course. We will present strategies for engaging students in active learning and enhancing students' confidence in learning busi ness statistics with JMP, such as implementing ChatGPT in education. Keywords Business Statistics, JMP Software, ChatGPT, active learning, engagement, collaborative learning | source | 9 | |
| 76 | The Battle of the Titans: DATA Step versus PROC SQL | Kirk Paul Lafler, Richann J. Watson, Joshua M. Horstman, Charu Shankar |
Should I use the DATA STEP or PROC SQL to process my data? Which approach will give me the control, flexibility, and scale to process data exactly the way I want it? Which approach is easier to use? Which approach offers the greatest power and capabilities? And which approach is better? If you have these and other questions about the pros and cons of the DATA STEP versus PROC SQL, this presentation is for you. We will discuss, using real-life scenarios, the strengths (and even a few weaknesses) of the two most powerful and widely used data processing approaches in SAS (as we see it). We will provide you with the knowledge you need to make that difficult decision about which approach to use to process all that data you have |
proc sql, proc step, create table, group by, inner join, relational database, select, if-then-else | source | 22 |
| 77 | The Best of Both Worlds: Analytics with SAS Viya and Python | Peter Styliadis | sas viya, cas, cas action, parallel processing, machine learning, regression analysis, python, proc reg, sample, big data, create table, sas studio, anova | source | 63 | |
| 78 | The Everytown Research database: Using SAS analytic procedures to analyze mass shootings | Jayanth Iyengar | With mass shootings occurring every week, It can accurately be stated that mass shootings in the U.S. have reached the level of an epidemic. Everytown Research and Policy conducts independent methodically rigorous research and supports evidence-based policies to reduce the incidence of gun violence. In 2009, Everytown Research started assembling a Mass Shooting database which records key data on every mass shooting in the U.S. In this paper, I examine and explore the database using SAS procedures to produce a series of tables, reports, graphics and visualizations. The goal of this project is to generate insights from the SAS analytics that guide the building of effective programs and policies to reduce the epidemic of mass shootings | cpu time, proc step, proc freq, if-then-else, proc sgplot, dataset, proc contents, proc import, proc sql, excel, sas base, sas output, sas studio, character variable, proc print, proc report, index, numeric variable, proc means | source | 31 |
| 79 | The Variety of Email Notifications Using SAS | Emily Morin | Whether updating data or creating reports, an email notification is needed. Doing this manually has the opportunity for errors on multiple fronts, especially if multiple emails need to be sent out; further, writing multiple email notifications can take time away from other tasks. To keep a consistent email message, SAS Enterprise Guide and SAS Base programming can be used to simplify and keep consistency throughout messages. This paper will demonstrate the variety of ways to create email notifications that are easy to maintain. This paper is intended for the SAS novice who is looking to simplify the process of repeated and consistent notifications for internal and external use | put statement, sas enterprise guide | source | 6 |
| 80 | Translating Common Data Visualizations from PROC SGPLOT to ggplot2 | Austin R. Brown | Data visualizations are a powerful way of communicating information in a brief and aesthetically pleasing manner. Most every statistical software has some means of generating visualizations with some being easier to work with or modify than others. In SAS, PROC SGPLOT is a very useful procedure for generating visualizations. However, the modern data scientist is often required to be well-versed in multiple programming languages to meet the needs and demands of their organizations. For instance, R is a very popular statistical programming language that many employers want or need their data science teams to be familiar with. Thus, in this paper, it will be shown how common univariate and bivariate visualizations generated with PROC SGPLOT can be similarly generated with the ggplot2 package in R. Examples are given and thoroughly explained |
proc sgplot, proc step, bar chart, data visualization, vertical bar chart, data science, proc freq, simple linear regression, regression analysis, proc reg, box plot, proc sql, numeric variable, statistical software | source | 11 |
| 81 | Two illustrations of the Quantity Theory of Money: A Restatement | Lawrence Ogbeifun | Over four decades ago, Robert Lucas established the implications of the Quantity Theory of Money by presenting evidence on the relationship between inflation rates, nominal interest rates, and growth rates of monetary aggregates. Building upon Lucas' work, this study ex- tends the analysis over a longer time span, employs new monetary measurement techniques, and incorporates a long-term interest rate measure. The results of the earlier subsample anal- ysis, utilizing the exponential weighted moving average filter, provide evidence that aligns with Lucas' predictions. Particularly for M1 and M2 money growth measures, the quantity- theoretic predictions are observed, supporting Lucas' propositions. However, beyond the initial period, the conclusions drawn from the Quantity Theory of Money become contingent upon the specific monetary measurement and filtering technique employed. JEL Codes: E01; E42; E43 Keywords: Monetary Measurement, Inflation Rate, Interest Rate, Filter. 1 | interest rate, scatter plot, regression analysis, moving average, sample, correlation, proc calis, proc freq | source | 81 |
| 82 | Understanding Administrative Healthcare Datasets using SAS programming tools | Jayanth Iyengar | Changes in the healthcare industry have highlighted the importance of healthcare data. The volume of healthcare data collected by healthcare institutions, such as providers and insurance companies is massive and growing exponentially. SAS programmers need to understand the nuances and complexities of healthcare data structures to perform their responsibilities. There are various types and sources of administrative healthcare data, which include Healthcare Claims (Medicare, Commercial Insurance, & Pharmacy), Hospital Inpatient, and Hospital Outpatient. This training seminar will give attendees an overview and detailed explanation of the different types of healthcare data, and the SAS programming constructs to work with them. The workshop will engage attendees with a series of SAS exercises involving healthcare datasets | proc step, proc freq, proc sort, proc tabulate, insurer, sas programmer, health insurance, proc contents, proc format, proc sgplot, proc sql, deduplication, group by, service provider, sample, proc report, sas programming, by group processing, dataset, lookup, proc means | source | 25 |
| 83 | Unobserved Components Models: Applications in Post-COVID Analysis | David J. Corliss | Unobserved Components is a type of State Space model used to detect and measure changes in a long- term baseline. The SAS/ETS procedure PROC UCM implements this method to decompose time series into components including long-term trend, periodic variations, and regression features. UCM is often used to analyze variations in baseline values due to change in the state of the system. PROC UCM is applied to the evolution of the COVID-19 pandemic to determine if various factors such as business conditions have returned to pre-pandemic levels. PROC UCM functionality, options, graphical output, and model interpretation |
time series analysis, proc ucm, proc step, regression analysis, irregular component | source | 10 |
| 84 | Unsupervised Dimension Reduction Techniques for Lung Cancer Diagnosis Based on Radiomics | Janet Kireta, Mostafa Zahed |
Over the years, cancer has increasingly become a global health problem. For successful treatment, early detection and diagnosis are critical. Radiomics is the use of CT, PET, MRI, or Ultrasound imaging as input data, extracting features from image-based data, and then using machine learning for quantitative analysis and disease prediction. Feature reduction is critical as most quantitative features can have unnecessary redundant characteristics. This research aims to use machine learning techniques to reduce the number of dimensions, thereby rendering the data manageable. Radiomics steps include Imaging, segmentation, feature extraction, and analysis. For this research, large-scale CT data for Lung cancer diagnosis collected by scholars from Medical University in China is used to illustrate the dimension reduction techniques via SAS and Python. The data is available on The Cancer Imaging Archive (TCIA) | proc princomp, hierarchical clustering, covariance, feature extraction, correlation, agglomerative clustering, dimensionality reduction, cluster analysis, proc fastclus, scree plot, r-squared, sample | source | 21 |
| 85 | Using Macro in SAS to Read, Combine Datasets, and Analysis NICU Study | Abbas S. Tavakoli, Ashley Howard, Kayla Everhart, Jessica Bradshaw, Robin B. Dail |
Body temperature is an indication of autonomic control and monitoring body temperature is important for the health of premature babies. One way to monitor body temperature in premature infants is through continuous measurement of central (abdominal) and peripheral (foot) skin temperature. Premature infants, born ≤ 32 weeks gestational age with birthweights < 1500 grams are enrolled in NIH/NINR: 1R01NR017872 to study body temperature and infection. This study enrolled a subset of 17 infants to compare body temperature over infants first month and longitudinal neurodevelopmental assessments for indicators of autism between 6-12 months of age. Infant temperatures are measured using a thermistor attached to their abdomen and a thermistor attached to the sole of one foot, every minute for 28 days. Data is downloaded from research dataloggers in EXCEL format. Lag and several functions in SAS were used to prepare data for analyses |
statistical software, proc freq | source | 6 |
| 86 | Using SAS In Generating Multi-Jurisdictional Reports for U.S. Retail Industries' Employment Trends | Abdullah Khan | This paper demonstrates how the SAS ODA web application can be used to combine historical data files into a large data set so that multi-jurisdictional trends of interest can be calculated programmatically. The U.S. retail industry as a whole serve as the second largest source of private-sector employment. The spatial analysis of employment trends in this sector is therefore important for both academic and industry insights. The prime objective of this paper is to demonstrate how SAS ODA can be used to generate tabular reports, maps, and multivariate scatterplots in depicting employment trends for various U.S. retail industries at various jurisdictional levels using the County Business Patterns data of the Census Bureau for the years 2001 through 2021. This paper presents some snippets of SAS codes and output depicting the employment trends for the U.S. retail sector at the county level, state level, census division level, census region level, as well as national level | sample, sas output, data visualization, proc step | source | 21 |
| 87 | Using SAS to Prepare Postsecondary Data Partnership (PDP) Data Submission Files | Bobbie J. Frye | Transforming the way a higher education institution measures and reports student progress so that every student can thrive can be bolstered by joining the Postsecondary Data Partnership (PDP) and submitting comprehensive student data to the National Studen t Clearinghouse. The initial data collection for the PDP is the most time consuming, includes up to five years of data, but the process outlined in this document can be replicated for future data collections. In this paper, several pieces of SAS code were extracted and isolated for illustration purposes. The SAS code can be utilized by beginners or intermediate programmers to prepare files for the PDP. While the PDP equips institutions with accessible reports and visualizations, SAS software provides a flexible roadmap to successful data submissions | put statement, libname statement, macro variable, dataset | source | 12 |
| 88 | Utilizing SAS to Create HTML Codebooks | William Zachary Smith | Creating codebooks for datasets is an important part of delivering a high-quality data product package to a client or stakeholder. Most times, codebooks for datasets can be delivered in an EXCEL spreadsheet, but other times clients or stakeholders may ask for codebooks in a more elegant and presentable format. However, that process can often become cumbersome when dealing with large datasets with hundreds of variables and is often prone to human error when manually transferring the information out of an EXCEL spreadsheet and into another format. To reduce the amount of effort required and room for error, a SAS program was created that reads in all the variable information from an EXCEL spreadsheet and transforms it into a formatted and easily navigable HTML codebook. This paper will demonstrate how to integrate HTML code into your SAS programs to create such codebooks, making the process of creating custom codebooks seamless, and sometimes even fun |
excel, put statement, proc step, file statement, proc sort, label statement | source | 10 |
| 89 | Visualizing Chronic Lung Disease Incidence in SAS; An Educational Journey to Data Visualization | Natalie A. Jordan, A. Nicole Ferguson, Jessica G. Woo, Kevin Gittner, Reese H. Clark |
Chronic Lung Disease (CLD) in NICU infants is a serious complication of prematurity, and clinicians in the medical field would like to identify infants most at risk based on weight at birth. To address this, birth weight measurements of US NICU infants from the Pediatrix Clinical Data Warehouse born between 2013 and 2018 at 24-33 weeks gestation were classified using percentile cutpoints from published growth curves. Procedures in SAS 9.4 and Microsoft EXCEL may be used separately or in tandem to identify the incidence of CLD. To observe differences in CLD incidence rates, the beginner to intermediate level SAS base programmer can generate descriptive statistics and assess the relationship between clinical categorical factors, including gestational age (in weeks), CLD (yes/no), and weight classification. Infants are classified traditionally as small, appropriate, or large for gestational age at birth for weight using available percentile cutpoints |
excel, bar chart, proc freq, proc step, proc sgplot, if-then-else, character variable, nominal variable | source | 10 |
| 90 | Wald Tests in Mixed Models - a Warning | David A. Dickey | In mixed models, tests for variance components can be of interest. In some instances, several tests are available. For example, in standard balanced experiments like blocked designs, split plots and other nested designs, and random effect factorials, an F test for variance components is available along with the Wald test, Wald being a test based on large sample theory. In some cases, only the Wald test is available, so it is the default output when the COVTEST option is invoked in analyzing mixed models. However, one must be very careful in using this test. Because the Wald test is a large-sample test, it is important to know exactly what is meant by large sample. Does a field trial with 4 blocks and 80 entries (genetic crosses) in each block satisfy the "large sample" criterion? The answer is no, because, for testing the random block effects, it is the number of blocks (4) that needs to be large, not the overall sample size (320) | f-test, sample, restricted maximum likelihood, anova, degrees of freedom, likelihood function, proc mixed, fixed effects, random sampling, standard deviation, z-test, numeric functions, sample size, missing value, null hypothesis, proc glm, treatment effect, proc genmod, proc calis, covariance, residual, estimate, proc step | source | 20 |
| 91 | What's black and white and sheds all over? The Python Pandas DataFrame, the Open-Source Data Structure Supplanting the SAS Data Set | Troy Martin Hughes | Python is a general-purpose, object-oriented programming (OOP) language, consistently rated among the most popular and widely utilized languages, owing to powerful processing, user -friendly syntax, and an unparalleled, abundant open-source community of developers. The Pandas library, a freely downloadable resource, extends Python functionality, and has become the predominant Python analytic toolkit. The Pandas DataFrame is the primary Pandas data structure, akin to the SAS data set in the SAS ecosystem. Just as SAS built-in procedures, functions, subroutines, and statements manipulate and interact with SAS data sets to transform data and to deliver business value, so too do Python and Pandas methods, functions, and statements deliver similar functionality | user-defined format, dataset, master data management, proc sql, macro variable | source | 17 |
| 92 | Wildcarding in WHERE Clauses | David B. Horvath | This mini-paper (and the resulting short session) is a focused discussion of wildcarding within the Where clause and related functionality within SAS. There is wildcarding allowed within where clause like expressions by using special characters. But if you want to search for those specific characters, you have to override them. If you forget to escape the character, you'll get unexpected matches. Topics include: PROC SQL; select x from y where x like %a/_b escape /; _ matches 1 character % matches any characters / escapes the next character (says next is actual character, not special meaning) * set sorted_ddl (obs=max where=(name like '%/_ORD%' escape '/')); |
where statement, index, proc step, proc sql | source | 7 |
| 93 | Working in SGPLOT: Understanding the General Logic of Attributes | Jonathan W. Duggins, James E. Blum |
ODS Graphics use common style elements for distinct graphical entities - text, symbols, fills and lines - through attribute options. Most graphical entities produced, either by default or requested via a specific option, can have their styles modified with an ATTRS-type option. The syntax of such options is built to be consistent across instances of these graphical entities for most plotting statements that generate or control them. Knowing what graphical entities are generated by various statements and options, along with understanding how SAS categorizes graphical entities and their style elements, can help make style modification much easier to understand. Examples focus on the commonalities present across a wide variety of plotting statements and options within them. Some non-standard style elements are also considered |
proc sgplot, ods graphics, output delivery system, proc step, bar chart | source | 16 |
| 94 | Zen and the Art of Problem Solving | David B. Horvath | Although software development is taught as a STEM out of Science or Engineering schools, it is as much an art or craft - a creative process - as a science. This presentation focuses on innovative problem solving techniques the tools and techniques to use when your normal process just doesn't seem to get you to a solution. Much of the information in this talk is based on Robert Pirsig's Zen and the Art of Motorcycle Maintenance, which, although it focuses on Motorcycles, applies to all kinds of problem spaces (and Pirsig was a tech writer for IBM). These techniques have served me well over the years. The difference in art versus science approaches is actually supported by the way the brain works | problem solving, account | source | 8 |
This site serves as a convenient hosting location and does not work as a publisher. All copyrights belong to their respective owners.
The information on this site is provided for general reference purposes only. Whilst every effort is made to ensure that the site is up to date and accurate, no warrant, nor any responsibility or liability for, the accuracy or completeness of the content or for any loss which may arise from reliance on information contained in this site is provided. Links to other sites are provided for your convenience but no responsibility or liability for the content of those sites or of any external site which links to this site is accepted. References to any specific commercial product, process, service, or corporation are also for information only, and do not constitute endorsement, recommendation or favoring.
SAS is a registered trademark of SAS Institute Inc. SAS, Statistical Analysis System, and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration.
HOME
QUICK SEARCH
AUTHORS
KEYWORDS
HELP
BUGS