Ch15. 회귀분석의 통계적 추정

어떠한 자료를 사용하여도 변수 간의 관계식을 구할 수는 있다. 그러나 그 관계식이 변수 간의 관계를 잘 말해 주지 않는다면 그 관계식은 아무 소용이 없다. 그리고 독립변수의 값이 주어지면 종속변수를 예측 할 수는 있지만 예측된 값이 실제와 상당히 차이가 나면 오히려 종속변수에 대한 잘못된 정보만 주게 될 뿐 아무런 도움이 되지 못한다.
이 장에서는 변수 간의 관계를 말해 주는 회귀방정식을 구한 다음, 그 방정식이 독립변수와 종속변수 간의 관계를 잘 말해 주는지, 즉 종속변수를 얼마나 잘 설명해 주는지를 알아보는 적합도검정방법에 대해 알아본다. 또한 이 장에서는 독립변수가 2개인 중회귀분석을 설명하고 두 독립변수에 대한 유의도검정도 포함된다.

  • 표본회귀식에 대한 적합도검정
  • 단순회귀분석의 검정
  • 중회귀분석

1. 표본회귀식에 대한 적합도검정

  • 적합도검정 ( goodness of fit ) : 표본회귀선이 두 변수 간의 선형관계를 잘 나타내고 있는지를 알아보는 통계적 검정방법
    1. 표준오차
    2. 결정계수

추청의 표준오차에 의한 적합도검정 ( standard error of estimaate )

  • 각 $X_i$ 에 대한 예측된 $\hat{Y_i}$ 은 $X_i$ 에 대한 $Y_i$ 수치들의 분포에서 하나의 대표값이다.
  • 이것을 각 $X_i$ 값에 대한 $Y$ 의 조건적 분포라 한다.
    • 이 조건적 분포의 범위가 작을수록 예측오차는 작아지며 반대로 $X_i$ 에 대한 $Y$ 의 조건적 분포가 커질수록 예측오차는 커진다.
$$S_e = \sqrt{\frac{\sum(Y_i - \hat{Y_i})^2}{n-2}} = \sqrt{\frac{SSE}{n-2}}$$
  • $S_e = 0$ : 관찰값과 예측값이 같아서 회귀선 위에 모든 관찰값이 놓여 있을 경우 $( \because \sum(Y_i - \hat{Y_i})^2 = 0 )$
  • $S_e = S_Y$ : $X$ 와 $Y$ 가 아무런 관계가 없을 경우 $( \because 예측값으로서 사용할 수 있는 것은 \bar{Y} 밖에 없으므로, \sum(Y_i - \bar{Y})^2 )$
  • $df = n - 2$ : 회귀식의 모수 $\alpha$ 와 $\beta$ 를 구하는 추정과정에서 자유도가 하나씩 빠졌기 때문
  • 간단히 말하면 $S_e$ 는 표본회귀식에서 얻은 예측값과 실제 관찰값 사이에서 나타나는 잔차들의 표준편차다.

<img src="https://github.com/JKeun/study-of-statistics-basic/blob/develop/%20img/standard-error.png?raw=true", width=450>

예제. 어느 회사에서는 판매원의 능력에 대한 평점과 그들의 학력수준 간의 회귀식을 구하기 위해 $15$ 명을 추출하여 그들의 학력과 평점을 알아보았다. 학력수준은 정규학교에 다닌 햇수를 말하고, 평점은 여러 가지 항목을 평가하여 계산한 점수다.

대상자 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
학력수준 6 12 10 11 4 13 15 6 9 7 11 16 8 8 14
평점 4.0 3.5 3.0 2.5 4.5 2.5 1.0 5.5 3.5 1.5 3.0 2.0 2.0 3.0 3.5

1) 학력과 평점에 대한 회귀식을 구하라.
2) 모집단에 대한 회귀식의 추정오차 $S_e$ 를 구하라.

