본문 바로가기
스터디/확률과 통계

단순선형회귀 (Simple Linear Regression Model)

by 궁금한 준이 2024. 6. 2.
728x90
반응형

 

Simple Linear Regression (단순 선형회귀)

Model Definition and Assumptions

$n$개의 관측된 데이터 $(x_1, y_1), \dots, (x_n, y_n)$에 대하여 $x$와 $y$가 어떻게 연관되어있는지 알고싶다.

특별히, 선형적 관계에 있는 모형을 설계할 수 있다.

\[ y_i = \beta_0 + \beta_1 x_i + \epsilon_i \quad \epsilon_i \sim N(0, \sigma^2) \]

$y$를 $x$에 따른 확률변수로 생각하여 다음과 같이 모형을 설계한다.

\[ Y_i \sim N(\beta_0 + \beta_1 x_i, \sigma^2) \]

※ $x$는 predictor/explanatory/independent variable로 불린다.

※ $y$는 response/outcome/dependent variable로 불린다.

predictor variable이 2개 이상이면 multiple regression 이라 부른다. (이 글에서는 다루지 않는다. 선형대수 지식 필요)

simple linear regression model (image from [1])

 

이 단순선형회귀모델은 모수(parameter)가 3개이다: $\beta_0$, $\beta_1$, $\sigma^2$

$\beta_0$은 intercept parameter, $\beta_1$은 slope parameter, 그리고 $\sigma^2$은 error variance이다.

당연히 이 3개의 파라미터를 데이터로부터 추정해야 모델을 추정하고, 새로운 $x$에 대하여 올바른 $y$를 얻을 수 있다.

nonlinear relationship (image from [1])

 

위 그림과 같이 $x$와 $y$의 관계가 선형적이 아니라면 선형회귀모델을 적용할 수 없다.

위 그림의 경우 2차식 또는 2차곡선 모형으로 fitting할 수 있을 것이다.

그러므로 데이터를 먼저 시각화하여 선형적 관계가 있는지 확인할 필요가 있다.

visualize the linear pattern (image from [2])

Fitting the Regression Line

이제 주어진 데이터 $\{ (x_i, y_i) \}_{i=1}^{n}$로부터 3개의 파라미터를 추정해보자.

어떻게 생긴 line이 좋은 모델일까?

오차가 가장 적은 line이 좋다고 할 수 있다.

least squared error가 가장 적은 파라미터를 찾아보자.

Least square fitting

 

\[ Q = \sum_{i=1}^{n} (y_i - (\beta_0 + \beta_1 x_i))^2 \]

이때 $Q$를 최소화하는 $\beta_0$, $\beta_1$을 MLE를 이용하여 찾아보자.

 

\[ \frac{\partial Q}{\partial \beta_0} = -2 \sum_{i=1}^{n} (y_i - (\beta_0 + \beta_1 x_i) \]

\[ \frac{\partial Q}{\partial \beta_1} = -2 \sum_{i=1}^{n} x_i (y_i - (\beta_0 + \beta_1 x_i)) \]

에서 각 식이 $0$이 되는 식을 찾으면

\[ \sum_{i=1}^{n} y_i = n\beta_0 + \beta_1 \sum_{i=1}^{n}x_i, \quad \sum_{i=1}^{n}x_i y_i = \beta_0 \sum_{i=1}^{n} x_i + \beta_1 \sum_{i=1}^{n} x_i^2 \]

 

($\beta_1$의 값을 먼저 찾는게 편하다)

이 두 식을 연립하면 intercept, slope parameter의 추정량은 다음과 같다.

 

\[ \hat{\beta_1} = \frac{n \sum_{i=1}^{n}x_i y_i - (\sum_{i=1}^{n}x_i)(\sum_{i=1}^{n}y_i) }{n\sum_{i=1}^{n}x_i^2 - (\sum_{i=1}^{n}x_i)^2} \]

\[ \hat{\beta_0} = \frac{1}{n}\sum_{i=1}^{n}y_i - \hat{\beta_1} \frac{1}{n}\sum_{i=1}^{n}x_i = \bar{y} - \hat{\beta_1} \bar{x} \]

 

식이 너무 복잡하니까 특별히 몇개 notation을 추가하자. 주로 $S_{xx}, S_{xy}$이다.

\[ S_{xx} = \sum_{i=1}^{n} (x_i - \bar{x})^2 = \sum_{i=1}^{n} x_i^2 - \frac{(\sum_{i=1}^{n}x_i)^2}{n} \]

\[ S_{xy} = \sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y}) = \sum_{i=1}^{n} x_i y_i - \frac{(\sum_{i=1}^{n}x_i) (\sum_{i=1}^{n} y_i)}{n} \]

 

