안녕하세요,
사회과학 분야의 석사학위 논문을 살펴보면 최근에는 중급, 고급 통계기법이 많이 사용되고 있지만, 여전히 기술통계분석, 상관분석, 다중회귀분석으로 이어지는 연구를 어렵지 않게 찾아볼 수 있습니다. 그리고 중급, 고급 통계기법을 사용하더라도 가장 먼저 자료에 대한 이해를 위하여 탐색적 자료분석(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);
매크로를 활용해서 분석 결과 얻기
예제 코드를 실행하시면 다음과 같은 결과를 순서대로 얻으실 수 있습니다.
다음 포스팅에서는 이번에 소개해드린 매크로에 활용된 프로시저를 조금 더 상세하게 뜯어보도록 하겠습니다.
궁금하신 점은 언제든 댓글로 담겨주세요:)
감사합니다!
☆ 제 코드는 정답이 아니며 틀린 부분이 있을 수 있으니 주의하여 활용하시기 바랍니다.
[SAS ODA]논문 필수 패널회귀분석, 클릭으로 끝내기 (2) | 2023.03.09 |
---|---|
[SAS ODA]기술통계분석 클릭으로 끝내기(히스토그램, 박스플롯) (3) | 2023.03.06 |
[SAS]PROC MEANS로 기술통계분석 끝내기(feat. 집단별 분석) (2) | 2023.03.05 |
[SAS]패널자료 수집, 불균형패널자료를 균형패널자료로 만들기 (2) | 2023.03.03 |
SAS ODA 주요 기능 살펴보기 (4) | 2023.02.26 |
댓글 영역