대상 $X_i$ $Y_i$ $X_i^2$ $Y_i^2$ $X_i$$Y_i$ $\hat{Y_i}$ $( Y_i - $$\hat{Y_i} )$ $( Y_i - $$\hat{Y_i} )^2$ $(\hat{Y_i} -$$\bar{Y} )^2$ $(Y_i -$$\bar{Y} )^2$
1 6 4.0 36 16 24 3.72 0.28 0.0784 0.5184 1
2 12 3.5 144 12.25 42 2.64 0.86 0.7396 0.1296 0.25
3 10 3.0 100 9 30 3.0 0 0 0 0
4 11 2.5 121 6.25 27.5 2.82 -0.32 0.1024 0.0324 0.25
5 4 4.5 16 20.25 18.0 4.08 0.42 0.1764 1.1664 2.25
6 13 2.5 169 6.25 32.5 2.46 0.04 0.0016 0.2916 0.25
7 15 1.0 225 1.0 15.0 2.10 -1.1 1.21 0.81 4.0
8 6 5.5 36 30.25 33.0 3.72 1.78 3.1684 0.5184 6.25
9 9 3.5 81 12.25 15.0 3.18 0.32 0.1024 0.0324 0.25
10 7 1.5 49 2.25 33.0 3.54 -2.04 4.1616 0.2916 2.25
11 11 3.0 121 9.0 31.5 2.82 0.18 0.0324 0.0324 0
12 16 2.0 256 4.0 10.5 1.92 0.08 0.0064 1.1664 1
13 8 2.0 64 4.0 32.0 3.36 -1.36 1.8496 0.1296 1
14 8 3.0 64 9.0 24.0 3.36 -0.36 0.1296 0.1296 0
15 14 3.5 196 12.25 49.0 2.28 1.22 1.4884 0.5184 0.25
합계 150
$\bar{X}=$$10$
45
$\bar{Y}=$$3$
1678 154 418 45 0 13.2472 5.7672 19.0
< table. 회귀식과 추정오차 도출을 위한 계산과정 >

결정계수에 의한 적합도검정 ( coefficient of determination )

  • 추정의 표준오차는 변수의 크기, 측정 단위 등에 직접적인 영향을 받는다는 문제가 존재
  • 결정계수는 0부터 1까지 범위 안에 있으므로 여러 회귀선의 적합도를 비교할 수 있으나, 각 회귀선이 구체적으로 어느 정도의 오차를 갖고 있는지를 보여주지 못하는 한계점도 존재

편차와 제곱합

<img src="https://github.com/JKeun/study-of-statistics-basic/blob/develop/%20img/regression-deviations.png?raw=true", width=400>

  • 총편차 ( total deviation ) = 설명 안 된 편차 ( unexplained deviation ) + 설명된 편차 ( explained deviation )
$$(Y_i - \bar{Y}) = (Y_i - \hat{Y_i}) + (\hat{Y_i} - \bar{Y})$$


  • 총제곱합 ( total sum of squares ) = 오차제곱합 ( sum of squares error ) + 회귀제곱합 ( sum of squares regression )
$$ \begin{align} SST &= SSE + SSR \\ \sum(Y_i - \bar{Y})^2 &= \sum(Y_i - \hat{Y_i})^2 + \sum(\hat{Y_i} - \bar{Y})^2 \end{align} $$

결정계수 ( $r^2$ )

  • 표본회귀식의 적합도를 어느 경우에나 일률적으로 나타내줄 수 있는 방법으로서 가장 많이 사용됨
  • 결정계수는 표본회귀식에 의하여 설명된 제곱합이 총제곱합에서 차지하는 상대적 크기를 나타내는 것으로서, $r^2$ 으로 표시
  • $r^2 = 1$ : 모든 관찰자료가 표본회귀식으로 완전히 설명되는 경우 $(\because SSE = \sum e^2 = 0 )$
  • $r^2 = 0$ : 종속변수가 독립변수의 1차식으로는 전혀 설명이 되지 못함을 의미
$$ \begin{align} 결정계수 &= \frac{회귀제곱합}{총제곱합} = 1 - \frac{오차제곱합}{총제곱합} \\ r^2 &= \frac{SSR}{SST} = 1 - \frac{SSE}{SST} \end{align} $$

예제. 위의 예제에서 판매원의 학력수준과 평점에 대한 자료에서 결정계수 $r^2$ 을 구하라.

