사이트맵  |  Contact Us
 
홈 > SAS Tech & Tip > SAS Programming
[SAS 프로그래밍] Butterfly Plot 실습 2019.07.31
박세훈 349 0
http://www.mysas.co.kr/sas_tiptech/a_question.asp?b_no=11152&cmd=content&bd_no=5

Butterfly Plot

 

1. Introduction

안녕하세요. 이번 시간에는 시각화 기법에 대해 실습해보겠습니다. 지난 시간에 배웠던 Funnel Plot처럼, 특정 데이터에 대해 더 좋은 시각화 기능을 보여주는 여러 함수들이 있습니다. 오늘은 Butterfly Plot에 대해 배워보겠습니다.

 

2. Data

Butterfly Plot은 두 집단의 분포를 비교할 때 흔하게 사용되는 시각화 기법입니다. 대표적인 대조군인 성별을 비교해 보겠습니다. 데이터는 SAS 내장 데이터인 Sashelp.Heart를 사용하겠습니다.

 

3. 모델링

 

3.1 EDA

<code1>

proc univariate data=Sashelp.Heart;

   class Sex;

   var Cholesterol;

   histogram cholesterol / nrows=2 outhist=OutHist

                          /* 분포 범위 (80 부터 560, 간격 40 ) */

                           odstitle="Cholesterol by Gender";

   ods select histogram;

run;

콜레스테롤에 대한 성별 그룹 별 분포입니다. 기본적인 시각화 기법으로 분포를 확인했습니다.

 

3.2 Convert

기존의 OutHist 형식은 “Long Form”입니다. Butterfly Plot으로 변형하기 위해 데이터를 “ Wide Form” 형태로 바꿔줍니다.

<code2>

/* Long Form Wide Form으로 변형하기 */

data Butterfly;

   keep Cholesterol Males Females;

   label Males= Females= Cholesterol=; /* 라벨 제거*/

   merge OutHist(where=(sex="Female") rename=(_COUNT_=Females _MIDPT_=Cholesterol))

         OutHist(where=(sex="Male")   rename=(_COUNT_=Males   _MIDPT_=Cholesterol));

   by Cholesterol;

   Males = -Males;     /* Count 표현을 위해 -Count 트릭으로 지정하기*/

run;

  • 실행 결과:

Males 데이터가 음수로 표현된 것을 볼 수 있습니다. 이를 통해 한 X축에 두 성별을 동시에 표현할 수 있습니다.

 

<code3>

/* 이후, 절대값을 표현할 Format 지정합니다.

Format 지정이 없으면 음수가 그대로 출력됩니다. */

proc format;

   picture positive low-<0="000,000"

   0<-high="000,000";

run;

<code4>

proc sgplot data=Butterfly;

   format Males Females postive.;

   hbar Cholesterol / response=Males   legendlabel="Males";

   hbar Cholesterol / response=Females legendlabel="Females";

   xaxis label="Count" grid

         min=-520 max=520 values=(-500 to 500 by 100) valueshint;

   yaxis label="Cholesterol" discreteorder=data;

run;

데이터 출력을 위한 서식을 지정합니다.

Cholesterol 수치를 그룹별로 확인이 쉬운 Butterfly Plot을 생성하였습니다.

 

4. Conclusion

비교적 간단한 시각화 기법이지만, 의학과 같은 대조군 실험에서 유용하게 사용될 수 있습니다. 고급 분석 기법은 아니지만 다양한 스킬들을 숙지하여 가독성이 좋은 리포트를 만드는 것도 분석가의 역량이 아닐까 생각합니다.

 

 
 
휴대폰 번호
휴대폰 인증번호
 
 [SAS 프로그래밍] Monte-Carlo 와 Traditional 방법론의 중위수 탐색 성능 비교
 [SAS 프로그래밍] 3 표본추출방법 - 집락 추출, 비확률 표본 추출 (개념)