유지할 주요 구성 요소 수 선택


10

나에게 제안 된 한 가지 방법은 스 크리 플롯을보고 올바른 팔 수의 PC를 결정하기 위해 "팔꿈치"를 확인하는 것입니다. 그러나 음모가 명확하지 않은 경우 R에 숫자를 계산하는 계산이 있습니까?

fit <- princomp(mydata, cor=TRUE)

3
내가 아는 것은 아닙니다. 먼저, "1-thumb-of-thumb 이상의 고유 값"또는 소위 Kayser 's 규칙을 참조하면,이를 만족하는 PC의 수를 찾을 수 있습니다 (일반적으로 차원 수를 과대 평가한다는 점을 명심하십시오). 더 정확하게 말하면 음모 플롯에서. 둘째, 병렬 분석은 구성 요소의 수를 결정하는 더 좋은 방법입니다. R 및 SPSS, SAS 및 MATLAB 프로그램의 구성 요소 및 요소 수를 확인 하려면 psyor 또는 psych패키지를 참조하십시오 . 병렬 분석 및 Velicer의 MAP 테스트를 보다 일반적으로 사용하십시오.
chl

답변:


10

다음 기사 : Cangelosi와 Goriely의 cDNA 마이크로 어레이 데이터 에 적용한 주요 구성 요소 분석에서 구성 요소 유지 는 연구에서 구성 요소의 수를 감지하기위한 표준 엄지 손가락 규칙에 대한 개요를 제공합니다. (분모 그림, 총 분산 비율 설명, 평균 고유 값 규칙, 로그 고유 값 다이어그램 등) 대부분 R에서 구현하기가 매우 간단합니다.

일반적으로 scree plot이 매우 결정적이지 않으면 "독을 선택"하면됩니다. 실제로 사용하는 PC의 수는 실제로 문제에 대한 이해에 달려 있기 때문에 모든 데이터에 대해 절대적인 권리 또는 잘못된 것은 없습니다. 차원을 "실제로"알 수있는 유일한 데이터 세트는 직접 구성한 데이터 세트입니다. :-) 하루가 끝날 때 주요 구성 요소는 RSS 메트릭 (부산물로 각 구성 요소가 주요 변형 모드를 나타내도록하는 경우) 하에서 주어진 수의 구성 요소를 포함하거나 제외하여 데이터의 최적 분해를 제공합니다. 문제의 차원에 대한 인식을 나타냅니다.

개인적 취향에 관해서는 PCA 에 대한 확률 적 해석을 기반 으로 한이 PCA에 대한 차원의 자동 선택에 대한 Minka의 접근 방식을 좋아 하지만 주어진 차원에 대해 데이터의 가능성을 모델링하려고 시도하는 게임에 들어갑니다. (이 이론적 근거를 따르려면 링크에서 Matlab 코드를 제공합니다.)

데이터를 더 이해하려고 노력하십시오. 예. 데이터 집합 변동의 99.99 %가 모형의 공변량으로 인한 것이라고 생각하십니까? 그렇지 않을 경우 전체 분산의 작은 비율을 나타내는 치수를 포함 할 필요는 없습니다. 실제로 구성 요소가 눈에 띄는 차이의 임계 값 미만으로 변동을 반영한다고 생각하십니까? 다시 말해, 해당 구성 요소를 분석에 포함시키는 데 관련성이 거의 없음을 의미합니다.

어쨌든 행운을 빌어 데이터를 신중하게 확인하십시오. (그들을 플로팅하는 것도 놀라운 일입니다.)


matlab 코드를 가리킬 수 있습니까, 찾을 수 없습니다.
mrgloom


응! 그것이 제가 언급 한 링크였습니다.
usεr11852

Minka의 접근 방식이 지금까지 R에 적용되는지 궁금합니다. 연구에서 가장 중요한 PC가 다른 방법으로 결정되었다고 가정하면, 이것이 데이터의 신호 부분이어야 함을 알고 있습니다. 이러한 PC가 설명하는 % 편차에 제한이 있는지 아는 경우 우연히 알고 있습니까? 모든 참조를 주시면 감사하겠습니다.
박사 학위

6

이 질문에 대한 최초의 질문과 답변이 있기 때문에 지난 몇 년 동안이 문제에 대한 매우 훌륭한 후속 연구가있었습니다. Gavish와 Donoho의 다음 논문을 강력히 추천합니다. 특이 값에 대한 최적의 하드 임계 값은 4 / sqrt (3)입니다.

결과는 점근 분석 (예 : 데이터 매트릭스가 무한대로 커짐에 따라 잘 정의 된 최적의 솔루션이 있음)을 기반으로하지만 작고 현실적인 크기의 데이터 세트에 대해 무소음 최적의 프로 시저가 작동하는 것을 보여주는 인상적인 수치 결과를 보여줍니다. 모델.

σn×n

λ=4σn3

그들은 또한 논문에서 사각형이 아닌 경우를 설명합니다. 여기에는 멋진 코드 부록 (MATLAB)이 있지만 R 또는 다른 곳에서 알고리즘을 쉽게 구현할 수 있습니다. https://purl.stanford.edu/vg705qn9070

주의 사항 :

  • 데이터가 누락 된 경우 이것이 확실하지 않습니다.
  • 데이터 세트의 각 기능에 다른 노이즈 크기가있는 경우 이것이 효과가 있는지 확실하지 않습니다 (미백은 특정 가정 에서이 문제를 해결할 수는 있지만)
  • 다른 낮은 순위의 행렬 분해 (예 : 음이 아닌 행렬 분해)에 대해 유사한 결과가 나타나는지 확인하는 것이 흥미로울 것입니다.

+1,이 논문은 매우 흥미로워 보입니다. 언급 해 주셔서 감사합니다.
amoeba

4

Kaiser의 기준 (1보다 큰 모든 고유 값)의 문제점은 추출 된 요소의 수는 추가 요소 중 많은 것이 잡음인지 여부에 관계없이 일반적으로 배터리의 항목 또는 스케일 수의 1/3 정도라는 것입니다. 병렬 분석과 스 크리 기준은 일반적으로 추출 할 요소의 수를 결정하는보다 정확한 절차입니다 (Harmon 및 Ledyard Tucker의 고전 텍스트와 Wayne Velicer의 최신 연구 결과에 따름).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.