이렇게 분해하는 이유는 $\sum_i x_i$, $\sum_i y_i$, $\sum_i x_iy_i$는 쉽게 계산할 수 있기 때문이다.

따라서 estimated parameter는 다음과 같다.

\[ \hat{\beta_1} = \frac{S_{xy}}{S_{xx}} \]

 

이제 error variance를 추정해보자.

오차 분산은 실제값($y_i$)과 예측값($\hat{y}_i$)의 sum of squared error (SSE)를 이용한다.

\[ \text{SSE} = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 = \sum_{i=1}^{n} (y_i - (\hat{\beta}_0 + \hat{\beta}_1 x_i))^2 \]

이때 estimated error variance는 자유도가 $n-2$이므로 

\[ \hat{\sigma}^2 = \frac{\rm{SSE}}{n-2} = \frac{\sum_{i=1}^{n}(y_i - (\hat{\beta}_0 + \hat{\beta}_1 x_i))^2}{n-2} \]

 

※ 자유도가 $n$이 아니라 $n-2$인 이유: 수학적으로 유도하면 얻을 수 있지만, 직관적으로 설명한다. $\hat{y}_i$를 예측할 때 이미 $\hat{\beta_0}$, $\hat{\beta_1}$ 2개의 parameter를 추정했기 때문에 2가 제외된다.

 

$\rm{SSE}$를 쉽계 계산하기 위해 식을 분해하면 다음과 같다.

\[ \text{SSE} = \sum_{i=1}^n y_i^2 - \hat{\beta_0} \sum_{i=1}^n y_i - \hat{\beta_1} \sum_{i=1}^{n} x_i y_i \]

따라서 

\[ \hat{\sigma}^2 = \frac{\sum_{i=1}^{n}y_i^2 - \hat{\beta_0}\sum_{i=1}^{n}y_i - \hat{\beta_1} \sum_{i=1}^{n}x_i y_i}{n-2} \]

 

이 세가지 파라미터를 추정하기 위해 데이터로부터 다음 6개 값을 미리 계산하면 편리하다.

\[ n \quad \sum_{i=1}^n x_i \quad \sum_{i=1}^n y_i \quad \sum_{i=1}^n x_i^2 \quad \sum_{i=1}^n y_i^2 \quad \sum_{i=1}^n x_iy_i \]

Extrapolation dangers (left), Inappropriate fitting line (right). images from [1])

 

선형회귀모델은 주어진 데이터로 강제로 fitting할 수 있다. 그러나 위 그림처럼 올바른 모형은 아니다. 데이터가 비선형적 관계를 가지면, 선형회귀를 적용하는 것은 올바른 방법이 아니다. (multiple regression 등을 이용)

또 주의할 점이 있는데, extrapolation의 경우 매우 부정확할 수 있다. 아무리 line을 fitting했어도, 데이터셋을 벗어난 $x$의 버위에서 예측하는것은 성급한 결론이다.

 

Inferences on Slope Parameter $\beta_1$

선형회귀모델에서 기울기 $\beta_1$은 주된 관심사다.

왜냐하면 $x$와 $y$의 관계를 직접적으로 보여주기 때문이다.

단순히 MLE로 $\hat{\beta_1}$의 값을 찾는 것 이상으로, 이 $\beta_1$의 신뢰구간을 구하고자 한다.

