Part I:
iris 자료
단순 선형회귀
Part II
사영과 회귀분석
다중 선형회귀
Part III
가변수와 선형모형
모형의 다양성
Part IV
모형 선택
회귀 진단
단순 선형회귀모형의 표현법:
원소표현법: \(Y_j = \alpha + \beta x_j + \epsilon_j\), \(j=1,\ldots,n\)
벡터표현법: \(\mathbf{Y} = \alpha \mathbf{1} + \beta \mathbf{x} + \boldsymbol{\epsilon}\)
\(\qquad \qquad \qquad \begin{pmatrix}Y_1 \\ Y_2\\ \vdots \\ Y_n \end{pmatrix} = \alpha \begin{pmatrix}1 \\1 \\ \vdots \\ 1\end{pmatrix} + \beta \begin{pmatrix}x_1 \\x_2 \\ \vdots \\x_n \end{pmatrix}+ \begin{pmatrix} \epsilon_1 \\ \epsilon_2 \\ \vdots \\ \epsilon_n \end{pmatrix}\)
다음 표에서, 예측벡터 \(\hat{\mathbf{y}}\) 를 구하기 위한 두 가지 방법을 비교하자
방법 1: \(~~\hat{\mathbf{y}}= 150 \cdot \mathbf{1} + 0.1 \cdot \mathbf{x}\)
방법 2: \(~~\hat{\mathbf{y}}= 100 \cdot \mathbf{1} + 0.5 \cdot \mathbf{x}\)
| \(\mathbf{y}\) | \(\mathbf{1}\) | \(\mathbf{x}\) | \(150 \cdot \mathbf{1}+ 0.1 \cdot \mathbf{x}\) | \(100 \cdot \mathbf{1}+ 0.5 \cdot \mathbf{x}\) |
|---|---|---|---|---|
| 160 | 1 | 176 | 167.6 | 188 |
| 173 | 1 | 168 | 166.8 | 184 |
| 185 | 1 | 174 | 176.4 | 187 |
| \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) |
| 189 | 1 | 182 | 168.2 | 191 |
위 표에서,’방법 1’과 ’방법 2’는 \(\mathbf{1}\) 과 \(\mathbf{x}\) 각각에 곱하는 상수가 다르다
\(\mathbf{1}\) 과 \(\mathbf{x}\) 각각에 곱하는 상수는, 예측 벡터 \(\hat{\mathbf{y}}\) 를 구하기 위한 회귀계수 \(\alpha\) 와 \(\beta\) 를 의미한다
벡터에서 벡터로의 사영:
벡터 \(\mathbf{y}\) 를 벡터 \(\mathbf{x}\) 로 사영하자
사영된 이미지를 \(\hat{\mathbf{y}}\) 라 하면, \(\hat{\mathbf{y}}=c \cdot \mathbf{x}\) 이다
(정)사영의 성질에 따라, \(\hat{\mathbf{y}}\) 과 \(\mathbf{y}-\hat{\mathbf{y}}\) 은 직교하므로, \(\mathbf{x}' (\mathbf{y}-c\cdot \mathbf{x} )=0\) 이다.
즉, \(c= (\mathbf{x}' \mathbf{y})/(\mathbf{x}' \mathbf{x})\) 이고, \(~\hat{\mathbf{y}}=(\mathbf{x}' \mathbf{y})/(\mathbf{x}' \mathbf{x}) \cdot \mathbf{x}\) 이다
만약, \(\mathbf{x}\) 가 \(\mathbf{1}_n\) 이라면, \(c= \bar{y}_n\) 이고, \(~\hat{\mathbf{y}}=\bar{y}_n \cdot \mathbf{1}_n\) 이다
열공간, Column Space, \(Col(X)\) :
행렬 \(X\) 의 열벡터들의 선형결합으로 만들어지는 벡터들의 집합
행렬 \(X\) 가 두 개의 열벡터 \(\mathbf{1}\), \(\mathbf{x}\)로 구성된 경우, 즉, \(X=(\mathbf{1}, \mathbf{x})\) 라면,
\(Col(X)=\{ \alpha \mathbf{1} + \beta \mathbf{x} | \alpha, \beta \in I\!\!R \}\) 임.
다음 [사영] 그림에서, 회색 타원으로 표현된 영역이 \(Col(X)\) 를 의미함.
행렬 \(X\) 가 \(k\) 개의 열벡터로 이루어져 있을 때, 즉, \(X=(\mathbf{x}_1,\ldots ,\mathbf{x}_k )\) 일 때,
열공간은 \(Col(X)=\{ \beta_1 \mathbf{x}_1 + \cdots + \beta_k \mathbf{x}_k | \beta_j \in I\!\!R, ~ j=1,\ldots,k \}\) 임.
바꾸어 표현하면, \(Col(X) = \{X \boldsymbol{\beta} | \boldsymbol{\beta} \in I\!\!R^k \}\) 임.
즉, 열공간에 속하는 벡터들은, \(X \boldsymbol{\beta}\) 의 형태로 표현된다.
여기서 \(\boldsymbol{\beta}\) 는 \(k\) 차원 열벡터 \(~\boldsymbol{\beta}=(\beta_1, \ldots, \beta_k)'\) 이다.
[사영]
단순 선형회귀모형과 최소자승법의 기하학적 의미:
회귀모형: \(~~\mathbf{Y}= \boldsymbol{\mu} +\boldsymbol{\epsilon}\), \(~~~\boldsymbol{\mu}=\alpha \, \mathbf{1} + \beta \, \mathbf{x}\), 여기서 \(\boldsymbol{\mu}\) 는 \(E(\mathbf{Y})\) 를 말함.
관측벡터: \(~~\mathbf{y}\)
예측벡터: \(~~\hat{\mathbf{y}}= \hat{\alpha} \mathbf{1} + \hat{\beta}\mathbf{x}\)
오차벡터: \(~~\boldsymbol{\epsilon} = \mathbf{y} - \boldsymbol{\mu}\)
잔차벡터: \(~~\mathbf{e} = \mathbf{y} - \hat{\mathbf{y}}\)
제곱거리: \(~~ S(\alpha, \beta) =\sum_j \left( y_j -(\alpha + \beta x_j) \right)^2 = \| \boldsymbol{\epsilon} \|^2\)
최소제곱거리: \(~~ S(\hat{\alpha}, \hat{\beta} ) =\sum_j \left( y_j -(\hat{\alpha} + \hat{\beta} x_j) \right)^2 = \| \mathbf{e} \|^2\)
사영공간: 행렬 \(X=(\mathbf{1}, \mathbf{x})\) 에 의하여 생성되는 열공간 \(Col(X)\)
예측벡터 \(\hat{\mathbf{y}}\) 은 열공간 \(Col(\mathbf{1}, \mathbf{x})\)의 원소
최소자승법: 잔차벡터의 길이(norm)를 최소화 하는 방법
\(\hat{\alpha}\), \(\hat{\beta}\) : 제곱거리가 최소화 될 때의 \(\alpha\) 와 \(\beta\)
제곱거리가 최소화되면 \(\hat{\mathbf{y}}\) 와 \(\mathbf{e}\) 가 수직. 즉, \(\hat{\mathbf{y}} ' ({\mathbf{y}}- \hat{\mathbf{y}}) =0\)
위 [사영] 그림에서와 같이, 잔차벡터 \(\mathbf{e}\) 는 열공간 \(Col(X)\) 의 모든 원소와 직교
따라서 다음 두 조건을 만족하여야 함
\(\mathbf{1} ' ({\mathbf{y}}- \hat{\mathbf{y}}) =0 ~~\) (식4)
\(\mathbf{x} ' ({\mathbf{y}}- \hat{\mathbf{y}}) =0 ~~\) (식5)
위 (식4) 와 (식5)는, 대수적 방법으로 얻은 (식1) 과 (식2)와 각각 동일한 의미
다중 선형회귀모형:
단순 선형회귀와 다중 선형회귀의 비교:
회귀모형:
단순 선형회귀: \(\boldsymbol{\mu}= \alpha \, \mathbf{1} + \beta \mathbf{x}\)
다중 선형회귀: \(\boldsymbol{\mu} = X \boldsymbol{\beta}\)
열공간: 관측벡터 \(\mathbf{y}\) 를 사영하게 될 공간
단순 선형회귀: 행렬 \(X =(\mathbf{1},\mathbf{x})\)에 대한 열공간
다중 선형회귀: 행렬 \(X =(\mathbf{x}_1,\ldots ,\mathbf{x}_k)\)에 대한 열공간
’다중 선형회귀’는 ’단순 선형회귀’를 일반화한 형태
’다중 선형회귀’에서는 다수의 설명변수를 고려하게 됨
다중 선형회귀모형과 그 표현:
모형: \(\mathbf{Y}= \boldsymbol{\mu}+ \boldsymbol{\epsilon}\)
설명변수 행렬 \(X\) 의 표현:
절편을 도입한 표현: \(X_{n \times (p+1)} =(\mathbf{1}, \mathbf{x}_1 , \ldots ,\mathbf{x}_p )\)
일반화된 표현: \(X_{n \times k} =(\mathbf{x}_1,\ldots ,\mathbf{x}_k)\)
’일반화된 표현’에서 \(X\) 의 열벡터 중 하나가 1벡터 이면, 동일한 의미가 됨
벡터표현: 여기서 \(\boldsymbol{\mu}=E(\mathbf{Y})\) 를 말함
\(\boldsymbol{\mu}= X \boldsymbol{\beta}\),
\(\boldsymbol{\mu}= \beta_1 \mathbf{x}_1 +\cdots + \beta_k \mathbf{x}_k\)
\(\boldsymbol{\mu}= \beta_0 \mathbf{1} + \beta_1 \mathbf{x}_1 +\cdots + \beta_p \mathbf{x}_p\)
원소표현: 여기서 \(\mu_j =E(Y_j)\) 를 말함
\(\mu_j = \mathbf{x}_j ' \boldsymbol{\beta}\),
\(\mu_j = \beta_1 x_{1j} +\cdots + \beta_k x_{kj}\)
\(\mu_j = \beta_0 + \beta_1 x_{1j} +\cdots + \beta_p x_{pj}\)
원소표현법과 행렬 원소표현법의 충돌:
다중회귀 원소표현법: \(~~\mu_j = \beta_0 + \beta_1 x_{1j} +\beta_2 x_{2j}\),
\(x_{1j}\) 는 행렬 \(X\) 의 첫번째 열벡터 \(\mathbf{x}_1\) 의 \(j\) 번째 원소, 즉 \(x_{j1}\)
관례적으로 사용되는 위 두 표현법에서 행과 열을 나타내는 순서가 다름
벡터와 행렬에 대한 일반적 표현법:
확률변수는 대문자로 표시함, 확률변수의 관측값은 소문자.
벡터는 굵은 글씨체로 표시, 행렬은 일반 대문자로 표시
벡터는 기본적으로 열벡터를 가정, 행벡터는 transpose 로 표현
행렬의 행벡터/열벡터는 굵은 소문자
예)
대문자 \(Y_j\) 는 확률변수를, 소문자 \(y_j\) 는 관측값
확률벡터: \(\mathbf{Y}=(Y_1 , \ldots, Y_n )'\)
관측벡터: \(\mathbf{y}=(y_1 , \ldots, y_n )'\)
예측벡터: \(\hat{\mathbf{y}}=(\hat{y}_1 , \ldots, \hat{y}_n )'\)
\(\mathbf{x}_j\): 행렬 \(X\) 의 \(j\) 번째 열벡터
\(\mathbf{x}_j '\): 행렬 \(X\) 의 \(j\) 번째 행벡터
\(x_{jk}\), \(x_{j,k}\): 행렬 \(X\) 의 \(i\) 행, \(k\) 열 원소
\(x_j\): 벡터 \(\mathbf{x}\)의 \(j\) 번째 원소
참고)
회귀분석에서의 관례적 표현 중 혼동할 수 있는 부분
\(\mathbf{x}_j ' \mathbf{Y}\) : 여기서 \(\mathbf{x}_j\) 는 행렬 \(X\) 의 \(j\) 번째 열벡터
\(\mathbf{x}_j ' \boldsymbol{\beta}\): 여기서 \(\mathbf{x}_j '\) 는 행렬 \(X\) 의 \(j\) 번째 행벡터
혼란스러운 점은 있지만 식의 전후 관계를 보고 구별할 수 있음
다중 선형회귀에서의 사영:
회귀모형: \(~~\mathbf{Y}= \boldsymbol{\mu} +\boldsymbol{\epsilon}\), \(~~~\boldsymbol{\mu}= X \boldsymbol{\beta}~ \in~ Col(X)\)
관측벡터: \(~~\mathbf{y}\)
예측벡터 : \(~~\hat{\mathbf{y}}=\hat{\boldsymbol{\mu}}= X \hat{\boldsymbol{\beta}}\)
오차벡터: \(~~\boldsymbol{\epsilon} = \mathbf{y} - \boldsymbol{\mu}\)
잔차벡터: \(~~\mathbf{e} = \mathbf{y} - \hat{\mathbf{y}}\)
제곱거리: \(~~ S(\boldsymbol{\beta}) =\sum_j \left( y_j - \mu_j \right)^2 = \| \boldsymbol{\epsilon} \|^2\)
최소제곱거리: \(~~ S(\hat{\boldsymbol{\beta}}) =\sum_j \left( y_j -\hat{y}_j \right)^2 = \| \mathbf{e} \|^2\)
사영공간: 행렬 \(X=(\mathbf{x}_1 , \ldots, \mathbf{x}_k )\) 에 의하여 생성되는 열공간 \(Col(X)\)
잔차벡터 \(\mathbf{e}\) 는 열공간 \(Col(X)\) 의 모든 원소와 직교
즉,\(~~ \mathbf{x}_j ' ({\mathbf{y}}- X \hat{\boldsymbol{\beta}} ) =0, ~j=1,\ldots,k,~~\) (식6)
정규방정식: (식6)을 정리하여, \(~~X ' ({\mathbf{y}}- X \hat{\boldsymbol{\beta}} ) =\mathbf{0}\)
\(\boldsymbol{\beta}\) 의 값이 \(\hat{\boldsymbol{\beta}}\) 일 때, \(S(\boldsymbol{\beta})\) 가 최소화 됨
제곱거리의 최소화와 정규방정식의 해법:
제곱거리 : \(~~ S(\boldsymbol{\beta}) = \sum_j \left( y_j - \mathbf{x}_j ' \boldsymbol{\beta} \right)^2 =\left( \mathbf{y} - X \boldsymbol{\beta} \right)' \left( \mathbf{y} - X \boldsymbol{\beta} \right)\)
제곱거리 \(S(\boldsymbol{\beta})\) 를 벡터 \(\boldsymbol{\beta}\) 로 미분하면,
\((\partial S(\boldsymbol{\beta}))/(\partial \boldsymbol{\beta}) = -2 \, X' ({\mathbf{y}}- X \boldsymbol{\beta} )\) 이므로,
최적 모수벡터 \(\hat{\boldsymbol{\beta}}\) 는 정규방정식 \(~X' X \hat{\boldsymbol{\beta}} = X' \mathbf{y}\) 의 근이다
기하학적 해석인 사영을 이용한 접근법과 동일한 정규방정식이 얻어짐
정규방정식의 풀이:
\((X'X)^{-1}\) 이 존재하면, \(~\hat{\boldsymbol{\beta}} = (X' X )^{-1} X' {\mathbf{y}}\)
\((X'X)^{-1}\) 이 존재하지 않으면,
\(\hat{\boldsymbol{\beta}} = (X' X )^{-} X' {\mathbf{y}} + (I-(X'X)^{-} X'X) \mathbf{z}\)
\(~~ = X^{-} {\mathbf{y}} + (I-X^{-}X) \mathbf{z},~~\mathbf{z} \in I\!\!R^k ~~\) (why?)
사영행렬: \(P\) 혹은 \(H\)
정규방정식의 해: \(\hat{\boldsymbol{\beta}} = (X' X )^{-} X'{\mathbf{y}}\)
예측벡터: \(\hat{\mathbf{y}}= X \hat{\boldsymbol{\beta}} = X (X' X )^{-} X'{\mathbf{y}}\)
사영행렬: \(P= X (X' X )^{-} X'\)
\(P\) 는 대칭성과 정규성을 만족함
만약 \((X' X )^{-1}\) 이 존재하면, \(P\) 는\(X (X' X )^{-1} X'\) 와 동일함
예측벡터: \(\hat{\mathbf{y}}= P {\mathbf{y}}\)
모자행렬: \(P\) 가 \({\mathbf{y}}\) 에 모자(hat) 을 씌우므로 hat matrix \(H\) 라고도 함
\(\qquad \qquad \qquad \alpha \begin{pmatrix}1 \\ 1 \\ 1 \end{pmatrix}+ \beta \begin{pmatrix} 2 \\ -1 \\ 2 \end{pmatrix}\)
library(plotly, warn.conflicts = FALSE, quietly = TRUE)
xsn <- seq(-3,6,l=181)
ysn <- seq(-3,4,l=141)
grid <- expand.grid( x=xsn, y=ysn )
zf <- function(g) {
res<- NA ; if( 4*(g[1]-2)^2 + 9*(g[2]-0.5)^2 < 50 ) res <-g[1]; res }
zmat <- t(matrix(apply(grid,1,zf),nrow=length(xsn)))
z1 <- seq( 2-sqrt(50/4), 2+sqrt(50/4), l=100 )
z1q <- (50-4*(z1-2)^2); z1q[z1q<0] <-0
z2p <- 0.5 + sqrt(z1q/9)
z2n <- 0.5 - sqrt(z1q/9)
z11 <- c(z1,rev(z1))
z22 <- c(z2p,z2n)
p1 <- plot_ly(z=~zmat,x=xsn, y=ysn,opacity = 0.8) %>%
add_surface(showscale=FALSE) %>%
add_markers(x=0, y=0, z=0, color=I('yellow')) %>%
add_markers(x=1, y=1, z=1, color=I('red')) %>%
add_markers(x=2, y=-1, z=2, color=I('red')) %>%
add_trace(x=c(0,1),y=c(0,1),z=c(0,1), type='scatter3d',
mode='lines',line=list(width=12,color='red')) %>%
add_trace(x=c(0,2),y=c(0,-1),z=c(0,2), type='scatter3d',
mode='lines',line=list(width=12,color='red')) %>%
add_trace(x=z11, y=z22, z=z11, type='scatter3d',
mode='lines',line=list(width=16 ,color='white')) %>%
layout(title="Projection : Column Space",
scene=list(xaxis=list(title="x"),
yaxis=list(title="y"), zaxis=list(title="z")),
showlegend=FALSE )
p1
p2 <- p1 %>%
add_markers(x=0.5, y=1, z=5.5, color=I('blue')) %>%
add_trace(x=c(0,0.5),y=c(0,1),z=c(0,5.5), type='scatter3d',
mode='lines',line=list(width=12,color='blue')) %>%
layout(title="Projection : y-value")
p2
관측벡터의 열공간으로의 사영
예측벡터: \(\hat{\mathbf{y}} = (3,1,3)'\)
잔차벡터: \(\mathbf{e} = (-2.5,0,2.5)'\)
X<- matrix(c(1,1,1,2,-1,2),3,2)
y <-matrix(c(0.5,1,5.5),ncol=1)
P <- X %*% solve(t(X) %*% X) %*% t(X)
( yhat <- P %*% y )
## [,1]
## [1,] 3
## [2,] 1
## [3,] 3
y-yhat
## [,1]
## [1,] -2.5
## [2,] 0.0
## [3,] 2.5
X<- matrix(c(1,1,1,2,-1,2),3,2)
P <- X %*% solve(t(X) %*% X) %*% t(X)
p3 <- p2 %>%
add_markers(x=3, y=1, z=3, color=I('black')) %>%
add_trace(x=c(0,3),y=c(0,1),z=c(0,3), type='scatter3d',
mode='lines',line=list(width=8,color='black')) %>%
add_trace(x=c(0.5,3),y=c(1,1),z=c(5.5,3), type='scatter3d',
mode='lines',line=list(width=8,color='grey')) %>%
layout(title="Projection : y-hat & residul" )
p3
\(\qquad \qquad \qquad \hat{\mathbf{y}} = (5/3) \begin{pmatrix}1 \\ 1 \\ 1 \end{pmatrix}+ (2/3) \begin{pmatrix} 2 \\ -1 \\ 2 \end{pmatrix}\)
solve(t(X) %*% X) %*% t(X) %*% y
## [,1]
## [1,] 1.6666667
## [2,] 0.6666667
p4 <- p3 %>%
add_markers(x=5/3, y=5/3, z=5/3,
color=I('pink'),marker=list(size=6)) %>%
add_markers(x=4/3, y=-2/3,z=4/3,
color=I('pink'),marker=list(size=6)) %>%
add_trace(x=c(0,5/3),y=c(0,5/3),z=c(0,5/3), type='scatter3d',
mode='lines', line=list(width=4,color='pink')) %>%
add_trace(x=c(0,4/3),y=c(0,-2/3),z=c(0,4/3), type='scatter3d',
mode='lines',line=list(width=4,color='pink')) %>%
add_trace(x=c(5/3,3),y=c(5/3,1),z=c(5/3,3), type='scatter3d',
mode='lines',line=list(width=4,color='pink')) %>%
add_trace(x=c(4/3,3),y=c(-2/3,1),z=c(4/3,3), type='scatter3d',
mode='lines',line=list(width=4,color='pink')) %>%
layout(title="Projection : Regression coefficients")
p4
다중 선형회귀모형
\(\mathbf{Y} = X \boldsymbol{\beta}+\boldsymbol{\epsilon}\),
\(\boldsymbol{\epsilon} ~\sim~ N_n ( \mathbf{0}, \sigma^2 I)\), \(~~n\) 차원 다변량 정규분포
설명변수 행렬 \(X_{n \times k}\) 는 비확률적이고, \(n > k\) 이다
다중 선형회귀모형의 표현법:
벡터표현법: \(\mathbf{Y} = X \boldsymbol{\beta}+\boldsymbol{\epsilon}\), \(~~\boldsymbol{\epsilon} ~\sim~ N_n ( \mathbf{0}, \sigma^2 I)\),
원소표현법: \(Y_j = \mathbf{x}_j ' \boldsymbol{\beta}+ \epsilon_j\), \(~~\epsilon_j ~\stackrel{iid}{\sim}~ N(0, \sigma^2),~~j=1,\ldots,n\)
다중 선형회귀모형에서 설명변수 행렬 \(X\)
\(X=(\mathbf{x}_1, \ldots, \mathbf{x}_k)\) 라고 표현하거나
\(X=(\mathbf{x}_0, \ldots, \mathbf{x}_p)\) 라고 표현하거나
위는 같은 의미로 사용될 수 있는 표현법이고, \(k=p+1\) 인 관계가 있다
\(\mathbf{x}_0\) 대신 \(\mathbf{1}\) 을 사용하면 \(y\)-절편이 있는 모형임을 명확하게 나타낼 수 있다
다중 선형회귀모형에서 회귀계수 \(\boldsymbol{\beta}\) 는
\(\boldsymbol{\beta}=(\beta_1 , \ldots, \beta_k )'\) 라고 표현하거나
\(\boldsymbol{\beta}=(\beta_0 , \ldots, \beta_p )'\) 라고 표현하거나
위는 같은 의미로 사용될 수 있는 표현법이고, \(k=p+1\) 인 관계가 있다
\(y\)-절편이 있는 경우 \(y\)-절편 값인 \(\alpha\) 는 \(\beta_0\) 에 해당한다
다중 선형회귀모형에서의 열공간과 역행렬:
열공간 \(Col(X)= \{ X \boldsymbol{\beta} | \boldsymbol{\beta} \in I\!\!R^k \}\)
열공간의 차원은 \(~rank(X)=r, ~\) (\(r \leq k\))
\(P=X(X'X)^{-} X'\) 일 때, \(~rank(P)=r\)
\(rank(X)=k\) 라면 (즉 \(r=k\) 라면), \(~(X'X)^{-1}\) 이 존재하고,
\(P=X(X'X)^{-1} X'\) 인 관계가 성립함.
추정량, 예측량
\(\hat{\boldsymbol{\beta}} = (X' X)^{-} X' \mathbf{y}\)
\((X' X)^{-1}\) 이 존재하면, \(~~\hat{\boldsymbol{\beta}} = (X' X)^{-1} X' \mathbf{y}\) 이고 유일함
\((X' X)^{-1}\) 이 존재하지 않으면, \(~\hat{\boldsymbol{\beta}}\) 은 다양함
\(\hat{\mathbf{y}} = X (X' X)^{-} X' \mathbf{y} = P \mathbf{y}\)
\((X' X)^{-1}\) 의 존재하면, \(~~\hat{\mathbf{y}}= X (X' X)^{-1} X' \mathbf{y}\) 임.
\((X' X)^{-1}\) 의 존재여부와 관련 없이, \(~\hat{\mathbf{y}}\) 은 유일함
\(\hat{\sigma}^2 = SSE /(n-r)\), \(~~SSE~\) 는 잔차제곱합 \(~\sum_j e_j^2\)
trees 자료에 대하여, 다중 선형회귀를 해보자
원자료의 변수 이름, Girth, Height, Volume 를 간략하게 g, h, v 로 바꾸어 사용하자
names(trees)<- c('g','h','v')
head(trees)
## g h v
## 1 8.3 70 10.3
## 2 8.6 65 10.3
## 3 8.8 63 10.2
## 4 10.5 72 16.4
## 5 10.7 81 18.8
## 6 10.8 83 19.7
행렬을 이용하여 사영 방법을 이용해보고,
R 의 lm 함수로 다중 회귀를 해서 그 결과를 비교해보자
회귀계수와 예측벡터, 등을 비교해면, 그 결과가 동일함을 볼 수 있다
X <- as.matrix(cbind(1, trees[,-3]))
y <- matrix(trees[,3],ncol=1)
head(X)
## 1 g h
## [1,] 1 8.3 70
## [2,] 1 8.6 65
## [3,] 1 8.8 63
## [4,] 1 10.5 72
## [5,] 1 10.7 81
## [6,] 1 10.8 83
head(y)
## [,1]
## [1,] 10.3
## [2,] 10.3
## [3,] 10.2
## [4,] 16.4
## [5,] 18.8
## [6,] 19.7
res <-lm(v~ g+h , trees)
summary(res) # summary of lm output
##
## Call:
## lm(formula = v ~ g + h, data = trees)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.4065 -2.6493 -0.2876 2.2003 8.4847
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -57.9877 8.6382 -6.713 2.75e-07 ***
## g 4.7082 0.2643 17.816 < 2e-16 ***
## h 0.3393 0.1302 2.607 0.0145 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.882 on 28 degrees of freedom
## Multiple R-squared: 0.948, Adjusted R-squared: 0.9442
## F-statistic: 255 on 2 and 28 DF, p-value: < 2.2e-16
P = X %*% solve(t(X) %*% X) %*% t(X)
dim(P)
## [1] 31 31
beta_hat = solve(t(X) %*% X) %*% t(X) %*% y
yhat = P %*% y
I = diag(ncol(P)) # identity matrix, unit matrix
e = (I-P) %*% y # residulas
beta_hat
## [,1]
## 1 -57.9876589
## g 4.7081605
## h 0.3392512
sum(e*e) # sse
## [1] 421.9214
mse = sum(e*e)/(nrow(X)-ncol(X)) # mse
sqrt(mse)
## [1] 3.881832
head( cbind( predict(res), yhat, resid(res), e ) )
## [,1] [,2] [,3] [,4]
## 1 4.837660 4.837660 5.4623403 5.4623403
## 2 4.553852 4.553852 5.7461484 5.7461484
## 3 4.816981 4.816981 5.3830187 5.3830187
## 4 15.874115 15.874115 0.5258848 0.5258848
## 5 19.869008 19.869008 -1.0690084 -1.0690084
## 6 21.018327 21.018327 -1.3183270 -1.3183270
잔차제곱합 SSE 의 성질:
다중 회귀분석의 가정으로부터, \(~\boldsymbol{\epsilon} ' \boldsymbol{\epsilon} ~\sim ~ \sigma^2 \, \chi^2 (n)\)
\(SSE\) : 최소제곱거리 \(S(\hat{\boldsymbol{\beta}})=\mathbf{e}'\mathbf{e}\), 모형의 적합결여도
\(E(SSE) = E(\boldsymbol{\epsilon}'(I-P)\boldsymbol{\epsilon}) = \sigma^2 (n-r)\)
\(Cov(\boldsymbol{\epsilon}) = E(\boldsymbol{\epsilon}\boldsymbol{\epsilon}')= \sigma^2 I\)
\(\mathbf{e} = \mathbf{y}-\hat{\mathbf{y}} = (I-P)\mathbf{y} = (I-P)\boldsymbol{\epsilon},~~\) (why?)
\(SSE = \mathbf{e}'\mathbf{e} =\boldsymbol{\epsilon}'(I-P)\boldsymbol{\epsilon},~~\) (why?)
\(E(SSE)=tr(E(SSE))=E(tr(SSE))\)
\(=E(tr(\boldsymbol{\epsilon}'(I-P)\boldsymbol{\epsilon})=E(tr((I-P)\boldsymbol{\epsilon}\boldsymbol{\epsilon}')),~~\) (why?)
\(=tr((I-P)E(\boldsymbol{\epsilon}\boldsymbol{\epsilon}'))= \sigma^2 (n-r)\)
\(SSE = \sum_j (y_j-\hat{y}_j )^2 ~\sim ~ \sigma^2 \, \chi^2 (n-r)\)
By Cochran theorem:
어떤 사영행렬 \(P\) 가 있고, \(~rank(P)=r~\) 이라 하면,
\(A=\boldsymbol{\epsilon} 'P \boldsymbol{\epsilon}\) 이고 \(B=\boldsymbol{\epsilon} ' (I-P) \boldsymbol{\epsilon}\) 라 하면,
\(A\) 와 \(B\) 는 독립이고,
\(A ~\sim ~ \sigma^2 \, \chi^2 (r)\), \(B ~\sim ~ \sigma^2 \, \chi^2 (n-r)\), \(A+B ~\sim ~ \sigma^2 \, \chi^2 (n)\)
\(\hat{\boldsymbol{\beta}}~\) 의 표본분포:
\((X'X)^{-1}\) 이 존재하면,
\(\hat{\boldsymbol{\beta}} ~\sim~ N_k \left( \boldsymbol{\beta}, \sigma^2 (X'X)^{-1} \right)\)
\(E(\hat{\boldsymbol{\beta}})= \boldsymbol{\beta},~~\) unbiased estimator!
\(Cov(\hat{\boldsymbol{\beta}})= \sigma^2 (X'X)^{-1}\)
\((X'X)^{-1}\) 이 존재하지 않으면, \(~\hat{\boldsymbol{\beta}}\) 의 표본분포는 없음 \(~~\) (why?)
\(\hat{\sigma}^2~\) 의 표본분포:
\(\hat{\sigma}^2 ~\sim ~ \sigma^2 (n-r)^{-1} \cdot \chi^2 (n-r)\)
\(r=rank(X)\)
\(E(\hat{\sigma}^2)= \sigma^2,~~\) unbiased estimator!
\(Var(\hat{\sigma}^2)= 2 \sigma^4 (n-r)^{-1}\)
참고) \(~~Q~\sim~ c\cdot \chi^2 (k)~\) 이면, \(~E(Q)= c k\), \(~Var(Q)= c^2 2k\)
\(\hat{\mathbf{y}}= X \hat{\boldsymbol{\beta}}~\) 의 표본분포:
\(X \hat{\boldsymbol{\beta}}~ \sim~ N_n (X\boldsymbol{\beta}, \sigma^2 \,P )\),
여기서 \(P=X(X'X)^{-}X'\) 이고,
\(\hat{\mathbf{y}}\) 의 표본분포의 존재와 형태는 \((X'X)^{-1}\) 의 존재 여부와 무관함
만약 \((X'X)^{-1}\) 가 존재하는 경우라면, \(~P=X(X'X)^{-1}X'~\) 임
\(\hat{\mathbf{y}}\) 과 표본분포의 의미:
\(\boldsymbol{\mu}=E(\mathbf{Y})\) 의 추정값, 즉 \(~\hat{\boldsymbol{\mu}}~\) 과, 그 표본분포
관측값 \(y_i\) 는 설명변수가 \(~\mathbf{x}_i'~\) 일 때 얻어진 값이다.
관측값으로 얻어진 \(~\mathbf{y}~\) 와 동일한 설명변수들인 \(X= \{ \mathbf{x}_i'\}\) 가 주어진
경우에서의 예측값들 \(~\hat{\mathbf{y}}~\) 에 대한 추정량과 그 표본분포
\(\hat{y}(\mathbf{x})\) 와 그 분포:
새로운 설명변수 값 \(\mathbf{x}'\) 가 주어진 경우에서,
추정값: \(~\mathbf{x}\) 의 함수로써의 추정값, \(~\hat{y}(\mathbf{x})= \mathbf{x} ' \hat{\boldsymbol{\beta}}\)
예측값: 미지의 확률적 값에 대한 예측값, \(~\hat{y}(\mathbf{x})= \mathbf{x} ' \hat{\boldsymbol{\beta}}+ \epsilon\)
분포:
추정값: \(~\mathbf{x}' \hat{\boldsymbol{\beta}}~ \sim~ N ( \mathbf{x}' \boldsymbol{\beta}, \sigma^2 \,h )\)
예측값: \(~\mathbf{x}' \hat{\boldsymbol{\beta}}+\epsilon ~ \sim~ N ( \mathbf{x}' \boldsymbol{\beta}, \sigma^2 \,(1+h) )\)
여기서 \(~h= \mathbf{x}' (X'X)^{-} \mathbf{x}~\) 이고,
\(\mathbf{x}'\) 가 행렬 \(X\)의 행공간에 존재하면, 즉 \(~\mathbf{x}' \in Row(X)~\) 이면
\(\hat{y}(\mathbf{x})\) 의 분포의 존재와 형태는 \((X'X)^{-1}\) 의 존재 여부와 무관함
만약 \((X'X)^{-1}\) 가 존재하는 경우라면, \(h= \mathbf{x}' (X'X)^{-1} \mathbf{x}~\) 임
(참고: 사영행렬의 동일성 )
설명변수 행렬이 Full column rank 가 아닌 경우의 회귀계수와 예측벡터
행렬/벡터의 구성, trees 데이터에서,
행렬 X 는, 종속변수로 사용될 v 변수 열을 제거한 행렬
행렬 X1 행렬 X 에, 1 벡터를 열벡터로 추가한 행렬이다
행렬 X2 는 X1 에, h 변수 열을 h2 라는 이름으로 중복시킨 행렬
벡터 y 는 v 변수에 해당한다
일반화 역행렬 (Moore-Penrose 역행렬)의 비교
행렬 X1 에 대하여,
\(X_1' X_1 ~\) 의 역행렬을 계산한 결과
\(X_1' X_1 ~\) 의 일반화 역행렬을 계산한 결과
행렬 X2 에 대한, \(X_2' X_2 ~\) 의 일반화 역행렬 (Moore-Penrose 역행렬)
회귀계수
lm() 을 이용하여, y 와 X 사이의 회귀계수를 구한 결과
행렬 X1 을 이용하여 계산한 회귀계수
행렬 X2 를 이용하여 계산한 회귀계수
사영행렬
행렬 X1 로부터 구한 사영행렬 P1
행렬 X2 로부터 구한 사영행렬 P2
P1 과 P2 의 동일성을 확인한다
library(MASS, warn.conflicts = FALSE, quietly = TRUE)
trees <- trees; rm(trees); names(trees)<-c('g','h','v')
X <- as.matrix(trees[,-3])
X1 <- as.matrix(cbind(1, X))
X2 <- as.matrix(cbind(X1, h2=trees[,2]))
y <- matrix(trees[,3],ncol=1)
cbind(X[1:3,], NA, X1[1:3, ], NA, X2[1:3, ], NA, y[1:3])
## g h g h g h h2
## [1,] 8.3 70 NA 1 8.3 70 NA 1 8.3 70 70 NA 10.3
## [2,] 8.6 65 NA 1 8.6 65 NA 1 8.6 65 65 NA 10.3
## [3,] 8.8 63 NA 1 8.8 63 NA 1 8.8 63 63 NA 10.2
solve(t(X1) %*% X1)
## g h
## 4.95194293 0.028680223 -0.069732257
## g 0.02868022 0.004634518 -0.001185265
## h -0.06973226 -0.001185265 0.001124146
ginv(t(X1) %*% X1)
## [,1] [,2] [,3]
## [1,] 4.95194293 0.028680223 -0.069732257
## [2,] 0.02868022 0.004634518 -0.001185265
## [3,] -0.06973226 -0.001185265 0.001124146
ginv(t(X2) %*% X2)
## [,1] [,2] [,3] [,4]
## [1,] 4.95194293 0.0286802230 -0.0348661287 -0.0348661287
## [2,] 0.02868022 0.0046345176 -0.0005926323 -0.0005926323
## [3,] -0.03486613 -0.0005926323 0.0002810365 0.0002810365
## [4,] -0.03486613 -0.0005926323 0.0002810365 0.0002810365
lm(y~X)
##
## Call:
## lm(formula = y ~ X)
##
## Coefficients:
## (Intercept) Xg Xh
## -57.9877 4.7082 0.3393
ginv(t(X1) %*% X1) %*% t(X1) %*% y
## [,1]
## [1,] -57.9876589
## [2,] 4.7081605
## [3,] 0.3392512
ginv(t(X2) %*% X2) %*% t(X2) %*% y
## [,1]
## [1,] -57.9876589
## [2,] 4.7081605
## [3,] 0.1696256
## [4,] 0.1696256
P1 <- (X1 %*% solve(t(X1) %*% X1) %*% t(X1))
P2 <- (X2 %*% ginv(t(X2) %*% X2) %*% t(X2))
dim(P1)
## [1] 31 31
dim(P2)
## [1] 31 31
cbind(P1[1:3,1:3],NA, P2[1:3,1:3])
## [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,] 0.1158288 0.1154809 0.1140760 NA 0.1158288 0.1154809 0.1140760
## [2,] 0.1154809 0.1472096 0.1592206 NA 0.1154809 0.1472096 0.1592206
## [3,] 0.1140760 0.1592206 0.1768619 NA 0.1140760 0.1592206 0.1768619
sum(abs(P1-P2))
## [1] 1.230906e-10
가설 검정, t- 검정
\((X'X)^{-1}\) 가 존재할 때, \(~~\beta_j\) 에 대한 가설검정을 할 수 있음
\(\beta_j\) 에 대한 추정 검정을 논할 때는, 항상 \(~rank(X_{n \times k}) = k~\) 를 가정함
\((X'X)^{-1}\) 의 원소들을 \(w_{ij}\) 라 하면, \(~\hat{\beta}_j ~\sim~ N(\beta_j , \, \sigma^2 w_{jj} \,)\), \(j=1,\ldots,k\)
\((\hat{\beta}_j- \beta_j) / se(\hat{\beta}_j) ~\sim~ t(n-k),~\) 여기서 \(~se(\hat{\beta}_j) = \hat{\sigma} \sqrt{w_{jj}}\),
가설검정: \(H_0 : \beta_j =0\) vs. \(H_1 : \beta_j \neq 0\)
\(t = \hat{\beta}_j / se(\hat{\beta}_j)\) 는 \(~H_0 : \beta_j =0\) 가정 하에서 \(t(n-k)\) 분포를 따름
R 의 summary table 에는 이 \(t\) 값들이 정리되어 제시됨
\(t\) 의 절대값, \(|t|\) 가 클수록, \(H_1\) 을 지지함
p-value: Pr(>|t|) 로 표시됨. 작을수록 (보통은 0.05 이하), \(H_1\) 을 지지함
가설 검정, Anova table 에 의한 F-검정:
비교 가능한 모형
Reduced Model (Model R) : Model F 에서의 모수 일부를 0으로 설정한 모형
Full Model (Model F) : 다중 회귀분석 모형
가설검정의 형태로 표현하면, \(~~H_0\): Model R \(~~\) vs. \(~~H_1\): Model F
예) 모형의 비교와 가설 검정
비교 대상 모형들
M0: \(~~~y_j = \beta_0 + \epsilon_j\)
M1: \(~~~y_j = \beta_0 + \beta_1 x_{1j} +\epsilon_j\)
M2: \(~~~y_j = \beta_0 + \beta_2 x_{2j} +\epsilon_j\)
M12: \(~~y_j = \beta_0 + \beta_1 x_{1j} + \beta_2 x_{2j} +\epsilon_j\)
모형의 비교와 검정 가설
M0 와 M1 의 비교: \(~~\) \(~H_0 : \beta_1 =0 \qquad \quad\) vs \(~~~H_1 : \beta_1 \neq 0\)
M0 와 M2 의 비교: \(~~\) \(~H_0 : \beta_2 =0 \qquad \quad\) vs \(~~~H_1 : \beta_2 \neq 0\)
M0 와 M12 의 비교: \(~~\) \(H_0 : \beta_1 =\beta_2 =0 ~~\) vs \(~~~H_1 : \mbox{not} ~H_0\)
M1 와 M12 의 비교: \(~~\) \(H_0 : \beta_2 =0 \qquad \quad\) vs \(~~~H_1 : \beta_2 \neq 0\)
M2 와 M12 의 비교: \(~~\) \(H_0 : \beta_1 =0 \qquad \quad\) vs \(~~~H_1 : \beta_1 \neq 0\)
분포들 사이의 일반적인 관계:
정규분포와 카이제곱분포:
카이제곱분포의 성질:
\(Q ~\sim~ \chi^2 (k) ~\) 이면, \(~~E(Q)=k, ~~ Var(Q)=2k\)
\(Q ~\sim~ c \cdot \chi^2 (k) ~\) 이면, \(~~E(Q)= c\, k, ~~ Var(Q)=2k \, c^2\)
카이제곱분포와 t-분포:
t-분포의 성질:
Cauchy 분포: 자유도가 1인 t-분포, 즉, \(t(1)\)
표준정규분포: 자유도가 무한대인 t-분포, 즉, \(t(\infty)\)
t-분포의 자유도가 커질수록 표준정규분포로 수렴 함
자유도 25 이상이면 표준정규분포라고 보아도 무방함
카이제곱분포와 F-분포:
\(Q ~\sim~ \sigma^2 \cdot \chi^2 (q)~\) 이고, \(R ~\sim~ \sigma^2 \cdot \chi^2 (r)\) 이고, \(~Q\) 와 \(R\) 이 독립
이 조건이 만족되면, \(~~(Q/q)/(R/r) ~\sim~ F(q,r)\) 이다
F-검정의 방법:
기호 :
\(SSE(M)\): 모형 \(M\) 의 잔차제곱합,
\(df.r(M)\): 모형 \(M\) 의 잔차의 자유도
\(df.m(M)\): 모형 \(M\) 의 자유도, \(~rank(X)\), \(~n-df.r(M)\)
Anova table 에서의 Model R 과 Model F 의 SSE:
Model R : \(~SSE_R = SSE(Model\,\, R),~~\) \(d_R=df.r(Model \,\, R)\)
Model F : \(~SSE_F = SSE(Model\,\, F),~~\) \(d_F=df.r(Model \,\, F)\)
\(SSE_R ~\sim ~ \sigma^2 \, \chi^2 (d_R ),~\) 이고, \(~~SSE_F ~\sim ~ \sigma^2 \, \chi^2 (d_F)\)
가설의 검정:
\(Q ~\sim~ \sigma^2 \cdot \chi^2 (q)\)
여기서 \(~Q = SSE_R - SSE_F~\) 이고, \(~~q= d_R - d_F~\) 임
\(\hat{\sigma}^2 = SSE_F /d_F\)
통계량 \(~F=Q/(q \cdot \hat{\sigma}^2 )~\) 는, F-분포 \(~F(d, d_F)\)를 따름
\(\boldsymbol{\beta}\) 의 신뢰구간:
\((X'X)^{-1}\) 가 존재하는 경우만을 고려하므로, \(~rank(X_{n \times k}) = k~\) 임
\((X' X)^{1/2} (\hat{\boldsymbol{\beta}} - \boldsymbol{\beta}) ~\sim ~ N_k ( \mathbf{0}, \sigma^2 I )\)
\(SSE ~\sim ~ \sigma^2 \cdot \chi^2 (n-k), ~\) 이고 \(~~ \hat{\sigma}^2 = MSE = SSE/(n-k)\)
\(Q = (\hat{\boldsymbol{\beta}} - \boldsymbol{\beta}) ' (X' X) (\hat{\boldsymbol{\beta}} - \boldsymbol{\beta})\) 라면, \(~~ Q ~\sim ~ \sigma^2 \cdot \chi^2 (k)~\) 이고,
\(F = Q/(k \cdot \hat{\sigma}^2 )~\) 라면, \(~~F~ \sim~ F(k,n-k)~\) 이다
\(100(1-\alpha)\%\) 신뢰구간: \(~~\{ \boldsymbol{\beta} \,| \, F \leq F_{\alpha/k} (k,n-k) \}\)
by applying Bonferroni simultaneous confidence interval [참고: wiki]
일반적인 선형가설에 대한 F-검정:
선형가설: \(H_0 : C \boldsymbol{\beta}= \mathbf{d}~\) vs. \(~H_1 : C \boldsymbol{\beta} \neq \mathbf{d}\),
\(\qquad \qquad\) 여기서 \(~rank(C_{q \times k}) = q~\) (\(q \leq k\)) 이고, \(~\mathbf{d} \in I\!\!R^q\)
예) 가설에 대한 다음 두 가지 표현은 동일한 의미다
\(H_0 : ~\beta_1 - \beta_2 =0\), 이고 \(~\beta_0 = 2.3\)
\(H_0 : C \boldsymbol{\beta}= \mathbf{d}~~\), 여기서 \(~ C=\begin{pmatrix} 0 & 1 & -1 \\ 1 & 0 & 0 \end{pmatrix}, ~~~ \mathbf{d}=\begin{pmatrix}0 \\ 2.3 \end{pmatrix}\)
\(C ( \hat{\boldsymbol{\beta}}- \boldsymbol{\beta}) ~\sim~N_q (\boldsymbol{0}, \sigma^2 C (X'X)^{-1} C' )~\) 이므로, \(~~\) (why?)
\(Q(\boldsymbol{\beta}) =( \hat{\boldsymbol{\beta}}- \boldsymbol{\beta})' C' [C (X'X)^{-1} C']^{-1} C ( \hat{\boldsymbol{\beta}}- \boldsymbol{\beta})~~\sim~~ \sigma^2 \cdot \chi^2 (q)\)
\(H_0 : C \boldsymbol{\beta}= \mathbf{d}~\) 가정 하에서,
\(~~Q(\mathbf{d}) ~ \sim ~ \sigma^2 \cdot \chi^2 (q)\)
\(\hat{\sigma}^2 = MSE~\) 이므로, \(~~Q(\mathbf{d}) / (q \cdot \hat{\sigma}^2)~\sim~ F(q,n-k)\)
변동의 분해에 의한 F-검정과 동일한 방법으로 가설을 검정할 수 있음
Reduced Model (Model R): \(~~H_0 : C \boldsymbol{\beta}= \mathbf{d}\)
Full Model (Model F): \(~~H_1 : C \boldsymbol{\beta} \neq \mathbf{d}\)
\(Q(\mathbf{d}) = SSE(Model \,\,R) - SSE(Model \,\, F)~\) 인 관계가 성립
iris 데이터를 예로 들어, R 을 이용하여 다중 회귀분석을 수행하는 과정을 살펴보자
먼저 간단하게 다중 선형회귀분석을 실시하기 위한 과정을 살펴보고,
그 결과로 나타나는 summary table 과 anova table 의 의미를 이해하는 방법을 살펴본다.
names(iris)<-c('sl','sw','pl','pw','sp')
iris[sort(sample(1:150,6)),]
## sl sw pl pw sp
## 13 4.8 3.0 1.4 0.1 setosa
## 26 5.0 3.0 1.6 0.2 setosa
## 29 5.2 3.4 1.4 0.2 setosa
## 54 5.5 2.3 4.0 1.3 versicolor
## 84 6.0 2.7 5.1 1.6 versicolor
## 133 6.4 2.8 5.6 2.2 virginica
res <- lm(sl~sw+pl, data=iris)
res
##
## Call:
## lm(formula = sl ~ sw + pl, data = iris)
##
## Coefficients:
## (Intercept) sw pl
## 2.2491 0.5955 0.4719
iris 자료에서의, 다중 회귀모형의 예:
종속변수: ‘sl’
독립변수로: ‘sw’, ‘pl’
회귀모형: \(~~sl_j = \beta_0 + \beta_1 sw_j + \beta_2 pl_j + \epsilon_j\)
추정 회귀계수: \(~~ \hat{\beta}_0=2.2491, ~~ \hat{\beta}_1=0.5955, ~~ \hat{\beta}_2=0.4719\)
summary(res)
##
## Call:
## lm(formula = sl ~ sw + pl, data = iris)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.96159 -0.23489 0.00077 0.21453 0.78557
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.24914 0.24797 9.07 7.04e-16 ***
## sw 0.59552 0.06933 8.59 1.16e-14 ***
## pl 0.47192 0.01712 27.57 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.3333 on 147 degrees of freedom
## Multiple R-squared: 0.8402, Adjusted R-squared: 0.838
## F-statistic: 386.4 on 2 and 147 DF, p-value: < 2.2e-16
summary table, t-검정:
가설: \(\quad H_0 : \beta_0 =0 \quad\) vs. \(\quad ~ H_1 : \beta_0 \neq 0\)
\(se(\hat{\beta}_0 )= 0.24797\), \(\quad~~ t = \hat{\beta}_0 / se(\hat{\beta}_0) = 9.07\)
p-value: \(7.04 \times 10^{-16}, ~~\) 결론: \(H_1 : \beta_0 \neq 0~\) 이 옳다
가설: \(\quad H_0 : \beta_1 =0 \quad\) vs. \(\quad ~ H_1 : \beta_1 \neq 0\)
\(se(\hat{\beta}_1 ) = 0.06933\), \(\quad~~ t = \hat{\beta}_1 / se(\hat{\beta}_1) = 8.59\)
p-value: \(1.16 \times 10^{-14}, ~~\) 결론: \(H_1 : \beta_1 \neq 0~\) 이 옳다
가설: \(\quad H_0 : \beta_2 =0 \quad\) vs. \(\quad ~ H_1 : \beta_2 \neq 0\)
\(se(\hat{\beta}_2 ) = 0.01712\), \(\quad~~ t = \hat{\beta}_2 / se(\hat{\beta}_2) = 27.57\)
p-value: \(< 2 \times 10^{-16}, ~~\) 결론: \(H_1 : \beta_2 \neq 0~\) 이 옳다
summary table, F-검정:
가설: \(\quad H_0 : \beta_1 = \beta_2 =0 \quad\) vs. \(\quad ~ H_1 : not ~H_0\)
\(\hat{\sigma}= 0.333\), \(\quad F = 386.4, ~~\) \(~F ~\sim ~ F(2,147)\)
p-value: \(< 2.2 \times 10^{-16}, ~~ \quad\) 결론: \(H_1\) 이 옳다
R 에서의 anova 함수:
Model 1, Model 2, … : 다중 선형회귀모형들.
anova(Model 1, Model 2, …) : 앞 뒤 모형 사이에 포함관계가 있으면 F- 검정을 수행
anova(Model 1) : Model 1 에 명시된 변수의 순서에 따라, 가장 단순한 모형에서 부터 변수를
추가하며 순차적으로 부분 모형을 형성하고, 전후 부분 모형들을 비교하는 F-검정을 수행함
\(\hat{\sigma}^2\) 의 추정은 가장 큰 모형 (다른 모형들을 포함하는 모형) 의 MSE 로 구함
anova(res)
## Analysis of Variance Table
##
## Response: sl
## Df Sum Sq Mean Sq F value Pr(>F)
## sw 1 1.412 1.412 12.714 0.0004902 ***
## pl 1 84.427 84.427 760.059 < 2.2e-16 ***
## Residuals 147 16.329 0.111
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
anova(lm(sl~sw,iris))
## Analysis of Variance Table
##
## Response: sl
## Df Sum Sq Mean Sq F value Pr(>F)
## sw 1 1.412 1.41224 2.0744 0.1519
## Residuals 148 100.756 0.68078
ANOVA table, F-검정:
비교 모형:
M0: \(sl_j = \beta_0 + \epsilon_j\)
M1: \(sl_j = \beta_0 + \beta_1 sw_j +\epsilon_j\)
M2: \(sl_j = \beta_0 + \beta_1 sw_j + \beta_2 pl_j + \epsilon_j\)
\(\hat{\sigma}^2 = SSE(M2)/df.r(M2)=16.329/146=0.111\)
변동의 분해
\(SSE(M0) = 1.412 + 84.427 + 16.329 = 102.168 = SST\)
\(SSE(M1) = 84.427 + 16.329 = 100.756\)
\(SSE(M2) = 16.329\)
\(SSR(M1|M0)= SSE(M0) - SSE(M1) = 1.412,~~\) sw 변수에 의한 추가설명력
\(SSR(M2|M1)= SSE(M1) - SSE(M2) = 84.427,~~\) pl 변수에 의한 추가설명력
다중 회귀모형에 대한 ANOVA Table 에서의 가설검정
\(H_0 : \beta_1 =0~\), vs \(~~H_1 : \beta_1 \neq 0,~~\) ( M0 vs M1)
\(\hat{\sigma}^2~\)을 모형 M2 에서 추정할 때, \(\hat{\sigma}^2 = 16.329/147\)
F=12.714, 자유도 (1, 147) 인 F-분포 이용, p-value=0.0004902
\(H_0 : \beta_2 =0~\), vs \(~~H_1 : \beta_2 \neq 0,~~\) ( M1 vs M2)
\(\hat{\sigma}^2~\)을 모형 M2 에서 추정할 때, \(\hat{\sigma}^2 = 16.329/147\)
F=760.059, 자유도 (1, 147) 인 F-분포 이용, p-value \(< 2.2 \times 10^{-16}\)
보통의 가설 검정 (단순 선형회귀 모형):
\(H_0 : \beta_1 =0~\), vs \(~~H_1 : \beta_1 \neq 0,~~\) ( M0 vs M1)
\(\hat{\sigma}^2~\)을 모형 M1 에서 추정할 때, \(\hat{\sigma}^2 = 100.756/148\)
F=2.0744, 자유도 (1, 148) 인 F-분포 이용, p-value=0.1519
anova(lm(sl~pl+sw,iris))
## Analysis of Variance Table
##
## Response: sl
## Df Sum Sq Mean Sq F value Pr(>F)
## pl 1 77.643 77.643 698.985 < 2.2e-16 ***
## sw 1 8.196 8.196 73.787 1.163e-14 ***
## Residuals 147 16.329 0.111
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
변수 순서에 따른 변동의 분해:
비교 모형:
M0: \(sl_j = \beta_0 + \epsilon_j\)
M1: \(sl_j = \beta_0 + \beta_1 pl_j +\epsilon_j\)
M2: \(sl_j = \beta_0 + \beta_1 pl_j + \beta_2 sw_j + \epsilon_j\)
변동의 분해
\(SSE(M0) = 77.643 + 8.196 + 16.329 = 102.168 = SST\)
\(SSE(M1) = 8.196 + 16.329 = 100.756\)
\(SSE(M2) = 16.329\)
\(SSR(M1|M0)= SSE(M0) - SSE(M1) = 77.643,~~\) pl 변수에 의한 추가설명력
\(SSR(M2|M1)= SSE(M1) - SSE(M2) = 8.196,~~\) sw 변수에 의한 추가설명력
변동의 분해에서 추가설명력은, 기존에 어떤 변수가 들어가 있는 지에 따라 달라짐
res0 <- lm(sl~1,iris)
res2 <- lm(sl~sw+pl,iris)
res3 <- lm(sl~sw+pl+pw,iris)
anova(res0, res2, res3)
## Analysis of Variance Table
##
## Model 1: sl ~ 1
## Model 2: sl ~ sw + pl
## Model 3: sl ~ sw + pl + pw
## Res.Df RSS Df Sum of Sq F Pr(>F)
## 1 149 102.168
## 2 147 16.329 2 85.840 433.791 < 2.2e-16 ***
## 3 146 14.445 1 1.883 19.035 2.413e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
여러 모형의 비교: 비교할 모형을 직접 명시함
비교 모형:
M0: \(sl_j = \beta_0 + \epsilon_j\)
M2: \(sl_j = \beta_0 + \beta_1 sw_j + \beta_2 pl_j + \epsilon_j\)
M3: \(sl_j = \beta_0 + \beta_1 sw_j + \beta_2 pl_j + \beta_3 pw_j + \epsilon_j\)
변동의 분해
\(SSE(M0)=102.168\)
\(SSR(M2|M0)= SSE(M0) - SSE(M2) = 16.329,~~\) pl 변수에 의한 추가설명력
\(SSR(M3|M2)= SSE(M2) - SSE(M3) = 14.445,~~\) pw 변수에 의한 추가설명력
자유도의 변화
\(df.r(M0)=149\)
\(df(M2|M0)= df.r(M0) - df.r(M2) = 2,~~\) \(M2\) 모형에 추가된 설명변수의 개수
\(df(M3|M2)= df.r(M2) - df.r(M3) = 1,~~\) \(M3\) 모형에 추가된 설명변수의 개수
[old lecture note]
R 의 mtcars 데이터:
32 종류의 자동차에 대하여, 그 특성을 정리한 자료이다
mtcars 자료에서,
mpg 를 종속변수로 하는 가장 좋은 다중 회귀모형을 구성하시오
가장 좋은 모형이란 무엇을 의미하는 지 먼저 그 의미를 정하고
그 의미에 맞는 가장 좋은 다중 회귀모형을 구성하시오
다음 두 그림에 나타나는 다음 현상에 대하여 설명하시오
두 그림에서 나타나는 직선의 기울기가 음수와 양수로 바뀌는 현상
나타나는 직선들에서 주위의 회색 띠가 무엇을 의미하는 지 설명하고,
그 띠의 중앙부는 얇고, 가장자리가 두껍게 나타나는 현상
library(ggplot2)
p = ggplot(iris) + geom_point(aes(x=sw,y=sl,col=sp))
p1 = p + stat_smooth(method='lm', aes(x=sw,y=sl),col='red')
p1
## `geom_smooth()` using formula 'y ~ x'
p2 = p + stat_smooth(method='lm',aes(x=sw,y=sl,col=sp))
p2
## `geom_smooth()` using formula 'y ~ x'