이번 글에서는 함수 데이터에서의 PCA인 FPC에 대해서 설명해 보도록 하겠다.
Mean Function
우선 Functional Data에서 Mean Function은 다음과 같이 정의한다.
Population level:
$$\mu(t) := E[X_n(t)]$$
Sample level:
$$\hat{\mu}(t) := \frac{1}{N} \sum_{n=1}^N X_n(t)$$
Sample level에서의 mean function 계산을 더 쉽게 하기 위해 $X_n(t)$의 basis expansion을 사용하면 아래와 같은 식으로 나타낼 수 있다.
$$\hat{\mu}(t) = \frac{1}{N} \sum_n \sum_m c_{nm} B_m(t) = \sum_m \bar{c}_m B_m(t) \quad where \quad \bar{c}_m = \frac{1}{N} \sum_n c_{nm}$$
Covariance Function
Covariance Function은 다음과 같이 정의한다.
Population level:
$$C(t,s) := E[(X_n(t) - \mu(t))(X_n(s)-\mu(s))]$$
Sample level:
$$\widehat{C}(t,s) := \frac{1}{N-1} \sum_{i=1}^N (X_n(t) - \widehat{\mu}(t))(X_n(s)-\widehat{\mu}(s))$$
covariance function은 당신의 신장이 오늘과 10년 전에 어떤 dependent가 존재하는지 설명한다.
covariance function 역시 아래와 같이 식을 표현 할 수 있는데 결과적으로 이는 $\widehat{C}(t,s)$의 basis expansion이다. ($\tilde{c}_{nm} = c_{nm} - \bar{c}_m$)
$$\widehat{C}(t,s) = \frac{1}{N-1} \sum_n \sum_{m_1} \sum_{m_2} \tilde{c}_{nm_1} \tilde{c}_{nm_2} B_{m_1}(t) B_{m_2}(s)$$
$$ \quad \ \ = \frac{1}{N-1} \sum_{m_1} \sum_{m_2} ( \tilde{\mathbf{c}}^T \tilde{\mathbf{c}} )_{m_1, m_2} B_{m_1}(t) B_{m_2}(s)$$
$$ = \sum_{m_1} \sum_{m_2} (\boldsymbol{\Sigma}_c)_{m_1 m_2} B_{m_1}(t) B_{m_2}(s) \quad \ \ \ \ $$
여기서 $B_{m_1}(t) B_{m_2}(s)$는 tensor basis라 한다.
Functional Principal Components (FPC)
이 글에서 가장 중요한 부분인 FPC와 이것의 implication을 알아보자
직관적으로, 일반적인 PCA에서는 eigenvector를 추출하였는데, FDA에서는 eigenfunction을 추출한다고 생각할 수 있겠다.
FPC에서 eigenvalue/function pair $(\lambda_j, v_j)$는 다음을 만족한다.
Population:
$$\lambda_j v_j (t) = \int_0^1 C(t,s)v_j(s)\ ds \quad with \quad \int v_j(t)^2\ dt=1 \quad \cdots \quad (a)$$
Sample:
$$\widehat{\lambda}_j \widehat{v}_j (t) = \int_0^1 \widehat{C}(t,s) \widehat{v}_j(s)\ ds \quad with \quad \int \widehat{v}_j(t)^2 dt=1$$
위 식의 계산을 쉽게하기 위하여 다음의 orthonormal 가정 (b)와 basis expansion (c)를 추가한다.
$$\int B_{m_1}(t) B_{m_2}(t)\ dt = \mathbb{I}_{(m_1=m_2)} \quad \cdots \quad (b)$$
또한 eigenfunction $v_j(t)$를 Basis $B_j(t)$를 사용하여 basis expansion으로 표현하면, 다음과 같다.
$$ v_j(t) = \sum_m v_{jm} B_m(t) \quad \cdots \quad (c)$$
(a) 식의 좌변에 Basis를 곱한 후 t에 대해 적분하면
$$\lambda_j \int v_j(t) B_{m_1}(t)\ dt = \int_0^1 \int_0^1 C(t,s) v_j(s) B_{m_1}(t)\ ds\ dt \quad \dots \quad (d)$$
와 같이 쓸 수 있는데, 이때 좌변의 $v_j(t)$를 (c) 식과 같이 basis expansion을 사용하여 표현하면 아래와 같은 식이 된다.
$$\lambda_j \int v_j(t) B_{m_1}(t)\ dt = \lambda_j \sum_{m_2}v_{jm_2} \int B_{m_1}(t) B_{m_2}(t)\ dt$$
위 식의 우변 $\int B_{m_1}(t) B_{m_2}(t) \ dt$ 부분은 가정 (b)에 의해 $m_1 = m_2$인 경우 1이 된다. 따라서 위 식은 최종적으로 다음과 같다.
$$\lambda_j \int v_j(t) B_{m_1}(t)\ dt = \lambda_j \sum_{m_2}v_{jm_2} \int B_{m_1}(t) B_{m_2}(t)\ dt = \lambda_j v_{jm_2}$$
또한 식 (d)의 우변은 다음과 같이 쓸 수 있다
$$ \int_0^1 \int_0^1 C(t,s) v_j(s) B_{m_1}(t)\ ds\ dt \qquad \\ \qquad \qquad \qquad \ \ \ \ = \sum_{m_2} \sum_{m_3} ( \boldsymbol{\Sigma}_c )_{m_2 m_3} \int B_{m_2}(t) B_{m_1} (t) \ dt \int B_{m_3}(s) v_j(s)\ ds \\ = \sum_{m3} ( \boldsymbol{\Sigma}_c )_{m_1 m_3} \qquad \qquad \qquad \qquad \qquad$$
최종적으로 위 식을 종합해보면 eigenfunction $v_j$에 대한 coefficient $\mathbf{v}_j$는 다음을 만족한다.
$$\lambda_j \mathbf{v}_j = \mathbf{\Sigma}_c \mathbf{v}_j \quad and \quad \mathbf{v}_j^T \mathbf{v}_j = 1$$
위 결과가 주는 implication은 무엇일까? 우리는 처음에 functional data에 대한 integral로 식을 풀어가며 FPC를 시작했다. 그러나 마지막 식은 결국 $\mathbf{\Sigma}_c$에 대한 고윳값분해 결과와 같다.
따라서 Functional PC로 구한 eigenfunction과 covariance function이, $\mathbf{\Sigma}_c$를 고윳값분해 하는 문제와 같다는 결론을 내릴 수 있다.
Nonorthonormal basis
지금까지 orthonormal basis를 가정으로 가져가며 수식을 전개하였다. 그러나 basis가 nonorthonormal한 경우에는 어떻게 해야할까?
답은 간단하다. 이 basis를 그람슈미트 등의 선형변환을 통해 orthonormal하게 만들어주면 된다.
그렇다면 최종적으로 $\mathbf{W}$라는 basis transformation에 의해 $\tilde{\mathbf{v}}_j = \mathbf{W}^{-1} \mathbf{v}_j$의 결과를 얻을 수 있다.
'통계공부 > Functional Data Analysis' 카테고리의 다른 글
[FDA] 5. Hilbert spaces (2) | 2024.04.02 |
---|---|
[FDA] 4. Curve alignment (2) | 2024.03.17 |
[FDA] 3. Penalized smoothing (4) | 2024.03.15 |
[FDA] 2. Derivatives of Functional Data (3) | 2024.03.14 |
[FDA] 0. What is Functional Data Analysis (FDA)? (1) | 2024.03.05 |