2. 단순회귀분석의 검정

  • 회귀모형이 과연 선형관계를 이루는가에 대한 통계적 검증방법
    1. 단순회귀모형에 대한 $F-검정$
    2. $\beta$ 에 대한 $t-검정$

들어가기 앞서 - 자유도에 대하여

  • 자유도 ( $df$: degree of freedom )
    • 어떤 모수를 추정하기 위해 사용된 data ( 관찰값 ) 의 수
      • ex) 평균은 data 전부를 사용 => $df = n$
      • ex) 분산은 평균과 ( data - 1 ) 개의 data 사용 => $df = n - 1$
    • 따라서 자유도는 그 모수를 추정하기 위해 사용된 다른 모수의 개수를 data 수에서 뺀 것

단순회귀모형에 대한 $F-검정$

  • 회귀식이 표본자료를 잘 설명하고 있다면 설명된 제곱합 $SSR$ 은 설명 안 된 제곱합 $SSE$ 에 비해 상대적으로 클 것 !
$$ \begin{align} 제곱합 \quad &SST = SSE + SSR \\ 자유도 \quad &n-1 = (n-2) + (1) \\ \end{align} $$
  • $SST$ 의 자유도는 평균 $( \bar{Y} )$ 이라는 모수가 사용되었으므로 $df = n - 1$
  • $SSE$ 의 자유도는 예측값$( \hat{Y_i} )$ 을 추정하기 위한 회귀식의 모수인 $\alpha$ 와 $\beta$ 가 사용되었으므로 $df = n - 2$
  • $SSR$ 의 자유도는 $SST - SSE$ 이므로 $df = 1$ ( 이는 곧 독립변수$( X )$ 의 수와 같음 )

설명된 평균제곱 (MSR)

$$MSR = \frac{SSR}{1} = \sum(\hat{Y_i} - \bar{Y})^2$$

설명 안 된 평균제곱 (MSE)

$$MSE = \frac{SSE}{n-2} = \frac{\sum(Y_i - \hat{Y_i})^2}{n-2} = S_e^2$$

단순회귀분석에서 $F-검정식$

$$F_{1, n-2} = \frac{SSR/1}{SSE/(n-2)} = \frac{MSR}{MSE} $$

예제. 위의 예제의 판매원의 학력수준과 평점에 대한 자료에서 두 변수 간에 회귀모형이 성립되는지를 $\alpha = 0.05$ 수준에서 $F-검정$ 하라.

$\beta$ 에 대한 $t-검정$

  • 회귀선의 기울기를 나타내는 $\beta$ 가 $0$ 라는 것은(= 통계적으로 유의하지 않다는 것은) 회귀모형이 성립되지 않는다는 것을 의미 !
    • 절편인 $\alpha$ 는 상수이므로 $X$ 의 변화에 따라 $Y$ 가 어떻게 변화하는지에 대해 알려주는 것이 없다.
    • 모수 $\beta$ 에 대한 가설검정은 표본회귀식에서 구한 기울기 $b$ 를 이용해서 모집단 회귀식의 $\beta$ 에 대한 가설 검정을 하는 것

귀무가설

$$H_0 : \beta = 0$$$$H_1 : \beta \ne 0$$

회귀계수 $b$ 의 표준오차

  • 모수 $\beta$ 에 대한 가설검정은 $t-검정$
    • 회귀계수인 $b$ 의 분포는 정규분포를 이루고 그 평균이 $\beta$ 며 표준오차가 $S_b$ 다.
    • $S_b$ 는 다음과 같이 구하며, $S_e$ 는 추정의 표준오차로서 앞에서 나온 식과 같다.
$$S_b = \frac{S_e}{\sqrt{\sum (Y_i - \bar{Y})^2}} $$

$\beta = 0$ 을 검정하는 $t-통계량$

$$t = \frac{b - 0}{S_b} = \frac{b}{S_b} $$
  • $t-통계량$ 의 자유도는 $a$ 와 $b$ 를 추정하는 데 각각 자유도를 하나씩 잃으므로 $df = n - 2$

예제. 위의 예제의 판매원의 학력수준과 평점에 대한 자료에서 학력수준이 과연 평점을 예측할 수 있는 회귀변수인지를 $\alpha = 0.05$ 에서 검정하라.