신뢰구간을 바탕으로 선형모형의 상한/하한값을 찾을 것이다.

 

$\hat{\beta}_1 = \cfrac{S_{xy}}{S_{xx}}$에서 $S_{xy}$를 다시 살펴보면 다음과 같다.

\begin{align} S_{xy} &= \sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y}) \\ &= \sum_{i=1}^{n} (x_i-\bar{x})y_i - \bar{y}\sum_{i=1}^{n}(x_i - \bar{x}) \\ &= \sum_{i=1}^{n}(x_i - \bar{x})y_i \end{align}

즉 $\hat{\beta}_1 = \sum_{i=1}^{n} \cfrac{x_i - \bar{x}}{S_{xx}} y_i$이고 $y_i$의 선형결합(linear combination)이다. 

$\hat{\beta}_1 = \sum_{i=1}^{n} a_i y_i$로 표현할 수 있다.

$Y_i \sim N(\beta_0 + \beta_1 x_i, \sigma^2)$이므로 선형결합 역시 정규분포를 따른다.

그러므로 $\hat{\beta}_1$의 기댓값과 분산을 구해보자.

그전에 3가지 식을 먼저 계산하면 다음과 같다.

$a_i = \frac{x_i - \bar{x}}{S_{xx}}$라 하면 $\sum_{i=1}^{n} a_i = \frac{\sum_{i=1}^{n}(x_i - \bar{x})}{S_{xx}}=0$

$\sum_{i=1}^{n} a_i x_i = \frac{\sum_{i=1}^{n}(x_i - \bar{x})x_i}{S_{xx}} = \frac{S_{xx}}{S_{xx}} = 1$

$\sum_{i=1}^{n} a_i^2 = \frac{\sum_{i=1}^n (x_i - \bar{x})^2}{S_{xx}^2} = \frac{S_{xx}}{S_{xx}^2}=\frac{1}{S_{xx}}$

 

기댓값과 분산은 다음과 같다.

\begin{align} E(\hat{\beta}_1) &= \sum_{i=1}^{n} a_i E(Y_i) = \sum_{i=1}^n a_i (\beta_0 + \beta_1 x_i) \\ &= \beta_0(\sum_{i=1}^n a_i) + \beta_1 (\sum_{i=1}^n a_i x_i) = \beta_1 \end{align} 

\begin{align} \text{Var}(\hat{\beta}_1) &= \text{Var}(\sum_{i=1}^n a_i Y_i) \\ &= \sum_{i=1}^{n} \text{Var}(a_i Y_i) = \sum_{i=1}^{n} a_i^2 \text{Var}(Y_i) \\ &= \sum_{i=1}^{n} a_i^2 \sigma^2 = \frac{\sigma^2}{S_{xx}} \end{align}

 

따라서 확률변수 $\hat{\beta}_1 \sim N \left( \beta_1,\ \cfrac{\sigma^2}{S_{xx}} \right)$ 이다.

여기서 알 수 있는점은 고정된 분산 $\sigma^2$에 대하여 $S_{xx}$가 클수록 $\hat{\beta}_1$의 분산은 더 작아진다는 것이다. 이는 직관적으로도 이해하기 쉬운데, $x_i$의 분산이 클 수록 회귀선을 더 잘 맞춘다는 것이다. (아래 그림 참고)

More spread out data points, more accurate line.

 

다시 slope parameter의 추정으로 돌아와서, standarization을 하면

\[ \frac{\hat{\beta}_1 - \beta_1}{\sqrt{\frac{\sigma^2}{S_{xx}}}} \sim N(0, 1)\]

이고 $\hat{\sigma}^2 \sim \sigma^2 \cfrac{\chi^2_{n-2}}{n-2}$이므로

\[ \frac{\hat{\beta}_1 - \beta_1}{\sqrt{\frac{\hat{\sigma}^2}{S_{xx}}}} \sim t_{n-2}  \]

