본문 바로가기
Data Science/Regression Analysis

[Regression] 표준화된 중회귀분석

by AI_Wooah 2022. 4. 1.

1. 표준화된 중회귀분석

1) 변수 표준화

단위가 다르면 어떤 변수가 더 많은 영향을 미치는지 알 수 없다. 이런 변수들은 단위의 영향을 받지 않도록 표준화가 필요하다.

위의 중회귀모형에 종속변수와 독립변수를 변수 변환한다.

이와 같이 변수를 표준화해서 회귀모형을 하게 된다.

 

2) 표준화된 회귀모형

- 표준화된 중회귀모형

표준화된 회귀모형의 절편값은 항상 0이 되기 때문에 절편값이 없다.

표준화된 중회귀모형에서 추정된 회귀계수 $a_i$의 절대값이 클수록 설명변수 $X_i$가 반응변수 $Y_i$에 주는 영향이 커진다.

 

- R을 활용한 표준화 회귀모형

> install.packages("lm.beta")
trying URL 'https://cran.rstudio.com/bin/macosx/el-capitan/contrib/3.6/lm.beta_1.5-1.tgz'
Content type 'application/x-gzip' length 26202 bytes (25 KB)
==================================================
downloaded 25 KB


The downloaded binary packages are in
	/var/folders/7f/v36kfprn6n75t6zv9kbffnz40000gn/T//RtmpPR9g1W/downloaded_packages
> library(lm.beta)
> market2.lm = lm(Y ~ X1+X2, data=market2)
> market2.beta = lm.beta(market2.lm)
> print(market2.beta)

Call:
lm(formula = Y ~ X1 + X2, data = market2)

Standardized Coefficients::
(Intercept)          X1          X2 
  0.0000000   0.7015566   0.3376137 

> summary(market2.beta)

Call:
lm(formula = Y ~ X1 + X2, data = market2)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.30465 -0.69561 -0.01755  0.69003  1.53127 

Coefficients:
            Estimate Standardized Std. Error t value Pr(>|t|)
(Intercept)  0.85041      0.00000    0.84624   1.005 0.334770
X1           1.55811      0.70156    0.14793  10.532 2.04e-07
X2           0.42736      0.33761    0.08431   5.069 0.000276
               
(Intercept)    
X1          ***
X2          ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9318 on 12 degrees of freedom
Multiple R-squared:  0.9799,	Adjusted R-squared:  0.9765 
F-statistic: 292.5 on 2 and 12 DF,  p-value: 6.597e-11

-> 적합된 표준화 회귀모형

여기서 X1의 표준화계수가 X2의 표준화계수보다 크기 때문에 상대적으로 X1의 영향이 더 크다는 것을 확인할 수 있다.

표준화된 계수를 보고 독립변수가 반응변수에 영향을 미치는 것 서로 비교할 수 있다.

 

 

2. 추정과 검정

1) 추정된 회귀계수의 분산

위 식을 이용해 구간추정을 할 수 있다.

 

2) 구간추정

임의의 점 x들에서 Y의 기대값을 구간추정 하면 신뢰구간을 구할 수 있다.

 

 

3) 회귀계수 가설검정

회귀계수 $\beta_i$ = 0인지 가설에 대해 검정하는 과정이다.

 

 

4) R을 활용한 신뢰구간 구하기

마켓데이터를 아래 식에 적합시켰을 때 95% 신뢰구간 추정하고, 유의수준 $\alpha$ = 0.05로 가설검정하기.

- X1과 X2의 값이 10에서 E(y)를  95% 신뢰구간으로 추정하기 위해 pridict() 함수를 사용하여 신뢰구간을 구한다.

interval c로 두고 newdata는 디폴트로 둔다.

99% 신뢰구간 구할 때 level은 0.99로 둔다

> # 신뢰구간 구하기
> # 95% ( 99% 신뢰구간 추가 )
> pred.x = data.frame(X1=10, X2=10)
> pc = predict(market2.lm, int="c", newdata=pred.x)
> pc
       fit      lwr      upr
1 20.70503 19.95796 21.45209
> pc99 = predict(market2.lm, int="c", level=0.99, newdata=pred.x)
> pc99
       fit      lwr      upr
1 20.70503 19.65769 21.75236
> pc95 = predict(market2.lm, int="c", level=0.95, newdata=pred.x)
> pc95
       fit      lwr      upr
1 20.70503 19.95796 21.45209

p-value가 0.000276으로 굉장히 작은 값을 가지기 때문에 0이라는 귀무가설을 기각한다.

 

5) R을 활용한 회귀계수 검정하기

p-value가 0.000276으로 굉장히 작은 값을 가지기 때문에 0이라는 귀무가설을 기각한다.

> summary(market2.lm)

Call:
lm(formula = Y ~ X1 + X2, data = market2)

Residuals:
     Min       1Q   Median       3Q      Max 
-1.30465 -0.69561 -0.01755  0.69003  1.53127 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  0.85041    0.84624   1.005 0.334770    
X1           1.55811    0.14793  10.532 2.04e-07 ***
X2           0.42736    0.08431   5.069 0.000276 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9318 on 12 degrees of freedom
Multiple R-squared:  0.9799,	Adjusted R-squared:  0.9765 
F-statistic: 292.5 on 2 and 12 DF,  p-value: 6.597e-11

 

6) 일반적 모형 비교

단순회귀모형에서 F 통계량을 이용해서 기울기가 0이라는 것을 검정했었다.

