그룹을 분리하는 PCA 구성 요소 선택


13

PCA를 사용하여 다변량 데이터를 진단하는 데 자주 사용했습니다 (수십만 개의 변수와 수십 또는 수백 개의 샘플이있는 omics 데이터). 데이터는 종종 일부 그룹을 정의하는 몇 가지 범주 형 독립 변수를 사용한 실험에서 나온 것이므로 관심 그룹 사이의 분리를 나타내는 요소를 찾기 전에 종종 몇 가지 구성 요소를 거쳐야합니다. 나는 그러한 차별적 인 구성 요소를 찾는 다소 원시적 인 방법을 생각해 냈습니다.

  1. 이것이 어느 정도 합리적이고 정당한지, 그리고
  2. 이를 달성하는 더 좋은 방법이 있는지 여부.

이것은 탐색 적입니다. 다른 사람을 설득하기 전에 자신을 설득하고 싶습니다. 관심 그룹 (예 : 제어 대 치료)을 명확하게 구분하는 구성 요소가있는 경우 응답 분산의 작은 부분을 담당하더라도 감독 된 기계의 결과보다 더 신뢰할 수 있습니다. 배우기.

여기 내 접근 방식이 있습니다. R에서 pca3d의 "metabo"예제 데이터 세트를 사용하겠습니다.

아이디어는 독립 변수에 의해 각 성분의 분산이 얼마나 많은지를 설명하는 것입니다. 이를 위해 각 구성 요소에 대한 간단한 모델을 계산하고 를 메트릭으로 사용하여 구성 요소를 "가장 흥미로운"에서 "가장 흥미로운 것"으로 정렬합니다.R2

require( pca3d )
# data on metabolic profiles of TB patients and controls
data( metabo )
# first column is the independent variable
pca <- prcomp( metabo[,-1], scale.= T ) 

# create a model for each component
lm.m <- lm( pca$x ~ metabo[,1] )
lm.s <- summary( lm.m )
lm.r2 <- sapply( lm.s, function( x ) x$r.squared )
plot( lm.r2, type= "l" )
text( 1:length( lm.r2 ), lm.r2, 1:length( lm.r2 ), pos= 3 )

결과는 다음과 같습니다. 그림은의 독립 변수로 설명 된 각 성분의 분산 백분율을 보여줍니다 metabo[,1].

여기에 이미지 설명을 입력하십시오

로 구성 요소를 정렬하여 표시 할 구성 요소 를 찾을 수 있습니다 . 처음 세 구성 요소는 2, 1 및 7입니다.r2order( lm.r2, decreasing= TRUE )

pca3d( pca, components= c( 1, 2, 7 ), group= metabo[,1] )

줄거리는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

(빨간색과 녹색 범주는 환자가 아닌 두 그룹의 피험자이며, 구분할 수 없을 것으로 예상됩니다.)

내 질문을 재구성하기 위해

  1. 이 방법이 당신에게 의미가 있습니까? 내 문제는 데이터 준설처럼 너무 많이 보인다는 것입니다. 또한 직관적으로 테이블을 돌리고 독립 변수의 분산 부분이 각 변수로 설명되는 부분을 물어봐야한다고 생각합니다. 마지막으로, 나는 바퀴를 재발견하고 있다고 확신합니다.
  2. 더 좋은 것이 있습니까?

이 단계에서 부분 최소 제곱 또는 이와 유사한 것으로 전환하고 싶지는 않습니다. 내 분류의 맥락에서 PCA를 진단하고 싶습니다.


2
흥미로운 질문에 대해 두 가지 의견 만 남기고 싶습니다. 1) 코드를 표시하는 것 외에 접근 방식 을 단어로 설명 하십시오 (여기서는 사람들이 반드시 R이 아닌 다양한 소프트웨어를 사용한다는 것을 기억하십시오). 2) 산점도는 바닥에 스파이크가 없으면 설득력이 없습니다. 또한, 당신의 접근 방식에 대해 특별한 의혹 이 있다면 질문에보다 집중하도록 말하십시오.
ttnphns 2018 년

