본문 바로가기

SAS

[SAS] 11-2강 - 단순 선형 회귀 분석 실습

지금부터는 data에 대한 일반적인 얘기들이 나옵니다.

하지만 data 별로 일반적인 이론들이 적용되지 않는 경우도 많습니다.

그래서 data 분석에서는 경험이 중요하기도 합니다.  

 

<지난 시간 복습>

1) SAS로 최소 제곱 추정량을 구한다.

 

2) ε_i에 대한 기본 가정 (회귀 진단, 잔차 분석)

1> 정규성

2> 등분산성

3> 독립성

=> PROC REG로 한 번에 확인 가능

 

3) H0 : β_1=0, H0 : β_0=0 확인 (t-검정)

1> 두 H0를 모두 기각할 수 있어야 한다.

2> H0 : β_1=0를 기각하지 못하면 기울기가 0이어서 회귀 분석의 의미가 없어진다.

3> H0 : β_0=0를 기각하지 못하면 y절편이 0이어서 noint라는 명령으로 분석을 한다.

 

4) 분산 분석

F_0 = MSR/MSE ~ F(1, n-2)

- H0 : β_1=0 검정과 유사 

- 회귀 효과가 있는지 확인하는 것

 

5) 결정 계수 r 확인

r^2 = SSR/SST = 1 - SSE/SST

- r이 1에 가까울수록 회귀 직선이 점들과 거리가 가깝다.

 

cf> 내가 생각하는 회귀 직선과 회귀 분석에 의한 회귀 직선의 모양이 약간 다를 수 있다.

영향 관측값(outlier) 때문에

 

0) 예시

adver와 sales와의 관계를 보려함

sales를 adver에 대한 식으로 볼 것

 

2. REG 프로시저

PROC ANOVA와 유사하게 class와 model이 필요하다.

 

1) 문법

1> 기본 문법

PROC MEANS data = SAS-dataset ;

 

2> MODEL : 독립 변수와 반응 변수(종속 변수) 지정

- MODEL 반응 변수(종속 변수) = 독립 변수;

'반응 변수(종속 변수) = 독립 변수' 꼴로 써주기 (마치 'y=x'처럼)

- 옵션문들

  • CLM : (confidence limit mean) 평균값(y^_i = b_0 + b_1*X_i)의 95% 신뢰 구간을 나타냄
  • CLI : 개별 관측치(y_i 각각)에 대한 95% 신뢰구간을 나타냄. (CLM을 포괄하는 옵션)
  • P : 예측값을 나타냄. (각 x들에 대한 예측값 y를 알고 싶을 때)
  • DW : 더빈-왓슨 검정으로 잔차들의 자기상관을 나타냄.  (잔차의 독립성을 확인할 수 있다.)

cf> 더빈-왓슨 검정

0에서 4 사이의 값을 가지며

2에 가까울수록 (통상 1.8에서 2.2사이) 자기상관이 없어서 독립이라고 할 수 있고, 

0에 가까울수록 양의 상관, 4에 가까울수록 음의 상관 관계가 있다고 봄

 

3> PLOT : 반응 변수와 독립 변수의 산점도를 그림

- PLOT 반응 변수(종속 변수) * 독립 변수 ;

'반응 변수(종속 변수) * 독립 변수' 꼴로 써주기 (기존에도 'y * x' 꼴을 썼던 것처럼)

PROC REG 안에서 사용했으므로, 추정된 회귀직선이 같이 나타남 (회귀 직선을 시각적으로 보여준다.)

- outlier에 대한 대처 (보통 표준화 잔차의 절댓값이 3 이상인 경우 outlier로 처리)

  • 자료를 다시 보고 오류인지 확인
  • 제거하거나 robust 회귀 분석 진행

2) 예제 1

DATA adsales;
	INPUT company adver sales @@;
CARDS;
01 11 23 02 19 32 03 23 36 04 26 46 05 56 93
06 62 99 07 29 49 08 30 50 09 38 65 10 39 70
11 46 71 12 49 89
;
RUN;
PROC REG data=adsales;
model sales=adver/ p clm cli dw;
RUN;
QUIT;

1> 종속 변수, 관측한 data를 알 수 있음

2> 분산 분석 결과

- F value가 455.54로 엄청 크게 나온다.

- Pr > F 확률이 0.0001보다 작기 때문에 회귀 분석의 효과가 있다는 말이다. (β_1이 0이 아니라는 뜻)

3> 

- Root MSE : σ^2의 불편 추정량

- Dependent Mean : y들의 전체 평균

- Coeff Var : 

- R-Square : 1에 가깝기 때문에 

- Adj R-Sq : 중회귀 분석은 변수의 갯수가 늘어남에 따라 R-square가 커질 수 있어 조정한 R-sq이다.

(해당 자료는 단순 선형 회귀 분석이라 R-square와 Adj R-Sq가 차이가 없다.) 

4> Parameter Estimates (β_0, β_1에 대한 추정)

intecept (β_0), adver (β_1)

- intecept Parameter Estimates : b_0

- β_0는 t Value가 1.14이고 Pr > |t|가 0.2821이기 때문에 기각할 수 없다.

=> 그래서 β_0를 0으로 본다. (Parameter Estimates가 커도 Standard Error가 커서 t Value가 작다.)

