이번 게시글은 Summary Statistics Procedures로 변수를 분석하고 요약 통계를 생성하는 네 가지 절차로 이전 게시글인 ' [SAS] 난수 발생과 Plotting part3' 에서 Summary Statistics Procedures 파트의 이어지는 글 입니다.
PROC MEANS는 요약 통계를 구하기 위해서 가장 많이 사용하는 SYNTAX 중 하나입니다. PROC MEANS에서는 Mean(), Median(), Mode(), Range(), Var(), sd(), Sum(), Min(), Max() 및 분위수(). PROC 등을 구할 수 있으며 전체 변수에 함수에 적용할 수 있습니다.
proc means data=SAShelp.cars maxdec=2;
var mpg_city mpg_highway;
run;
위의 결과에서 볼 수 있듯이 MPG_City 평균은 20.06이고 표준 편차는 5.24입니다.
PROC MEANS 문의 maxdec=2 옵션은 모든 항목을 소수점 이하 두 자리까지 만듭니다.
그렇지 않으면 더 많은 소수점 이하가 출력됩니다.
PROC MEANS 는 출력을 사용자 지정하는 다양한 옵션이 있습니다.
표 5.2에 표시된 키워드를 사용한 기술 통계. Confidence Limits(CLM)를 지정할 수 있습니다.
Confidence Limits은 범위, 분포의 왜도, 분산(VAR), 표준 오차(STDERR) 등이 있습니다.
이러한 미리 결정된 키워드를 사용하여 백분위수를 출력할 수도 있습니다.
● PROC MEANS with Options
proc means data=sashelp.cars maxdec=2 mean median var;
var mpg_city mpg_highway;
run;
MEANS 프로시저 출력을 사용자 정의하려면 MEANS 프로시저 명령문에 위와 같은 옵션을 추가하기만 하면 됩니다.
위의 예제에서는 mean, median 및 var 옵션만 요청하고 있습니다.
결과 표에서는 평균, 중앙값 및 분산을 제공합니다. 다른 기본 출력들은 인쇄되지 않았습니다.
이제까지 summary statistics에서 설명한 1) PROC CORR, 2) PROC FREQ, 3) PROC MEANS 보다 PROC UNIBARITE는 더 많고 다양한 출력/결과를 생성할 수 있습니다.
예를 들어, 평균, 왜도, 첨도와 같은 모멘트를 생성할 수 있습니다.
평균, 중앙값, 표준 편차와 같은 기본 통계 측정값을 생성할 수 있습니다. 위치 테스트를 할 수 있습니다. 기본적으로 사전 정의된 분위수를 제공하며 변수의 최고 및 최저 관측치인 극단 관측치도 인쇄합니다.
아래는 PROC UNIBARIATE의 Syntax입니다.
PROC UNIVARIATE DATA=SAS-data-set <options>;
VAR variable-1 … variable-n;
RUN;
UNIVARIATE 문은 MEANS 프로시저와 같은 방식으로 사용됩니다.
원하는 모든 변수를 나열하고, VAR 문에서 사용합니다.
아래는 PROC UNIVARIATE의 출력 예시입니다.
이번 파트에서는 PROC 단계 출력을 사용자 지정하는 방법, 특히 특정 항목만 반환하는 방법을 배웁니다.
테이블 및 그래픽을 사용하고 PROC 단계 결과에서 새 테이블을 생성합니다.
R에서는 일반적으로 객체를 생성한 다음 기본 출력을 인쇄합니다.
SAS에서 결과를 사용자 정의하려면 출력 전달 시스템(ODS)을 사용합니다.
SAS 절차 및 DATA 단계는 단순히 원시 데이터를 생성합니다.
예를 들어, CORR 프로시저를 실행할 때 아래와 같은 출력을 얻습니다.
그러나 PROC CORR은 테이블 셀에 대한 원시 데이터만 생성합니다.(이 경우 1.00000, 0.63080, 0.38155 등). 실제로 테이블, 색상, 제목, 제목 등에 구조를 제공하는 것은 출력 전달 시스템입니다.
실제로 출력 전달 시스템 내부에 들어가서 출력의 모양을 변경할 수 있습니다.
예를 들어 스타일, 색상, 글꼴 등. 출력의 대상 파일 형식을 변경할 수도 있습니다.
이번 파트에서는 특정 출력을 선택하고 해당 출력에서 새 데이터 테이블을 생성하는 방법을 배우게 됩니다.
PROC UNIVARIATE는 많은 기본 출력을 생성합니다.
예를 들어, Quantiles 테이블, moment 테이블, Q-Q 플롯 그래픽 등을 출력할 수 있습니다.
Basic Statistical Measures 테이블과 QQ Plot 그래픽만 인쇄하고 싶을 수도 있습니다.
그 때, 프로시저를 실행하기 전에 ODS SELECT 문을 사용합니다.
그런 다음 개체 이름을 지정하고 테이블 또는 그래픽 이름, SAS는 해당 테이블 또는 그래픽만 결과 페이지에 다음과 같이 인쇄합니다.
Syntax는 아래와 같습니다.
ODS SELECT object-name-1 … object-name-n;
ODS SELECT 문에서 원하는 만큼 테이블과 그래픽을 지정할 수 있습니다.
테이블과 그래픽 이름이 무엇인지 판별하는 한 가지 방법은 ODS TRACE ON 문을 사용하는 것입니다. ODS TRACE ON을 실행하면 결과 페이지, 테이블 및 그래픽 이름에 생성되는 모든 출력이 아래의 결과에 표시된 대로 로그에 인쇄됩니다.
odstrace on;
proc univariate data=ameshousing;
varsaleprice;
qqplotsaleprice/normal(mu=estsigma=est);
run;
odstrace off;
● ODS SELECT Statement
아래의 예제를 보면 로그에서 해당 테이블과 그래픽 이름을 가져오고 ODS SELECT를 사용하여 다음 실행에서 BasicMeasures 테이블과 QQ 플롯만 인쇄하여 출력을 사용자 정의할 수 있습니다.
ods select basicmeasures qqplot;
proc univariate data=sp4r.ameshousing;
var saleprice;
qqplot saleprice / normal(mu=est sigma=est);
run;
모든 출력을 로그에 계속 인쇄하지 않으려면 뒤에 ODS TRACE OFF 문을 사용하면 됩니다.
Output Delivery System을 사용하여 PROC STEP 결과 테이블에서 새 데이터 테이블을 만들고
테이블에 포함할 특정 요약 통계를 선택합니다.
UNIVARIATE 프로시저를 실행했을 때 Basic Statistical Measures 테이블을 생성하고 새 SAS로 저장하려고 했습니다.
데이터 세트에서 출력 테이블을 SAS 데이터 세트로 저장하려면 실행하기 전에 ODS OUTPUT 문을 사용합니다.
ODS OUTPUT output-object-name = data-set-name;
ODS OUTPUT 문에서 먼저 개체 이름을 지정합니다. 개체 이름은 테이블 이름입니다. (ODS SELECT에서 사용됩니다.)
그런 다음 해당 테이블 이름을 새 SAS 데이터 세트 이름과 동일하게 설정합니다.
ods output basicmeasures = SP_BasicMeasures;
proc univariate data=ameshousing;
var saleprice;
run;
예를 들어, 위의 예제에서는 새 테이블 이름은 SP_BasicMeasures가 됩니다. SP는 판매 가격이 될 것이며, UNIVARIATE 절차에서 분석하고 있습니다.
단일 ODS OUTPUT 문에서 원하는 만큼 데이터 세트 이름과 동일한 개체 이름을 지정할 수 있습니다. ODS OUTPUT 문을 마친 후 적절한 절차를 실행하여 테이블에 저장합니다.
전체 테이블을 저장하고 싶지 않다면 단일 요약 통계만 저장하려면 어떻게 될까요?
전체 데이터 테이블에 하나의 요약 통계만 저장하는 것은 이상할 수 있지만 이번 파트에서 왜 저장해야 하는지 알 수 있을 것입니다.
단일 요약 통계를 저장하려면 다음과 같이 사용하면 됩니다.
OUTPUT OUT=new-data-set-namekeyword-1= variable-name-1… keyword-n= variable-name-n;
새 데이터를 사용자 정의하기 위한 OUTPUT 문(ODS OUTPUT 문과 혼동하지 말 것)입니다.
OUTPUT 문을 사용하면 사용자가 결과 테이블에서 어떤 개별 값을 선택할지 선택할 수 있습니다.
이렇게 하면 기본 결과 테이블에서 원하지 않는 통계가 유지되는 것을 방지할 수 있습니다. 즉시
OUTPUT 문 다음에 OUT equal to 옵션을 사용하고 새 SAS 데이터 세트 이름을 다음과 같이 지정합니다.
예제)
procunivariate data=ameshousing;
varsaleprice;
output out=stats mean=sp_mean;
run;
위의 예제에서 보면, OUTPUT 문을 사용하여 stats라는 새 테이블을 만듭니다.
평균을 저장하기 위해 키워드 mean을 사용합니다. SAS 데이터 세트 변수 이름을 sp_mean과 동일하게 설정합니다. 당신은 많은 것을 요청할 수 있습니다
OUTPUT 문에 키워드가 있으므로 요약 통계입니다.
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.