예제: 주성분 분석 2
Nipals 및
Nipals2 함수를 사용하여 복잡한 데이터를 분석할 수 있습니다. 여기서는 복잡한 데이터의 예로 유효 투약 성분이 각기 다른 다섯 가지 정제에 대한 근적외선(NIR) 스펙트럼의 분석 결과를 사용합니다. 이 데이터는 Bruker Optics, Inc.에서 제공한 것입니다. 실제 투약을 알 수 없더라도 스펙트럼에 기초하여 각 투약을 구분하는 모델을 만들 수 있습니다. 추가로 정제를 생산할 때 품질을 제어할 목적으로 이 모델을 사용할 수 있습니다.
1. 다음과 같은 데이터 집합을 정의합니다.
이 데이터 집합은 임상시험에서 수행한 이중 맹검을 설명합니다.
첫째 열은 cm -1 단위의 파수(1/파장)입니다. 각 투약별로 다섯 개씩의 순차 스펙트럼이 있어 나머지 25개 열을 구성합니다.
3. max 및
match 함수를 사용하여 최대값과 해당 값이 포함된 스펙트럼을 구합니다. 데이터 값이 매우 작기 때문에
TOL 을 더 작은 값으로 설정합니다.
최대값은 데이터 행렬의 210행과 17열에 있습니다.
4. 각 투약별로 첫 번째 스펙트럼 두 개씩, 총 10개의 데이터 집합을 도표화합니다. 데이터 집합 쌍은 Data 행렬의 열 [1,2] , [6,7] , [11,12] , [16,17] 및 [21,22] 입니다.
◦ 가로 축에 대한 합리적인 배율을 얻으려면 파수를 1000으로 나눕니다. 마찬가지로, 스펙트럼 값이 작기 때문에 값에 1000을 곱합니다.
◦ 가로 마커를 사용하여 최대 스펙트럼 값을 표시합니다.
◦ 일반적으로 파수는 내림차순으로 도표화하는 것이 관례입니다. 따라서 파수를 올바른 순서로 표시하기 위해 Data<0> 이 반전됩니다.
◦ 투약 하나를 다른 투약과 쉽게 구분할 수 있도록 만드는 부분이 스펙트럼에 없습니다. 모든 스펙트럼은 동일한 기본 형태이고 가까운 흡광도 값을 갖습니다.
◦ 대부분의 데이터가 중복되어 있습니다. 각 스펙트럼마다 236개의 점이 있습니다. 이는 변수(빛의 특정 파장에 대한 흡광도)를 236번 측정했다는 의미입니다. 그러나 이렇게 많은 수의 점이 변동하는 데 상호 관련성이 있음을 도표에서 분명히 확인할 수 있습니다.
5. 각 정제(하위 행렬 S)에 대한 파수(열 0)와 스펙트럼을 나타내는 두 개의 데이터 집합으로 Data 행렬을 분할합니다. 일반적인 관례에 따라 각 열이 독립 변수에 상응하도록 각 정제에 대한 스펙트럼을 전치합니다.
6. 데이터에
Nipals 함수를 적용하기 전에 주성분의 수를 정의하고 최대 반복 횟수를 정의합니다.
Nipals 함수는 각 행에서 평균 스펙트럼을 빼는 방식으로 데이터를 중심에 배치합니다.
7. 다시 구성할 스펙트럼을 선택합니다.
8. Nipals 함수의 출력에서 점수(scores)와 로드(loadings)를 추출합니다.
9. mean 함수를 사용하여 평균 스펙트럼을 계산합니다.
10. 로드 벡터로 이루어진 행렬에 점수 행렬을 곱한 다음 평균 스펙트럼을 더해 원래 스펙트럼을 추정합니다.
11. 원래 스펙트럼과 다시 구성한 스펙트럼을 도표화합니다. 가로 및 세로 축을 배율 조정하여 합리적인 값을 얻습니다.
PCA에 주성분을 두 개만 사용해도 모든 스펙트럼이 제대로 표현됩니다.
12. 점수를 두 개의 행렬로 다시 정렬합니다. 행렬의 각 열은 다섯 가지 정제 투약 중 하나에 대한 점수를 나타냅니다.
13. 둘째 인수의 점수를 기준으로 첫째 인수의 점수를 도표화합니다. 각 투약을 표시하는 데 서로 다른 색상을 사용합니다.
데이터의 일부 그룹화가 분명해졌지만 한 투약을 다른 투약과 구분하는 것은 여전히 어렵습니다. 도표에 세 번째 점수를 추가하는 것이 도움이 될 수 있습니다.
14. 주성분 두 개로 만든 모델에 Nipals2 함수를 사용하여 주성분 네 개를 추가합니다.
NIPALS2 의 출력 행렬은 NIPALS 의 출력 행렬과 형태가 같지만 추가 주성분에 상응하는 열과 행이 더 추가되었습니다. 점수와 로드의 수가 이제 여섯 개로 늘었습니다.
15. NIPALS2 행렬에서 로드와 점수를 추출하여 선택된 스펙트럼에 대한 새 모델을 만듭니다.
16. 선택된 스펙트럼에 대해 두 모델을 도표화하고 비교합니다. 가로 및 세로 축을 배율 조정하여 합리적인 값을 얻습니다.
17. NIPALS2 에서 누적 분산을 추출합니다.
18. 주성분 수를 기준으로 누적 분산을 도표화합니다.
분산의 99%를 차지하는 것은 처음 두 개의 주성분(PC)이지만 투약별로 데이터를 그룹화하는 데 있어 중요한 역할을 하는 것은 셋째 PC입니다. 이와 같이 주성분 분석을 수행하면 관련성이 가장 높지는 않더라도 가장 주도적인 인수로 데이터를 압축할 수 있습니다.
식 복사