SAS Maps as Tools to Display and Clarify

  • Slides: 37
Download presentation
SAS® Maps as Tools to Display and Clarify Healthcare Outcomes Barbara B. Okerson, HMC,

SAS® Maps as Tools to Display and Clarify Healthcare Outcomes Barbara B. Okerson, HMC, Richmond, VA

Abstract Changes in healthcare and other industries often have a spatial component. Maps can

Abstract Changes in healthcare and other industries often have a spatial component. Maps can be used to convey this type of information more quickly than tabular reports and other nongraphical formats. SAS®, SAS/GRAPH and ODS graphics provide SAS programmers with the tools to display spatial data in a meaningful manner that aids in understanding of changes that have transpired. This presentation illustrates the creation of a number of different maps for displaying change over time with examples from the healthcare arena. Examples include choropleth, bubble, and distance maps and introduce the new GEOCODE procedures.

Purpose n Identify population/demographic differences n n n Identify providers/provider areas in need of

Purpose n Identify population/demographic differences n n n Identify providers/provider areas in need of improvement Identify regional differences in healthcare delivery Identify population differences n Identify changes in outcomes by demographics

Maps as images When generating a map as an image, the user has extensive

Maps as images When generating a map as an image, the user has extensive control over the map's appearance. These maps allow users to do the following within the procedure: n For block maps, specify: n n For choropleth maps, specify: n n n n colors and patterns that fill the map areas, and ranges for the response variable. For prism maps, specify: n n Block width, outline colors for blocks and map areas, the angle of view; ranges for the response values, and specify the angle of view. Hide the legend, or change its features; Add titles and footnotes to the map; Use annotations to enhance the map; and Create non-spatial maps.

Types of maps n Choropleth n Block n Prism

Types of maps n Choropleth n Block n Prism

Types of maps (cont. ) n Area n Other

Types of maps (cont. ) n Area n Other

ACTIVE-X and JAVA Both Active. X and Java allow: n A pop-up box that

ACTIVE-X and JAVA Both Active. X and Java allow: n A pop-up box that displays data values as mouse moves over n n area; Panning, rotating, or zooming the map; Changing the use of color in map areas, legend or background; Hiding the legend, or changing its features; and Displaying or hiding a background image (when used). Additionally, Java allows: n Changing the map type so that values for the response data are represented as: n blocks that are set on the map areas, n patterns or colors in the map areas, or n raised polygons in the map areas.

Pop-ups and flyovers Java- popup Active-X - flyover

Pop-ups and flyovers Java- popup Active-X - flyover

Included maps Purpose – understand health care outcomes n Choropleth with graphic markers n

Included maps Purpose – understand health care outcomes n Choropleth with graphic markers n Choropleth color patterns Population distribution n Fetal mortality rates n Medical costs n n Geocoding – non-geographic example n Bubble map – bubbles for linked labels n National county map

GMAP SAS code proc gmap map=maps. us data=maprank; id state ; choro raterank /

GMAP SAS code proc gmap map=maps. us data=maprank; id state ; choro raterank / levels=5 coutline=black legend=legend 1 annotate=labels; run; quit;

Annotate SAS code data labels; length function color $ 8 text $ 25; retain

Annotate SAS code data labels; length function color $ 8 text $ 25; retain function 'label' xsys ysys '2' hsys '3' when 'a'; set office 2; text=put(pass, passfmt. ); position='5'; color='red'; size=7; style='Marker'; output; run;

Annotate SAS code data labels; length function color $ 8 text $ 1 style

Annotate SAS code data labels; length function color $ 8 text $ 1 style $ 15; retain function 'label' xsys ysys '2' hsys '3' when 'a'; set office 2; if pass=1 then do; text=put(pass, passfmt. ); position='B'; color='blue'; size=4; style='"Webdings"'; output; end; if pass=2 then do; text=put(pass, passfmt. ); position='B'; color='red'; size=5. 5; style='"Webdings"'; output; end; run;

Annotate SAS Code data labels; length function $ 8 style $ 15; retain xsys

