랜덤 데이터 세트를 작성하는 방법을 '[SAS]난수 발생과 Plotting part2' 게시글에서 난수 발생방법을 알 수 있게 되었습니다.
이러한 데이터 세트를 활용하여 SAS에는 플롯 그리는 기능을 제공합니다.
R 프로그램과 SAS를 비교하여 플롯을 그리는 방법을 알아보겠습니다.
# R
R 프로그램에서는 막대 그림, 상자 그림, 중첩된 정규 및 커널 밀도 추정값이 있는 히스토그램, 최적의 선이 있는 단순 선형 회귀 그림, 신뢰 한계 및 예측 한계를 포함하는 그래프를 위의 코드를 통해서 그릴 수 있습니다.
그래프 그리기 뿐만이 아니라 제목, 다른 범례, 이름, 선의 패턴, 점 기호, x 및 y 레이블 변경 까지 추가하여 플롯을 그릴 수 있습니다.
R의 그래프 그리기 기능은 SAS에서는 SGPLOT 절차를 통해서 수행할 수 있습니다. SGPLOT은 통계 그래픽 플롯을 나타냅니다.
SGPLOT은 단일 셀 플롯을 만들 수 있습니다. 단일 축 집합에 플롯을 오버레이할 수도 있습니다.
단일 플롯에 두 개의 산점도를 오버레이하려면 PROC SGPLOT을 사용해야합니다.
SGPLOT Procedure Plot Types
아래의 표는 네 가지 범주로 구성된 PROC SGPLOT에서 생성할 수 있는 몇 가지 옵션들 입니다.
SGPLOT 프로시저 문은 플롯 유형에 따라 다른 구문을 따릅니다.
기본및 Fit-and-Confidence 플롯 유형의 경우 아래와 같이 PLOT 문 뒤에 X축 변수와 Y축 변수를 지정합니다.
PLOTNAME X=x-variable Y=y-variable </ OPTIONS>;
예를 들어, 산점도를 생성하려면 SGPLOT 프로시저에서 SCATTER 문을 사용하면 됩니다.
마찬가지로 시계열 플롯을 생성하려면 SERIES 문을 사용하면 됩니다.
PLOTNAME response-or-category-variable </ OPTIONS>;
이변량 플롯, 산점도, 계열, 회귀 또는 황토를 원하는 경우 다음과 같은 PLOT 문을 사용합니다.
그런 다음 x는 같음 및 y는 같음 옵션을 사용하여 X축 및 Y축 변수를 지정합니다.
그리고 슬래시 뒤의 문장에서 바로 옵션을 지정할 수 있습니다.
이 구문은 앞으로 SAS에서 매우 일관됩니다. 두 옵션 모두에서 슬래시가 표시됩니다.
플롯에 따라 옵션. 구문이 약간 다른 두 가지 기본 플롯 유형이 있습니다. 물론 밴드 플롯은 이변량이지만
몇 가지 다른 옵션이 있습니다. X축 변수가 필요하지만 다음을 수행하려면 lower 및 upper 옵션도 필요합니다. 영역에서 정확히 어디에 음영을 줄 것인지 지정해야 합니다.
BAND X=x-variable LOWER=lower-bound UPPER=upper-bound;
Bubble Plot 의 경우 산점도이기 때문에 x축 및 y축 변수를 지정합니다.
크기 옵션을 사용하여 각 거품의 크기를 지정할 수 있습니다.
아래의 syntax는 X축 변수, y축 변수 및 숫자 변수,산점도 점의 크기를 지정하여 변경할 수 있습니다.
BUBBLE X=x-variable Y=y-variable SIZE=size-variable;
SCATTER Plot Example 1
12개월 각각에 대한 a회사의 수익을 보유하고 있는 sales라는 데이터 세트가 있습니다.
SCATTER 문으로 산점도를 만들고 X축 변수를 월로, Y축 변수를 수익으로 설정하려고 합니다.
아래의 구문을 사용하면 아래의 플롯은 R의 플롯 기능을 사용하는 것과 똑같은 플롯이 생성됩니다.
proc sgplot data=sales;
scatter x=month y=revenue;
run;
R에서는 일반적으로 플롯을 만든 다음 플롯에 옵션을 반복적으로 추가합니다.
예를 들어, 산점도를 생성한 다음 점 또는 선 함수를 사용하여 그 위에 다른 산점도 또는 계열 플롯을 오버레이할 수 있습니다. SAS에서는 모든 작업을 하나의 PROC 단계에서 수행합니다. 기존 플롯에 그래픽을 반복적으로 추가하지 않습니다.
SCATTER Plot Example 2
기본적으로 single cell에 여러 산점도를 생성하려는 경우 R에서 Points 기능을 사용하려면 여러 SCATTER 문을 사용하면 됩니다.
proc sgplot data=sales;
scatter x=month y=revenue;
scatter x=month y=revenue_2;
run;
동일한 x 변수가 있지만 이제 y는 수익과 같고 y는 수익 2와 같은 두 개의 개별 y 변수가 있습니다.
첫 번째 수익은 파란색으로 표시되고 두 번째 수익은 빨간색으로 표시됩니다.
SCATTER Plot Example 3
proc sgplot data=sales;
series x=month y=revenue;
series x=month y=revenue_2;
run;
SCATTER 문을 SERIES 문으로 간단히 바꾸면 R에서 lines 기능을 재현합니다.
SGPLOT 프로시저는 여러 SCATTER 또는 SERIES 문이 제공될 때 범례를 자동으로 채웁니다.
일반적으로 원하는 PLOT 문을 사용할 수 있습니다.
하지만 동일한 구조가 있어야 합니다.
예를 들어, SCATTER 문과 BOX PLOT 문을 함께 사용할 수 없습니다.
Alternative Overlay Approach
대체 오버레이 접근 방식은 데이터 테이블의 구조에 따라 다릅니다. 판매라는 데이터 세트가 있지만 이번에는 분류 변수인 company라는 변수가 있습니다.
값 1은 company1을 나타냅니다. 값 2는 company2를 나타냅니다. 월과 수익은 아래의 플롯과 같이 누적됩니다.
Sales Data Set
위와 같은 플롯은 하나의 SCATTER 문을 사용할 수 있습니다.
슬래시 뒤의 옵션으로 group equal to 옵션을 사용하고 분류 변수를 제공합니다.
이 옵션은 SAS가 작업을 분할하도록 지시합니다. 동일하게 보이는 동일한 플롯에 수익과 수익2을 별도로 표시합니다.
Proc SGPLOT with Group = Option
proc sgplot data=sales;
scatter x=month y=revenue / group=company;
run;
응답 변수가 누적되는 경우 다른 접근 방식은 BY 문을 사용하고 두 변수를 플롯하는 것입니다.
BY 문을 분류 변수로 전달하고 SAS는 출력 4.13과 같이 company1에 대한 산점도를 출력한 다음 company2에 대한 산점도를 별도로 출력합니다.
PROC SGPLOT with BY statement
BY 문은 지정된 변수의 각 범주에 대한 도표를 생성합니다.
GROUP= 옵션을 사용하여 오버레이하고 BY 문을 사용하여 여러 플롯을 출력합니다.
proc sgplot data=sales;
scatter x=month y=revenue
by company;
run;
다중 셀 플롯을 만드는 방법을 알아보려 합니다.
다중 셀 플롯은 히스토그램, 밀도 추정치 및 상자 그림과 같은 다양한 유형의 도표로 창을 채우는 방법입니다. 또한 산점도 행렬을 만드는 방법을 살펴보고 마지막으로 일부 분류 변수를 기반으로 한 그림 패널을 만듭니다.
R에서는 PAIRS 함수를 사용하여 산점도 행렬을 만들고 다음을 사용하는 것도 편합니다.
PAR MFROW 옵션을 사용하여 창을 만들고 해당 창을 다양한 유형의 플롯으로 채웁니다.
# R Script
PROC SGSCATTER
먼저 SGSCATTER 절차에 대해 이야기하겠습니다.
PROC와 함께 사용할 수 있는 세 가지 PLOT 문이 있습니다.
- MATRIX 문은 R의 pair() 함수를 복제하기 위해 산점도 행렬을 생성합니다.
⁃ PLOT 문은 여러 개의 독립적인 산점도를 포함하는 패널 그래프를 만듭니다.
⁃ COMPARE 문은 공유 축을 기반으로 한 비교 산점도 패널을 생성합니다.
MATRIX Statement
먼저 PROC SGSCATTER에서 MATRIX 문을 사용하는 경우 다음 구문과 같이 산점도 행렬에 포함하려는 모든 변수를 지정하기만 하면 됩니다.
MATRIX variable-1 variable-2 … </ options>;
mpg_city, weight, length의 산점도 행렬을 만들려고 합니다.
매트릭스의 옵션문을 사용하면 산점도의 대각선에 히스토그램과 밀도 추정치를 모두 그릴 수 있습니다.
PROC SGSCATTER with MATRIX Statement
mpg_city, weight, length의 산점도 행렬을 만들려고 합니다.
매트릭스의 옵션문을 사용하면 산점도의 대각선에 히스토그램과 밀도 추정치를 모두 그릴 수 있습니다.
PROC SGSCATTER with MATRIX Statement
proc sgscatter data=sp4r.cars;
matrix mpg_city weight length;
run;
PLOT Statement
다음으로 PLOT 문을 사용하여 다중 셀 산점도를 만들 수 있습니다.
PLOT 문에서 다음 구문과 같이 데이터 세트에서 산점도를 생성하려는 모든 변수를 교차합니다.
PLOT variable-i * variable-j … </ options>;
무게로 mpg_city의 산점도를 만든 다음 길이로 mpg_city의 산점도를 만들고 마지막으로 길이로 무게를 만듭니다.
옵션으로 ROWS= 및 COLUMNS=를 사용하여 그래픽 구조를 지정할 수 있습니다.
PROC SGSCATTER with PLOT statement
proc sgscatter data=sp4r.cars;
plot mpg_city*weight mpg_city*length
weight*length / columns=3;
run;
COMPARE Statement
마지막으로 COMPARE 문을 사용하여 일부 기준에 따라 산점도의 비교 패널을 만들 수 있습니다.
항상 Y= 및 X= 옵션을 사용하고 괄호 안에 표시된 대로 y 또는 x 변수를 지정합니다.
COMPARE X=(variable-i…) Y=(variable-j…)… </ options>;
그래프의 차원은 Y= 및 X= 문의 변수 수에 의해 결정됩니다.
따라서 프로그램 4.16에서 Y축 변수에 대해 공유 축 변수가 될 mpg_city를 지정하고 X축 변수는 가중치와 길이가 됩니다. 이것은 무게로 mpg_city의 산점도를 만들고 길이로 mpg_city의 산점도를 생성한다는 것을 의미합니다.
PROC SGSCATTER with COMPARE Statement
두 번째 플롯은 공유된 플롯이기 때문에 Y축 변수가 없습니다.
proc sgscatter data=sp4r.cars;
compare y=(mpg_city) x=(weight length);
run;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.