Figure 1. Paper Ring Charts. David Corliss, Marketing Associates, Bloomfield Hills, MI

Similar documents
The GSLIDE Procedure. Overview. About Text Slides CHAPTER 27

The GANNO Procedure. Overview CHAPTER 12

Multiple Forest Plots and the SAS System

INTRODUCTION TO THE SAS ANNOTATE FACILITY

Using ANNOTATE MACROS as Shortcuts

Data Annotations in Clinical Trial Graphs Sudhir Singh, i3 Statprobe, Cary, NC

Creating Maps in SAS/GRAPH

THE IMPACT OF DATA VISUALIZATION IN A STUDY OF CHRONIC DISEASE

Taming the Box Plot. Sanjiv Ramalingam, Octagon Research Solutions, Inc., Wayne, PA

Effective Forecast Visualization With SAS/GRAPH Samuel T. Croker, Lexington, SC

Using SAS/GRAPH Software to Analyze Student Study Habits. Bill Wallace Computing Services University of Saskatchewan

Developing a Dashboard to Aid in Effective Project Management

Paper S Data Presentation 101: An Analyst s Perspective

PharmaSUG Paper TT10 Creating a Customized Graph for Adverse Event Incidence and Duration Sanjiv Ramalingam, Octagon Research Solutions Inc.

Using SAS Graphics Capabilities to Display Air Quality Data Debbie Miller, National Park Service, Denver, CO

It s Not All Relative: SAS/Graph Annotate Coordinate Systems

... WHERE. AnnotaI8 Data.S... XSYS & YSYS. Harie Annotate: How Not to Lose Your Head When Enhancing BAS/GRAPH output

Creating Forest Plots Using SAS/GRAPH and the Annotate Facility

A SAS Macro to Generate Caterpillar Plots. Guochen Song, i3 Statprobe, Cary, NC

Coders' Corner. Paper ABSTRACT GLOBAL STATEMENTS INTRODUCTION

USING PROC GMAP AND DRILL-DOWN GRAPHICS FOR DATA QUALITY ASSURANCE Meghan Arbogast, Computer Sciences Corporation, Corvallis, OR

A Plot & a Table per Page Times Hundreds in a Single PDF file

Creating Population Tree Charts (Using SAS/GRAPH Software) Robert E. Allison, Jr. and Dr. Moon W. Suh College of Textiles, N. C.

PharmaSUG 2012 Paper CC13

The GREMOVE Procedure

USING SAS PROC GREPLAY WITH ANNOTATE DATA SETS FOR EFFECTIVE MULTI-PANEL GRAPHICS Walter T. Morgan, R. J. Reynolds Tobacco Company ABSTRACT

SAS Scalable Performance Data Server 4.3

Create Flowcharts Using Annotate Facility. Priya Saradha & Gurubaran Veeravel

Displaying Multiple Graphs to Quickly Assess Patient Data Trends

Chapter 1 Introduction. Chapter Contents

Fly over, drill down, and explore

Custom Map Displays Created with SAS/GRAPH Procedures and the Annotate Facility Debra Miller, National Park Service, Denver, CO

SAS/GRAPH and ANNOTATE Facility More Than Just a Bunch of Labels and Lines

SAS/Warehouse Administrator Usage and Enhancements Terry Lewis, SAS Institute Inc., Cary, NC

Converting Annotate to ODS Graphics. Is It Possible?

Data Driven Annotations: An Introduction to SAS/GRAPH s Annotate Facility

Generating Participant Specific Figures Using SAS Graphic Procedures Carry Croghan and Marsha Morgan, EPA, Research Triangle Park, NC

How to annotate graphics

Innovative Graph for Comparing Central Tendencies and Spread at a Glance

Know What You Are Missing: How to Catalogue and Manage Missing Pieces of Historical Data

The G3GRID Procedure. Overview CHAPTER 30

Contents. Tutorials Section 1. About SAS Enterprise Guide ix About This Book xi Acknowledgments xiii

SAS System Powers Web Measurement Solution at U S WEST

Creating a Spreadsheet by Using Excel

Customized Flowcharts Using SAS Annotation Abhinav Srivastva, PaxVax Inc., Redwood City, CA

