본문 바로가기
공부/R & Python

9-2. 데이터마이닝과 예측 (다중회귀분석2)

by 드인 2020. 2. 18.

9-2. 데이터마이닝과 예측 (다중회귀분석2)


3) 다중회귀분석 - 변수선택방법

- 변수선택방법 - 다수의 독립변수들이 있을때 최종모형은?

(1) 전진선택법(forward selection)

- 독립변수중에서 종속변수에 가장 큰 영향을 주는 변수부터 모형에 포함 

(2) 후진제거법(backward elimination)

- 독립변수를 모두 포함한 모형에서 가장 영향이 적은(중요하지 않은) 변수부터 제거

(3) 단계별 방법(stepwise method)

- 전진선택법에 의해 변수 추가

- 변수 추가시 기존 변수의 중요도가 정해진 유의수준(threshold)에 포함되지 않으면 앞에서 들어간 변수도 다시 제거됨

 

단계별방법의 예제

 

모형에 포함되는 유의수준(0.15)

모형에서 제거되는 유의수준(0.15)

 

step1 : x4 (p-value=0.01)

step2 : x4 (0.01), x10 (0.03)

step3 : x4 (0.01), x10 (0.2), x2 (0.12)

step4 : x4, x2

step5 : x4, x2, x5

 

- 단계별 방법(stepwise method)

2nd model : 단계별 선택방법에 의한 회귀모형

- step(모형, direction="both")

r1<-lm(mpg ~ disp+hp+wt+accler, data=car)

var1<-c("mpg","disp","hp","wt", "accler" )

 

step(r1, direction="both")

 

[출력 결과]

Start:  AIC=1165.67                    AIC라는 척도 사용(낮은 값의 모델이 더 좋음)
mpg ~ disp + hp + wt + accler

        Df Sum of Sq     RSS    AIC
- hp      1      6.18  7266.2 1164.0
                7260.0  1165.7
- disp    1     49.01  7309.1 1166.3
- accler  1     57.48  7317.5 1166.8
- wt      1   1255.16  8515.2 1227.1

Step:  AIC=1164.01
mpg ~ disp + wt + accler

        Df Sum of Sq    RSS    AIC
                           7266.2 1164.0
- disp    1     51.76  7318.0 1164.8
- accler  1     58.62  7324.8 1165.2

+ hp     1      6.18   7260.0 1165.7
- wt      1   1291.30  8557.5 1227.1

Call:
  lm(formula = mpg ~ disp + wt + accler, data = car)

Coefficients:
  (Intercept)         disp           wt       accler  
41.299076    -0.010895    -0.006189     0.173851  

 

R^2가 가장 높은 조합의 변수그룹을 선택

(AIC가 낮은 조합의 변수 그룹을 선택)

변수 제거 : hp

최종 변수 선택 : disp, wt, accler

 

4) 다중회귀분석 - 최종모형

- 단계별 방법에 따른 최종 회귀 모형

2nd model : 단계별 선택방법에 의한 회귀모형

r2<-lm(mpg ~ disp+wt+accler, data=car)
summary(r2)

 

[요약 결과]

Call:
  lm(formula = mpg ~ disp + wt + accler, data = car)

Residuals:
      Min       1Q   Median       3Q      Max 
-11.7382  -2.8112  -0.3607   2.5231  16.1845 

Coefficients:
               Estimate Std. Error t value Pr(>|t|)    
(Intercept) 41.2990756  1.8614975  22.186  < 2e-16 ***
disp         -0.0108953  0.0065036  -1.675   0.0947 .  
wt           -0.0061889  0.0007396  -8.368 1.03e-15 ***
accler        0.1738507  0.0975107   1.783   0.0754 .  

 

선형회귀식

mpg = 41.30 - 0.011 disp - 0.0062 wt + 0.17 accler

---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.294 on 394 degrees of freedom
Multiple R-squared: 0.7004, Adjusted R-squared:  0.6981 
F-statistic:   307 on 3 and 394 DF,  p-value: < 2.2e-16

선형회귀식의 결정계수

R^2=0.7004

 

5) 다중회귀분석 - 잔차의 산점도

- 회귀분석의 가정과 진단

layout(matrix(c(1,2,3,4),2,2)) 
plot(r2)

 

6) 다중회귀분석 - 탐색과 진단

- 다중공선성(Multicollinearity)

- 독립변수들 사이에 상관관계가 매우 높은 경우 발생하는 현상

 

- 독립변수들 사이에 상관관계가 있는 현상

- 다중공선성이 존재하는 경우 회귀계수 해석 불가능

 

- 독립변수들간의 상관계수

var2<-c("disp","hp","wt", "accler" )
cor(car[var2])

 

[출력 결과]

                 disp           hp            wt        accler
