\(X\)는 n \(\times\) p의 행렬이고, \(y\)는 n \(\times\) 1의 행렬이다.
우리는 보통 R의 lm 함수를 사용할 것이다. lm 함수를 직접 구현해보면서, 선형회귀의 핵심을 알아보자.
OLS 추정에 따르면, 오차를 최소화 하는 \(\hat \beta\)는 아래와 같다.
\[\hat \beta = (X^T X)^{-1}X^T y\]\(\hat \beta\)가 구해지면 예측값 \(X \hat \beta\) 를 구할 수 있고, 그러면 예측잔차 \(\hat \epsilon = y - X \hat \beta\)도 구해진다.
또한 회귀분석에서는 \(\hat \beta\)의 효과가 0과 다르다는 것을 검정하기 위해서, 회귀계수의 분산 \(sd(\hat \beta)\)을 알 필요가 있다. 이는 다음과 같다.
\[sd(\hat \beta) = \sqrt{\sigma^2 diag(X^T X)^{-1}}\]\(diag\)는 대각행렬의 원소를 의미한다.
다만, \(\sigma^2\) 가 알려지지 않았을 때는 \(s^2 = \frac{\Sigma_{i=1}^{n} \hat \epsilon^2}{(n-p)}\)로 대체 가능하다. 즉, 회귀계수의 분산식은 \[sd(\hat \beta) = \sqrt{s^2 diag(X^T X)^{-1}}, \hspace{10pt} s^2 = \frac{\Sigma_{i=1}^{n} \hat \epsilon^2}{(n-p)}\] 로 대체된다.
예제
\(X\)와 \(y\)가 아래와 같이 주어졌다고 하자.
n <-7p <-3X <-matrix(c(rep(1,n), -floor(n/2):floor(n/2), (0:(n-1))^2),nrow=n, ncol=p); X