아래와 같은 SAS 프로시저로 일변량 자료를 요약할 수 있습니다. 3개 프로시저 모두 대푯값과 산포도를 포함한 기술 통계량 값을 제공합니다. 특히, UNIVARIATE 프로시저는 정규성 검정을 위한 정규 확률도, 상자 그림, 히스토그램을 제공합니다.
1. UNIVARIATE
2. MEANS
3. SUMMARY
** 캐글의 BankChurners데이터를 사용했습니다.
1. UNIVARIATE
1) 정규성 검정
- 주어진 통계자료가 정규 분포를 따르는 모집단으로 추출된 표본인지 검정.
- 대부분의 통계 이론은 모집단이 정규분포라는 가정하에 이뤄지므로 추출된 표본이 정규 모집단으로부터의 표본인지를 검정하는 정규성검정은 통계분석에 선행하여 이뤄질 필요가 있음.
- 귀무가설(H0) : 모집단의 분포가 정규분포.
- Shapiro-Wilks : 표본의 크기가 2000이하
- Kolmogorov-Smirnov : 표본의 크기가 2000 이상
2) UNIVARIATE PLOT 기본
- NORMAL : 정규성 검정에 필요한 검정 통계량 값과 유의 확률 값(P-VALUE) 제공
- PLOT : 정규성 검정을 위한 정규 확률도와 자료의 전체적인 형태 및 대칭성 파악을 위한 히스토그램과 BOX PLOT 제공
- BY : 주어진 변수에 따른 집단별로 분석 결과를 얻고자 할 때 사용. 프로그램 실행 전에 SORT 프로시저에 의해 정렬되어 있어야 한다.
- VAR : 기술 통계량, 정규 확률도, BOX PLOT, 히스토그램을 얻기 위한 변수명 지정
/* 정렬부터 해줘야 함 */
PROC SORT DATA= work.bankchurnrename;
BY Gender;
RUN;
/* Total_Revolving_Bal 최솟값, 최대값 제외 */
DATA BANKCHURN_REVOLV_NOT_ZERO;
SET BANKCHURNRENAME;
IF Total_Revolving_Bal>0 AND Total_Revolving_Bal<2517;
RUN;
/* UNIVARIATE */
PROC UNIVARIATE DATA= BANKCHURN_REVOLV_NOT_ZERO NORMAL PLOT;
VAR Age Total_Revolving_Bal Total_Trans_Amt; /* 변수명 나열*/
RUN;
[결과]
> T-검정 통계량이 175.9095, 유의 확률이 <0.0001으로 귀무가설이 기각되므로 평균이 0이 아니라고 결론.
> Kolmogorov-Smirnov = 0.032473 , Pr > D = <0.0100 : 정규성을 따른다는 귀무가설을 기각한다.
> 히스토그램과 BOX PLOT 모두 데이터 분포를 보여줌
> 정규 분위수 그래프에서 단위가 아주 작거나 큰 구간에서는 데이터가 직선 위에서 벗어남
3) HISTOGRAM
- 히스토그램 출력
- NORMAL: 히스토그램 위에 정규분포 곡선 출력하여 히스토그램과 비교
- EST : 데이터에서 추정된 평균과 표준편차 값 사용
PROC UNIVARIATE DATA= BANKCHURN_REVOLV_NOT_ZERO NORMAL PLOT;
BY Gender;
VAR Total_Revolving_Bal ;
HISTOGRAM Total_Revolving_Bal /NORMAL (MU=EST SIGMA=EST);
RUN;
[결과]
> MU = 1468.3, SIGMA =500
2. MEANS
특정 통계량 키워드로 사용자가 원하는 기술 통계량 값만 출력 가능합니다.
1) MEANS : 평균
- MEANS 프로시저에서 얻고자 하는 기술 통계량의 키워드를 지정
- 키워드를 지정하지 않으면 기본적인 5개 기술 통계량 (관측치 수, 평균, 표준편차, 최솟값, 최댓값) 제공
/* 통계량 키워드 미 지정 */
PROC MEANS DATA= BANKCHURN_REVOLV_NOT_ZERO;
CLASS Gender;
VAR Total_Revolving_Bal;
OUTPUT OUT=MEANS_OF_Revolv;
RUN;
/* 통계량 키워드 지정 */
PROC MEANS DATA= MEANS_OF_Revolv N MEDIAN LCLM UCLM MEAN STD VAR NMISS CV SKEWNESS CSS ;
CLASS Gender;
VAR Total_Revolving_Bal ;
RUN;
- 프로시저로 얻은 기술 통계량 결과를 저장할 파일명은 OUTPUT OUT= 옵션으로 지정
/* OUTPUT OUT= */
PROC MEANS DATA= BANKCHURN_REVOLV_NOT_ZERO;
CLASS Gender;
VAR Total_Revolving_Bal;
OUTPUT OUT=class_out N(Total_Revolving_Bal)=nn
MEAN(Total_Revolving_Bal)=mean
MEDIAN(Total_Revolving_Bal)=median
VAR(Total_Revolving_Bal)=var
STD(Total_Revolving_Bal)=std
CV(Total_Revolving_Bal)=cv;
RUN;
PROC PRINT DATA=class_out;RUN;
3. SUMMARY
- 일변량 자료에 대한 기술 통계량을 제공하는 프로시저이지만 결과를 출력 창으로 출력하지 않음.
- 결과 출력 시에는 PRINT 옵션을 사용.
PROC SUMMARY DATA=bankchurn_revolv_not_zero MEAN STD MEDIAN PRINT;
CLASS Gender;
VAR Age Total_Revolving_Bal Total_Trans_Amt;
RUN;
'Data_Analysis > SAS' 카테고리의 다른 글
[SAS] PROC TABULATE (0) | 2021.01.28 |
---|---|
[SAS] 범주형 자료분석 (2) | 2021.01.07 |
[SAS] 자료 행 분할 (0) | 2020.12.01 |
[SAS] Macro (0) | 2020.11.23 |
[SAS] SQL문 (2) | 2020.11.23 |
댓글