Annotate SAS Code data labels; length function $ 8 style $ 15; retain xsys ysys '2' hsys '3' when 'a'; set office 2; function='move'; output; function='image'; style='fit'; imgpath='r: bokersonsas global forumsgf 2010office. bmp'; x=x+0. 05; y=y+0. 05; output; run;

Map color patterns n SAS provides many options n Default list n Specify color

Map color patterns n SAS provides many options n Default list n Specify color list (color name, RGB value, HLS Value and Hex Value) n Specify pattern list (color name, RGB value, HLS Value and Hex Value) n %colorscale, a SAS-supplied macro: HTTP: //FTP. SAS. COM/TECHSUP/DOWNLOAD/SAMPLE/GRA PH/OTHER-COLOR. HTML n Safe for black/white: colors=(white bwh vpab vlipb lib) or colors=(bwh vpab vlipb lib virp)

Color references SAS TS-688 http: //support. sas. com/techsup/technote/ts 68 8/ts 688. html http: //www.

Color references SAS TS-688 http: //support. sas. com/techsup/technote/ts 68 8/ts 688. html http: //www. colourlovers. com/ http: //www. hitmill. com/html/pastels. html http: //www. w 3 schools. com/html_colors. asp http: //www. netstrider. com/tutorials/HTML/colors/ http: //www. visibone. com/vaccc/

Choropleth map – population change

Choropleth map – population change

Color patterns - greens pattern 1 value=msolid color=cx. FFFF 66; pattern 2 value=msolid color=cx.

Color patterns - greens pattern 1 value=msolid color=cx. FFFF 66; pattern 2 value=msolid color=cx. CCFF 00; pattern 3 value=msolid color=cx 66 FF 00; pattern 4 value=msolid color=cx 009900; pattern 5 value=msolid color=cx 666600;

Choropleth map – intervention impact

Choropleth map – intervention impact

