SESUG 2007 Papers - Index
97 papers. Source: SESUG (SouthEast SAS Users Group) conference proceedings.
| # | Title× | Authors× | Abstract× | Keywords× | Extras | Pages |
|---|---|---|---|---|---|---|
| 1 | "Powerful" SAS Techniques from the Windows API | Samuel T. Croker | Ever wonder how well that old laptop battery is performing? Is it possible to do online tests of a laptop battery to determine the best power configuration? Need a way to cleanly exit a SASR⃝ process when the laptop battery is low or the system switches to auxiliary power? The Microsoft Windows API provides a method for polling system power sources and SAS makes designing a simple power source querying system easy. Keywords: Base SAS, MOD- ULEN, SASCBTBL, Microsoft Windows XP/2000, Microsoft Windows API, GetSystemPowerStatus, SAS/GRAPH |
data step, catalog entry | source | 6 |
| 2 | %TRAVERSE: A Knuth-style Recursive Procedure to Obtain Directory/Filenames | Andy Barnett | Most early computer languages lacked recursive syntax, but just as D. Knuth showed in his classic texts, using arrays and a few GOTOs solves that problem. Traversing trees, such as the directory/file trees on a typical operating system, or other hierarchical tree structures, is similarly easy to do without explicit recursive functions in SAS using Knuth's model. The DATA STEP in %TRAVERSE uses the SAS file functions FILENAME, DOPEN, DNUM, FOPEN, FCLOSE, DCLOSE, and arrays to build a SAS data set containing all the files (accessible by DOPEN and FOPEN) at and below a given "root" directory. The code works on Windows, and will work on UNIX, OpenVMS, and perhaps other systems without much change |
sample, sas enterprise guide, macro parameter, %if-%then-%else | source | 8 |
| 3 | %XMLPORT: An XML Substitute for SAS PROC CPORT/CIMPORT (almost) | Andy Barnett | With the introduction of XML and other specifications, previous means of transporting SAS libraries in "generic" form are being replaced. This paper presents a macro, %XMLPORT, intended to provide an XML solution to the SAS PROCs, CPORT and CIMPORT. At a minimum, the specified library's data sets (both metadata and data) and format catalog entries are converted to a single XML file, which can then be re-assembled on a different host. The process is tested as follows: use %XMLPORT on a test library, transmit the XML file to the new host; use %XMLPORT (in "reverse") to rebuild the SAS library there; use %XMLPORT to build a 2nd XML file; transmit this new file back to the original host; use %XMLPORT again to rebuild a copy of the original library on the original host; and finally use a comparison procedure such as PROC COMPARE to show the two libraries are equivalent |
proc step, create table, macro put, order by, proc cport, proc compare, proc sql | source | 14 |
| 4 | 1 of 3 | PC Tips | Do you ever need to access, change, view, or edit data on the mainframe? Do you not like the mainframe or like logging onto the OS/390 environment for fear of getting "lost"? There are ways to help you avoid writing JCL code or submitting a job that will sit in queue waiting for CPU time. Even if you are an expert mainframe user, there are tips and tricks in the PC environment that will make your life easier | autocall macro, proc step | source | 3 |
| 5 | A METHODOLOGICAL APPROACH TO PERFORMING CLUSTER ANALYSIS WITH SAS | William F. McCarthy | The purpose of this paper is to present an outline of steps that help to ensure that a cluster analysis is performed in a methodological manner. These steps allow for proper data exploration, verification and iteration. The approach presented is in the spirit of data mining/exploratory analysis. Each step in the outline is linked to SAS code and SAS output. This presentation will use a well-known data set from Rouncefield M. (1995) The Statistics of Poverty and Inequality, Journal of Statistics Education, Vol. 3, No. 2. The data considered are live birth rate per 1,000 of population, death rate per 1,000 of population, infant deaths per 1,000 of population, and country (97 countries considered) | cluster analysis, proc step, covariance, raw data, sas output, proc univariate, proc aceclus, scatter plot, box plot, proc cluster | source | 13 |
| 6 | A SAS Macro to Automate the Process of Pooling Sites | Changhong Shi | In an international clinical trial, t he patients are located in different geographic regions, such as US region, Asia- Pacific region, and other regions. In eac h region, the patients can be randomized to different sites, within different treatment groups. To minimize the difference in the number of patients between each site within the same region, we pool several small sites together to make a larger site called CENTER according to pre-specified criteria. A center, rather than individual small sites, can be used to test the stability of treatment effect of a drug using SAS Mixed model, that is commonly used in statistical analyses. This paper describes two approaches of applying sites/center(s) to fit the Mixed model. One is using an automatic macro call that pools small sites to create centers, another approach is considering the individual sites as the random effect without pooling | treatment effect, proc mixed | source | 6 |
| 7 | A SAS Macro: Similar Code for the Similar Schools Data Processing | Imelda C. Go | In an effort to simplify and ma ke more efficient the similar schools data PROC essing for the South Carolina district and school report CARDS, a macro was written and documented for use amo ng different programmers. The documentation provided clear instructions about how a programmer could provide parameters to the macro and obtain similar schools data that was normally provided by another programmer. Since similar schools data proce ssing covered different types of data (i.e., primary school, elementary/middle school, high school, and district) and used the same algorithm but with different in put variables, the situation lent itself well to macro programming. Given different variables (e.g. attendance rate, retention rate, etc.), the ta sk was to find the median value for schools that are similar to a given school. Schools that are similar to a given school are tho se that have a poverty index that is within 5% of the given schoo l's poverty index |
macro variable, proc step, data wrangling, macro parameter, macro definition | source | 9 |
| 8 | A Study on Kentucky Highway Fatalities | Highway Fatalities Ryan Glassford | sample, time series analysis | source | 5 | |
| 9 | ABC Macro and Performance Chart with Benchmarks Annotation | Jing Li | The achievable benchmark of care (ABC TM) approach identifies the performance of the top 10% of healthcare providers as the benchmark. Com paring individual performance with peer performance should be a powerful motivator to change behavior and improve quality of healthca re. This paper presents a SAS Macro to calculate ABC, also presents the utilization of Annotate data set to label ABCs on individual clinician's performance bar chart | dataset, bar chart, proc step, proc gchart, macro variable, proc sql, macro definition | source | 6 |
| 10 | Analyzing Large Social Networks with MP Connect, SAS/IntrNet, and %DS2CONST | Shane L. Hornibrook | There are few analyses that rival the requirements of an interactive, web-delivered Social Network Ana lysis (also known as Link Analysis). Essentially the question p osed to the data is "Who is connected to whom and h ow strongly are they connected?" Linking disparate multi-millio n-row databases and interactively reporting interes ting links is a task that was, until recently, daunting. Historical ly, analysts have lacked the computational resource s and analytical methods necessary to concisely report on the linkag es between "key players" in networks of interest, p reventing whole-network approaches. SAS/INTRNET reports inte grating the Constellation Applet and utilizing the parallel- processing capabilities of MP Connect provide an id eal method for returning relevant, timely Social Ne twork Analyses from massive databases. Investigators can subsequently select "interesting" network component s and individuals for further visualization and investiga tion |
social network analysis, mp connect, proc sql, macro variable, nominal variable, relational database, proc step | source | 7 |
| 11 | Application of an Exact Covariate Matching Macro in Outcome Analysis | Guiping Yang | In terms of comparable sample selection and treatment effe ct evaluation, propensity score matching is not always the most appropriate solution for observational studies. This paper presents a SAS MACRO, %ExactMatch, to assist the investigators in such circumstances. Th is macro addresses the challenges of matching treated subjects to the most similar controls based on specific observables. The implementations of this macro in healthcare outcome analyses have proved it as an invaluable method of selecting the comparable samples easily and conveniently. %ExactMatch performs most efficiently with small treatment gr oups and considerably large pools of control subjects. Categorical factors are matched exactly at the specification level; however, continuous measurements are compared within certain calipers predetermined by users. The maximum acceptable distanc e for individual numerical factors between treatment and control subjects should be chosen carefully | sample, sample size, propensity score, nominal variable, missing value, propensity score matching, interval variable, treatment effect, proc freq, imputation, macro definition | source | 19 |
| 12 | Automated Real-Time Forecasting of Stream Conditions with SAS | Samuel T. Croker, Shane L. Hornibrook, Tomonori Ishikawa |
When you are a SAS R⃝ programmer planning a canoe trip down the Edisto River in South Carolina, you want to know what river conditions to expect. One easy-to-run program, incorporating three critical features of SAS, can generate reasonably-accurate, short-term forecasts of river level using real-time data provided online by the United States Geological Survey. First, using the URL access method of the FILENAME statement and basic DATA STEP techniques, you can import data from the online USGS water data repos- itory. Second, you can analyze the resulting data set and produce forecasts with SAS High-Performance Forecasting procedures by choosing among models as diverse as ARIMA, ESM and UCM. Third, you can display effective graphs of the resulting forecasts with SAS/GRAPH. Y ou can easily apply these techniques to other data and analyses to provide a complete SAS-based solution from web-enabled ETL to automatic generation of forecasts to web publication of the results |
time series analysis, proc step, sample | source | 9 |
| 13 | Benefits of Using Bridging Metadata | Doug Janssen | As working on analyzing clinic trail data for pharmaceutical companies, we first collect subjects' information through either electronic forms or paper forms. However, both are raw data and cannot be used for analysis purposes. Therefore, we need to build up analysis data based on the information we collected. While creating data we need to define the formats for each variable such as variable name, label, type, and length. You can input those formats in the program as part of DATA STEP. You also can input formats in EXCEL spreadsheet as a dataset. Whereas the later is easy for user to input, check, and modify if necessary. This paper provides an idea about how to generate analysis data through Bridging Metadata, which connects Source data (such as data location and variable name) and Target data (such as data location, variable name, label, variable type, variable length, and formats) |
raw data, response variable, macro variable, macro loop | source | 4 |
| 14 | Building Your Own Real-Time SAS Server Monitor under UNIX | Houliang Li | No matter how abundant your production or development hardware resources may be, you will run into problems once in a while, whether it is CPU, memory, or disk space. If such problems occur too frequently, you need to take some preventive measures, such as getting an advance warning system. You can have devoted administrators watching over your Unix SAS servers around the clock with commercial monitoring tools, or you can build one from scratch. Base SAS has provided all the tools you need to construct your own real-time SAS server monitoring and reporting system, and this paper will show you how to put them together. The benefits to your organization are endless, and you get to play Big Brother for your SAS users. Trust me, they will love you | work library, macro loop, sas base, create table, %if-%then-%else, proc sql, macro definition, proc freq | source | 7 |
| 15 | Cleaning Data the Chauvenet Way | Lily Lin, San Mateo |
Throwing away data is a touchy subject. Keep the maverick and you contaminate a general trend. Toss away good data points and you don't know if something important has happened -- until its too late. How do you know what, if any, data to exclude? Chauvenet is the answer. Here is a really gentle test you can apply to any distribution of numbers. It works equally well for normal, skewed, and even multi-modal populations. This article gives you a macro tool for cleaning up your data and separating the good from the bad. Skill Level: Basic statistics, DATA STEP, SAS/MACRO, and PROC SQL |
outlier, sample size, sample, proc step, proc sql, proc means | source | 11 |
| 16 | Creating a Stored Macro Facility in 10 Minutes | Erik S. Larsen | Every SAS macro developer from time to time has sp ent countless hours writing, testing and perfecting code so that it can be used over and over by differ ent users on different platforms. There are certain situations where one needs to enhance the speed of the processing of SAS code, such as in a production environment or if there is a need to process large volumes of data. A SAS Stored Macro Facility consists of a library of SAS macros which are already compiled, that are available to users or processes at any ti me. These pre-compiled macros run immediately when called and do not use valuable CPU time while waiting for compilation. Some examples of where a stored ma cro facility would be useful are in production environments, where jobs may be scheduled to run on a certain day of the day, week, or month. Another would be a standard report which is being used for an FDA submission and needs to be in an exact forma t | stored macro, macro facility, autocall macro, libname statement, options statement, macro definition, cpu time | source | 3 |
| 17 | Creating Data-Driven Data Set Names in a Single Pass Using Hash Objects | Jack Hamilton | Although it's not usually good SAS coding practice, external requirements sometimes demand that you create a series of SAS data sets, each with a name derived from a data value (such as STATES.CA containing data for California, STATES.KY containing data for Kentucky, and so forth, created from a master table containing data for all states). A common solution is to make two passes through the input data: one to collect the different values needed for the names, and another to reread the input and write the output data sets. This paper presents a differe nt method, using the new DATA STEP Hash Object to create multiple output data sets with a single pass through the input data. Although this method is not suitable for all occasions, it is a useful tool to have in your arsenal. The use of a DOW loop to simplify BY-group processing is also discussed |
hash table, conditional do loop, data step, dataset, sample, proc sql, master data management, proc step, by group processing | source | 10 |
| 18 | Creating Multi-Sheet Excel Workbooks the Easy Way with SAS | Vincent DelGobbo | Transferring SAS data and analytical results between SAS and Microsoft EXCEL can be difficult, especially when SAS is not installed on a Windows platform. This paper discusses using the new XML support in Base SAS 9.1 software to create multi-sheet Microsoft EXCEL workbooks (versions 2002 and later). You will learn step-by-step techniques for quickly and easily creating attractive multi-sheet EXCEL workbooks that contain your SAS output. Tips and tricks with the ExcelXP ODS tagset will be divulged. Most importantly, the techniques that are presented in this paper can be used regardless of the platform on which SAS software is installed. You can even use them on a mainframe! The use of SAS server technology is also discussed. Although the title is similar to a paper presented at SUGI 31 (DelGobbo, 2006), this paper contains new and revised material not previously presented by this author |
excel, xls, proc print, sas output, proc report, sas base, change from baseline, adverse event summary, adverse events, sample, output delivery system, proc template, proc step, ods xml | source | 19 |
| 19 | Customized Base SAS implemented solvers | Ruben Chiflikyan, Mila Chiflikyan, Jean Richardson, Renee Karlsen, Donna Medeiros |
Solvers are software tools or subroutines, designed for solving a problem in the area of numerical analysis. The use of efficient reusable mathematical software as the building blocks for complex programs is beneficial for creation of viable applications. Presently, there are numerous scientific software libraries created on the basis of known high-level programming languages. SAS also has a large number of solvers available in SAS/OR and SAS/IML modules, most of which are not available to SAS Base only users. Thus, the creation of Base SAS implemented scientific software repository of efficient customized solvers is of great importance for SAS community. The goal of this paper is a presentation of three customized Base SAS implemented solvers, based on well known mathematical algorithms. Particularly, the first solver finds a solution x to the equation 0)( =xf using the bisection method as a root-finding algorithm |
sas base, macro variable | source | 12 |
| 20 | Data Management Strategies | Abbas S. Tavakoli | data governance, longitudinal data | source | 11 | |
| 21 | Data Mining and Investigating Treatment Options of Osteomyelitis with MRSA | Hamed Zahedi | Objective: This study is about the time series modeling of the tota l cost of Hospitalization for patients that have had amputation or osteomyelitis (bone infection). We considered different DRG codes separately. Methods: Time Series was used on the NIS data (National Inpati ent Sample) to forecast the Total Charges of Healthcare. We focused on the patients that have osteomye litis (bone infection) or amputation performed. We fi ltered these patients using DRG (Diagnostic Related Group) 113, 114, 213, 238 and 285. Time Series Models of the dat a were created in Enterprise Guide 4. An ARIMA (1,1,1) Model was used on the time series. Inflation Rate was added to the times series dataset as a dynamic regressor. We also created time series of the dat a by grouping different DRG codes and then by using PROC HPF to find the best model. Result: Overall, these data are increasing linearly. From the times series of these data, we see a large jump at the end of 2002 and the beginning of 2003 |
proc esm, time series analysis, estimate, akaike information criterion, proc calis, first difference, feature selection, residual, proc step, sample | source | 9 |
| 22 | Data Mining Episode Groupers | Patricia B. Cerrito | It is the purpose of this study to develop a method to def ine sequential episodes of patient care. We will use data from a cohort of patients with heart problems and diabetes. We will focus on the condition of congestive heart failure, a co-morbid disease of diabetes that is progressive and irreversible. The biggest problem is to determine where one episode ends and another begins. We start with time series methods to order the claims sequentially. Then we use path analysis in SAS Enterprise Miner to see which epis odes are related sequentially. Domain knowledge is also required to define the episodes. Once the episodes are defi ned, we use decision trees to examine the relationship between treatment and outcome. We want to determine whet her different treatments lead to different outcomes | data mining, proc hpsplit, time series analysis, insurance claims, logistic regression, survival analysis, sample, data science, logistic distribution, market basket analysis, regression analysis, hazard function | source | 13 |
| 23 | Data Mining to Investigate University Expectations of Work | Guoxin Tang | Objective: To investigate the expectations the faculty has of students, and how varied those expectations are. Methods: Course sy llabi from representative departments were collected to investigate variability in course requirements between faculty within a department, and across departments (107 total). In addition, information will be collected to examine department expectations of faculty work. For this study, we used SAS Text Miner to investigate the sy llabi. In addition, the sy llabi w ere coded for the number of test s, quizzes, and homework assignments, the presence of p articipation requirements or attendance requirement s, and w eighting of the final to comp are manual coding to SAS T ext Miner result s. T he syllabi were coded as to w hether they included a st atement indicating the expected number of hours each student should spend studying course material. Result: Text Miner divided the 107 syllabi into 10 clusters | dataset, proc freq | source | 6 |
| 24 | Data Quality Management, Data Cleansing, and Discrepancy Reporting | Jenine Milum | Whether your data comes to you in the form of SAS datasets or in another form, Data Quality Management and Data Cleansing are a must. With Data Cleansing comes Discr epancy reporting. This session covers Data Quality Management, Data Cleansing, and Discrepancy reporting techniques applicable to most SAS shops. Data Cleansing is important if the sources ar e external and especially critic al if the data source is fr om manual input. Whether you are just getting started on a new projec t or realize more Data Management is necessary for a current project, these areas require proper documentation and planning using best standards. This paper will offer practical approaches to these topics using Base SAS/MACROS |
data cleaning, data dictionary, data validation rules, proc step | source | 9 |
| 25 | Data Step Hash Objects as Programming Tools | Paul M. Dorfman, Lessia S. Shajenko |
In SAS Version 9.1, the hash table - the very first object introduced via the DATA STEP Component Interface in Version 9.0 - has become robust and syntactically stable. The philosophy and application style of the hash objects differs quite radically from any other structure ever used in the DATA STEP previously. The most notable departure from the tradition is their run-time nature. The hash objects are instantiated and/or deleted and acquire memory, if necessary, at the run-time. It is intuitively clear that such traits should make for very interesting and flexible programming having not seen in the DATA STEP code of yore. Although some propaedeutics will be provided in the paper, the talk is intended for SAS programmers already somewhat familiar with the basic ideas and syntax behind the hash objects |
hash table, hash iterator, composite key, length statement, data step, dataset | source | 21 |
| 26 | Data Step Hieroglyphics | Harry Droogendyk | Have you found that most SAS DATA STEP code is quite readable? SAS statements, functions, keywords and SI supplied routines are most often given meaningful names. If the developer has been even somewhat verbose while naming DATA STEP variables, the final product can "read" quite easily. Sure it reads easy …, until you encounter the {*&%~(.:@|? special characters littered throughout the code!! What in the world do those things mean? Do we really need the funny characters? This paper will examine 10 implementations of special characters, each of them specially placed in the SAS language for your coding pleasure. Special characters, properly utilized, allow you to write code more quickly, more efficiently, and, believe or not, more simply |
data step, macro variable, input statement, &variable, character variable, do over, macro definition, options statement | source | 10 |
| 27 | Delivering Multi-Sheet Excel Reports from a Parameterized Stored Process | Richard A. DeVenezia, Harry Droogendyk |
The advantage of using parameterized stored procedures is the ability to make functionality available to a wide audience through any number of interfaces. When the flexibility of stored processes is combined with the options provided by ODS, the possibilities are many. This tutorial will demonstrate the importance and usefulness of SAS's BI architecture by walking through the various steps required to develop and deploy a stored process that creates publishable EXCEL output. The paper concludes with some examples showing different ways to invoke the stored process |
excel, sas enterprise guide, ods excel, macro variable | source | 25 |
| 28 | Developing a Dashboard to Aid in Effective Project Management | M. Paige Borden | Accurately tracking programming support activities as a team manager can be a comp lex task. The overall coordination of the programming re sources, testing support and producti on moves was hampered by the crude reporting functionality available to the change management system. This management challenge was solved by the development of the CMS IR Technical Support Dashboard utilizing SAS Enterprise Guide and SAS/GRAPH functionality. Working together with the management team, the dashboard was created to provide quick access in an easy to read graphical display of numerous key performance indicators. There is also functionality providing multiple alerts as defined by the managem ent team (e.g. an application that stays in "user test" for more than 72 hours). The CMS IR Technical Support Dashboard has provided an improved management tool to e ffectively and efficiently coordinate the multiple projects and constituencies |
sas enterprise guide, proc greplay, proc step | source | 8 |
| 29 | Developing Flexible Reports to Respond to Routine External Data Requests | Patricia Ramsey | External data requests are a common r eporting need within a large university. Many organizations, from apartment complexes to graduation stationery prov iders, are interested in the names and addresses of our students. The responsibility for coordination and response to these types of external organizations is shared between functional and technical team members. Many of the requests follow a similar pattern and structure, only deviating with two or three specific value selections. To impr ove the timeliness and efficiency of reques t responses, a menu of standard reports were created and shared through the Information Delivery Port al. These reports are designed in Enterprise Guide and are accessed via the portal. Although a ccess is still restricted to our office, the portal allows for report flexibility by using common field parameters, prov ides multiple output opti ons, and ensures proper security by requiring login authentication | sas enterprise guide, sas enterprise guide project, excel, data warehouse | source | 8 |
| 30 | Discrete Choice Modeling with PROC MDC | John Ang | Discrete choice modeling involves t he prediction of an individual's response given several distinct alternatives, where one and only one decision must be made. While the ability to analyze such models has long been available in SAS , the development of PROC MDC enables the SAS user to directly address the issue. This paper will demonstrate how to generate the input data set for PROC MDC, utilize PROC MDC to implement discrete choice modeling, and interpret the results |
proc step, predictor variable, dataset, choice modeling, logistic regression, proc phreg, likelihood function | source | 6 |
| 31 | DP04 To Cube or Not to Cube: Is OLAP the Better Choice | Evangeline Collado | There is a continuing demand across the higher education sector for increased extraction and analysis of university data to facilitate strategic decision-making and management of university programs and activities. This paper will detail the migration of a historical Enrollment Profile detailing student headcount information designed in Base SAS and SAS/INTRNET to the creation of an Enrollment Cube using SAS OLAP Cube Studio and SAS Enterprise Guide software. A comparison will be made between the new Enrollment Cube and historical version of the Enrollment Profile, focusing on functionality, usability, and maintenance. We will present the pros and cons of each tool and allow the reader to decide which format provides better functionality for this type of reporting. The writers' experience presented in this paper is applicable to any audience interested in ways to provide aggregate data to its user community |
sas enterprise guide, sas base, fact table, excel | source | 10 |
| 32 | Dynamic Projects in SAS Enterprise Guide How to Create and Use Parameters | Susan J. Slaughter, Lora D. Delwiche |
SAS Enterprise Guide allows you to define parameters, and then use those parameters in your project. Parameters are simply macro variables. When you run a project containing parameters, SAS Enterprise Guide prompts you to assign values to those macro variables. Using parameters, you can create a project, and then customize it at the time you run it. In SAS Enterprise Guide 4.1, there are three ways to use parameters: as a variable name in a task, in the filter condition of a query, or in SAS code. This paper covers all three types of parameters, showing how to define parameters, how to insert them in your project, and then how to run the final project using the parameters | sas enterprise guide, macro variable, dataset | source | 20 |
| 33 | Efficiency: How Your Data Structure Can Help or Hurt!!! | Toby Dunn | Once one gets past the simplistic idea that efficiency is only about the speed at which a program runs, a whole new world opens up. Too many SAS programmers fall into the trap of thinking that they must write program code based on the data structure they are provided. This paper introduces the paradigm shift that instead of making SAS fit the data structure, the data structure should be made to fit SAS. One of the most striking aspects is how important the data structure becomes to the overall efficiency; i.e. quality, readability, and maintainability. We will cover some of the basic topics of data structure and how it affects the overall look, complexity, maintainability, and speed of a SAS program. Starting with the basics of what constitutes efficiency, we will review common data structure mistakes and how they adversely affect the overall efficiency of the code. Finally, examples will demonstrate how simple and not-so-simple fixes improve the overall efficiency | proc step, proc transpose | source | 15 |
| 34 | Estimating the False Discovery Rate using SAS rand JMP r | Jason A. Osborne | This paper gives an exposition of some recently developed methods of estimating the false discovery rate (FDR) in the setting of multiple comparisons and discusses their implementation with SAS and JMP. The FDR provides an interpretable quantication of error and an alternative to the familywise error rate that may be suitable in situations such as high throughput genomics experiments. SAS code using the SAS/MACRO, SAS/STAT, and SAS/IML facilities is presented to compute a popular estimate of FDR associated with any chosen critical region. Q-values, which are the FDR analog of p-values, are obtained and used to reproduce plots generated by the R package \qvalue" that inform the choice of this critical region. A key parameter is estimated either by tting a smoothing spline (PROC TPSPLINE) or a two- component mixture to the p-value histogram via maximum likelihood (PROC NLMIXED). A microarray example is presented along with guidelines for implementation in JMP |
false discovery rate, multiplicity | source | 13 |
| 35 | Example of Longitudinal Cluster Analysis with Dietary Data over Time | Robert Bauserman | Cluster analysis is a versatile tool for data mining, and several SAS procedures related to cluster analysis can stand alone or be used in combination, as required by an analys is. This presentation provides an example of data mining with a custom macro developed in-house that combines multiple procedures (ACECLUS, CLUSTER, TREE, and GPLOT) to produce cluster solutions and diagnostics. Longitudinal nutrition data (dietary records of food consumption at several time points) in a sample of adoles cents is cluster analyzed to id entify the optimal number of distinct dietary patterns at each time, and to illustrate the diagnostics output that assists in determining the most appropriate number of clusters for follow-up analyses |
cluster analysis, proc step, proc tree, proc cluster | source | 10 |
| 36 | Exploring Cellular Automata | Daniel Olguin | In 1970 Martin Gardner brought cellular automata to the attention of the general public with a Scientific American article on a 'game' created by mathematici an John Conway called the 'Game of Life'. In 2004, Stephen Wolfram declared cellular automata to be the basis of 'A New Kind of Science'. This paper will explore those cellular automata and various techniques for presenting them using SAS Graphics capabilities | proc step, proc greplay, do loop, macro loop, macro definition | source | 19 |
| 37 | Fast Prototyping using SAS/AF Software | Philip James Busby | You wake up in a hospital bed, and you can neither write nor speak, but you can see and think clearly. How do you communicate with others? This system, written in SAS/AF, makes it possible to communicate with others as long as you know the same language, communicating thoughts as sentences, which are made up of words, which are made up of up to 31 different letters |
source | 4 | |
| 38 | Formats, Informats and How to Program with Them | H. Ian Whitlock | Formats tell how to display stored data and informats how to read them. In other words, they allow the separation of data from the values one works with. While most programming languages provide some sort of formatting capability, SAS provides an extensive system that comes to dominate how one works with SAS. This talk will review some of the supplied formats, show you how to make your own with code or data, and then supply programming examples for how to get the best use of this system | proc format, proc step, character variable, format statement, proc freq, dataset, sysdate9 | source | 14 |
| 39 | Generating Random Numbers from a Discrete User Defined Distribution | Amy Boulris | With the continual increase in computational speed, the use of simulation to analyze complex statistical problems has become more and more feasible. A once purely theoretical si tuation can now be analyz ed by using computer generated data which mimics the situation. This generated dat a can come from either a known distribution (for example, Standard Normal) or an empirical dist ribution (one based off of historical data). SAS has built in several functions which will generate random numbers from a known dist ribution; however, in a case where the distribution is unknown, there is no direct implementation in SAS. While we do not have the luxury of a built in procedure in SAS, the theory to generate a r andom number from an empirical, or user defined, distribution is statistically quite simple and can be easily applied in the form of a macro. This paper will address a practical method for performing this type of simulation in SAS | missing value, cumulative frequency, proc freq | source | 6 |
| 40 | How to Read, Write, and Manipulate SAS Dates | Jenine Milum | No matter how long you've been programming in SAS, using and manipulating dates still seems to require effort. Learn all about SAS dates, the different ways they can be presented, and how to make them useful. This paper includes excellent examples in dealing with raw inpu t dates, functions to manage dates, and outputting SAS dates into other formats. Included are all the date information y ou will need: date and time functions, Informats, formats, and arithmetic operations | sysdate9, date variable, datetime | source | 10 |
| 41 | How To Use Proc SQL select into for List Processing | Ronald J. Fehd | The SAS R⃝ macro language is simple, yet powerful. List Processing with PROC SQL is also simple, yet powerful. This Hands On Workshop paper provides programmers with knowledge to use the PROC SQL select into clause with the various SQL dictionaries to replace macro arrays and %do loops. Expected audience is intermediate to advanced users, and macro pro- grammers. |
proc sql, proc step, create table, select, proc print, group by, order by | source | 16 |
| 42 | Improving Efficiency using the "Virtual Merge" | Steve Sanders | Merging data sets is a critical part of relational database processing, but the required sorting of data is one of the most significant contributors to total processing time. This paper will demonstrate a method to use the macro processor to simultaneously perform multiple lookup table merges and eliminate large amounts of processing time by eliminating the need to actually sort and merge the master data set with each lookup table | lookup, macro variable, data step, cpu time, local symbol table, symbol table, character functions | source | 3 |
| 43 | Increasing Student Progress Monitoring via PROC REPORT and ExcelXP Tagset | Elayne Reiss | This paper is geared toward the SAS user who has some experience with general reporting techniques in Base SAS but has not explored the deeper options. It tackles the issue of how to mass-generate sleek, det ailed, multi-tabbed EXCEL reports using the right combination of the many options provided by PROC REPORT, the SAS ExcelXP Tagset, and macro programming. Some recent c hanges to the ExcelXP Tagset (as of June 2007) will be highlighted in the discussion. Although the paper's example involves the creation of student progress monitoring reports for every teacher in a public K-12 school district, the coding techniques contained within are highly applicable to report -building processes found in almost any industry |
proc report, proc step, excel, output delivery system, macro definition, macro variable, proc template, xls, proc print | source | 8 |
| 44 | Information Criteria Methods in SAS for Multiple Linear Regression Models | Dennis J. Beal | SAS 9.1 calculates Akaike's Information Criteria (AIC), Sawa's Bayesian Info rmation Criteria (BIC), and Schwarz Bayesian Criteria (SBC) for every possible 2 p - 1 models for p ≤ 10 independent variables. AIC, BIC, and SBC estimate a measure of the difference between a given model and the "true" underlying model. The model with the smallest AIC, BIC, or SBC among all competing models is deemed the best model. This paper provides the SAS code that can be used to simultaneously evaluate up to 1023 models to determine the best subset of variables that minimizes the information criteria among all possible subset s. Simulated multivariate data are used to compare the performance of AIC, BIC, and SBC with model diagnosti cs root mean square error (RMSE), Mallows' Cp, and adjusted R2, and the three heuristic methods forward selection, bac kward elimination, and stepwise regression. This paper is for intermediate SAS users of SAS/STAT who understand multivariate data analysis |
predictor variable, forward selection, adjusted r-squared, regression analysis, stepwise selection, sample size, sample, feature selection, multiple regression, backward selection, response variable, rmse, proc reg, mse, main effect, significance level | source | 10 |
| 45 | Integrating SAS and Microsoft .NET for Data Analysis | Mai Nguyen, Shane Trahan, Patricia Nguyen, Jonathan Cirella |
Both the Microsoft .NET framework and SAS technologies are powerful development platforms in their own domain. The .NET framework is Microsoft's strategic initiative for server and desktop development for the next decade and includes many technologies designed to fac ilitate rapid development of Internet and intranet applications. On the other hand, SAS is the industry leader providing enterprise software for data analytics, data mining and business intelligence. SAS software is currently used extensively at RTI in survey research for statistical analysis, data int egration and reporting. This paper will show how to leverage the strengths of each platform to create integrated soluti ons in both desktop and web-applications | dataset, regression analysis, proc sql, sample, stepwise selection, proc reg, sas syntax, estimate, proc step, data science, predictor variable, update statement | source | 10 |
| 46 | Intelligent SAS Log Manager | Paul D. Sherman | This paper is all about techniques for debugging SAS macro programs. The SAS log generated during program execution is one of the richest sources of application health, especially when dealing with macros which build and invoke code dynamically. Explicitly sending messages to the Log Manager at critical steps throughout the application one may disable all low-level SAS feedback and present only relevant, highly specialized information to the SAS log. One is led immediately to the source of both compile-time and run-time errors. Resulting is a clean, well-structured and specific trace of application flow throughout the entire job submitted | sas log, call execute, macro call, &variable, macro loop, %if-%then-%else, proc step, macro variable, macro definition, proc sql | source | 4 |
| 47 | Interactions between the DATA Step and External Files - INFILE / INPUT and more | Andrew T. Kuligowski | Chances are, your raw data was not created within t he SAS System. There is a good likelihood that your data may also need to be packaged and passed along to another non-SAS package. This presentation will provide basic answers to two questions common to new SAS users: How do I get my data into SAS for analysis? How do I get my data out of SAS? The focus for this presentation will be on two pair s of DATA STEP statements: INFILE / INPUT and FILE / PUT. We will discuss syntax and usage, citing various types of files as examples |
macro variable, file statement, sample, dataset | source | 16 |
| 48 | Introduction to the SAS 9 Business Intelligence | Gregory S. Barnes Nelson | Business intelligence (BI) is a broad category of application programs and technologies for gathering, storing, analyzing, and providing access to data to help enterprise users make better business decisions. BI applications support the activities of decision support, query and reporting, online analytical processing (OLAP), statistical analysis, forecasting, and data mining. BI includes a set of concepts and methods to improve business decision making by using fact-based support systems. This tutorial will guide participants through the landscape of business intelligence and how it has been implemented in SAS 9. We will provide a broad overview of what things we can accomplish with BI, lay the groundwork for continued learning and discuss the tools and technologies and how they interact in some common architectural scenarios. The goal of this presentation will be to get users comfortable with the concepts and vocabulary of BI | business intelligence, data mining | source | 12 |
| 49 | Let's Play a Game: A SAS Program for Creating a Word Search Matrix | Robert S. Matthews | This paper describes a process for inserting a list of words into a matrix of random letters. The output produces two tables. The first table is a display of the matrix after the words in the list are inserted, but before random letters are inserted into the remaining cells in the matrix. The second table is the final matrix after empty cells are filled with random le tters. The program has two levels of difficulty and highlights a number of techniques for working with tw o-dimensional arrays. It is applicable to all versions and platforms of The SAS System | source | 5 | |
| 50 | List Processing Basics: Creating and Using Lists of Macro Variables | Ronald J. Fehd, Arthur L. Carpenter |
macro put, macro variable, proc sql, proc step, macro call, call execute, macro loop, macro definition, %if-%then-%else, output delivery system, do loop, proc report, dictionary tables, data step, create table, proc sort, macro function | source | 20 | |
| 51 | Making Presentations More Fun with DATA Step Graphics Interface (DSGI) | Hui-Ping Chen | Microsoft PowerPoint is powerful and most popular software for presentation. However, it is more convenient to present your analyzed data from SAS Output Window or Result Viewer Window directly when you have already populated all information by SAS. The advantages of showing the results from SAS directly are 1) reducing mistakes when manually copy or re-type the results into another software, such as PowerPoint; 2) it is easy to re-fresh the results when the data is updated. So, you can use GSLIDE procedure or DSGI DATA STEP to create slides or graphs for the presentation based on the results you get from previous procedures (PROC). However, it is more efficient, more fun, and much easier to create slides with DSGI, especially to create drill-down graphs |
proc step, proc gplot | source | 6 |
| 52 | Making Web Results Relevant with SAS | Russell Albright, Jake Bartlett, David Bultman |
Many companies search the Web to learn about their co mpetition and understand their potential customers. But how accurate are these search results? For instance, have you ever submitted the query "SAS", only to get results back about "Scandinavian Airline Systems"? This paper pr esents a SAS-based solution to accessing and clustering Yahoo! search engine results by using SAS Text Miner. We demonstrate how to use matrix factorization techniques, clustering algorithms, and visualizations to discriminate between subsets of documents that are returned as the result of a query | web service, proc freq, data mining | source | 12 |
| 53 | Managing Your SAS Data Warehouse Project From Design to Delivery | Linda S. Sullivan | A data warehouse project is a significant resource investment for an institution. Effective management of the project is critical to ensure its growth and continuing administrative support. This paper presents how the Office of Institutional Research developed and implemented a university data warehouse wh ich serves as the foundation for the development of a wide variety of reporting applications using SAS Business Intelligence software. It provides a full discussion of the project management from design to delivery, including both functional and technical perspectives, the development and participation of a university stakeholder group, project plan challenges, lessons learned, and tips on what to include and avoid in a project of this type and scope | data warehouse, business intelligence, data cleaning | source | 6 |
| 54 | Maryland Region Meteorologically Adjusted Ground-Level Ozone Trend Analysis | Ozone Trend | Tropospheric or ground-level ozone trends are often used to determine the impacts of emissions control strategies across the c ountry. The major precu rsors to ground-level ozone formation are volatile organic compounds (VOCs) and nitrogen-oxides (NOx). The EPA Nitrogen Oxides State Implementation Pl an Call (NOx SIP Call) began in 2001 in an effort to mitigate the formation of ground-level ozone. Since ozone is strongly affected by the influence of meteorologi cal variables, many different approaches have been taken to determine the trend in ozone by rem oving the effects of varying meteorology. The purpose of this project was to build a time series model that removes the effects of meteorology, autocorrelation, and seasonal tren ds based on ozone and meteorological data from the Maryland Department of the Environment. This data spans April through October of 1997-2006 for the measuring sites in the State of Maryland and Washington D.C | completeness, proc glm, correlation, time series analysis | source | 16 |
| 55 | Mining Medicaid Encounter Data: What, Why and How? | Wei Jiang | State Medicaid agencies are increasingl y using the encounter model to contro l Medicaid budgets. This introduces such complexities as numerous pay ment and sy stem erro rs in exact pay ment duplic ation, partial pay ments and denials by exception codes and disposit ions. This paper ex plores the utilizat ion of Base SAS and PROC SQL in mining raw , multi-million-observation, error-ridden encounter data into precise data for capitated rate setting in actuarial science. Mining procedures include creating a sw itch and a unique group number for each encounter w ith both header and line payment and assigning flags to delete duplicate and denied claims |
proc step, data mining | source | 7 |
| 56 | MOVING FORWARD with FORMATS | David Maddox | FORMATS provide an instruction or template that SAS uses to output data values. They are used primarily to control the written appearance of data values. But, FORMATS have other uses as well. This paper will feature some of those additional uses, including table lookups and traffic lighting | proc step, proc print, proc report, user-defined format | source | 5 |
| 57 | Multiple File Processing with SAS | Kevin McGowan | Sometimes there is a need to process multiple files with one program. In some cases the number of files that need processing is not known in advance, just the location of the files is known. By using the SAS macro language along with data steps and SAS functions such as dopen, dnum, dread, and dclose it is possible to process multiple files easily without a lot of complex programming. These techniques are becoming more useful with the switch to data arriving in electronic format rather than paper. By processing multiple files with one program or DATA STEP the chance of errors and processing time can be significantly reduced. This paper will provide examples to show different techniques for multiple file processing |
sas function, macro facility, macro definition | source | 9 |
| 58 | Music to My Ears: Using SAS to Deal with External Files (and My iPod) | Sean Hunt, Quality Insights |
Working with multiple external data f iles usually presents a set of challenges (and "serendipitous" opportunities). The challenges lie in dealing with files having different fo rmats, naming conventions, and in complete data. Using SAS allows a virtually unlimited set of solutions to automat ically and conditionally proce ss as well as manipulate the external files and the data they contain. This is true whet her you are dealing with text files, spreadsheets, and even MP3 (audio) files. This paper will demonstrate the use of SAS to view, import, and manipulate entire directory structures full of external data files, using a combination of SAS "x " statements to invoke MS-DOS commands, SAS macros, and some SAS text functions. Two real world soluti ons will be shared: importing a set of monthly data files that seem to change every m onth; and using SAS to catalog, organize, and label MP3 files (using ID3 tags) for use with an iPod or other MP3 player | dataset, call execute, macro definition, sample, txt | source | 7 |
| 59 | Old But Not Obsolete: Undocumented SAS Procedures | Barbara B. Okerson | PROC Spell? PROC Neighbor? PROC Browse? Through the years a number of SAS procedures have disappeared from the manuals, mainly because their functionality was picked up by newer, more robust, procedures and features of the SAS system. But sometimes, simpler can be better. This paper looks at these and other SAS procedures of the past that are not in the current documentation, but still work, and addresses situations where they can yet be useful. Examples were developed with version 9.1.3 of SAS executing on a Windows XP platform. Except as noted, examples are not version or platform specific and can be adapted by all levels of SAS users |
proc step, sas base, proc delete, dataset, cpu time, posterior probability, prior probability, txt, proc discrim | source | 8 |
| 60 | Planning for and Designing a Data Warehouse - A Hands-On Workshop | Gregory S. Barnes Nelson | In a previous hands-on workshop (Nelson, 2006), we demonstrated how to use Data Integration Studio to load a sample star-schema. We focused on the usage of the tool itself; however, today we will take a step back and better understand the DI Studio process by outlining a methodology for designing and implementing the ETL load, or the process of moving data from a source system (such as operational systems or a table in a database) into a target (usually a structure that supports analytics and reporting). This workshop guides the participant through the methodology used to design the target database structure and transformations, create a mapping worksheet used to implement the ETL code, load the metadata, and create the process flows in DI Studio. This paper connects the dots for those interested in getting started with DI Studio not only as a tool, but how practitioners think about the DI Studio process | source | 16 | |
| 61 | Point-and-Click Style Editing in SAS Enterprise Guide | Susan J. Slaughter, Lora D. Delwiche |
SAS comes with a variety of styles that you can choose to change the overall look of your HTML results. If you can't find the exact style you need, then you can use the Style Manager in SAS Enterprise Guide to easily make modifications to existing styles. The Style Manager uses a point and click interface for selecting style attributes including: font size, style and color, background or banner images, and background colors and borders. Styles created in SAS Enterprise Guide can be used both within SAS Enterprise Guide and in programs written using SAS | sas enterprise guide, ods html | source | 15 |
| 62 | PROC INFOMAPS - Let your Design Document build your SAS V9 Information Maps | Chuck Bininger | Creating information Maps can be a tedious and time c onsuming process and prone to many errors. Although SAS Information Map Studio provides a simple GUI interface t hat allows developers to interactively create Information Maps. It may not be the best tool available. This paper will introduce the reader to information maps, SAS Information Map Studio, and PROC INFOMAPS. The paper will also assume that the r eader has some knowledge of the SAS Business Intelligence products. By the end of the paper the reader will be able to understand and use the code provided to dynamically create information maps for use in their own SAS Business Intelligence environment |
proc step, business intelligence | source | 11 |
| 63 | PROC MIXED: Underlying Ideas with Examples | David A. Dickey | PROC MIXED PROVIDES A SINGLE TOOL FOR ANALYZING A LARGE ARRAY OF MODELS USED IN STATISTICS, ESPECIALLY EXPERIMENTAL DESIGN, THROUGH THE USE OF REML ESTIMATION. A STRATEGY FOR IDENTIFYING MIXED MODELS IS FOLLOWED BY A DESCRIPTION OF REML ESTIMATION ALONG WITH A SIMPLE EXAMPLE THAT ILLUSTRATES ITS ADVANTAGES. A COMPARISON OF SOME OF THE AVAILABLE TESTS FOR VARIANCE COMPONENTS IS GIVEN ALONG WITH SEVERAL EXAMPLES, BOTH REAL AND ARTIFICIAL, THAT ILLUSTRATE THE VARIETY |
likelihood function, proc step, proc mixed, proc glm, proc genmod, restricted maximum likelihood, f-test, sample, fixed effects, maximum likelihood estimation, standard deviation, correlation, covariance, proc calis, degrees of freedom, intraclass correlation, anova, z-test, null hypothesis, response variable, proc freq, logistic distribution | source | 19 |
| 64 | PROC TIMEPLOT - An Old Way to Plot New Data | James W. Terry | proc step, time series data, by group processing, time series analysis | source | 6 | |
| 65 | Recreating an Excel-based report with SAS and ODS | Linda M. Lacey | One of the best features of EXCEL is the ease with which a paper-bas ed report can be compiled to include data tables and charts on the same page, all with eas ily controlled fonts, colo rs and spacing. The downside to using EXCEL for such purposes is its limited ability to analyze or manipulate data. For y ears, my small state agency published a paper-based report that consis ted primarily of aggregated st atistics and charts showing change over time in those statistics, which was compiled using EXCEL. When SAS introduced ODS it bec ame possible to not only generate the required statistics in SAS, but also generate the output tables and charts in a way that closely resembled the original report format. This presentation will demons trate how well we were able to replic ate the look of t he original report, and discuss the boost in productivity gained by using SAS for this project |
excel, dataset | source | 8 |
| 66 | Reducing PROC CORR Output using ODS and Data Step | Carry W. Croghan | The SAS PROCEDURE CORR calculates correla tion coefficients, and, by default, prin ts the entire correlation matrix as well as descriptive statistics. A program is presented that restricts the output to the elements from above the diagonal of the correlation matrix. T he default CORR output contains n2 elements in the n×n matr ix, while the reduced output contains (n2-n)/2 elements. The program uses a combination of SAS's output delivery system (ODS) and DATA STEP manipulation to reduce the output. First, ODS is used to generate a SAS dataset from the correlation matrix output. Then, DATA STEP programming limit s the data records and re-orients the datase t. Finally, ODS is used to output the data to EXCEL or other searc hable file structures. The re sulting output provides relev ant information in an accessible and efficient format |
correlation, proc corr, dataset, proc step, excel, data step, output delivery system | source | 7 |
| 67 | ROBUST_ES: A SAS Macro for Computing Robust Estimates of Effect Size | Jeffrey D. Kromrey, Kevin B. Coughlin |
Effect sizes are useful statistics that complement null hypothesis testing and confidence interval estimation. Because traditional indices of effect size are s ensitive to violations of distributional assumptions, many robust effect size indices have been proposed and described in the methodologica l literature. The macro described in this paper computes the traditional standar dized mean difference and six robust indices of effect size for the two-group case: a standardized trimmed-mean difference, gamma, CL, A, delta, and two estimators of W. The macro is written in SAS/IML and although the computations are limited to the case of tw o independent groups, the macro may be easily modified to compute effect sizes for other data structures (more than two groups, correlated observations, categorical outcome variables) |
effect size, sample, bootstrap, dataset, standard deviation, response variable, sample size, proc means, normal distribution, null hypothesis, proc iml, class variable, trimming, hypothesis testing, proc step | source | 16 |
| 68 | SAS DI: Introduction to User Written Transforms and Status Handling | Mike Miller | SAS DI provides a feature rich environment for building and maintaini ng a data warehouse. The software comes with many ready to use transformations for loading t ables, performing lookups and ot her common data warehousing techniques. It also provides the uni que capability of allowing the user to create new transformations through the BASE SAS programming language. Once def ined, these transformations then bec ome available for use by other processes and users. Through this c apability, processing that is unique or too complex for the standard set of transformations can be encapsulated as a user written transform which then bec omes reusable across processes. This paper is designed to provide an introduction on how to create a user written tr ansform, the status handling capabilities provided by SAS DI and how to link a user written transform into those status handling capabilities | sysrc, macro variable, sas base, txt, dataset | source | 11 |
| 69 | SAS Formats, More Than Just Another Pretty Face | Ying Liu | Most of us are familiar with using SAS formats to change the display of data values in reports; most of us have used constructs like: put totalAmount dollar12.2; or put orderDate yymmdd10.; However, SAS formats can do far more than this. In this paper I will start with a review of so me of the built in SAS formats. This will be followed by an introduction to PROC FORMAT, showing you how you can cr eate your own formats. From there the paper will take PROC FORMAT a step further by showing how formats can be built dynamically from y our existing data. Finally, a common but powerful use of formats will be demonstrated - using formats to create efficient lookup tables. The paper is aimed at intermediate SAS programmers who have yet to di scover how a pretty face can make a program turn its head |
proc format, proc step, char., proc hpsplit, missing value, format statement, days past due, data step, past due, sas programmer, integer, put statement, if-then-else | source | 15 |
| 70 | SAS XML Mapper to the Rescue | Carol A. Martell | Have you ever been given XML data wi thout the requisite Document Ty pe Definition (DTD) or XML Schema describing the data? Certain XML forma ts are supported in SAS through the XMLTYPE= option in the XML LIBNAME statement. If your data conforms to one of the supported formats, then you're in luck. If not, you have a problem. The tags surrounding each data item can seduce an accomplished programmer into writing a DATA STEP program to read the data. While this is certainly possible, it isn't necessary. The SAS XML Mapper is a separate Java application from SAS that can, among other things, cr eate a custom SAS XMLMap. The SAS XM LMap is used by the XML engine to interpret an XML document. The XML LIBNAME engine becomes your friend again, when the XMLMAP= option points to your new XMLMap file |
libname statement, dataset | source | 8 |
| 71 | SAS/MACRO NOTES: Lines and Columns in the Log | Paul D. Sherman | Do you shy away from macros for lack of their source line number error reporting? Are those bogus (Line):(Column) values driving you nuts? If so, this article is for you. The SAS Macro Language is a good thing. However, locations of errors from code placed inside macros are reported in a slightly different way than from traditional open code. We show how to understand both macro and open code, and present a few clear and simple examples with some techniques for quickly debugging SAS Macros. Skill Level: Intermediate to Advanced Base/SAS users, especially those timid of macros | macro definition, macro put, data step, call execute, cpu time, &variable, comment, macro variable | source | 11 |
| 72 | Selection Bias Adjustment: Root Canal Therapy and Self-reported Oral Health | Mark S. Litaker, Sandre F. McNeal, Gregg H. Gilbert |
Observational studies allow evaluation of treatments for which r andomization is not possibl e, but may yield biased estimates of treatment effects. Samp le selection modeling was developed in economics, to adjust for bias due to observed and unobserved variables that are related both to selection into a particular treatment group and to the outcome measure. Originally, this me thod was limited to the analysis of a single continuous outcome measure in cross-sectional study designs, but has been extended to binary and longitudinal out comes. The effect of adjustment for sample selection bias was evaluated for a specific treatment, root canal therapy , on a range of oral health outcomes, using data from 24 months of follow-up in the Florida Dental Care Study. Results of analyses with and without bias adjustment were compared. Statistically significant bias was found in 11 of 18 analys es, but adjustment changed the statistical decision for treatment in only two analyses | sample, regression analysis, treatment effect, clinical trial, response variable, estimate, predictor variable, time-dependent covariate | source | 9 |
| 73 | Set, Match, Merge ... Don't You Love SAS | Peter W. Eberhardt, Ying Liu |
One table has accounts, anot her has new transactions. One table has pat ient data, another has treatments. No matter what your business or application it is rare that a single data set or table has everything you need to answer the questions you are expected to answer. SAS has a simple and powerful mechanism to bring your tables together: the DATA STEP Merge. But this simple operation can easily run awry. In this paper we will explain the basics of the DATA STEP merge and the issues and problems you will encounter if you do not understand its workings. This paper is geared towards beginning SAS programmers, but it can be a useful refresher for anyone |
in=, out=, missing value, proc step, proc sql, proc print, set statement, order by, data merging | source | 19 |
| 74 | Simplifying the Sample Design Process with PROC PMENU | Liza M. Thompson | GoodCents created the Sample Design Menu System to si mplify and speed up the sample design process used for selecting a statistically sound populati on of customers to be metered for utility demand response programs. Prior to the menu system, users had to rewrite SAS code to pertain to new customer populations and utilities, run a series of five SAS programs, and complete several calculations using EXCEL. The menu system now allows users to produce a complete sample design by only running one program without having to change or rewrite any SAS code and without standardizing the sample design outputs. Using PROC PMENU and a series of macros, the menu system allows users to input a customer population, performs a Dahlenius-Hodges analysis, weighs and allocates the population to each strata, randomly selects the samples for each strata, and exports the sample customer lists to EXCEL files |
sample, proc step, macro variable, excel, proc freq | source | 12 |
| 75 | Smart SAS Tricks | Monal Kohli, Smith Hanley |
Are you ever struck with problems like how to count the number of occurrences of a character in a string without writing a lot of code, how to check the contents of a format, how to output contents of a library to a file, what to do when formats are not resolved, how to deal with difficult dates and how to choose retain Vs lag. If you want to learn some pragmatic SAS tricks for elegant SAS programming, this paper is surely for you | lag function, retain | source | 7 |
| 76 | Sorting out the Possibilities Using Retain | Tommy Retzlaff | Controlling the order of your data along with some simple assumptions can make creating analysis flags much easier for the beginner to intermediate programmer. This example will look at conquering the multiple-choice scenario of stacked medication interruption diary data. We are interested in categorizing this data into one of three separate possible results by using one temporary variable and with only one pass through the data. This will allow us to define whether the study medication was 1) NEVER INTERRUPTED, 2) INTERRUPTED, or 3) UNKNOWN whether it was interrupted | sample, proc sort | source | 3 |
| 77 | SSN validation - Virtually at no cost | Milorad Stojanovic | Using SSNs without validation is not the way to ensure quality of the data you collect, merge in, or use from secondary sources. Verification of SSNs is out of the scope of this paper. The author's goal was to find an easy but still powerf ul way to validate a given SSN. He used a publicly available source (site of the Social Security Admini stration) to get current 'h igh group' numbers. He developed a program / macro which can be easily used by each user. Also, he points out scenarios in which validating SSNs is not advantageous | data cleaning, sample | source | 6 |
| 78 | Testing Survey Skip Patterns Using Metadata-Generated SAS Code | David Gilbertz | Data analysts must routinely review incoming survey data to determine if the skip-pattern was followed precisely by the interviewer for each respondent. Interviews are reclassified as partial complete interviews if the skip pattern was not followed or if "refused" responses are numerous. Writing code to test for these problems is tedious and requires thorough code review to ensure the code follows the skip pattern accurately. The author's goals were to reduce the time spent reviewing code, and to use metadata to simplify the code-writing process The Behavioral Risk Factor Surveillance System (BRFSS), in use since 1984, is a telephone survey of about 200 questions asked of over 350,000 respondents from all 50 states, the District of Columbia and several U.S. territories. About 120 questions are selected by states as optional modules. Each question has a maximum of three conditional skips and metadata for each is written in Microsoft EXCEL |
put statement, excel, if-then-else | source | 8 |
| 79 | The CORR Procedure and Power of GTL | Mirjana Stojanovic | This paper will demonstrate a new feature in SAS 9.1.3 and detail an experim ental procedure in ODS graphics with SAS/BASE which will demonstrate the future of graphics in SAS. Graphics are an essential part of statistical presentation and until now customized graphs were cumbersome to create using SAS/GRAPH. In SAS 9. 1 an experimental extension of the Output Delivery System (ODS) is being used with a CORR proce dure in SAS/BASE to automatically cr eate graphics with the same ease ODS provides in creating tables. In order to create statistical graphs using ODS include the statement ODS GRAPHICS ON before your procedure st atements, this will invoke the fac ility. Graphics are then created automatically. ODS statistical grap hics do not create output for the LI STING destination. You must send your output to other ODS destination (RTF, HTML, DOCUMENT), ODS Graphics use Java technology, and you do not need to learn SAS Graph to use this |
proc corr, proc step, macro variable, proc template, output delivery system, proc sgplot, graph template language, confidence interval, correlation | source | 10 |
| 80 | The DOW-Loop Unrolled | Paul M. Dorfman, Lessia S. Shajenko |
The DOW-loop (Whitlock DO-loop) is a nested repetitive DATA STEP programming structure, intentionally organized in order to allow for programmatically and logically natural isolation of DO-loop instructions related to a certain break-event from actions performed before and after the loop, and without resorting to superfluous conditional statements. Readily recognizable in its basic and most well-known form by the DO UNTIL (LAST.ID) construct, which naturally lends itself to control-break BY-processing of grouped data, the DOW-loop, however, is much more morphologically diverse and general in nature. In this talk, we aim to examine the internal logic of the DOW-loop and use the power of example to reveal its aesthetic beauty and pragmatic utility |
set statement, hash table, missing value, output, by group processing, dataset, automatic variable, data step, proc sql | source | 18 |
| 81 | The Lazy Rsubmit | Stephanie R. Thompson | Have you ever written a long program in sections in order to debug it more easily only to find some stray rsubmits messing up your final check? Rsubmit is a necessity for remote processing but it only needs to be used once in the final version of the program. However, using rsubmit along the way when writing your code saves you from re- submitting sections that have already been error checked. The "Lazy Rsubmit" is a way you can execute various sections of code without having to remove existing rsubmits | data step, proc print | source | 4 |
| 82 | The SAS Community: How To Be a Part of It! | Gary E. Schlegelmilch | OK, so now you've learned how to program in SAS. Or perhaps you're an end user, learning how to use the Enterprise Guide. Or you could be a student, just learning; or someone who's been involved with SAS since it became available for use in 1976. So now what? Invariably, we all have questions. We run into programming situations we can't quite figure out. A process that we believe should work - but we can't quite seem to line up the code correctly to do it. Or, the other side of that coin - you come up with a perfect solution to a problem you've seen a hundred times, thanks to a new version of an old function in SAS. Most other languages have neither the active community that SAS does, nor do they have the staunch support that the SAS Institute has offered virtually since its inception. The users of SAS are communicators; we exchange ideas, techniques, and code easily and with a smile. So if you'd like to be a part of it - read on | sas enterprise guide, pharmaceutical industry | source | 5 |
| 83 | The SQL Procedure: When and How to Use It | Ying Feng | As a data analyst who did Oracle and SQL Server Database programming before diving into the SAS world, I'm thrilled to find SAS also provides its own version of Structured Query Language (SQL). Sure, the DATA STEP can do a lot of work, but sometimes PROC SQL can accomplish the same work more efficiently and with fewer steps. At the very least, it provides a nice alternate to the DATA STEP. In this paper, some scenarios will be identified and PROC SQL will be used to demonstrate them |
proc sql, proc step, sas base, macro variable, create table, relational database | source | 5 |
| 84 | The Sum of All Fears Or: So, You're the SAS Administrator? | Richard H. Phillips, Danny Grasse |
The SAS Intelligence Platform is a complex software environment, with many moving parts. Server side configuration and optimiz ation, links to databases and aut hentication directories, w eb-based java applications, and securing access to these resources all play a part. The ca re and feeding of such a comp lex environment is far from trivial. We aim to share our experienc es and perspectives of what it takes to administer the SAS 9 architecture along with real world examples of successful and unsuccessful efforts to do the same. Attendees will learn what skills need to be available to a SAS Administrator, as well as which skills may be redundant to a person in this role | sas administrator, sas programmer | source | 8 |
| 85 | The Twain Shall Meet: Facilitating Data Exchange between SAS and Matlab | Dimitri Shvorob | Intended for the audience of SAS programmers familiar with Matlab, this report outlines an attractive | mysql, txt, proc step, dataset, proc copy, excel | source | 7 |
| 86 | Treemap Presentation as a Corporate Dashboard | Larry Day, Richard Dickinson, Corporate Performance Measures, BNSF Railway |
where statement, data wrangling | source | 9 | |
| 87 | Two Portals, One Sign-On: Gateway to University Reporting | Ali Y. Yorkos | Prior to the implementation of the university data warehouse and SAS Business Intelligence (BI) software, our primary tools for information delivery were SAS Intr/Net and a reporting database service. As the demand for more sophisticated information collection, analysis, and reporting has grown, the challenge has become how to deliver accessible data to administrators, decision-makers, st rategic planners and the general university user community. This session chronicles the impl ementation and evolution of the SAS Information Delivery Portal at a large university. The implementation included the development of a custom security integrator application to allow single sign-on access by users through the university's established portal and reconfiguring the SAS Server software to use HTTPS. Also discussed is the security setup that c ontrols what the users can a ccess via their portal page | data warehouse, sas enterprise guide, business intelligence | source | 10 |
| 88 | USE OF ARIMA TIME SERIES AND REGRESSORS TO FORECAST THE SALE OF ELECTRICITY | Beatrice Ugiliweneza | Objectives: To forecast the sales made by an electric com pany every month. To show the use of ARIMA and Regression models in forecasting. Method: The data used to forecast were from the total sale of electricity for each end of the month from 1994 to 2004. The statistical forecasting method used is t he ARIMA time series with the regression model. Results: With a seasonable ARIMA model, a regressor and a dy namic regressor, the model predictions compare with the actual values of sales and hence, the forecast values are reliable. Conclusions: ARIMA time series are useful models to predict t he sales of electricity for this company. From this study, we can conclude that ARIMA and Regression models can be used by other businesses for planning | time series analysis, regression analysis, time, confidence interval, sample | source | 11 |
| 89 | User-Written DATA Step Functions | Jason Secosky | For years, users have asked for the ability to write functions in DATA STEP syntax. The day has come when this is possible. In SAS9, the FCMP procedure provides the ability to write functions using DATA STEP syntax. In SAS 9.2, these functions can be called from a DATA STEP. This paper explains how to write functions with PROC FCMP and how these functions are invoked from a DATA STEP. It also contains caveats when calling PROC FCMP functions from a DATA STEP |
put statement, return, proc step, proc fcmp, file statement | source | 9 |
| 90 | Using INFILE and INPUT Statements to Introduce External Data into the SAS System | Andrew T. Kuligowski | The SAS System has numerous capabilities to store, analyze , report, and present data. However, those features are useless unless that data is stored in, or can be accessed by, the SAS System. This presentation is designed to review the INFILE and I NPUT statements. It has been set up as a series of examples, each building on the other, rather than a mere recitation of the options as documented in th e manual. These examples will include various data s ources, including DATALINES, sequential files, and CSV files. GETTING STARTED - BASIC INFILE / INPUT with DATALIN ES In order to bring data from an external source into your SAS session, the user must provide the answer s to a couple of simple questions: Where is the data, and what does it look like? The INFILE statement will define the data source and provide a few tidbits of information regarding its form, while the INPUT statement will define the format of the data to be processed |
input statement, infile statement, excel, pointer control, proc print, proc step, length statement, filename statement, list input, variable, character variable, missing value, proc format, run, out= | source | 18 |
| 91 | Using PRX to Search and Replace Patterns in Text Strings | Wenyu Hu, Liping Zhang |
Programmers often need to search for patterns in text strings in order to change specific text. Perl regular expressions (PRX) introduced in SAS version 9 provides a convenient and powerful tool to locate, extract and replace text strings in DATA STEP. PRX can provide simple solutions to complex string manipulation tasks and are especially useful for reading highly unstructured text strings. This paper explains the basics of PRX and how PRX functions work in SAS 9. It further explains how to code useful PRX functions and to use them to search and replace patterns. Keywords: Perl regular expressions (PRX), Regular expressions (RX), Pattern match |
prxparse, sample | source | 6 |
| 92 | Using SAS to track recruitment in a multi-center study of diabetes | Stephen A. Villavicencio, Therese B. Gibson, Patricia A Cleary |
source | 10 | ||
| 93 | Using SAS/OR to Determine the Optimal Path to Graduation | Sandra J. Archer | An integer program is formulated to create the programs of study for several student scenarios. SAS/OR is used to minimize the objective function of time to graduation subject to a set of assignment and policy constraints. The program is written with SAS 9.3.1 SP3 in Windows XP. The intend ed audience is familiar with Base SAS but new to the procedures available in SAS/OR |
linear programming, macro call, macro variable | source | 12 |
| 94 | Virtual and Traditional Teams: Are they Really Different? (Development and Validation of a Measure using SAS/STAT) | Andrea J Roofe | The paper presents the methodology used to develop and validate an instrument that will identify the differences between virtual and traditional teams based on aspects of leadership and group dynamics. We conducted the analysis using SAS/STAT. The overall scale was determined to be reliable (alpha=0.89). The reliability of the leadership sub-scale was 0.89, while that of the group dynamics measure was 0.784. One may adapt the code to perform reliability, factor and logistic analyses for other measures of natural and behavioral phenomenon. The underlying theoretical framework and research instrument were submitted as a separate paper to the 2nd International Conference of Globally Distributed Work, in Bangalore, India |
sample, logistic distribution, discriminant analysis, regression analysis, proc cancorr, factor analysis, proc step, correlation, proc freq, logistic regression, likelihood function, maximum likelihood estimation, sas enterprise guide, anova, proc logistic, normality test | source | 12 |
| 95 | Visual Representation of Longitudinal Change in Cluster Analysis with SAS | Robert Bauserman | When cluster analysis is done with data from a single point in time, it is simple to identify and describe mutually exclusive clusters. However, many designs call for multip le measurements over time for each subject. One way to cluster analyze such data sets is to separately cluster data from each time point. This approach may lead to complex results. The optimal number of clusters (indicated by diagnostic measures such as the cubic clustering criterion) may change over time. The more clusters at each time point, the greater the number of possible pathways that participants may follow over time. This presentation uses PROC CLUSTER results from a longitudinal study of dietary patterns in childhood and adolescence to illustrate how a single graphic in Word can show migration of subjects between dietary clusters over time. The same approach can be used with longitudinal sets of cluster analyses based on any characteristics of interest |
cluster analysis, ods pdf | source | 7 |
| 96 | Yankees and Red Sox: A Time Series Analysis of Win Percentage Correlations between Professionals | Baseball Teams | Objective. The purpose of this study is to demonstrate how ti me series can be used to analyze the correlations o f win percentages between the Red Sox and Yankees rival professional baseball teams. Method. The data to be analyzed in this paper were collect ed from Baseball-Reference.com or were calculated f rom data from said resource. The data of primary inter est include wins and win percentages for each team. Wins were projected as if each season consisted of the curren t standard of 162 games. The relevance of addition al inputs in creating the time series model was investigated, in cluding a study of head-to-head match-ups between t he two teams and the sale of Babe Ruth from the Red Sox to the Yankees. Results. The ratio of the Yankees winning percentage to the Red Sox winning percentage begins to more closely approximate 1.0 starting in 1968, paralleling a gen eral historical trend of increased competitiveness in Major League Baseball | time series analysis, sample, correlation, sas enterprise guide | source | 11 |
| 97 | You've Sent Mail: Sending Reports Automatically Through SAS | Theresa McVie | We often have reports to produce that are ultimately sent out via electronic mail. Rather than saving your output and manually emailing, learn how to automatically send your reports through SAS. SAS has the capability to send emails with or without attachments to one or many people or even site specific reports via a macro | filename statement, macro facility | source | 4 |
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