- 완전모형(Full Model) : 데이터에 잘 적합될 것이라 고려되는 모형

- 축소모형(Reduced Model) : 아래 귀무가설의 가정하에서의 모형

중회귀모형에서 두 모형을 비교하는 일반적인 방법은 잔차제곱합의 차이를 이용한 방법이다.

SSE(R)-SSE(F)가 얼마나 유의하냐를 확인한다.

- 완전모형일 경우 잔차제곱합은

- 축소모형에서 잔차제곱합은

- 두 모형을 비교하기 위한 검정통계량

 

3. 변수 추가

변수를 추가하는 것이 의미가 있는지 확인하는 것이 목적이다.

 

1) 추가제곱합

특정한 변수를 추가했을 때 기여도가 있을 것으로 기대되면 추가하고 아니면 추가하지 않는다.

기여도를 확인할 수 있는 방법으로 회귀제곱합(regression sum of squares)를 사용하여 새로운 변수가 추가적으로 얼만큼 커졌는지의 정도를 검토한다.

이 때 추가적으로 증가된 제곱합을 추가제곱합(extra sum of squares)라고 한다.

회귀제곱합의 증가분이 크면 기여도가 큰 것으로 판단하고 작으면 기여도가 떨어지는 것으로 판단하여

새로운 변수가 모형에 필요한지 여부를 확인할 수 있다.

 

2) R을 활용한 추가제곱합

헬스클럽에 대해 4개의 변수를 가지고 있는 자료를 불러온다.

X1만 사용한 모형과 X1+X4를 사용한 모형

두개의 모형을 적합시킨 것에 대한 추가제곱합을 확인한다.

독립변수가 X1인 리니어 모델을 적용해서 h1.lm으로 두고

독립변수가 X1, X4 두개인 리니어 모델을 적용해서 h2.lm으로 둔다.

anova() 함수를 사용해 분산분석표에 두 모델을 넣고 추가제곱합을 확인할 수 있다.

> # 추가제곱합
> health = read.table("/Users/DataAnalytics/RegressionModel/reg/health.txt", header=T)
> head(health,3)
  ID  X1 X2  X3 X4   Y
1  1 217 67 260 91 481
2  2 141 52 190 66 292
3  3 152 58 203 68 338
> # X1 변수에 대한 모형
> h1.lm = lm(Y ~ X1, data=health)
> # X1 변수에 X4 변수를 추가했을때의 모형
> h2.lm = lm(Y ~ X1+X4, data=health)
> # 분산분석표
> # 적합시킨 두개의 모형에 대한 추가제곱합 확인
> anova(h1.lm, h2.lm)
Analysis of Variance Table

Model 1: Y ~ X1
Model 2: Y ~ X1 + X4
  Res.Df   RSS Df Sum of Sq      F    Pr(>F)    
1     28 50795                                  
2     27 24049  1     26746 30.027 8.419e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>

X1 모형에서 X4가 추가된 경우의 추가제곱합에 대해 유도한 정리

추가제곱합은 30.027로 기여도가 있다고 판단할 수 있다.

 

3) 추가변수그림

일일이 계산하지 않고도 직관적으로 기여도를 확인할 수 있도록 그림을 그려서 확인하는 방법도 있다.

중회귀모형에서 새로운 변수가 추가될 때 기존의 모형이 설명하지 못하는 부분을 새로운 변수가 얼마나 더 많이 설명할 수 있는지에 대한 기여도를 결정할 때 두 가지 그래프로 표현할 수 있다.

- 추가변수그림(added variable plot)

- 편회귀그림(partial regression plot)

 

4) 추가변수그림 그리는 절차

독립변수가 두 개인 회귀모형에서 변수 X2의 추가변수그림을 그리는 절차는 다음과 같다.

(1) Y를 X1으로 회귀한 후 얻어지는 잔차, e(Y|X1)을 구한다.

(2) X2를 X1으로 회귀한 후 얻어지는 잔차, e(X2|X1)을 구한다.

(3) 앞에서 구한 두 잔차에서 x-축을 e(X2|X1), y-축을 e(Y|X1)으로 한 산점도를 추가변수그림이라고 한다.

=> 추가변수그림이 선형관계가 있으면 변수 X2는 추가적인 설명력이 있다고 판단한다.

 

5) R을 활용한 추가변수그림 그리기

X1에 대한 추가변수그림 : 잔차 e(X1|X2, X3, X4)와 잔차 e(Y|X2, X3, X4)의 산점도

> # 추가변수그림
> library(car)
> h4.lm = lm(Y ~ X1+X2+X3+X4, data=health)
> avPlots(h4.lm)

변수 X1과 X4에 대한 추가변수그림이 선형성이 강한 것을 확인할 수 있다. 따라서 해당 두 변수가 회귀모형에 매우 유의하다고 판단할 수 있다.

 

4. 잔차검토

잔차의 산점도를 그려봤을 때 중회귀모형의 가정이 맞는지 검토할 수 있다.

(a) 잔차가 일정하게 들어오게 되면 가정에 아무런 모순이 없는 것으로 판정된다.

(b) 분산이 갈수록 커지면서 일정하지 않으면, 가중회귀(weighted regression)을 쓰거나 또는 Y를 변환시켜 회귀분석하는 것이 좋다.

(c) 절편이 필요한 모형인데 절편을 사용하지 않았을 경우에 생길 수 있는 형태다. 절편을 사용하여 모형을 적합시켜야 한다.

(d) 독립변수의 제곱항이 필요하다.

 

반응형

댓글