Color patterns - oranges goptions colors=(white cx. FFDAB 9 cx. FFA 07 A cx.

Color patterns - oranges goptions colors=(white cx. FFDAB 9 cx. FFA 07 A cx. F 2691 E cx. B 85800) Note: pattern statements take precedence over goptions – if using goptions do not use pattern.

Choropleth – change in cost

Choropleth – change in cost

Color patterns - mixed pattern 1 v = msolid c =Lemon. Chiffon; pattern 2

Color patterns - mixed pattern 1 v = msolid c =Lemon. Chiffon; pattern 2 v = msolid c = cxffcc 00; pattern 3 v = msolid c = orange; pattern 4 v = msolid c = cxd 9892 b; pattern 5 v = msolid c = vpag; pattern 6 v = msolid c = Yellow. Green ; pattern 7 v = msolid c = Medium. Sea. Green ; pattern 8 v = msolid c = brown; pattern 9 v = msolid c = CX 800000 ; pattern 10 v = msolid c = CX 33070 F ;

Member to provider distance: GPLOT, GEOCODE, and GEODIST

Member to provider distance: GPLOT, GEOCODE, and GEODIST

GEOCODE SAS code proc geocode plus 4 lookup=lookup. zip 4 data=work. members out=work. geo_members;

GEOCODE SAS code proc geocode plus 4 lookup=lookup. zip 4 data=work. members out=work. geo_members; run; quit;

GEODIST function data geo_members ; set geo_members; retain prov_x prov_y; set geo_members; if _n_

GEODIST function data geo_members ; set geo_members; retain prov_x prov_y; set geo_members; if _n_ = 1 then do; prov_x = x; prov_y = y; end; else dist = geodist( y, x, prov_y, prov_x, ‘DM’ ); drop prov_x prov_y; run;

GPLOT SAS Code goptions reset=all gunit=pct border ftext='Arial' ftitle='Arial' htext=4 htitle=7 ctext=black colors=(cx 7

GPLOT SAS Code goptions reset=all gunit=pct border ftext='Arial' ftitle='Arial' htext=4 htitle=7 ctext=black colors=(cx 7 BA 7 E 1 cx. D 80000 cx 00 CC 66 cx. FFFF 00 ltgray) ; symbol 1 interpol=join; title 'Miles to Choice of Provider'; axis 1 order=(0 to 15 by 1) offset=(0, 0) minor=none label=none; axis 2 order=(0 to 100 by 20) offset=(0, 0) major =(height=1) label=( j=r 'Percent' j=r 'of Members'); proc gplot data=provider 2; plot p 5*interval p 4*interval p 3*interval p 2*interval p 1*interval /overlay haxis=axis 1 autovref autohref cvref=black chref=black lautovref=34 lautohref=34 vaxis=axis 2 vminor=3 caxis=black areas=5; run; quit;

Bubble map with Google Maps links for health center locations Health Center Locations

Bubble map with Google Maps links for health center locations Health Center Locations

Health center location SAS code proc sql; create table circle_anno as select loc_ccnv. zip,

Health center location SAS code proc sql; create table circle_anno as select loc_ccnv. zip, zipcode. city, -1*zipcode. x as longitude, zipcode. y as latitude from loc_ccnv left join sashelp. zipcode on loc_ccnv. zip=zipcode. zip; quit; run; /* Convert degrees to radians, */ data circle_anno; set circle_anno; length city $ 30; city=scan(zipcity(zip), 1, ', '); x=atan(1)/45 * longitude; y=atan(1)/45 * latitude; run;

Google Maps link

Google Maps link

Google Maps link SAS code data circle_anno; length function style color $ 8 position

Google Maps link SAS code data circle_anno; length function style color $ 8 position $ 1 text $ 20 html $1024; retain xsys ysys '2' hsys '3' when 'a'; set circle_anno; html='title='||quote( trim(left(propcase(city)))||' ('||trim(left(zip))||')' ) ||' '||'href='||quote('http: //maps. google. com/maps? t=k&hl=en&q='||tri m(left(put(zip, z 5. )))); function='pie'; color='graycc'; style='psolid'; position='5'; rotate=360; size=3; anno_flag=1; output; function='label'; position='B'; style='"Arial"'; text=trim(left(city)); color='black'; cbox='white'; size=2; anno_flag=3; output; run;

U. S. map with county boundaries

U. S. map with county boundaries

Proc RANK SAS code proc rank data=mapbh out=mapbhrank group=5; var pctbh; ranks pctbhgrp; run;

Proc RANK SAS code proc rank data=mapbh out=mapbhrank group=5; var pctbh; ranks pctbhgrp; run; data mapbhrank(rename=(stfips=state cntyfips=county)); set mapbhrank; pctbhgrp=pctbhgrp+1; run; proc sql; create table bhdatamap as select * from maps. uscounty m left join mapbhrank r on m. state=r. state and m. county=r. county; run; quit;

References Ingenix Geo Networks. http: //www. ingenix. com/content/attachments/Geo. Netwo rks_brochure. pdf. Accessed February 2010.

References Ingenix Geo Networks. http: //www. ingenix. com/content/attachments/Geo. Netwo rks_brochure. pdf. Accessed February 2010. Massengill D, Odom E. “PROC GEOCODE: Creating Map Locations from Your Data. ” SAS Global Forum 2009. Osborne, Anastasiya. “Let Me Look At It! Graphic Presentation of Any Numeric Variable. ” SAS Global Forum 2009. SAS Institute, Inc. 2009. http: //support. sas. com/rnd/datavisualization. Accessed October 2009. SAS Institute Inc. 2008. SAS Online. Doc® 9. 1. 3. Cary, NC: SAS Institute Inc.

Contact info Barbara B. Okerson, Ph. D. , CPHQ, FAHM Senior Health Information Consultant

Contact info Barbara B. Okerson, Ph. D. , CPHQ, FAHM Senior Health Information Consultant National Accounts Outcomes Health Management Corporation (HMC) 8831 Park Central Drive, Suite 100 Richmond, VA 23227 Office: 804 -662 -5287 Fax: 804 -662 -5364 Email: bokerson@choosehmc. com

Questions?

Questions?