본문 바로가기
Data Science/Regression Analysis

[Regression] 중회귀모형

by AI_Wooah 2022. 3. 31.

1. 중회귀모형이란?

반응변수에 영향을 미치는 변수가 여러개가 있을 때 종속변수의 변화를 설명하기 위해서 두 개 이상의 독립변수가 사용되는 선형회귀모형을 중선형회귀(Multiple Linear Regression Model) 또는 중회귀모형(Multipl Regression Model)이라고 부른다.

- 독립변수 갯수가 k개인 중회귀모형

 

 

2. 행렬을 이용한 중회귀모형

1) 중회귀모형에서 독립변수가 2개인 경우

아래 식을 따르지 않는 오차항일 경우

n개의 오차는 서로 독립이고 평균이 0이고 분산이 σ2인 정규분포를 따른다고 가정할 수 있다.

이 때 행렬을 이용해서 구하면 편하다.

 

2) 벡터 표현

중회귀모형을 벡터로 표현하게 되면 계수벡터와 행벡터의 곱으로 표현할 수 있다.

 

3) 중회귀모형의 행렬 표현

벡터를 확장한 중회귀모형의 행렬을 보면 Y는 반응변수를 표시한것이고 첫번째 항은 절편 X1에 대한 것이다.

절편을 포함하고 있으면 X의 첫번째는 1이 되는 행렬이 된다.

오차항의 기댓값을 구하게 되면 0벡터가 될 것이고 분산을 구하면 단위행렬(I) 곱하기 σ2이 된다.

 

 

3. 회귀계수의 추정

1) 최소제곱법

오차제곱의 합을 x라고 한다면 베타를 구하면 된다.

2) 행렬의 미분법

3) 행렬 연산

> market2 = read.table("/Users/DataAnalytics/RegressionModel/reg/market-2.txt", header=T)
> head(market2, 3)
  ID  X1   X2    Y
1  1 4.2  4.5  9.3
2  2 8.5 12.0 18.5
3  3 9.3 15.0 22.8
> X = market2[,c(2:3)]
> # 첫번째 행을 상수항 1로 overwrite
> X = cbind(1, X)
> Y = market2[,4]
> # X를 매트릭스로 바꿔주는 명령어
> X = as.matrix(X)
> Y = as.matrix(Y)
> # t(X)는 transpose 함수
> XTX = t(X) %*% X
> XTX
       1      X1      X2
1   15.0  132.80  165.50
X1 132.8 1280.80 1610.68
X2 165.5 1610.68 2149.49
> XTXI = solve(XTX)
> XTY=t(X)%*%Y
> # 베타 추정치 구하기
> beta = XTXI %*% XTY
> beta = round(beta,3)
> beta
    [,1]
1  0.850
X1 1.558
X2 0.427

적합된 선형 회귀식

따라서 적합된 선형회귀식을 이용하면 $X_1$과 $X_2$에 대하여 총 판매액의 기대값 E(Y)를 측정할 수 있다.

예를 들어 광고료가 1000만원 (X1=10) 이고 상점의 크기가 100m2(X2=10) 인 상점의 평균 총판매액의 추정값은

으로 약 207만원으로 추정

 

4. 잔차의 성질

추정된 회귀식의 값 $\hat Y_i$과 관찰값 $Y_i$의 차이를 잔차라고 한다.

잔차를 이용해서 모형의 성능을 진단하게된다.

추정값과 잔차벡터의 행렬표현은 아래와 같이 나타내며 이것을 햇행렬이라고 한다.

햇행렬은 곱하거나 역행렬을 만들어도 자신과 같아지는 멱등행렬(Idempotent Matrix)의 특징을 가지고 있다.

이때 X'X 곱하기 (X'X)^(-1) I(단위행렬)이므로 𝐻^2 = 𝑋(X'X)^(-1)X'이다. 따라서 𝐻^2 = 𝐻𝐻 = 𝐻 = 𝐻'이다.

 

* 잔차의 성질

- 잔차의 합은 0이다,

- 잔차ㄴ의 독립변수에 대한 가중합은 0이다.

- 잔차의 추정값에 대한 가중합도 0이다.

- 중회귀모형에서 오차항은 정규분포를 가지며 오차항 간에는 서로 상관관계가 없이 서로 독립적이나, 잔차 간에는 상관관계가 일반적으로 존재한다.

의 기댓값 벡터와 분산-공분산행렬은

아래와 같이 구한다.

=> Var(e)는 대각선 행렬이 1이 아니며, $e_i$와 $e_j$ 간에 공분산이 존재한다.

 

5. 회귀방식의 신뢰성

추정된 회귀방정식의 신뢰성 측도

(1) 분산분석표에 의한 F-검정

(2) 결정계수(Coefficient of determination)

(3) 잔차평균제곱(residual mean squares)

(4) 추정된 회귀계수들의 분산

(5) 종속변수의 추정량 의 분산ㅍ

 

6. 분산분석표에 의한 F검정

단순회귀에서 정의된 세 가지 제곱합 SST, SSE, SSR의 공식들은 Y의 관측값과 예측치의 함수로 주어 지므로 설명변수의 개수와는 관계없이 중회귀분석에서도 그대로 정의된다.

 

1) 총제곱합 SST

2) 잔차제곱합 SSE

3) 회귀제곱합 SSR

4) 변동의 분해

SST = SSE+SSR
총제곱합 = 잔차제곱합 + 회귀제곱합

5) 분산분석표

<중회귀의 분산분석표>

이 회귀모형이 유의한지 설명력이 얼마나 되는지를 알 수 있다.

