Datascience/Linear Algebra

[개발자를 위한 실전 선형대수학] 10장 일반 선형 모델 및 최소제곱법

hchanryu 2024. 2. 6. 18:25

 

개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science)

10장 일반 선형 모델 및 최소제곱법: 우주를 이해하기 위한 방법

 

 

 

 


 

우주를 이해하는 방법: 수학적인 근거를 바탕으로 이론을 개발하고, 데이터를 수직해 그 이론을 검증하고 개선함

 

통계적 모델: 일반적인 수학적 모델과 달리, 데이터에 적합시키는 자유 매개변수가 존재

▶ 모델을 데이터에 적합해서 자유 매개변수를 찾는 것 = 선형대수학적 문제

 

일반 선형 모델

- 통계 모델은 예측 변수(독립변수 independent variable)를 관측값(종속변수 dependent variable)과 연관시키는 방정식의 집합

 

용어

선형대수학 통계 설명
$Ax=b$ $X \beta = y$  일반 선형 모델(GLM)
$A$ $X$ 설계 행렬(열 = 독립변수, 예측변수, 회귀변수)
$x$ $\beta$ 회귀계수 또는 베타 매개변수
$b$ $y$ 종속변수, 결과 측정값, 데이터

 

 

GLM을 구축하는 과정

  1. 독립변수와 종속변수를 연관시키는 방정식 정의
  2. 관찰된 데이터를 방정식에 대입
  3. 일련의 방정식을 행렬 방정식으로 변환
  4. 해당 방정식을 해결

GLM의 풀이

미지 계수 $\beta$ 벡터를 구하려면, 방정식의 양번에 설계행렬의 왼쪽 역행렬을 곱함.

 

$$X\beta = y$$

$$ (X^TX)^{-1}XX^T\beta=(X^{T}X)^{-1}X^{T}y$$

$$ \beta=(X^{T}X)^{-1}X^{T}y$$

 

최소제곱법(least square solution)

$$\beta = (X^TX)^{-1}X^Ty$$

 

X_leftinv = np.linalg.inv(X.T@X)@X.T

#미지계수를 구한다
beta = X_leftinv@y

 

최소제곱법

 

예측된 데이터와 관측된 데이터 간의 제곱 오차에 대한 계산

예측된 $i$번째 데이터 점마다 오차 항이 있으며, 이를 $\epsilon_i=X_i \beta-y_i$ 로 정의함

 

설계 행렬의 독립변수를 결합할 때, 모든 오차를 하나의 벡터에 담을 수 있음.

$$\epsilon=X\beta-y$$

 

오차의 제곱합을 최소화하는 찾는다.

$$||\epsilon||^2=||X\beta-y || ^2$$

$$\begin{align} 0 = \frac{d}{d\beta}||X\beta - y||^2 & = 2X^T(X\beta-y)\end{align}$$

$$0=X^TX\beta - X^Ty$$

$$X^TX \beta = X^Ty$$

$$\beta = (X^TX)^{-1}X^Ty$$

 

QR 분해를 통한 최소제곱법

$$X\beta = y$$

$$QR\beta = y$$

$$R\beta = Q^Ty$

$$\beta = R^{-1}Q^Ty$$