상세 컨텐츠

본문 제목

[SAS]기술통계분석부터 회귀분석까지 한방에 끝내는 매크로

SAS

by 대학원생D군 2023. 2. 27. 04:10

본문

반응형

안녕하세요,

사회과학 분야의 석사학위 논문을 살펴보면 최근에는 중급, 고급 통계기법이 많이 사용되고 있지만, 여전히 기술통계분석, 상관분석, 다중회귀분석으로 이어지는 연구를 어렵지 않게 찾아볼 수 있습니다. 그리고 중급, 고급 통계기법을 사용하더라도 가장 먼저 자료에 대한 이해를 위하여 탐색적 자료분석(EDA)가 필요하기 때문에 앞서 언급한 분석은 한 번쯤은 수행하곤 합니다.

저 역시 위에서 언급한 기술통계분석, 상관분석, 다중회귀분석을 정말 많이 했습니다. 그런데 그때마다 코드를 일일이 만드는 것은 정말 번거로웠습니다. 그래서 기초적인 분석에 꼭 필요한 코드를 정리하여 매크로로 만들었습니다. 전체 매크로 코드는 아래와 같습니다. 

%MACRO BASIC(DATA= ,X= ,Y= ,CV_T= , CV_L= );

PROC MEANS DATA=&DATA N MEAN STD MIN MAX SKEW KURTOSIS MAXDEC=3;
	VAR &X &Y &CV_T;
RUN;

PROC UNIVARIATE DATA=&DATA;
	VAR &Y;
RUN;

PROC FREQ DATA=&DATA;
	TABLE &CV_L;
RUN;

PROC SGPLOT DATA=&DATA;
	SCATTER Y=&Y X=&X;
	REG Y=&Y X=&X;
RUN;

PROC CORR DATA=&DATA PEARSON PLOT=MATRIX(HISTOGRAM) COV;
	VAR &X &Y &CV_T;
RUN;

PROC GLMSELECT DATA=&DATA OUTDESIGN(addinputvars)=Work.reg_design;
	CLASS &CV_L / PARAM=glm;
	MODEL &Y=&X &CV_T &CV_L / SHOWPVALUES SELECTION=NONE;
RUN;

PROC REG DATA=Work.reg_design ALPHA=0.05 PLOTS(only)=(diagnostics residuals 
		observedbypredicted);
	MODEL &Y=&_GLSMOD / STB VIF SPEC;
	RUN;
QUIT;

PROC DELETE data=Work.reg_design;
RUN;

%MEND;
매크로 실행방법

우선 위의 코드를 SAS에 복사+붙여넣기 한 후 제가 드래그 한 부분만 실행시킵니다. 어떠한 결과도 나오지 않고 로그 창은 검은색의 코드로 가득 차게 됩니다.

 

이후 아래의 코드만 필요에 맞게 변형하시면 됩니다! 

 

%BASIC(DATA=데이터셋이름, X=독립변수, Y=종속변수, CV_T=통제변수_연속형, CV_L=통제변수_범주형);

 

그래도 이해가 어려우신 분을 위하여 아래의 예제로 설명드릴게요. 지금 아래의 코드를 해석해 보면 위의 매크로(% BASIC)를 실행하려고 하는데 SASHELP.CLASS라는 이름의 데이터셋(DATA=)을 사용해서 독립변수(X)는 HEIGHT, 종속변수(Y)는 WEIGHT, 통제변수 중 연속형 변수(CV_T)는 AGE, 통제변수 중 범주형 변수(CV_L)는 SEX로 하는 모형을 분석하라는 의미입니다

%BASIC(DATA=SASHELP.CLASS, X=HEIGHT, Y=WEIGHT, CV_T=AGE, CV_L=SEX);
매크로를 활용해서 분석 결과 얻기

예제 코드를 실행하시면 다음과 같은 결과를 순서대로 얻으실 수 있습니다.

  • PROC MEANS - 독립변수, 종속변수, 통제변수에 대한 기술통계 : 평균, 표준편차, 최솟값, 최댓값, 왜도, 첨도 (소숫점 3자리까지)
  • PROC UNIVARIATE - 종속변수에 대한 단변량 분석
  • PROC FREQ - 범주형 통제변수 빈도분석
  • PROC SGPLOT - 독립변수와 종속변수 간 산점도 및 회귀직선
  • PROC CORR - 상관분석
  • PROC GLMSELECT & PROC REG - 회귀분석 : 모형정보(F-검정, R-Square etc.), 회귀계수 및 유의미성, 표준화회귀계수, 분산팽창지수(VIF), 회귀진단을 위한 여러 그래프

다음 포스팅에서는 이번에 소개해드린 매크로에 활용된 프로시저를 조금 더 상세하게 뜯어보도록 하겠습니다.

 

궁금하신 점은 언제든 댓글로 담겨주세요:)

감사합니다!

 

☆ 제 코드는 정답이 아니며 틀린 부분이 있을 수 있으니 주의하여 활용하시기 바랍니다.

 

 

반응형

관련글 더보기

댓글 영역