요인
자유도
(Degree of Freedom) 
제곱합
(SS, Sum of Square) 
제곱평균
(MS, Mean of Square) 
$F_0$-통계량
(F-Value) 
회귀 (Regression)  k 회귀제곱합 (SSR)

 회귀제곱평균 (MSR)
MSR = SSR / k
F비
MSR / MSE
 잔차 (Error) n - k - 2 잔차제곱합 (SSE)

 잔차제곱평균 (MSE)
MSE = SSE / (n - k - 2)
 
총 (Total)   n - 1  총제곱합 (SST)
SSR + SSE
   

 

6) R 활용

> # 중회귀모형
> market2 = read.table("/Users/DataAnalytics/RegressionModel/reg/market-2.txt", header=T)
> head(market2, 2)
  ID  X1   X2    Y
1  1 4.2  4.5  9.3
2  2 8.5 12.0 18.5
> market2.lm = lm(Y ~ X1+X2, data=market2)
> 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

- 적합된 회귀식 $\hat Y_i$ = 0.85041 + 1.55811X1 + 0.42736X2

- 결정계수 : 0.9799

- F-statistic : 292.5

- 유의확률 p-value : 6.597e-11

위 값으로 적합된 중회귀모형이 이 데이터를 설명하는데 유의하다.

이는 귀무가설 $H_0 : \beta_1 = \beta_2 = 0$ 이 기각되므로

$\beta_1$과 $\beta_2$이 동시에 0이 되지는 않을 것이라는 의미

- 분산분석표

> anova(market2.lm)
Analysis of Variance Table

Response: Y
          Df Sum Sq Mean Sq F value    Pr(>F)    
X1         1 485.57  485.57 559.283 1.955e-11 ***
X2         1  22.30   22.30  25.691 0.0002758 ***
Residuals 12  10.42    0.87                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

중회귀모형의 분산분석 결과 해석

SS(X1) = 485.57

SS(X2|X1)=22.30

여기서 SS(X2|X1)는 변수 X2이 적합된 후 변수 X2가 추가되었을 때의 추가제곱합을 의미한다.

회귀제곱합 SS(X1,X2) = SS(X1) + SS(X2|X1)

 

7. 결정계수

1) 결정계수(Coefficient of determination)

회귀모형에 의해 설명되는 변동 SSR이 총변동 SST에 비해 어느 정도인가를 나타내 주는 값이다. 설명력을 알아보기 위해 구한다.

$R^2 = \frac{SSR}{SST} = 1 - \frac{SSE}{SST}$

$R^2$의 값이 1에 가까운 값을 가지면 추정된 회귀식이 관찰점들을 잘 설명해주고 있으며, $R^2$의 값이 0에 가까운 작은 값을 갖게 되면 그와 같은 회귀식을 추정하게 되는 의의는 거의 없다.

 

 

2) 중상관계수(multiple correlation coefficient)

단순회귀모형에서 결정계수는 두 변수의 상관계수의 제곱과 같았다.

중회귀모형에서의 결정계수는 반응변수 $Y_i$와 추정값 $\hat{Y_i}$의 상관계수의 제곱과 같다.

따라서 결정계수의 제곱근을 중상관계수(multiple correlation coefficient)라고 한다.

- R 활용

> # 중상관계수
> market2.lm = lm(Y ~ X1+X2, data=market2)
> 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

> names(market2.lm)
 [1] "coefficients"  "residuals"     "effects"      
 [4] "rank"          "fitted.values" "assign"       
 [7] "qr"            "df.residual"   "xlevels"      
[10] "call"          "terms"         "model"        
> yhat = market2.lm$fitted
> cor(market2$Y, yhat)^2
[1] 0.9798986

- 수정결정계수(adjusted R-squared)

독립변수를 추가하게 되면 결정계수는 항상 증가한다.

총 제곱합 SST는 고정된 값이고, 잔차제곱합 SSE는 독립변수가 추가될수록 작아지게 되므로 결정계수는 증가하는 성질을 가지고 있기 때문이다.

따라서 독립변수들을 추가하다 보면 과다한 적합을 시키게 되므로 변수선택과 같은 모형개발이라는 입장에서 볼때 두 모형을 비교하기 위한 결정계수로서 수정결정계수가 자주 이용된다.

수정결정계수는 설명력이 떨어지는 독립변수가 추가될 때는 감소하는 성질을 가지고 있기 때문에 모형 선택 관점에서 유용하게 쓸 수 있다.

- 수정결정계수의 R 활용

> # 수정결정계수
> market2.lm = lm(Y ~ X1+X2, data=market2)
> 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

결정계수 : 0.9799

수정결정계수 : 0.9765

 

3) 잔차평균제곱(residual mean squares)

잔차제곱평균 (MSE)

- MSE의 기대값 E(MSE)=$\sigma^2$으로 MSE는 $\sigma^2$의 불편추정량이 된다.

- MSE의 값이 작으면 작을수록 관찰값 $Y_i$들이 추정값 $\hat{Y_i}$과 차이가 거의 없다는 것을 의미하며 추정된 회귀방적식을 믿을 수 있게 된다.

- 잔차평균제곱의 R 활용

> # 잔차평균제곱
> market2.lm = lm(Y ~ X1+X2, data=market2)
> anova(market2.lm)
Analysis of Variance Table

Response: Y
          Df Sum Sq Mean Sq F value    Pr(>F)    
X1         1 485.57  485.57 559.283 1.955e-11 ***
X2         1  22.30   22.30  25.691 0.0002758 ***
Residuals 12  10.42    0.87                      
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
> sqrt(10.42/12)
[1] 0.931844

 

반응형

댓글