BookmarkSubscribeRSS Feed

[SAS 활용 노하우] SG procedure - SGPANEL, SGRENDER

Started ‎10-14-2021 by
Modified ‎10-14-2021 by
Views 1,212

 

 

SG procedure는 Statistical Graphics Procedure로 복잡한 통계적인 그래프를 쉽게 생성하여 분석 결과의 내용을 시작적으로 파악할 수 있는 프로시저입니다.

 

SG Procedure는 아래와 같이 4개의 프로시저가 제공되며 기본적으로 그림형식(.png)으로 제공합니다.

 

1. SGPLOT : 한 장의 도표에 하나의 축을 기준으로 다양한 그래프를 겹쳐서 나타낼 수 있다.

2. SGPANEL : 하나 이상의 범주형 변수에 대한 패널을 생성하고, 각 셀에 여러 가지 형태의 도표를 겹쳐서 나타낼 수 있다.

3. SGSCATTER : 산점도의 형태를 패널로 생성하며, 세 가지 형태의 레이아웃을 제공합니다.

4. SGRENDER : 유틸리티 프로시저로서 (GTL, Graph Template Languate)로 작성된 템플릿으로부터 그래프를 생성한다.

 

그 중 이 게시글은 SGPANEL , SGRENDER 프로시저에 관한 글 입니다.

 

 

                                                                                                                                                   

 

 

SGPANEL

 

SGPANEL은 PENELBY 명령문을 사용하여 범주별로 그래프를 생성하며, 여러 개의 도표(multi-cell)에 다양한 그래프를 겹쳐서 그릴 수 있습니다. 일반적인 SGPANEL 프로시저의 사용형식 및 제공하는 도표의 SGPLOT 프로시저와 대부분 동일하며, PANELBY 명령문으로 PANEL을 정의합니다.

 

 

[SGPANEL Procedure의 일반적인 사용형식]

 

 

PROC SGPANEL DATA = SAS-dataset <option(s)>;
     PANEL variable(s) </option(s)>;
     ....

 

 

1. 국소 회귀곡선 : LOESS

 

국소 회귀곡선(locally weighted scatterplot smoothing curve)를 그리기 위해서는 LOESS 명령문을 사용합니다.

데이터는 sashelp에 있는 heart 데이터를 사용합니다. WHERE 명령문을 이용하여 나이가 60 초과인 경우로 대상으로 한정하였으며 LOESS 명령문에 사용된 CLM 옵션은 회귀곡선에 대한 신뢰구간을 생성합니다. PANELBY 명령문에서 NOVARNAME 옵션은 출력되는 그래프에 변수명을 제거하는 명령문입니다.

 

 

 

title "Cholesterol Lefvels for Age > 60";
proc sgpanel data = sashelp.heart(where= (AgeAtStart > 60));
PANELBY sex / NOVARNAME;
LOESS X = weight Y = cholesterol / CLM;
RUN;

 

스크린샷_2021-10-14_오후_1.30.09.png

 

 

 

 

2. 수직막대 그래프 : VBAR

 

수직막대 그래프를 그리기 위해서는 VBAR 명령문을 사용합니다.

데이터는 sashelp의 prdsale 데이터를 사용합니다. SGPANEL 프로시저를 이용하면 분기별 평균 판매 금액을 파악하고자합니다. VBAR 명령문에서 STAT = MEAN을 옵션으로 지정하면 X 축의 통계량이 평균으로 나타난다. STAT 옵션은 STAT = FREQ | MEAN | SUM을 지정할 수 있습니다. TRANSPARENCY 옵션은 막대 그래프의 투명도를 설정하는 옵션으로 0(불투명)부터 1(투명함)까지 조절 가능합니다.

 

 

 

TITLE "Product Sales";
PROC SGPANEL DATA=sashelp.prdsale;
PANELBY quarter;
ROWAXIS LABEL="Sales";
VBAR product / RESPONSE= predict Stat=MEAN TRANSPARENCY=0.3;
VBAR product / RESPONSE= actual STAT=MEAN BARWIDTH=0.3 TRANSPARENCY=0.3;
RUN;

 

스크린샷_2021-10-14_오후_1.36.27.png

 

 

 

3. 수평박스플롯 : HBOX

 

수평박스플롯을 그리기 위해서는 HBOX 명령문을 사용하면 됩니다.

사용데이터는 sashelp의 heart 데이터를 사용합니다. PANELBY 명령문에 weight_status 와 SEX를 지정함으로써 몸무게의 상태별 성별에 대한 박스플롯이 나타나게 지정하였습니다. LAYOUT = LATTICE 옵션은 두 개의 범주형 변수일 때 첫 번째로 지정한 변수는 열(column)에 놓이고, 두 번째로 지정한 변수는 행(row)에 놓이게 됩니다. LAYOUT 옵션은 LAYOUT = LATTICE | PANEL | COLUMLATTICE | ROWLATTICE를 이용할 수 있습니다.

 

 

TITLE "Distribution of Cholesterol Levels";
PROC SGPANEL DATA = sashelp.heart;
panelby weight_status sex / LAYOUT= LATTICE NOVARNAME;
HBOX cholesterol;
RUN;

 

 

 스크린샷_2021-10-14_오후_1.57.04.png

 

 

 

4. HISTOGRAM

 

히스토그램을 그리기 위해서는 HISTOGRAM 명령문을 사용합니다.

데이터는 heart 데이터를 사용하였습니다. NOAUTOLEGEND 옵션은 범례 자동 생성을 억제하는 옵션입니다. SGPANEL 프로시저에서 HISTOGRAM과 DENSITY 명령문을 함께 이용하면 각 범주별로 히스토그램 위에 분포 함수가 겹쳐서 나타납니다.

 

 

TITLE "Weight Distribution in the Heart Study";
PROC SGPANEL DATA=sashelp.heart NOAUTOLEGEND;
PANCELBY sex / NOVARNAME;
HISTOGRAM weight;
DENSITY weight;
RUN;

 

 

 스크린샷_2021-10-14_오후_1.59.29.png

 

 

 

SGRENDER

 

SGRENDER 프로시저는 GTL(Graph Template Languate)를 이용한 템플릿을 통해 그래프를 생성합니다. GTL 은 사용자가 정의한 레이아웃의 형태로 통계적 그래프를 생성하는 포괄적인 언어입니다.

 

PROC TEMPLATE를 이용하여 출력할 그래프의 형태를 지정하였습니다.

여기서 DEFINE 명령문에서 STATGRAPH를 생성할 것이고, 이 템플릿을 surface라고 작성하였습니다.

BEGINGRAPH ~ ENDGRAPH 사이에 원하는 형태의 레이아웃을 정의합니다. 여기서는 LAYOUT 명령문에 OVERLAY3D를 지정하여 삼차원 도표로 정의하였고, SURFACELOTPARM 명령문을 이용하여 각 축의 변수를 지정한다. 이렇게 정의한 템플릿을 SGRENDER 프로시저를 이용하여 적용하면 아래와 같은 그림이 출력됩니다.

 

 

PROC TEMPLATE;
DEFINE STATGRAPH surface;

BEGINGRAPH;
LAYOUT OVERLAY3D;
SURFACEPLOTPARM X=height Y= weight Z = density;
ENDLAYOUT;
ENDGRAPH;
END;
RUN;

PROC SGRENDER DATA=sashelp.gridded template=surface;
RUN;

 

 스크린샷_2021-10-14_오후_2.40.20.png

 

 

Version history
Last update:
‎10-14-2021 01:55 AM
Updated by:
Contributors

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

Article Labels
Article Tags