disp    1.0000000 -0.4785123  0.9328241 -0.5436841
hp     -0.4785123  1.0000000 -0.4807430  0.2566567
wt      0.9328241 -0.4807430  1.0000000 -0.4174573
accler -0.5436841  0.2566567 -0.4174573  1.0000000

disp와 wt 간의 상관관계 매우 높음

 

- 분산팽창계수(VIF; Variance Inflation Factor) - 다중공선성의 척도

- VIF는 다중공산성으로 인한 분산의 증가를 의미

- Rj^2은 Xj를 종속변수로 하고 나머지 변수를 독립변수로 하는 회귀모형에서의 결정계수

- VIFj값 > 10 이상이면 다중공선성을 고려

                              ㅣ

                              ▼

- 변수 선택 과정에서 상관계수가 높은 두 변수 중 하나만을 선택

- 더 많은 데이터 수집

- 능형회귀(ridge regression), 주성분회귀(principal components regression)

 

- 분산팽창계수 : vif(다중회귀모형)

- car 패키지 내장 함수

install.packages("car")
library(car)
vif(lm(mpg ~ disp+hp+wt+accler, data=car))

 

Check point 1 : coefficients & R^2

week9_1의 최종모형

선형회귀식

mpg = 41.30 - 0011 disp - 0.0062 wt + 0.17 accler

선형회귀식의 결정계수

R^2=0.7004

 

Check point 2 : multi-collinearyity

[출력 결과]

       disp        hp         wt     accler 
9.948802 1.313565 8.552679 1.557890

disp와 wt의 VIF가 10에 가까움

=> 크게 문제되지 않다고 볼 수 있음

 

Check point 3 : residual plot

 

Check point 4 : outlier of other suspicious trend

 

- 변수선택에 대한 R^2 확인 (변수선택방법)

summary(lm(mpg ~ disp))

summary(lm(mpg ~ hp))
summary(lm(mpg ~ wt))
summary(lm(mpg ~ accler))

연비(MPG)를 예측하기 위해 한 개의 변수만 선택한다면?

R^2?

 

7) 다중회귀모형에 대한 탐색적 분석

- 다중회귀모형 : 데이터탐색(Explanatory Data Analysis)

3rd model : a possible fitting method

plot(hp, mpg, col="blue")

 

Check point 1 : sign of coeffeicients

- 마력(hp)와 연비(MPG)의 관계는?

마력이 높을수록 연비는 낮다 (사전지식)

- 마력과 연비간의 산점도에서 발견한 문제는?

두개의 클러스터를 발견

(두개의 클러스터 사이에서 +관계 형성)

 

- 다중회귀모형 : 데이터탐색(Explanatory Data Analysis) - subset생성(hp<50)

par(mfrow=c(1,1))
car_s1<-subset(car, hp<50)
plot(car_s1$hp, car_s1$mpg,col=10,  main="hp<50")

 

summary(lm(car_s1$mpg ~ car_s1$hp))

 

[요약 결과]

Call:
  lm(formula = car_s1$mpg ~ car_s1$hp)

Residuals:
     Min      1Q  Median      3Q     Max 
-6.6155 -1.9918 -0.6165  1.4581 19.0596 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) 22.06537    0.47732   46.23   <2e-16 ***
car_s1$hp   -0.22495    0.01906  -11.80   <2e-16 ***
  ---
  Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.562 on 171 degrees of freedom
Multiple R-squared:  0.449, Adjusted R-squared:  0.4458 
F-statistic: 139.3 on 1 and 171 DF,  p-value: < 2.2e-16

선형회귀식

mpg = 22.07 - 0.22 hp

 

선형회귀식의 결정계수

R^2=0.45

 

- 다중회귀모형 : 데이터탐색(Explanatory Data Analysis) - subset생성(hp>=50)

car_s2<-subset(car, hp>=50)
plot(car_s2$hp, car_s2$mpg, col="coral", main="hp>=50")

summary(lm(car_s2$mpg ~ car_s2$hp))

 

[요약 결과]

Call:
  lm(formula = car_s2$mpg ~ car_s2$hp)

Residuals:
      Min       1Q   Median       3Q      Max 
-15.1987  -3.4734   0.0966   2.7712  14.0820 

Coefficients:
                Estimate Std. Error t value Pr(>|t|)    
(Intercept)  53.0605     2.1498   24.68   <2e-16 ***
car_s2$hp   -0.3313     0.0283  -11.71   <2e-16 ***
  ---
 Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 4.991 on 223 degrees of freedom
Multiple R-squared:  0.3807, Adjusted R-squared:  0.3779 
F-statistic: 137.1 on 1 and 223 DF,  p-value: < 2.2e-16

선형회귀식

mpg = 53.06 - 0.33 hp

 

선형회귀식의 결정계수

R^2=0.38