2009년 12월 30일 수요일

PLS 회귀분석을 위한 비선형 반복 부분최소제곱 알고리즘 (non-linear iterative partial least squares (NIPALS))

두 가지의 주어진 데이터 블럭( X: N x K 행렬, Y:N x M 행렬)에 대해서 Herman Wold의 알고리즘은 다음으로 축약된다:

  1. K-weight 벡터 w를 선택하자. 예를 들면, 행렬 X의 크기가 영이 아닌 열 벡터를 선택하자. 그리고 length가 1이 되게 정규화 하자.
  2. score 벡터를 계산하자 t = X w.
  3. Y-loading 벡터를 계산하자 q = Y^T t.
  4. Y-score 벡터를 계산하자 u = Y q.
  5. 새로운 weight 벡터를 계산하자 w1 = X^T u. w1의 length 1이 되도록 만들자.
  6. 만약 |w-w1|이 EPS보다 작다면(달리 말하자면, w와 w1이 서로 같다면), 수렴값이 구해 지는 것이고, 아니면 w=w1 수행하고, 위의 2번 과정에서 다시 시작한다.

  7. 이 반복과정의 결과물은 두 개의 score 벡터다. 하나는 행렬 X에 대한 t 벡터이고, 하나는 행렬 Y에 대한 u벡터이다. 이 결과물들이 훌룡한 선택이라면, 문제는 어떻게 다음 단계의 (t, u) score 벡터들을 얻어내야 하는 것이다. Svante는 행렬 X가  t score 벡터에 따라서 조절되어져야 하고, 행렬 Y의 t 벡터로의 regression이 계산되어지고, 동시에 행렬 Y는 찾아진 결과에 맞게 조절되어진다. 그 과정은 다음과 같이 주어진다.

  8. loading 벡터를 계산하자. p=X^T t / (t^T t)
  9. 행렬 X를 얻어진 결과에 대해 맞추자: Xnew = X - t p^T
  10. 행렬 Y의 t 벡터로의 regression을 계산하자: b = (Y^T t) / (t^T t)
  11. 행렬 Y 얻어진 결과에 대해 맞추자: Ynew = Y - t b^T
  12. 더 많은 (t,u) 가 필요하다면, 행렬을 X = Xnew, Y = Ynew 같이 치환해서 1과정으로 되돌아가자.
Harald가 제안한 방법은 약간 다르지만, 7.부터 10.까지의 과정은 동일하다. 하지만, 1. - 11. 의 과정은 1980년대에 알려진 PLS 회귀분석 알고리즘이다. 비록, H-method의 응용분야로써 표현하는 방식의 좀 더 명확하게 보여주지만, 몇몇 문헌에서는 아직도 가끔씩 이러한 방식으로 남아 있다.

PLS regression methods. Journal of Chemometrics, 2, 1988, p 211-228의 논문에서, 1.-6.의 과정은 |w| = |q|=1인 상태에서 (t^T u)을 최소화하는 X-weight 벡터 w와 Y-weight 벡터 q를 찾는 것과 동일하다. 더욱이, 다변량 분석법에서 이 방법과 Canonical Correlation 분석법 사이는 아주 유사하다. 이러한 유사성의 적용이 보여진다. 사실, distribution 이론은 Canonical Correlation방법의 그것과 같은 선상에 따라다닌다.

[출처 : http://www.predict.ws/H_principle/SvanteHarald.htm]


댓글 없음:

댓글 쓰기