1
편집 : 분명히하기 위해 먼저 PCA를 수행 한 다음 특정 변수로 가장 잘 설명되는 주요 구성 요소를 격리하려고합니까? 스크린 샷으로 교차 유효성을 검사합니까? 데이터 세트에서 선택 한 일부 x가 주성분의 편차를 많이 설명하는 경우가있을 수 있지만 주성분을 따라 분산이 매우 낮을 경우 그 의미가 확실하지 않습니다.
shadowtalker

1
@ ssdecontrol 글쎄, 나는 계산 된 가 배경 잡음보다 훨씬 높은지 확인하기 위해 가난한 사람 무작위 화를하고 있습니다 . 그것이 무엇을 의미하는지에 관해서는-요점은 실제로 실제로한다는 것입니다. 어쨌든 및 / 또는 감독 기계 학습의 모든 고전적인 분석을 수행하고 있기 때문에 PCX가 분류 자에 의해 상당 부분 설명되어 있음을 볼 때마다 (i)이 분류 자 ​​그룹간에 다른 여러 변수를 찾고 ( ii) SML을 성공적으로 훈련 할 수 있다는 것입니다. R2
1 월

2
to find out what share of the overall variance in the data matrix is explained by a given classification이것을 알고 싶다면 PCA가 필요하지 않습니다. (SStotal-SSwithin)/SStotalSSwithin은 그룹 내 합산의 합입니다 . 여기서 그룹 간 제곱 대 총 제곱합의 비율을 계산하십시오 .
ttnphns

1
PCA를 악용하는 방법에 문제가 없지만 실제로 필요한 이유 를 이해하지 못합니다 . (아마도 당신이 그것을 좋아하기 때문에?) 나는 당신의 정확한 목표를 볼 수 없기 때문에 나는 당신을 위해 아무 것도 말할 수 없습니다 Is there anything better?.
ttnphns

답변:


8

귀하의 질문 # 1에 대한 답변은 그렇습니다. 귀하의 솔루션은 데이터 준설에 해당합니다. 귀하의 질문 # 2에 대한 답변은 그렇습니다. 문헌에는 우수한 방법이 있습니다.

접근 방식의 주요 문제는 고차원 데이터 문제, 즉 때 발생하는 문제를 해결하지 않는다는 것 입니다. 귀하의 솔루션은 매우 임의적이며 이론적 근거가 없습니다. 아래에서 적절한 방법을 찾는 데 도움이 될 수있는 문헌을 제시하겠습니다.n<<p

독립 변수와 종속 변수를 교체하여 다변량 ( 다중 ) 회귀 분석 과 달리 큰 다변량을 생성 한 것을 제외하고는 주성분 회귀 분석과 유사한 분석을 실행하고 있습니다 . 다변량 회귀 분석을 위해서는 표본 크기가 종속 변수의 수보다 커야하며, 이는 예제에서 철저히 위반하는 요구 사항입니다.

데이터에서 PCA를 실행 한 다음 다변량 회귀를 사용하려는 경우 적절한 방법을 사용해야합니다. 예를 들어 MRCE 및 관련 방법을 살펴보십시오 [1].

그러나 몇 가지 당황스러운 의견에도 불구하고 현재 제시된 분석의 모든 목표는 대규모 연속 변수 세트 (metabo [,-1])와 단일 범주 변수 (metabo [ ,1]). PCA는이를 달성하기위한 좋지 않은 방법입니다. 고차원 적 경우에는이 문제에 대한 두 가지 일반적인 해결책이 있습니다. 첫째, 희소성을 가정하는 솔루션과 요인 구조를 가정하는 솔루션입니다.

희소성 기반 솔루션은 일반적으로 매우 작은 비율의 변수 만 실제로 관심있는 범주 형 변수와 관련이 있다고 가정하고이 작은 하위 집합을 찾으려고 시도합니다. 예를 들어 DALASS [2]를 참조하십시오. 요인 구조 기반 방법은 판별 변수가 범주 형 변수와 실제 관계가있는 기본 잠재 변수의 표현이라고 가정합니다. 이 클래스의 메소드의 예는 DLDA입니다 [3].

내가주의 하지 반드시 내가 당신의 데이터에 대해 언급 한 모든 방법을 추천; 적절한 방법을 선택할 때 문제에 대한 목표와 사전 지식을 신중하게 고려해야합니다.

[1] Rothman, Levina, Zhu (2010). 공분산 추정을 통한 스파 스 다변량 회귀. 전산 및 그래픽 통계 저널, 19 권, 4 호, 947 ~ 962 쪽.