3. 중회귀분석

  • 대부분의 경우 종속변수는 여러 개의 독립변수와 관계를 갖고 있다. 하나의 종속변수와 여러 개의 독립변수들 사이의 관계를 규명하고자 할 때 자주 사용되는 기법 중의 하나가 중회귀분석
  • 중회귀분석은 독립변수의 수만 많아진 것이며, 그 이론적 배경은 단순회귀분석의 경우와 같으므로, 이 곳에서는 독립변수가 두 개인 경우에 대해서만 설명

표본중회귀식의 산출

  • 중회귀식에 있어서도 모수의 추정값인 회귀계수 $b_k$ 들은 최소제곱법에 의해 구함
$$ \begin{align} 모집단의 회귀식 \quad & Y_i = \alpha + \beta_1 X_{1i} + \beta_2 X_{2i} \\ 표본회귀식 \quad & \hat{Y_i} = a + b_1 X_{1i} + b_2 X_{2i} \\ \end{align} $$

잔차제곱의 합

$$\sum e_i^2 = \sum(Y_i - \hat{Y_i})^2 = \sum(Y_i - a - b_1 X_{1i} - b_2 X_{2i})^2 $$

편미분

  • 편미분 후 미분한 값들을 $0$ 으로 놓으면, 다음과 같은 정규방정식을 구할 수 있다.
$$ \begin{align} \sum Y_i &= a + b_1 \sum X_{1i} + b_2 \sum X_{2i} \\ \sum X_{1i} Y_i &= a \sum X_{1i} + b_1 \sum X_{1i}^2 + b_2 \sum X_{1i} X_{2i} \\ \sum X_{2i} Y_i &= a \sum X_{2i} + b_1 \sum X_{1i} X_{2i} + b_2 \sum X_{2i}^2 \\ \end{align} $$

중회귀식의 기울기 ( 독립변수가 2개인 경우 )

  • 편의상 $X_{1i} - \bar{X} = x_{1i}$ , $X_{2i} - \bar{X} = x_{2i}$, $Y_i - \bar{Y} = y_i$ 라 하여 식을 간단히 표시
$$ \begin{align} b_1 &= \frac{\sum x_{1i} y_i \sum x_{2i}^2 - \sum x_{2i} y_i \sum x_{1i} x_{2i}}{\sum x_{1i}^2 \sum x_{2i}^2 - (\sum x_{1i} x_{2i})^2 }\\ b_2 &= \frac{\sum x_{2i} y_i \sum x_{1i}^2 - \sum x_{1i} y_i \sum x_{1i} x_{2i}}{\sum x_{1i}^2 \sum x_{2i}^2 - (\sum x_{1i} x_{2i})^2 }\\ \end{align} $$

중회귀식의 절편

$$a = \bar{Y} - b_1 \bar{X_1} - b_2 \bar{X_2}$$

중회귀식의 추가가정

  • 단순회귀분석에서 소개한 4가지 가정이 그대로 적용되고, 별도로 추가되는 가정이 다음 두가지 이다.
$$ \begin{align} 추가가정 1 \quad & 관찰값들의 수 (n) 는 독립변수 수 (k) 보다 최소한 2개 이상 많아야 한다. \\ 추가가정 2 \quad & 각 독립변수들 사이의 상관계수가 1이어서는 안 된다. \\ & \quad \rho (X_i, X_j) \ne 1, \quad i \ne j \\ \end{align} $$
  • $\rho (X_i, X_j) = 1$ 이라는 것은 두 독립변수 $X_i$ 와 $X_j$ 가 완전한 선형관계에 있음을 뜻함
  • 이러한 경우 최소제곱법에 의한 추정값을 계산할 수 없는데, 이처럼 독립변수들 간의 선형관계로부터 비롯되는 문제를 다중공선성 (multicollinearity) 이라고 부른다.
    • $\rho$ 가 $1$ 에 가까울수록 다음에 설명할 추정의 표준오차값이 매우 큰 값으로 나타나서 중회귀분석에 대한 추정이나 가설검정이 무의미하게 된다.


중회귀식의 적합도 측정방법

  1. 표준오차
  2. 결정계수

추정의 표준오차