=> 그러면 코드로 돌아가서 'MODEL sales=adver' 옆에 'noint' (no intercept) 쓰면 된다.

- adver Parameter Esitmates : b_1

- β_1는 t Value가 21.34이고 Pr > |t|가 0.0001보다 작기 때문에 기각할 수 있다.

 

5> DW

- Durvin-Watson D : 2.470으로 2에 가까운 편이다.

- 1st Order Autocorrelation : -0.440으로 약간 음의 상관 관계를 가진다.

6> 그림들

- (1행 1열) Residual & Predicted value

=> predicted value가 커짐에 따라 residual가 random한지 확인한다.

predicted value가 커짐에 따라 residual가 어떤 형태를 가진다면 등분산이 아니라는 얘기이다.

 

- (1행 2열) RSstudent & Predicted Value

위의 residuald은 크기를 가늠하기 어려우므로 표준화한 잔차 RSstudent (residual과 유사)

=> predicted value가 커짐에 따라 RSstudent가 random한지 확인한다.

predicted value가 커짐에 따라 RSstudent가 어떤 형태를 가진다면 등분산이 아니라는 얘기이다.

 

- (1행 3열) RSstudent & Leverage

영향 관측값 (outlier) 확인

 

- (2행 1열) Residual & Quantile

정규성 확인

 

- (2행 2열) y(Sales) & Predicted Value

(PROC REG의 마지막 graph와 동일)

 

- (2행 3열)

영향 관측값 (outlier) 확인

 

7> x와 residual의 관계

 

8> 

X˘가 X에 가까우면 신뢰구간의 폭이 좁다.

- 95% Confidence Limits : 위의 ANOVA에서 95% CL Mean (기댓값의 신뢰 구간)

- 95% Prediction Limits : 위의 ANOVA에서 95% CL Predict (예측한 값의 신뢰 구간)

 

 

3) 예제 2 (β_0 = 0 인 귀무가설을 기각할 수 없는 경우)

noint를 사용한다.

DATA adsales;
	INPUT company adver sales @@;
CARDS;
01 11 23 02 19 32 03 23 36 04 26 46 05 56 93
06 62 99 07 29 49 08 30 50 09 38 65 10 39 70
11 46 71 12 49 89
;
RUN;
PROC REG data=adsales;
model sales=adver/ p clm cli dw noint;
RUN;
QUIT;

1> 'No intercept in model. R-Square is redefined.' 라고 나와있다.

2> ANOVA 결과

Model에 대한 Mean Square가 많이 늘었다. (6695 ->50237)

3> 

R-square가 재정의 되었다. (0.9785 -> 0.9967)

4> Parameter Estimates

Intercept에 대한 정보는 사라졌다. (no intercept라고 지정했기 때문이다.)

 

5> Durbin-Watson D (2.470 -> 2.435)

대체적으로 모든 지수가 좋아진다.

 

 

6> 

신뢰구간도 눈에 띄게 줄었다.

 

4) 예제 3

모양이 마음에 안 드는 경우 약간의 변형을 가해서 선형 회귀 분석을 할 수도 있다.

Z = sqrt(Y) (그 외에도 ln이나 exp 등등)

DATA A;
	INPUT X Y @@;
Z=sqrt(Y);
CARDS;
20 16.3 20 26.7 30 39.2 30 63.3 30 51.3 40
98.4 40 65.7 50 104.1 50 155.6 60 217.2
;
RUN;
PROC REG data=A;
model y=z / dw; /*사실 z=x로 해야함*/
model y=x / dw;
RUN;

1> F Value보다 클 확률이 0.0001보다 작기 때문에 'H0 : β_1=0'이라는 귀무가설을 기각할 수 있다.

2> R-square와 Adj R-sq가 높기 때문에 설명력이 높다.

3>

Intercept(β_0)의 Estimates가 양측 확률이 0.0001로 유의 수준 1%로도 'H0 : β_-=0' 귀무 가설을 기각할 수 있다.

Z(β_1)의 Estimates가 양측 확률이 0.0001보다 작아서 유의 수준 1%로도 'H0 : β_-=0' 귀무 가설을 기각할 수 있다.

 

4> Durbin-Watson D

- 0.659이면 2보다 작으므로 양의 상관관계를 가진다.

 

5>

(1행 1열, 2열)등분산성을 만족하지 못하고 있다.

(2행 1열) 정규성을 가지지 못한다.

 

5) 예제 4 (예제 3에서 y=x의 관계)

1> 

R-square는 이전보다 떨어졌다.

2> 

DW가 이전보다 낫다.

3> 

 

(1행 1열, 2열) 등분산성이 아까보다 더 많다.

(2행 1열) 정규성이 아까보다 낫다.

 

6) 예제 5

만약에 회귀 분석에 의해 x에 대한 predicted value를 알고 싶은 경우 

data 만들 때 x는 적고 y 부분은 '.'으로 표기한다.

'SAS' 카테고리의 다른 글

[통계 개념] 11-1강 - 단순 선형 회귀 분석  (1) 2020.06.08
10-3강 - 이원배치법  (0) 2020.06.08
10-2강 - 일원배치법 실습  (0) 2020.06.08
10-1강 - 일원 배치법  (0) 2020.06.08
9-1강 - 범주형 자료의 분석  (0) 2020.06.08