이다. 

따라서 $\beta_1$의 신뢰구간은 다음과 같다.

\[ \beta \in \left(\hat{\beta}_1 \pm t_{\alpha/2, n-2} \times \frac{\hat{\sigma}}{\sqrt{S_{xx}}} \right) \]

 

two-sided hypothesis $H_0: \beta_1 = b_1 \text{ vs. } H_A: \beta_1 \neq b_1$에 대하여 p-value를 계산해보자.

검정통계량은 t-statistic이고 

\[ p\text{-value} = P(|T_{n-2}| > |t| ) = 2 \times P(T_{n-2} > |t|) \quad \text{where } t = \frac{\hat{\beta}_1 - b_1}{\sqrt{\frac{\hat{\sigma}^2}{S_{xx}}}} \]

 

Inferences on Regression Line (Confidence Bands)

새로운 input $x^*$에 대하여 $y^*=\beta_0 + \beta_1 x^*$의 신뢰구간을 구하고자 한다.

 

Expected Value of the Dependent Variable

$x^*$에 대응하는 종속변수($\hat{y}|x^*$)의 기댓값을 생각해보자.

먼저, 추정량은 $\hat{\beta}_0 + \hat{\beta}_1 x^*$ 이다. 따라서

\begin{align} \hat{\beta}_0 + \hat{\beta}_1 x^* &= \bar{y} - \hat{\beta}_1 \bar{x} + \hat{\beta}_1 x^* \\ &= \bar{y} + \hat{\beta}_1 (x^* - \bar{x}) \\ &= \bar{y} + \sum_{i=1}^{n} \frac{(x_i - \bar{x}) y_i}{S_{xx}} \\ &= \sum_{i=1}^{n} \left( \frac{1}{n} + \frac{(x_i - \bar{x})(x^* - \bar{x})}{S_{xx}} \right) y_i \end{align}

 

$y_i$가 정규분포를 따르므로 $\hat{\beta}_0 + \hat{\beta}_1 x^{*}$ 역시 확률변수이며, 정규분포의 선형결합이므로 정규분포를 따른다. 그러므로 간단히 기댓값과 분산을 알면 된다.

$E[ \hat{\beta}_0 + \hat{\beta}_1 x^{*} ] = \sum_{i=1}^{n} \left(  \frac{1}{n} + \frac{(x_i - \bar{x})(x^* - \bar{x})}{S_{xx}} \right) E[y_i] = \beta_0 + \beta_1 x^{*} $

$\text{Var}[ \hat{\beta}_0 + \hat{\beta}_1 x^{*} ] = \sum_{i=1}^{n} \left(  \frac{1}{n} + \frac{(x_i - \bar{x})(x^* - \bar{x})}{S_{xx}} \right)^2 \text{Var}(y_i) = \sum_{i=1}^{n} \left(  \frac{1}{n} + \frac{(x^* - \bar{x})^2}{S_{xx}} \right) \sigma^2$

 

따라서

\[ \hat{\beta}_0 + \hat{\beta}_1 x^{*} \sim N \bigg( \beta_0 + \beta_1 x^{*} ,\bigg[ \frac{1}{n} + \frac{(x^* - \bar{x})^2}{S_{xx}} \bigg] \sigma^2  \bigg) \]

 

\[ \frac{(\hat{\beta}_0 + \hat{\beta}_1 x^{*}) - (\beta_0 + \beta_1 x^{*}) }{\sqrt{ \big( \frac{1}{n} + \frac{(x^* - \bar{x})^2}{S_{xx}} \big) \hat{\sigma}^2 }} \sim T_{n-2} \]

 

신뢰구간은 다음과 같다.

\[ \beta_0 + \beta_1 x^{*} \in \bigg( \hat{\beta_0} + \hat{\beta_1}x^{*} \pm t_{\alpha/2, n-2} \times \hat{\sigma} \sqrt{\frac{1}{n} + \frac{(x^* - \bar{x})^2}{S_{xx}} } \bigg) \]

