SAS® GLOBAL FORUM 2019
Our conference sessions are top notch – and they aren’t one-size-fits-all. We offer lecture-style sessions for the classroom learner; 10-minute Quick Tip sessions for those who prefer a more abbreviated approach to learning; e-posters for the visual learner; and more. You’ll get practical knowledge and know-how to advance your capabilities and career.
Daily Schedules: Want to get a jump-start and plan ahead? Then we’ve got just the tool. Now available in our session catalog you can review and print ahead daily conference schedules. This will ensure every day at SAS Global Forum is filled with sessions that are just right for you.
SWAT's It All About? SAS® Viya® for Python Users
Amadeus Software Limited
Python is described within the community as the “second-best language for everything” (Dan Callahan, keynote at PyCon 2018). The strength of Python as a language stems from its huge range of uses, including as a tool for data science. Python is taught in many university courses, resulting in a vast number of coders with Python skills in the data science industry. Last year at Amadeus, we explored the use of SASpy as an initial tool to bridge the gap between Python and SAS 9.4 (Foreman, 2018). This year, we move on to look at integration with SAS Viya. In July 2016, SAS released Python Scripting Wrapper for Analytics Transfer (SWAT), a Python library. It enables connections to SAS Cloud Analytic Services (CAS), and therefore, opens up the functionality of SAS Viya to Python users. SWAT enables users who do not have a SAS background to perform their data manipulation and analytics using more familiar pythonic syntax, while still harnessing the power of CAS and SAS Viya. We’ll demonstrate the use of Python SWAT to first connect to a CAS session, load data from Python into CAS, and use CAS action sets to analyze it. Plus, we’ll make the data available to other applications, such as SAS® Visual Analytics, to demonstrate some of the functionality this gives.
Stepping Up Your SAS® Game With Jupyter Notebooks
California Polytechnic State University
From state-of-the-art research to routine analytics, the Jupyter Notebook offers an unprecedented reporting medium. Historically, tables, graphics and other types of output had to be created separately and then integrated into a report piece by piece, amidst the drafting of text. The Jupyter Notebook interface enables you to create code cells and markdown cells in any arrangement. Markdown cells allow all typical formatting. Code cells can run code in the document. As a result, report creation happens naturally and in a completely reproducible way. Handing a colleague a Jupyter Notebook file to be re-run or revised is much easier and simpler for them than passing along, at a minimum, two files: one for the code and one for the text. Traditional reports become dynamic documents that include both text and living SAS code that is run during document creation. With the SAS kernel for Jupyter, you have the power to create these computational narratives and much more!
Measuring Model Stability
Seneca College of Applied Arts and Technology
If stability of a model’s performance is important, how would you measure it before deploying the model into production? This presentation discusses the use of a randomization test as a post-model-build technique to understand the potential variations in a model’s performance. Awareness of the variance in model performance can influence deployment decisions and manage performance expectations once deployed. During model build, this information can also be of use in choosing candidate models.
Integrating Python and Base SAS®
Venu Gopal Lolla
Oklahoma State University
There’s a new framework for integrating Python into Base SAS on the Microsoft Windows platform. Previous attempts at invoking Python functionality through Base SAS involved the use of a Java object in the DATA step. We’ll discuss a more comprehensive framework that includes support for the following: transferring data and parameters from SAS to Python; transferring data from Python to SAS; transferring figures generated in Python (using Matplotlib) back to SAS reports; and transferring contents from standard output and error streams from the Python process back to SAS reports. Although the components required to invoke Python from Base SAS have been available for a while, the lack of ease of use could prove to be a barrier to widespread use. The proposed framework aims to improve the usability of Python functionality through Base SAS by making the process more user friendly. The framework is implemented through helper SAS macros, helper Python scripts and helper binaries.
A Neural Net Brain for an Autocompletion Engine:
Improving the UX Through Machine Learning
An autocomplete feature has been present in integrated development environments (IDEs) and source code editors for more than a decade. It speeds up the process of coding by reducing typos and other common mistakes. SAS® Studio, for example, suggests a next appropriate keyword in a context. That software often uses the declarative approach to implement autocompletion. The main problem with this approach is implementation size, which scales with a language’s grammar size, leading to very complex logic. In this presentation, we solve the autocomplete engine construction problem by using machine learning, which automatically derives an autocompletion engine from a language without explicitly being programmed. The idea is to use generative models based on a recurrent neural network (RNN) trained on SAS source code to generate the suggestions, like what you're going to type next, much like your phone predicts your next words. An output of a generative model is a new piece of something that looks like SAS source code. We say “looks like” because each output of a generative model is unique and we can't be sure that the generated text is valid SAS source code. And here is where SASLint comes to the rescue. We use SASParser from SASLint to check that generated text is valid SAS source code and suggest it to a user as an autocompletion. This autocompletion functionality is demonstrated in a web-based text editor built on top of Ace.
Important Performance Considerations When Moving SAS® to a Public Cloud
Any hardware infrastructure that is chosen by SAS customers to run their SAS applications requires a good understanding of all layers and components of the SAS infrastructure. Also required is an administrator to configure and manage the infrastructure. Customers must also be able to meet SAS requirements. Not just to run the software, but to also enable it to perform optimally. This presentation discusses important performance considerations for SAS®9 (both SAS Foundation and SAS Grid Manager) and SAS® Viya® when hosted in any of the available public clouds, such as Amazon Web Services (AWS), Microsoft Azure and Google Cloud Platform, to name a few. It also provides guidance on how to configure the cloud infrastructure to get the best performance with SAS.