본문 바로가기

SAS

[내 맘대로 SAS 공부] 간단한 선형 회귀 분석

반응형

Advertising.csv
0.00MB

 

 

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;

 

 

 


반응형

 

반응형