Massive Scalability With InterSystems IRIS Data Platform

Time Contour Plots. David J. Corliss Magnify Analytic Solutions, Detroit, MI

Paper Time Contour Plots. David J. Corliss, Wayne State University / Physics and Astronomy

Put Your Data on the Map: Using the GEOCODE and GMAP Procedures to Create Bubble Maps in SAS

Top Award and First Place Best Presentation of Data Lan Tran-La. Scios Nova, Inc. BLOOD PRESSURE AND HEART RATE vs TIME

ABC Macro and Performance Chart with Benchmarks Annotation

Gary L. Katsanis, Blue Cross and Blue Shield of the Rochester Area, Rochester, NY

Tips to Customize SAS/GRAPH... for Reluctant Beginners et al. Claudine Lougee, Dualenic, LLC, Glen Allen, VA

David S. Septoff Fidia Pharmaceutical Corporation

Making Presentations More Fun with DATA Step Graphics Interface (DSGI) Hui-Ping Chen, Eli Lilly and Company, Indianapolis, Indiana

SAS ENTERPRISE GUIDE USER INTERFACE

David Beam, Systems Seminar Consultants, Inc., Madison, WI

Using Annotate Datasets to Enhance Charts of Data with Confidence Intervals: Data-Driven Graphical Presentation

Working with Analytical Objects. Version: 16.0

A SAS/AF Application for Parallel Extraction, Transformation, and Scoring of a Very Large Database

Best Practice for Creation and Maintenance of a SAS Infrastructure

Cheat sheet: Data Processing Optimization - for Pharma Analysts & Statisticians

* builds the RGB color string from the color. * reads the red, green; and blue values for. * constructs an ANNOTATE dataset by

BI-09 Using Enterprise Guide Effectively Tom Miron, Systems Seminar Consultants, Madison, WI

Hyperion Interactive Reporting Reports & Dashboards Essentials

Guide Users along Information Pathways and Surf through the Data

PharmaSUG 2013 CC26 Automating the Labeling of X- Axis Sanjiv Ramalingam, Vertex Pharmaceuticals, Inc., Cambridge, MA

SAS IT Resource Management Forecasting. Setup Specification Document. A SAS White Paper

From Manual to Automatic with Overdrive - Using SAS to Automate Report Generation Faron Kincheloe, Baylor University, Waco, TX

Taming a Spreadsheet Importation Monster

Annotate Dictionary CHAPTER 11

Presented by: Steve First 2997 Yarmouth Greenway Drive, Madison, WI Phone: (608) Web:

Tips for Producing Customized Graphs with SAS/GRAPH Software. Perry Watts, Fox Chase Cancer Center, Philadelphia, PA

Presentation Quality Graphics with SAS/GRAPH

