1. 데이터 불러오기
proc import datafile = "/home/회귀분석/Advertising.csv"
dbms = csv
out = advertising;
getnames = yes; /* getnames: 첫 행을 변수명으로 사용 */
run;
2. 데이터 산점도 그리기 및 요약 통계량
/* 데이터 산점도 */
proc sgscatter data = advertising;
matrix sales TV radio newspaper;
run;
/* 데이터 요약통계량 */
proc means data = advertising n min max mean median maxdec = 2 ;
run; /* maxdec = 2: 소수점 2번째 자리까지 */
3. 데이터 표준화
proc standard data = advertising mean = 0 std = 1 out = std_advertising;
var TV radio newspaper; /* var: 표준화를 적용할 변수들 없으면 전부 표준화 */
run;
proc print data = std_advertising; run;
4. 기본 회귀 분석 - 절편을 포함한 경우
$Sales \;=\; \beta_0 \;+\; \beta_1\;TV \;+\; \beta_2\;radio \;+\; \beta_3\;newpaper$
proc reg data = std_advertising;
model sales = TV radio newspaper;
output out = lr_out;
run;
5. 기본 회귀 분석 - 절편을 포함하지 않은 경우
$Sales \;=\; \beta_1\;TV \;+\; \beta_2\;radio \;+\; \beta_3\;newpaper$
proc reg data = std_advertising;
model sales = TV radio newspaper / noint;
output out = lr_out2;
run;
6. 옵션을 추가한 회귀 분석
proc reg data = std_advertising;
model sales = TV radio newspaper/ R collin vif;
output out = lr_out3 p = Predict r = Residual RSTUDENT = rstudent student = Res;
run;
/* R: 잔차분석, collin: 독립변수간 다중공선성 분석, vif: 분산팽창요인 출력 */
/* - out: 결과가 저장될 파일명
- 결과 파일에 나타낼 값들 (등호 뒤 값은 변수명을 의미)
- p: 예측값 predict
- r: 잔차 residual
- student: 스튜던트화 잔차
- RSTUDENT: 표준화된 스튜던트화 잔차 */
7. 위 세 코드 결과 비교
proc print data = lr_out; run;
proc print data = lr_out2; run;
proc print data = lr_out3; run;
+ 정규성 검정
/* 결과 데이터의 변수 중 잔차(residual)를 갖고 있어야하므로 lr_out3로 실행 */
proc univariate data = lr_out3 normal plot;
var res;
run;
반응형
반응형
'SAS' 카테고리의 다른 글
[내 맘대로 SAS 공부] 범주형(categorical) 변수 처리 (0) | 2023.01.03 |
---|---|
[내 맘대로 SAS 공부] 산점도(scatter plot)과 히스토그램(histogram) (0) | 2023.01.02 |
[내 맘대로 SAS 공부] 시계열 - 평활법 (1) | 2022.12.29 |