$$S_e = \sqrt{\frac{\sum (Y_i - \hat{Y})^2}{n-k-1}} = \sqrt{\frac{\sum e_i^2}{n-k-1}} $$
  • 자유도가 $( n - k - 1 )$ 인데, 여기서 $k$ 는 독립변수의 수를 말한다.

중회귀식의 결정계수

  • 결정계수는 독립변수들이 종속변수를 어느 정도 설명해 주는지를 나타내는 지수
    • 여기서의 결정계수는 각각의 독립변수의 영향력을 나타내기 보단, 모든 독립변수들을 합해 종속변수를 설명하는 정도를 말함
    • 중회귀식에서 결정계수는 $r^2$ 이 아니라 $R^2$ 이라고 표시한다.
$$ \begin{align} R^2 &= \frac{SSR}{SST} = 1 - \frac{SSE}{SST} \\ &= 1 - \frac{\sum(Y_i - \hat{Y_i})^2}{\sum(Y_i - \bar{Y})^2} \end{align} $$

예제. 가정의 사회경제적 환경 $(X_1)$ 과 부모의 교육정도 $(X_2)$ 가 어린이의 학습준비도 $(Y)$ 에 영향을 주는지 알아보기 위해, 열 명의 취학전 어린이에게 초등학교 교육을 받을 수 있는지에 대한 준비도 검사를 실시하였다. 검사는 20점 만점이며 실시결과는 다음의표와 같다. 사회경제적 환경은 1에서 10등급까지, 교육정도는 1에서 5등급까지로 나누었다. 단, 사회경제적 환경과 교육정도는 등간척도로 가정한다.

※ 명목척도,서열척도,등간척도,비율척도,측정척도와 통계 분석 방법 : https://goo.gl/OFwZ5E

변수\대상자 1 2 3 4 5 6 7 8 9 10
$X_{1i}$ 2 5 10 6 3 4 1 7 4 8
$X_{2i}$ 1 2 3 3 1 5 2 4 4 5
$Y_i$ 7 8 15 6 3 10 5 12 14 20

1) 회귀식 $\hat{Y} = a + b_1 X_{1i} + b_2 X_{2i}$ 를 구하라.
2) 회귀식의 추정오차 $S_e$ 와 결정계수 $R^2$ 을 구하라.

대상자 $X_{1i}$ $X_{2i}$ $Y_i$ $x_{1i}$ $x_{2i}$ $y_i$ $x_{1i}^2$ $x_{2i}^2$ $x_{1i}$$x_{2i}$ $x_{1i}$$y_i$ $x_{2i}$$y_i$
1 2 1 7 -3 -2 -3 9 4 6 9 6
2 5 2 8 0 -1 -2 0 1 0 0 2
3 10 3 15 5 0 5 25 0 0 25 0
4 6 3 6 1 0 -4 1 0 0 -4 0
5 3 1 3 -2 -2 -7 4 4 4 14 14
6 4 5 10 -1 2 0 1 4 -2 0 0
7 1 2 5 -4 -1 -5 16 1 4 20 5
8 7 4 12 2 1 2 4 1 2 4 2
9 4 4 14 -1 1 4 1 1 -1 -4 4
10 8 5 20 3 2 10 9 4 6 32 20
합계 50 30 100 70 20 19 94 53
< table. 회귀식을 구하기 위한 계산과정 >
대상자 $X_{1i}$ $X_{2i}$ $Y_i$ $\hat{Y_i}$ $(Y_i -$$\bar{Y} )^2$ $( Y_i - $$\hat{Y_i} )^2$
1 2 1 7 3.788 9 10.317
2 5 2 8 8.160 4 0.026
3 10 3 15 14.212 25 0.621
4 6 3 6 10.852 16 23.542
5 3 1 3 4.628 49 2.650
6 4 5 10 12.886 0 8.329
7 1 2 5 4.800 25 0.040
8 7 4 12 13.544 4 2.384
9 4 4 14 11.024 16 8.857
10 8 5 20 16.246 100 14.093
합계 50 30 100 100.140 248 70.859
< table. 회귀식의 추정오차를 구하기 위한 계산과정 >


