STUDY 📖/통계 찔금찔끔

회귀분석 SAS 다중공선성확인하기

@예민한 방구석여포 힘히힘 2021. 5. 7. 11:14
반응형

예전에 했던것들 기록으로 남겨두고 나중에 찾아보기 위해 글쓰기!@@

관리 안하던 네이버 블로그에 있는 글 옮겨왔다.ㅎㅎ,,

 

1. 데이터 설명

#코드

data my_hom;

infile 'E:\2017.1학기\회귀분석\과제\2sanhua1.csv' firstobs=2 dlm=','

input ND Ozone CM SAG FD UD;

/*Nitrogen dioxide(이산화질소농도)->ND

Ozone(오존농도)

Carbon monoxide(일산화탄소농도)->CM

Sulfurous acid gas(이황산가스)->SAG

fine dust(미세먼지)->FD

ultrafine dust(초미세먼지)->UD*/

run

proc print run ;

미세먼지(FD)가 이산화질소, 오존농도 일산화탄소등에 어떻게 영향을 받는가를 알기위해

조사함.

 

 

2. 상관분석을 통해 다중공선성 의심

 

/*상관관계 분석*/

proc corr data=my_hom;

var ND Ozone CM SAG UD;

run;

상관관계가 비정상적으로 높다면 다중공선성 존재의심!

유의수준 0.05하에서 설명변수

(ND,Ozone), (UD,ND), (ND,CM)가 유의하게 상관이 존재함.

 

 

 

 

**상관계수가 낮은 두변수 (Ozone, SAG) 만을 설명변수로 사용한 회귀모형

/*상관관계 낮은 (SAG, Ozone)*/

proc reg data=my_hom;

model FD=SAG;

run

 

proc reg data=my_hom;

model FD=Ozone;

run

 

proc reg data=my_hom;

model FD=SAG Ozone;

run;

 

 

 

설명변수 간 상관관계가 낮은 경우 회귀계수 추정치와 추정오차의 변화가 비교적 낮음.

 

 

 

 

3. 높은 상관관계를 가지는 변수들로 각각, 함께 회귀분석하여 모수추정값과 standard error 변화율 확인

상관관계 유의한(ND,Ozone)

/*상관관계 유의한 (ND,Ozone) */

proc reg data=my_hom;

model FD=ND;

run

 

proc reg data=my_hom;

model FD=ND Ozone;

run;

상관관계 유의한(ND,UD)

/*상관관계 유의한 (ND,UD) */

proc reg data=my_hom;

model FD=UD;

run

 

proc reg data=my_hom;

model FD=ND UD;

run;2 ;

 

 

상관관계 유의한(ND,CM)

/*상관관계 유의한 (ND,CM) */

proc reg data=my_hom;

model FD=CM;

run

 

proc reg data=my_hom;

model FD=ND CM;

run;

 

 

상관관계 유의한 경우 회귀계수 추정치와 추정오차의 변화가 큼!

 

 

 

 

 

 

 

 

4. 다중공선성 진단(vif, condition index)

-다중공선성: 회귀 분석에서 사용된 모형의 일부 예측 변수가 다른 예측 변수와 상관 정도가 높아, 데이터 분석 시 부정적인 영향을 미치는 현상을 말한다.

 

 

/*다중공선성 진단*/

proc reg

model FD=ND Ozone CM SAG UD /vif collin

run;

- 분산팽창계수(vif)가 10보다 클 경우 다중공선성이 존재한다고 할 수 있음.

- 상태지수(Condition Index)가 10이상이면 약한 상관관계, 100이상이면 강한 상관관계가 존재함

 

 

ND, Ozone에 의해 다중공선성 발생

ND가 약 38%, Ozone이 약 51%정도 영향 미침

 

 

5. 변수 제거

 

 

ND, Ozone 중 어느 변수 제거?

-종속변수를 더 잘 설명하는 변수를 남겨둔다 (상관계수가 높은 변수)

 

ND가 Ozone보다 상관관계가 더 크므로 ND를 남겨둔다!

 

 

 

 

 

 

 

6. 모형적합

 

 

proc reg data=my_hom;

model FD=ND CM;

run;

 

 

 

CM의 계수가 유의하지 않아 제외하고 ND만 남음

추측: FD=62.3227+269.51*ND

 

 

 

 

 

 

 

7. 잔차분석

 

/*단순회귀모형 적 작합*/

proc reg data=my_hom;

model FD=ND/dw /*잔차 독립성*/

output out=reg3 p=pred r=resid;

run;

 

 

 

 

 

Dubin-Watson(D-W) test를 활용하여 일차 자기상관을 판정할 수 있다

2(1-ρ)로 계산한다. 이때 범위는 0~4까지가 나올 수 있는데 2에 가까우면 상관관계가 없다

이값은 2.582이므로 2에 가까으므로 상관관계가 없다.

 

/*잔차 통계량 &정규성*/

proc univariate data=reg3 normal

var resid;

run;

 

 

 

 

 

 

귀무가설: 오차가 정규성을 만족한다

검정결과, Shapiro-Wilk:0.9889, p-value: 0.9789

p-value가 0.05보다 크므로 귀무가설 기각하지 못한다.

따라서 정규성을 만족함.

 

 

 

최종모형

 

/*최종모형*/

proc reg data=my_hom;

model FD=ND;

run;

 

 

 

최종모형: FD=62.3227+269.51*ND

Nitrogen dioxide(이산화질소농도)->ND :이므로 이산화질소농도가 미세먼지에 영향을 미치는 것을 알수 있다.

 

이므로 x1이 1이 증가하면 y1은 331.8327만큼 증가한다.

이산화질소농도가 1이 증가하면 미세먼지는 31.8327만큼 증가한다.

'STUDY 📖 > 통계 찔금찔끔' 카테고리의 다른 글

회귀분석 SAS 다중공선성확인하기  (0) 2021.05.07