Confidence bands (dashed curves)

 

굵은 실선은 회귀직선, 양쪽 점선은 $E[\hat{\beta_0} + \hat{\beta}_1 x^{*}]$의 상방/하방이다.

신뢰구간의 길이가 $\text{s.e.}(\hat{\beta}_0 + \hat{\beta}_1 x^*)$에 비례하므로 confidence band는 $\bar{x}$에서 가장 좁고 $\bar{x}$에서 멀어질 수록 더 넓어진다.

또한, $n \to \infty$일 때 $\hat{\beta}_0 + \hat{\beta}_1 x^*$는 $0$으로 접근한다. 이는 fitted regression line ($y = \hat{\beta}_0 + \hat{\beta}_1 x$)이 true regression line($y = \beta_0 + \beta_1 x$)로 정확히 추정한다는 뜻이다. 데이터 $(x_i, y_i)$가 많을 수록 더 정확히 추정한다.

Prediction Intervals (Prediction Bands)

$y|x^*$의 신뢰구간을 구하고자 한다. (이전에 구한 것은 기댓값($E[y|x^*]$)의 신뢰구간이다.)

$y|x^*$은 회귀선 $\beta_0 + \beta_1 x^*$ 뿐만 아니라 error term으로 이루어져있다.

그리고 error term은 $N(0, \sigma^2)$의 분포를 따른다. 따라서 total variability는 다음과 같다.

\begin{align} \text{Var}[\hat{\beta}_0 + \hat{\beta}_1 x^{*}] + \sigma^2 &= \sigma^2 \bigg( \frac{1}{n} + \frac{(x^* - \bar{x})^2}{S_{xx}} \bigg) + \sigma^2 \\ &= \sigma^2 \bigg( \frac{n+1}{n} + \frac{(x^* - \bar{x})^2}{S_{xx}} \bigg) \end{align}

 

신뢰구간(prediction band)은 다음과 같다.

\[ y|x^* \in \bigg( \hat{\beta}_0 + \hat{\beta}_1 x^* \pm t_{\alpha/2, n-2} \hat{\sigma} \sqrt{ \frac{n+1}{n} + \frac{(x^* - \bar{x})^2}{S_{xx}} } \bigg) \]

 

$n \to \infty$이어도, shortest prediction interval은 $0$이 되지 않고 아래와 같은 구간을 갖는다.

\[ y|x^* \in (\hat{\beta}_0 + \hat{\beta}_1 x^* \pm t_{\alpha/2, n-2} \hat{\sigma}) \]

 

prediction band는 confidence band와 마찬가지로 $x=\bar{x}$에서 가장 좁고 가장자리(양 끝)로 갈 수록 넓어지는 경향을 갖는다. prediction band는 confidence band보다 항상 더 넓다.

아래 그림에서 회색 점선이 prediction band, 파란색 점선이 confidence band, 파란색 실선이 fitted regression line이다.

Prediction bands (gray dashed curves)

 

ANOVA (분산 분석)

SST: total sum of squares. 전체 $y$의 분산을 측정. $S_{yy}$와 같은 식. 자유도는 $n-1$ 이다.

SSR: sum of squares of regression. $y$의 분산을 측정. 자유도는 $1$이다.

SSE: sum of squares of error. fitted regression line의 분산을 측정. 자유도는 $n-2$이다.

 

\[ \text{SST} = \sum_{i=1}^{n} (y_i - \bar{y})^2, \quad \text{SSR} = \sum_{i=1}^{n} (\hat{y}_i - \bar{y})^2, \quad \text{SSE} = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 \]

\[ \text{SST} = \text{SSR} + \text{SSE} \]

 

따라서 SSR의 평균을 MSR, SSE의 평균을 MSE라 하면

\[ \text{MSR} = \frac{\text{SSR}}{1} = \text{SSR} \sim \chi^2_1, \quad \text{MSE} = \frac{\text{SSE}}{n-2} = \hat{\sigma}^2 \sim \sigma^2 \frac{\chi^2_{n-2}}{n-2} \]

 