중회귀분석의 $F-검정$

  • 단순회귀분석에서는 $X$ 와 $Y$ 사이에 아무런 선형관계가 없다는 것을 검정하기 위하여 귀무가설 $\beta = 0$ 하나만 검정하였다.
  • 그러나 중회귀분석에서는 유의성을 검정하려면 모든 독립변수가 종속변수와 선형관계가 없다는 것을 검정 해야 한다.

귀무가설

$$ \begin{align} H_0 &: \beta_1 = \beta_2 = 0 \\ H_1 &: 2개의 모수 중 적어도 하나는 0이 아니다. \\ \end{align} $$
  • 귀무가설 : 종속변수를 의미있게 설명하는 독립변수는 하나도 없다는 의미
    • 귀무가설 채택시, 중회귀모형이 성립하지 않는다는 것을 의미
  • 대립가설 : 중회귀방정식을 구성하는 여러 개의 독립변수 중에서 종속변수를 설명하는 변수가 적어도 1개 이상이다.
    • 귀무가설 기각시, 중회귀모형이 성립한다는 것을 의미

설명된 평균제곱 (MSR)

$$MSR = \frac{SSR}{2} $$

설명 안 된 평균제곱 (MSE)

$$MSE = \frac{SSE}{n-3} $$

자유도

$$ \begin{align} 제곱합 \quad &SST = SSE + SSR \\ 자유도 \quad &n-1 = (n-3) + (2) \\ \end{align} $$

중회귀분석에서 $F-검정식$

$$F_{2, n-3} = \frac{SSR/2}{SSE/(n-3)} = \frac{MSR}{MSE} $$

예제. 위의 예제에서 어린이의 학습준비도에 관한 자료를 가지고 회귀모형의 유의성을 검정하라. $(\alpha = 0.01)$


In [1]:
from sklearn.linear_model import LinearRegression

data = np.array([[2, 5, 10, 6, 3, 4, 1, 7, 4, 8],
                [1, 2, 3, 3, 1, 5, 2, 4, 4, 5],
                [7, 8, 15, 6, 3, 10, 5, 12, 14, 20]])


X = data[:-1]
y = data[-1]
X = X.T

In [2]:
model = LinearRegression().fit(X, y)

print(model.coef_)
print(model.intercept_)


[ 0.84023099  1.85178056]
0.243503368624
/Users/jkpark/.pyenv/versions/3.5.1/envs/dss/lib/python3.5/site-packages/scipy/linalg/basic.py:884: RuntimeWarning: internal gelsd driver lwork query error, required iwork dimension not returned. This is likely the result of LAPACK bug 0038, fixed in LAPACK 3.2.2 (released July 21, 2010). Falling back to 'gelss' driver.
  warnings.warn(mesg, RuntimeWarning)

In [3]:
import statsmodels.api as sm

df_X = sm.add_constant(X)
model_2 = sm.OLS(y, df_X)
result = model_2.fit()

print(result.summary())


                            OLS Regression Results                            
==============================================================================
Dep. Variable:                      y   R-squared:                       0.714
Model:                            OLS   Adj. R-squared:                  0.633
Method:                 Least Squares   F-statistic:                     8.747
Date:                Tue, 14 Feb 2017   Prob (F-statistic):             0.0125
Time:                        18:48:35   Log-Likelihood:                -23.981
No. Observations:                  10   AIC:                             53.96
Df Residuals:                       7   BIC:                             54.87
Df Model:                           2                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const          0.2435      2.544      0.096      0.926      -5.771       6.258
x1             0.8402      0.441      1.903      0.099      -0.204       1.884
x2             1.8518      0.826      2.242      0.060      -0.101       3.805
==============================================================================
Omnibus:                        0.312   Durbin-Watson:                   1.264
Prob(Omnibus):                  0.856   Jarque-Bera (JB):                0.434
Skew:                          -0.160   Prob(JB):                        0.805
Kurtosis:                       2.030   Cond. No.                         16.7
==============================================================================

Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
/Users/jkpark/.pyenv/versions/3.5.1/envs/dss/lib/python3.5/site-packages/scipy/stats/stats.py:1326: UserWarning: kurtosistest only valid for n>=20 ... continuing anyway, n=10
  "anyway, n=%i" % int(n))