기본 콘텐츠로 건너뛰기

SIMCA를 활용한 OMICS 데이터 해석 고급편

 SIMCA를 사용하면서 자주 받는 문의 사항을 위주로 오랜만에 업데이트를 올리게 되었습니다. 최근 대사체학 분석에서 많은 분들이 저희 소프트웨어를 사용해 주시면서 사용하는 기능의 범위가 많이 늘어남을 저 역시 많이 체감하고 있습니다. ^^; 이번 포스팅에는 기존에 올렸던 포스팅들과 엮어서 OMICS 분석 시에 가장 많이 보시는 기능들, 그리고 해석법에 대해 정리해보도록 하겠습니다. 

시작하기에 앞서서 OMICS 분석에 연관된 기존 포스팅들을 같이 참고 부탁드립니다. 


  1. SIMCA에서 Permutation Test를 통한 PLS, PLS-DA 모델의 유효성 검증(sartoriusda.blogspot.com)
  2. CV-ANOVA를 이용한 PLS, OPLS 모델 검증 (sartoriusda.blogspot.com)
  3. Classification 기능을 통해 OPLS-DA 모델을 평가하는 방법 (sartoriusda.blogspot.com)


이번 포스팅에는 OPLS-DA에서 주로 사용되는 VIP값, 특히 VIPcvSE에 대한 고찰과, Coomans 그래프를 알아보도록 하겠습니다. 


VIP의 경우 SIMCA 매뉴얼에서도 상당히 복잡한 수식을 가지고 정의하고 있습니다. 보통 VIP를 사용하는 경우라면, 분석하고 있는 모델의 Y와 가장 연관성이 높은(Variable Importance) X를 찾는 경우가 될텐데요, 우선 수식을 간단하게 파헤쳐 보도록 합시다. 

(수식 해석에 오류가 있다면 꼭 알려주세요!)


특정 PLS차원(a)의 가중치 제곱(wa2)에 설명된 Y 변동값(SSYcomp,a)을 모두 더한 값을 설명된 Y변동의 전체 합(SSYcum)으로 나눈 후에 변수(X)의 개수(K)를 곱한 후 Square Root를 한 값입니다. 말이 복잡하지만, 이 계산을 통해 모든 변수에 대한 VIP값의 평균을 1로 만들 수 있습니다. 따라서 VIP가 1이상인 값은 Y를 설명함에 있어 중요도가 있다고 볼 수 있습니다. 

하지만 이렇게 계산된 VIP는 샘플들의 데이터 분포에 따른 편차가 나타나기 마련입니다. VIP Plot에서 工모양의 표식을 통해 그 부분을 확인할 수 있고, 해당 그래프에서 우클릭 > Create > List로 아래와 같은 표를 얻을 수 있습니다. 


익숙하게 보던 VIP값 옆에 VIP[a]cvSE값이 바로 工모양에 해당하는 값입니다. 이 값은 해당 변수 데이터의 모집단 기반의 표준오차 값으로, SIMCA에서는 Jack knife 방식의 교차 검증을 통해 계산을 수행합니다. 해당 VIP에 대한 신뢰성을 보다 더할 수 있는 값으로 정해진 기준은 없지만 적을 수록 좋은 값이며, VIP>1이면서 VIPcvSE가 1이하인 경우 상당히 신뢰도가 높은 결과라고 생각할 수 있겠습니다. 

다음으로는 Coomans 그래프인데요, 이전 포스팅에서 나머지 툴들 (Permutation, Misclassification, ROC등)에 대한 소개를 했기 때문에 이 툴에 대한 소개만 드리고 마치도록 하겠습니다. 기존에 소개 드린 툴들은 주로 과적합에 대한 검증이나, Classification의 정도를 수치화한 결과를 보여주는데, Coomans 그래프는 기존의 툴에 Prediction vs. Training 기능을 더했다고 보실 수 있겠습니다. 


이 그래프에 대한 해석 방법은 아래의 예시 그림을 확인해 주시면 됩니다. 위 그래프에서 우측 상단의 영역에 해당하는 샘플이 있다면, 이는 그 어떤 Class에도 속하지 않을 가능성이 높은 것으로 간주할 수 있겠습니다. 

Chemometric contributions to the evolution of metabonomics: mathematical solutions to characterising and interpreting complex biological NMR spectra - Analyst (RSC Publishing)

실제 SIMCA에서 Coomans 그래프를 활용하기 위해서는 Prediction OPLS-DA와 Training OPLS-DA 모델이 각각 1개씩 필요합니다. 여기에 사용된 2개의 Class는 Prediction과 Training 에서 그 이름이 모두 같아야만 합니다. 예시에서는 Model 2와 Model 3을 각각 비교한 자료이며, 각각의 축에 1개의 모델이 들어가야 하는 만큼 Prediction과 Training으로 나눠서 모델을 작성하는 편이 가장 좋을 것 같다고 생각합니다. 


오늘 포스팅은 여기까지 줄이며, 다음 번에도 유익한 자료로 찾아 뵙도록 하겠습니다~ 수정 요청 및 피드백은 언제든지 댓글로 남겨 주시면 감사하겠습니다. 

댓글