따라서 F-statistic은 $F = \cfrac{\text{MSR} }{\text{MSE}} \sim F_{1, n-2}$ 이다.

two-sided p-value는 $p\text{-value} = P(X > F)$ where $X \sim F_{1, n-2}$ 이다.

two-sided test의 경우, $t^2 = F$이므로 두개의 test 모두 동일한 결과를 갖는다.

그러나 one-sided test의 경우 $F$-test로 해야 한다.

 

$R^2$는 전체 분산 중에서 regression line이 설명하는 분산의 비율을 의미한다. 따라서

\[ R^2 = \frac{\text{SSR}}{\text{SST}} = \frac{\text{SST} - \text{SSE}}{\text{SST}} = 1 - \frac{\text{SSE}}{\text{SST}} \]

※ $R^2$는 coefficient of determination 이라고도 한다.

 

$R^2$의 범위는 $[0, 1]$이고, $1$에 가까울 수록(더 클수록) data point가 regression line에 가까이 위치한다는 것을 의미한다.

$R^2$의 값이 낮다고 해서 "fitted line이 적절하지 않다고 판단"하는것은 옳지 않다. 왜냐면 error variance $\sigma^2$이 큰 것이 원인일 수 있다. (항상 error variance때문에 $R^2$가 낮다고 해석하는 것도 옳지 않다.)

※ $R^2$ 해석에 유의할 점은 https://online.stat.psu.edu/stat501/lesson/1/1.8 을 참고하면 좋다.

 

Residual Analysis (잔차 분석)

residual은 원래 y에서 예측된 값의 차로 정의한다. 그러므로 잔차의 합은 항상 $0$이다.

\[ e_i := y_i - \hat{y}_i , \quad 1 \le i \le n, \quad \sum_{i=1}^{n} e_i =0 \]

잔차분석을 하는 이유는 fitted model이 정말로 good model인지 확인하는 작업에 필요하기 때문이다.

  • 이상치 탐지
  • fitted model이 적절한지 확인
  • error variance가 상수인지 확인
  • error term이 정규분포를 따르는지 확인

이상치 탐지를 제외한 세가지는, 선형회귀 모델링의 가정을 만족하는지 확인하는 것이다. 

 

잔차를 정규화하여 standardization residual을 구하고, 이를 시각화하여 어떤 패턴이 있는지 확인한다.

일반적으로 정규화된 잔차에서 $3$보다 크거나 $-3$보다 작은 원래 data point를 outlier로 처리할 수 있다.

정확히는 이때의 outlier는 possible outlier로, 실제 데이터로 되돌아가 어떻게 이런 데이터가 생성되었는지 확인(조사)해야한다. 예를 들어, 전력측정 기기가 정전으로 오류가 나서 생긴 데이터라면 제거하여 (reduced dataset으로) 다시 regression line을 fitting한다.

 

residual이 어떠한 패턴(또는 경향성)을 갖는다면 이는 선형회귀 모형의 가정에 위배된다. 오히려 선형회귀모형이 적절하지 않다는 반증이 된다. 

그리고 residual이 깔때기 모양(funnel shape)을 가지면 error variance $\sigma^2$이 상수가 아니라는 의미를 갖는다.

Residual Analysis

 

마지막으로 normal probability plot (또는 normal scores plot)을 통해 error term $\epsilon_i$이 정규성을 가지는지(정규분포를 따르는지) 확인한다. (요즘 컴퓨터 패키지가 잘 제공한다.) error term이 정규분포라면 normal score에 plot했을 때 직선의 형태를 가진다. 그렇지 않다면 다른 error term이 정규분포를 따르지 않는다는 것을 의미한다.

Normal scores for normal, uniform and exponential distribution

 

References

[1] Probability and Statistics for Engineers and Scientists (4th edition, Hayter)

[2] STAT 501: Regression Methods (Penn State) https://online.stat.psu.edu/stat501/

728x90
반응형