Introduction to OLAP (A beginner's guide to OLAP & the concepts behind it)

Coders' Corner. Scaling Mount GCHART: Using a MACRO to Dynamically Reset the Scale Nina L. Werner, Dean Health Plan, Inc., Madison, WI.

Quicker Than Merge? Kirby Cossey, Texas State Auditor s Office, Austin, Texas

How to Make an Impressive Map of the United States with SAS/Graph for Beginners Sharon Avrunin-Becker, Westat, Rockville, MD

Paper SAS Taming the Rule. Charlotte Crain, Chris Upton, SAS Institute Inc.

ABC s of Graphs in Version 8 Caroline Bahler, Meridian Software, Inc.

Introduction to MDDBs

1. Attempt any two of the following: 10 a. State and justify the characteristics of a Data Warehouse with suitable examples.

Geospatial Analysis with PROC GMAP

A Stand-Alone SAS Annotate System for Figure Generation Brian Fairfield-Carter, PRA International, Victoria, BC

Data Manipulation with SQL Mara Werner, HHS/OIG, Chicago, IL

Middle Years Data Analysis Display Methods

SparkLines Using SAS and JMP

Something for Nothing! Converting Plots from SAS/GRAPH to ODS Graphics

MICROSOFT EXCEL Working with Charts

Semantics, Metadata and Identifying Master Data

Comparison of different ways using table lookups on huge tables

Spreadsheet definition: Starting a New Excel Worksheet: Navigating Through an Excel Worksheet

Using SAS/GRAPH Software to Create Graphs on the Web Himesh Patel, SAS Institute Inc., Cary, NC Revised by David Caira, SAS Institute Inc.

What s new in SketchUp Pro?

SAS Application to Automate a Comprehensive Review of DEFINE and All of its Components

Exsys RuleBook Selector Tutorial. Copyright 2004 EXSYS Inc. All right reserved. Printed in the United States of America.

OLAP Introduction and Overview

Making your information system simple again

Controlling Titles. Purpose: This chapter demonstrates how to control various characteristics of the titles in your graphs.

SAS Data Integration Studio 3.3. User s Guide

Transcription:

Paper 16828 Ring Charts David Corliss, Marketing Associates, Bloomfield Hills, MI Abstract Ring Charts are presented as a new, graphical technique for analyzing complex relationships between tables in a relational database. Charts are constructed in the SAS System by creating an Annotate Data Set. PROC GSLIDE is then used to produce graphical output. Ring Charts provide the frequency of table joins in a visual format, allowing the system analyst to identify important characteristics. These include hierarchies, inefficient operations, and system constraints. Two Examples 7353 7927 4429 Figure 1 1095 3509 3515 9750 Introduction Today, more and more information is becoming available at an ever increasing rate. The problem with our data warehouses is no longer how to get the information we need it has become how to find out what we need to know from a vast supply. Once, we had too little information on how our systems work. Now we have too much, with the useful, interesting, and irrelevant all thrown in together. The ability to measure every conceivable aspect of complex systems has brought a greater need to identify the things that really matter. Ring Charts are an outgrowth of Chaos Theory. This area of mathematics examines systems that are so complex that they seem completely random, seeking to identify the underlying patterns, causes and explanations. Ring Charts are useful because they allow a vast amount of simple information to be presented in a graphical format. This facilitates the identification of important characteristics, including hierarchies, inefficient operations, and system constraints. One of the first successes of the method was in using telephone records to find hierarchies in crime organizations, which are not known for publishing their organizational charts on the internet. 5050 5523 5114 2669 8406 In Figure 1, each small circle represents a person suspected of being a member of an illegal operation. Each person is identified by his or her telephone number. Whenever telephone records show a call from one person to another, a line is drawn connecting the circles. Over time, as many lines are drawn, some readily identified patterns can emerge. Two persons working together in a close partnership will show many lines connecting them. An example of this can be seen on the right side of the chart. Calls unrelated to organization business will spread out to persons with one or two contacts. These can appear on the chart like the whiskers of a cat (left side). A nexus, where many lines come together from different places, generally indicates higher standing in the organization. A Ring Chart shows the relationship between a collection of objects related by a shared action. In the organized crime scenario, people were connected by telephone calls. In a relational database (Figure 2), tables are connected by table joins. While persons cannot call 1

themselves on a telephone, it is possible to query data from a single table with no table joins. These actions, called Identity Operations, are represented by curved lines going out from a table and back into itself. MASTER Figure 2 ORG CHART TWEEDLEDEE Constructing a Ring Chart The creation of a Ring Chart begins with assembling the data into a Query Data Set. Dynamic data collection will greatly facilitate this process. In a query program, follow the code that runs the query with a data step that appends the name of each table join to a SAS data set. There will be one line appended to the Query Data Set for each table join in each query. For example: TELEPHONE TWEEDLEDUM LIBNAME ANDVARI 'C:\SAS\ANDVARI' ; CENSUS HISTORY USER SALES CUSTOMER GOVERNMENT ADDRESS In this chart, as before, nexus tables are at the top of a hierarchy (Master Table). "Whisker" tables at the end of very few queries (gray tables) are under utilized and possibly a waste of time and space. They may contain only one or two essential fields that that could be placed on another table, allowing the query to run with fewer joins. A table may be present whose content is not employed in combination with others in the database and could be stored independently (e.g. Org Chart). Many lines drawn between two tables (Tweedledee and Tweedledum) reflect a partnership that is bad for business: constantly using queries to join the same tables wastes every system resource, especially time. In this example, Tweedledum is never queried without first being joined to Tweedledee. Their fields need to be combined into a single table. Because the intensity of the lines is heaviest between Tweedledee and Tweedledum, this is the constraint: the place in the system where usage is maximized and performance is minimized. Constraints are bottlenecks. Allocating more resources or simplifying the system at this point makes the greatest improvement for the least expenditure. However, making additional resources available in other areas will do little to improve operations unless this is resolved first. / Select the desired fields from the database / / This example selects fields from Table 04 and Table 07 using a match code / PROC SQL; CREATE TABLE WORK.QUERY AS SELECT T04VAR_1 T04VAR_2 T04VAR_3 A.MATCH T07VAR_1 T07VAR_2 T7VAR_3; FROM ANDVARI.T1 A, ANDVARI.T2 B; WHERE A.MATCH = B.MATCH; QUIT; / Once the query is completed, write the name of the table joins to a file / DATA ANDVARI.QUUERY; TABLES='T0407'; OUTPUT; Add the code in bold for every query run on the database. When enough records have been collected for analysis (at least 30), a Ring Chart can be produced. If the workflow in the system is highly cyclical, with much the same work being repeated for some time period, use only whole time periods in the data set. If the work cycles each week, four weeks may be used but a month should not. Once the Query Data Set has been prepared, the following program will produce the Ring Chart. A PROC SUMMARY calculates the number of times each table join appears in the Query Data Set. An Annotate Data Set is 2

created containing one record for every item to be found in the graphical output. In this program, only a single line is drawn for each combination of tables found in the Query Data Set. The width of this line is given by the total from the PROC SUMMARY. Identity operations are displayed as short lines going away from the table queried. A PROC GSLIDE reads the Annotate Data Set and draws the Ring Chart. / Program: CHART.SAS Platform: SAS v6.12 Author: David Corliss Purpose: This program creates a ring chart for a relational database. The chart has one point on the ring for each table in the database. Data are read from a data set containing one record for each table join used in queries over some time period. Totals are made for each table join and plotted on the ring chart. Program Version and Date: v1.0 January 28, 1999 Validated: v1.0 February 4, 1999 Change Control: / / Assign data library / LIBNAME ANDVARI 'C:\SAS\ANDVARI'; / Set up the graphics environment / GOPTIONS RESET=GLOBAL GUNIT=PCT BORDER FTEXT=SWISSB HTITLE=6 HTEXT=3 LFACTOR=5; %ANNOMAC; / Calculate the total for each table join / PROC SORT DATA=ANDVARI.WEEKLY; DATA WORK.TEMP; TOTAL = 1; PROC SUMMARY DATA=WORK.TEMP; VAR TOTAL; OUTPUT OUT=ANDVARI.TOTALS (DROP=_FREQ TYPE_) SUM=; / Create Annotate data set / DATA ANDVARI.ANNOTATE; LENGTH FUNCTION STYLE COLOR $ 8 TEXT $ 25; RETAIN HSYS XSYS YSYS '3'; / Draw a circle for each table in the database / %CIRCLE(60, 80, 3, BLACK); %CIRCLE(80, 70, 3, BLACK); %CIRCLE(90, 57, 3, BLACK); %CIRCLE(90, 42, 3, BLACK); %CIRCLE(80, 30, 3, BLACK); %CIRCLE(60, 20, 3, BLACK); %CIRCLE(40, 20, 3, BLACK); %CIRCLE(20, 30, 3, BLACK); %CIRCLE(10, 42, 3, BLACK); %CIRCLE(10, 57, 3, BLACK); %CIRCLE(20, 70, 3, BLACK); %CIRCLE(40, 80, 3, BLACK); / Title / FUNCTION='LABEL'; X=40; Y=95; STYLE='SWISSB'; COLOR='BLACK'; SIZE=6; TEXT='RING CHART'; OUTPUT; 3

/ Label the circle for each table / FUNCTION='LABEL'; X=62; Y=82; TEXT='TABLE 1'; OUTPUT; FUNCTION='LABEL'; X=82; Y=71; TEXT='TABLE 2'; OUTPUT; FUNCTION='LABEL'; X=92; Y=58; TEXT='TABLE 3'; OUTPUT; FUNCTION='LABEL'; X=92; Y=43; TEXT='TABLE 4'; OUTPUT; FUNCTION='LABEL'; X=82; Y=30; TEXT='TABLE 5'; OUTPUT; FUNCTION='LABEL'; X=62; Y=19; TEXT='TABLE 6'; OUTPUT; FUNCTION='LABEL'; X=31; Y=19; TEXT='TABLE 7'; OUTPUT; FUNCTION='LABEL'; X=11; Y=30; TEXT='TABLE 8'; OUTPUT; FUNCTION='LABEL'; X=1; Y=43; TEXT='TABLE 9'; OUTPUT; FUNCTION='LABEL'; X=1; Y=58; TEXT='TABLE 10'; OUTPUT; FUNCTION='LABEL'; X=11; Y=71; TEXT='TABLE 11'; OUTPUT; FUNCTION='LABEL'; X=31; Y=82; TEXT='TABLE 12'; OUTPUT; / Write a record to the Annotate data set for each line to be drawn / DATA WORK.LINES; SET ANDVARI.TOTALS; RETAIN HSYS XSYS YSYS '3'; IF TABLES = 'T0101' THEN FUNCTION='MOVE'; TEXT='T0101'; OUTPUT; FUNCTION='DRAW'; X=60; Y=85; LINE = 1; STYLE='SWISSB'; TEXT='T0101'; OUTPUT; IF TABLES = 'T0102' THEN FUNCTION='MOVE'; TEXT='T0102'; OUTPUT; FUNCTION='DRAW'; X=80; Y=70; LINE = 1; STYLE='SWISSB'; TEXT='T0102'; OUTPUT; ELSE IF TABLES = 'T0103' THEN FUNCTION='MOVE'; TEXT='T0103'; OUTPUT; FUNCTION='DRAW'; X=90; Y=57; LINE = 1; STYLE='SWISSB'; TEXT='T0103'; OUTPUT; / Include each possible table join allowed by the database 4

/ ELSE IF TABLES = 'T1212' THEN FUNCTION='MOVE'; X=40; Y=80; LINE = 1; STYLE='SWISSB'; TEXT='T1010'; OUTPUT; FUNCTION='DRAW'; X=40; Y=85; LINE = 1; STYLE='SWISSB'; TEXT='T1010'; OUTPUT; DROP TABLES TOTAL; DATA ANDVARI.ANNOTATE; SET ANDVARI.ANNOTATE WORK.LINES; / Display Ring Chart / FOOTNOTE J=CENTER 'David Corliss SUGI 28 March, 2003 '; PROC GSLIDE ANNOTATE=ANDVARI.ANNOTATE; QUIT; / Reinitialize the data set for recording table joins / / DATA ANDVARI.ARCHIVE; DATA ANDVARI.WEEKLY; IF TABLES NE ' ' THEN DELETE; / Scaling When a data warehouse has a very high number of queries, there can be too many lines on a chart to plot every one. If a single period contains hundred of queries instead of a few dozen, modifications must be made to allow clear presentation of the data. This process, called Scaling, involves dividing the output of the PROC SUMMARY by a scale factor. If a scale factor of 10 is used, ten joins between the same two tables will produce a line only one unit in width. Conclusion Ring Charts provide the frequency of table joins in a relational database in a graphical format, allowing the system analyst to identify important characteristics. These include hierarchies, inefficient operations, and system constraints. Tables at the nexus of many queries are at the top of system hierarchy. "Whisker" tables are at the end of very few queries, identifying them as the target of consolidation efforts. The point at which the lines are heaviest marks the constraint of the system. Combining these tables into one may produce a considerable improvement in performance. A Ring Chart may show that a system uses all of its tables well without carrying any dead weight. The system may be free of any severe constraint and yet performance is still unsatisfactory. Ring Charts show the efficiency of a system s architecture. When a system is running as well as can be designed but is still too slow, the only way to improve performance is to increase hardware resources. In this event, a Ring Chart can provide the scientific analysis required by company management to justify such an outlay. Contact Information The author greatly values your thoughts and input. David Corliss Marketing Associates 500 Hulet Drive Bloomfield Hills, MI 48302 Phone: (248) 333 7700 dcorliss@marketingassociates.com SAS 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. 5