[2] Nickolay T. Trendafilov, Ian T. Jolliffe, DALASS : LASSO, 전산 통계 및 데이터 분석, 제 51 권, 2007 년 5 월 1 일, 페이지 3718-3736을 통한 판별 분석의 변수 선택.

[3] 유양 (2001). 얼굴 인식 응용 프로그램이있는 고차원 데이터를위한 직접 LDA 알고리즘. 패턴 인식 34, 2067-2070.


2
이 답변을 수여하기 위해 새로운 현상금을 시작했습니다.
1

1
@January : 이것은 좋은 답변입니다,하지만 난 "직접 LDA는"아주 이상한 알고리즘이라고 지적하고 싶습니다 최상의 참조 직접 LDA는 LDA 일치하지 않는 이유는 가오 데이비스, 2005, "우리가 그것을 보여줍니다. .. D-LDA는 일반 응용 분야에서 상당한 성능 제한을 부과 할 수 있으므로주의하십시오.
amoeba는 Reinstate Monica가

@amoeba 인용에 감사드립니다. 특정 방식으로 구성 요소를 선택하는 데 대한 정당성이 없기 때문에 DLDA에 대해 한동안 걱정했습니다. 필자는 이것이 얼굴 차별 문제를 넘어 일반화 할 필요는없는 문제 별 솔루션이라고 생각하지만, 어떤 구성 요소가 차별에 가장 유용한 지에 대한 지식이 있으면 어떤 문제에도 쉽게 적용 할 수 있습니다. 가정 된 요인 구조로 고차원 식별을 구현하는 모든 솔루션에는 문제가 있습니다 ... 더 나은 접근 방법을 찾았습니까? 나는 당신의 의견에 관심이 있습니다.
ahfoss

@ahfoss : 저는 전문가가 아니지만 "직접 LDA"는 경우에 LDA를 적용하려는 시도 중 하나입니다 . 보다 표준적인 접근법은 최적의 정규화 매개 변수를 찾기 위해 교차 검증과 함께 정규화 된 LDA (rLDA)를 사용하는 것입니다. 그러나 실제로 얼굴 인식에서 어떻게 수행되는지는 알 수 없습니다. nk
amoeba는 Reinstate Monica

4

@ahfoss는 이미 PCA와 유사하게 LDA를 지적했습니다. 실제로이 두 방법은 서로 관련이 있으며 PLS 와도 관련이 있습니다.

nature of dependent variable (for supervised)     unsupervised    supervised
or structure of data (unsupervised)
continuous                                        PCA             PLS
factor/groups/classes                                             LDA

PCA는 점수의 분산-공분산 행렬이 가되도록 데이터를 투영 합니다. LDA는 비슷한 프로젝션을 수행하지만 전체 데이터 세트 의 분산 공분산 행렬 대신 풀링 된 클래스 내 분산 공분산 행렬은 됩니다.II

@ahfoss도 말했듯이, 일반적인 LDA는 적합하지 않습니다 . 그러나 PLS-LDA는이를 처리 할 수있는 방법입니다 (예 : Barker, M. & Rayens, W .: 차별을위한 부분 최소 제곱, J Chemom, 17, 166-173 (2003) 참조). DOI : 10.1002 / cem.785 (이 백서에서는 PLS와 LDA의 관계에 대해서도 설명합니다).np

PLS는 LASSO와 같은 정규화로 볼 수 있으며 스파 스 PLS도 사용할 수 있습니다 (사용하지는 않았지만 데이터는 희소성을 가정하지 않는 일반 PLS에 더 적합합니다). 다양한 정규화 방법에 대한 자세한 내용 은 통계 학습 요소를 참조하십시오 .

PLS-LDA를 수행하는 한 가지 좋은 특징은 두 단계 모두에 동일한 센터링을 사용할 경우 최종 모델을 이중선 형태로 작성할 수 있다는 것입니다. 따라서 케이스가 더 많고 경우 계산할 수있는 LDA 모델을 해석 할 때와 같은 방식으로 모델을 해석 할 수 있습니다 . PCA를 수행해야하는 경우 PCA-LDA에도 적용됩니다.np

PLS 점수 데이터 행렬 PLS 가중치 이고 일반적인 LDA의 경우 점수 데이터 매트릭스 LDA 계수 입니다.T=X×W
L=X×B

그런 다음 PLS (X-) 점수 공간에서 LDA를 수행하면 다음과 같이 나타납니다. 대시는 이러한 LDA 점수 ( )가 정규화없이 획득 한 LDA 점수와 (약간) 다를 수 있으며 계수 . 는 원래 데이터 공간이 아닌 PLS 점수 공간에 적용되므로 와 매우 다릅니다 .
L(n×k1)=T(n×m)B(m×k1)
L(n×k1)=X(n×p)W(p×m)B(m×k1)
L(n×k1)=X(n×p)B(p×k1)
B ' B ' BLBBB

실용 참고 사항 : R에서 근무하는 경우 PLS-LDA 및 PCA-LDA 모델을 제공하는 패키지가 개발 중입니다. 시도해보고 싶으면 알려주십시오.


데이터 준설을 피하려면 독립적 인 데이터로 최종 모델의 유효성을 검사해야합니다 (= 성능 측정).

여기서 독립적이라는 것은이 사례 (환자?)가 어떤 식 으로든 모델 피팅에 기여하지 않았 음을 의미합니다. 특히,

  • 센터링 또는 표준화와 같은 여러 사례를 포함하는 전처리에 참여하지 않았습니다.
  • PCA / PLS / ... 계산에 들어 가지 않았습니다.
  • 하이퍼 파라미터 추정에는 사용되지 않았습니다.

사례가 거의 없으므로 리샘플링 전략이 적합합니다. 이 상황에서는 하이퍼 파라미터 최적화를위한 훈련 데이터의 두 번째 내부 분할을 피하기 위해 외부 지식으로 하이퍼 파라미터 (PC 또는 PLS 잠재 변수 수 또는 LASSO 바운드 수와 같은)를 수정하는 것이 가장 좋습니다.


교차 검증 모델의 경우 +1 아주 중요한. 그러나 차별에 관심이 없다고 말한 OP @January의 의견을 듣고 싶습니다. 문제는 차별 / 분류 분석에 매우 적합합니다.
ahfoss

나는 k- 평균 / PCA / 등이 같은 가족에 속한다는 당신의 주장에 동의하지 않습니다. 이것은 그것들이 동일한 모델이나 알고리즘의 특별한 경우임을 의미하며, 이는 사실이 아닙니다. PCA 알고리즘은 간단한 행렬 계산 인 반면 k- 평균은 EM 알고리즘과 비교 된 반복 알고리즘입니다 (우수 함수가 없기 때문에 기술적으로는 정확하지 않지만 일부 측면에서는 여전히 유용한 비교입니다).
ahfoss

1
plsgenomics :: pls.lda 함수를 참조하고 있습니까? 그렇지 않은 경우 패키지가 어떻게 달라 지거나 향상됩니까? 또한 PLS-LDA는 일반적으로 더미 코딩 된 결과 변수를 사용하여 PLS를 간단히 실행하는 데 일반적으로 사용되는 기술보다 우수하다는 것을 독자들에게 지적합니다. 후자의 접근 방식이 반드시 올바르지는 않지만, 반드시 0보다 작거나 1보다 큰 예측 확률을 얻을 수 있기 때문에 확실하지 않습니다!
ahfoss

@ahfoss : 동일한 기본 모델이 다른 알고리즘으로 계산 될 수 있기 때문에 알고리즘을 의미하지 않았습니다. 예를 들어 PCA의 경우 반복 (NIPALS, POWER) 또는 비 반복 (EVD, SVD) 알고리즘을 사용할 수 있습니다. k- 평균 대신에 더 나은 용어는 "클러스터 내부의 제곱합을 최소화하는 클러스터 분석, 예를 들어 k- 평균은 휴리스틱 근사"일 수 있습니다. 나는 지금 시간이 없다, 나중에 답변을 살펴 보거나 대화방에서 만나 더 나은 설명을 찾을 수 있습니다.
SX에 불만족 cveleites

1
... 기술적 차이점은 pls::plsrpls에 사용한다는 것입니다 (다른 알고리즘 중에서 선택할 수 있음). 그리고 모델을 뒤집거나 회전하는 등의 후 처리 기능이 많이 있습니다. 때로는 해석에 유용합니다.
SX에 불만족
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.